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