Revision: 57005
          http://sourceforge.net/p/brlcad/code/57005
Author:   starseeker
Date:     2013-08-20 21:28:13 +0000 (Tue, 20 Aug 2013)
Log Message:
-----------
Going to need to re-think approach to edge building.

Modified Paths:
--------------
    brlcad/trunk/src/conv/step/ON_Brep.cpp

Modified: brlcad/trunk/src/conv/step/ON_Brep.cpp
===================================================================
--- brlcad/trunk/src/conv/step/ON_Brep.cpp      2013-08-20 21:04:01 UTC (rev 
57004)
+++ brlcad/trunk/src/conv/step/ON_Brep.cpp      2013-08-20 21:28:13 UTC (rev 
57005)
@@ -222,6 +222,7 @@
     ON_BrepEdge *edge = trim->Edge();
     int i = -1;
     if (edge) {
+       std::cout << "Trim " << trim->m_trim_index << " curve: " << 
edge->EdgeCurveIndexOf() << "\n";
        STEPentity *new_oriented_edge = registry->ObjCreate("ORIENTED_EDGE");
        SdaiOriented_edge *oriented_edge = (SdaiOriented_edge 
*)new_oriented_edge;
        oriented_edge->name_("''");
@@ -229,7 +230,9 @@
        oriented_edge->edge_element_((SdaiEdge *)e_curve);
        oriented_edge->edge_start_(((SdaiVertex 
*)vertex_pnts->at(edge->Vertex(0)->m_vertex_index)));
        oriented_edge->edge_end_(((SdaiVertex 
*)vertex_pnts->at(edge->Vertex(1)->m_vertex_index)));
-       oriented_edge->orientation_((Boolean)trim->m_bRev3d);
+       //TODO - do I need to check 3d points here?
+       oriented_edge->orientation_((Boolean)!trim->m_bRev3d);
+       if (edge->EdgeCurveOf()->IsClosed()) oriented_edge->orientation_(BTrue);
        instance_list->Append(new_oriented_edge, completeSE);
        oriented_edges->push_back(new_oriented_edge);
        i = oriented_edges->size() - 1;
@@ -562,6 +565,7 @@
     // the _edge_list for the loop.
     for (int i = 0; i < brep->m_L.Count(); ++i) {
        ON_BrepLoop *loop= &(brep->m_L[i]);
+       std::cout << "Loop " << i << "\n";
        edge_loops.at(i) = registry->ObjCreate("EDGE_LOOP");
        instance_list->Append(edge_loops.at(i), completeSE);
        ((SdaiEdge_loop *)edge_loops.at(i))->name_("''");
@@ -573,6 +577,8 @@
        // output.
        SdaiPath *e_loop_path = (SdaiPath *)edge_loops.at(i)->GetNextMiEntity();
        for (int l = 0; l < loop->TrimCount(); ++l) {
+           // FIXME - trims in a loop will not necessarily map back uniquely 
to edge curves for
+           // a given loop.  The Add_Edge approach is inadquate - need to 
rethink this
            int trim_edge = Add_Edge(loop->Trim(l), registry, instance_list, 
&oriented_edges, &edge_curves, &vertex_pnts);
            if (trim_edge >= 0)
                e_loop_path->edge_list_()->AddNode(new 
EntityNode((SDAI_Application_instance *)(oriented_edges.at(trim_edge))));

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to