Revision: 57231
          http://sourceforge.net/p/brlcad/code/57231
Author:   starseeker
Date:     2013-08-28 19:27:58 +0000 (Wed, 28 Aug 2013)
Log Message:
-----------
Moving things into struct - will allow easier passing of info between functions

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

Modified: brlcad/trunk/src/conv/step/g-step/ON_Brep.cpp
===================================================================
--- brlcad/trunk/src/conv/step/g-step/ON_Brep.cpp       2013-08-28 18:58:26 UTC 
(rev 57230)
+++ brlcad/trunk/src/conv/step/g-step/ON_Brep.cpp       2013-08-28 19:27:58 UTC 
(rev 57231)
@@ -625,15 +625,14 @@
 bool
 ON_BRep_to_STEP(ON_Brep *brep, Exporter_Info_AP203 *info)
 {
-    std::vector<STEPentity *> cartesian_pnts(brep->m_V.Count(), (STEPentity 
*)0);
-    std::vector<STEPentity *> vertex_pnts(brep->m_V.Count(), (STEPentity *)0);
-    std::vector<STEPentity *> three_dimensional_curves(brep->m_C3.Count(), 
(STEPentity *)0);
-    std::vector<STEPentity *> edge_curves(brep->m_E.Count(), (STEPentity *)0);
-    std::vector<STEPentity *> oriented_edges;
-    std::vector<STEPentity *> edge_loops(brep->m_L.Count(), (STEPentity *)0);
-    std::vector<STEPentity *> outer_bounds(brep->m_F.Count(), (STEPentity *)0);
-    std::vector<STEPentity *> surfaces(brep->m_S.Count(), (STEPentity *)0);
-    std::vector<STEPentity *> faces(brep->m_F.Count(), (STEPentity *)0);
+    info->cartesian_pnts.assign(brep->m_V.Count(), (STEPentity *)0);
+    info->vertex_pnts.assign(brep->m_V.Count(), (STEPentity *)0);
+    info->three_dimensional_curves.assign(brep->m_C3.Count(), (STEPentity *)0);
+    info->edge_curves.assign(brep->m_E.Count(), (STEPentity *)0);
+    info->edge_loops.assign(brep->m_L.Count(), (STEPentity *)0);
+    info->outer_bounds.assign(brep->m_F.Count(), (STEPentity *)0);
+    info->surfaces.assign(brep->m_S.Count(), (STEPentity *)0);
+    info->faces.assign(brep->m_F.Count(), (STEPentity *)0);
 
     /* Preliminary preparations.  If we have closed curves and edges that 
define
      * loops, and we are avoiding such closed structures for export, we need to
@@ -643,8 +642,6 @@
      * an alternative - split all closed 3D curves in advance and store the
      * split results in maps, which can be used for look-up in place of the
      * standard ON_Brep arrays.*/
-    std::map<int, std::pair<STEPentity *, STEPentity *> > sdai_curve_to_splits;
-    std::map<int, STEPentity * > split_midpt_vertex;
     for (int i = 0; i < brep->m_C3.Count(); ++i) {
        ON_Curve* curve = brep->m_C3[i];
        if (curve->IsClosed()) {
@@ -674,7 +671,7 @@
            right_curve->self_intersect_(LFalse);
            right_curve->name_("''");
            info->instance_list->Append(right_curve, completeSE);
-           sdai_curve_to_splits[i] = std::pair<STEPentity *, STEPentity 
*>((STEPentity *)&(*left_curve), (STEPentity *)&(*right_curve));
+           info->sdai_curve_to_splits[i] = std::pair<STEPentity *, STEPentity 
*>((STEPentity *)&(*left_curve), (STEPentity *)&(*right_curve));
            // Midpoint vertex
            SdaiCartesian_point *pt = (SdaiCartesian_point 
*)info->registry->ObjCreate("CARTESIAN_POINT");
            info->instance_list->Append(pt, completeSE);
@@ -685,7 +682,7 @@
            vpt->name_("''");
            vpt->vertex_geometry_((const SdaiPoint_ptr)pt);
            info->instance_list->Append(vpt, completeSE);
-            split_midpt_vertex[i] = (STEPentity *)&(*vpt);
+            info->split_midpt_vertex[i] = (STEPentity *)&(*vpt);
        }
     }
 
@@ -696,17 +693,17 @@
     // Set up vertices and associated cartesian points
     for (int i = 0; i < brep->m_V.Count(); ++i) {
        // Cartesian points (actual 3D geometry)
-       cartesian_pnts.at(i) = info->registry->ObjCreate("CARTESIAN_POINT");
-       ((SdaiCartesian_point *)cartesian_pnts.at(i))->name_("''");
-       info->instance_list->Append(cartesian_pnts.at(i), completeSE);
+       info->cartesian_pnts.at(i) = 
info->registry->ObjCreate("CARTESIAN_POINT");
+       ((SdaiCartesian_point *)info->cartesian_pnts.at(i))->name_("''");
+       info->instance_list->Append(info->cartesian_pnts.at(i), completeSE);
        ON_3dPoint v_pnt = brep->m_V[i].Point();
-       ON_3dPoint_to_Cartesian_point(&(v_pnt), (SdaiCartesian_point 
*)cartesian_pnts.at(i));
+       ON_3dPoint_to_Cartesian_point(&(v_pnt), (SdaiCartesian_point 
*)info->cartesian_pnts.at(i));
 
        // Vertex points (topological, references actual 3D geometry)
-       vertex_pnts.at(i) = info->registry->ObjCreate("VERTEX_POINT");
-       ((SdaiVertex_point *)vertex_pnts.at(i))->name_("''");
-       ((SdaiVertex_point *)vertex_pnts.at(i))->vertex_geometry_((const 
SdaiPoint_ptr)cartesian_pnts.at(i));
-       info->instance_list->Append(vertex_pnts.at(i), completeSE);
+       info->vertex_pnts.at(i) = info->registry->ObjCreate("VERTEX_POINT");
+       ((SdaiVertex_point *)info->vertex_pnts.at(i))->name_("''");
+       ((SdaiVertex_point *)info->vertex_pnts.at(i))->vertex_geometry_((const 
SdaiPoint_ptr)info->cartesian_pnts.at(i));
+       info->instance_list->Append(info->vertex_pnts.at(i), completeSE);
     }
 
     // 3D curves
@@ -736,9 +733,9 @@
             * create our own
             */
 
-           three_dimensional_curves.at(i) = info->registry->ObjCreate("LINE");
+           info->three_dimensional_curves.at(i) = 
info->registry->ObjCreate("LINE");
 
-           SdaiLine *curr_line = (SdaiLine *)three_dimensional_curves.at(i);
+           SdaiLine *curr_line = (SdaiLine 
*)info->three_dimensional_curves.at(i);
            curr_line->pnt_((SdaiCartesian_point 
*)info->registry->ObjCreate("CARTESIAN_POINT"));
            ON_3dPoint_to_Cartesian_point(&(m_line->from), curr_line->pnt_());
            curr_line->dir_((SdaiVector *)info->registry->ObjCreate("VECTOR"));
@@ -755,7 +752,7 @@
            info->instance_list->Append(curr_line->pnt_(), completeSE);
            info->instance_list->Append(curr_dir->orientation_(), completeSE);
            info->instance_list->Append(curr_line->dir_(), completeSE);
-           info->instance_list->Append(three_dimensional_curves.at(i), 
completeSE);
+           info->instance_list->Append(info->three_dimensional_curves.at(i), 
completeSE);
            curve_converted = 1;
        }
 
@@ -767,25 +764,25 @@
            std::cout << "Have NurbsCurve\n";
            if (n_curve->IsRational()) {
                std::cout << "TODO - Have Rational NurbsCurve\n";
-               three_dimensional_curves.at(i) = 
info->registry->ObjCreate("RATIONAL_B_SPLINE_CURVE");
+               info->three_dimensional_curves.at(i) = 
info->registry->ObjCreate("RATIONAL_B_SPLINE_CURVE");
            } else {
-               three_dimensional_curves.at(i) = 
info->registry->ObjCreate("B_SPLINE_CURVE_WITH_KNOTS");
-               SdaiB_spline_curve *curr_curve = (SdaiB_spline_curve 
*)three_dimensional_curves.at(i);
+               info->three_dimensional_curves.at(i) = 
info->registry->ObjCreate("B_SPLINE_CURVE_WITH_KNOTS");
+               SdaiB_spline_curve *curr_curve = (SdaiB_spline_curve 
*)info->three_dimensional_curves.at(i);
                curr_curve->degree_(n_curve->Degree());
                ON_NurbsCurveCV_to_EntityAggregate(n_curve, curr_curve, 
info->registry, info->instance_list);
-               SdaiB_spline_curve_with_knots *curve_knots = 
(SdaiB_spline_curve_with_knots *)three_dimensional_curves.at(i);
+               SdaiB_spline_curve_with_knots *curve_knots = 
(SdaiB_spline_curve_with_knots *)info->three_dimensional_curves.at(i);
                ON_NurbsCurveKnots_to_Aggregates(n_curve, curve_knots);
            }
 
-           ((SdaiB_spline_curve 
*)three_dimensional_curves.at(i))->curve_form_(B_spline_curve_form__unspecified);
-           ((SdaiB_spline_curve 
*)three_dimensional_curves.at(i))->closed_curve_(SDAI_LOGICAL(n_curve->IsClosed()));
+           ((SdaiB_spline_curve 
*)info->three_dimensional_curves.at(i))->curve_form_(B_spline_curve_form__unspecified);
+           ((SdaiB_spline_curve 
*)info->three_dimensional_curves.at(i))->closed_curve_(SDAI_LOGICAL(n_curve->IsClosed()));
 
            /* TODO: Assume we don't have self-intersecting curves for
             * now - need some way to test this...
             */
-           ((SdaiB_spline_curve 
*)three_dimensional_curves.at(i))->self_intersect_(LFalse);
-           ((SdaiB_spline_curve *)three_dimensional_curves.at(i))->name_("''");
-           info->instance_list->Append(three_dimensional_curves.at(i), 
completeSE);
+           ((SdaiB_spline_curve 
*)info->three_dimensional_curves.at(i))->self_intersect_(LFalse);
+           ((SdaiB_spline_curve 
*)info->three_dimensional_curves.at(i))->name_("''");
+           info->instance_list->Append(info->three_dimensional_curves.at(i), 
completeSE);
            curve_converted = 1;
        }
 
@@ -799,15 +796,15 @@
     // edge topology - ON_BrepEdge -> edge curves and oriented edges
     for (int i = 0; i < brep->m_E.Count(); ++i) {
        ON_BrepEdge *edge = &(brep->m_E[i]);
-       edge_curves.at(i) = info->registry->ObjCreate("EDGE_CURVE");
-       info->instance_list->Append(edge_curves.at(i), completeSE);
+       info->edge_curves.at(i) = info->registry->ObjCreate("EDGE_CURVE");
+       info->instance_list->Append(info->edge_curves.at(i), completeSE);
 
-       SdaiEdge_curve *e_curve = (SdaiEdge_curve *)edge_curves.at(i);
+       SdaiEdge_curve *e_curve = (SdaiEdge_curve *)info->edge_curves.at(i);
        e_curve->name_("''");
-       e_curve->edge_geometry_(((SdaiCurve 
*)three_dimensional_curves.at(edge->EdgeCurveIndexOf())));
+       e_curve->edge_geometry_(((SdaiCurve 
*)info->three_dimensional_curves.at(edge->EdgeCurveIndexOf())));
        e_curve->same_sense_(BTrue);
-       e_curve->edge_start_(((SdaiVertex 
*)vertex_pnts.at(edge->Vertex(0)->m_vertex_index)));
-       e_curve->edge_end_(((SdaiVertex 
*)vertex_pnts.at(edge->Vertex(1)->m_vertex_index)));
+       e_curve->edge_start_(((SdaiVertex 
*)info->vertex_pnts.at(edge->Vertex(0)->m_vertex_index)));
+       e_curve->edge_end_(((SdaiVertex 
*)info->vertex_pnts.at(edge->Vertex(1)->m_vertex_index)));
     }
 
     // loop topology.  STEP defines loops with 3D edge curves, but
@@ -818,20 +815,20 @@
     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) = info->registry->ObjCreate("EDGE_LOOP");
-       info->instance_list->Append(edge_loops.at(i), completeSE);
-       ((SdaiEdge_loop *)edge_loops.at(i))->name_("''");
+       info->edge_loops.at(i) = info->registry->ObjCreate("EDGE_LOOP");
+       info->instance_list->Append(info->edge_loops.at(i), completeSE);
+       ((SdaiEdge_loop *)info->edge_loops.at(i))->name_("''");
 
        // Why doesn't SdaiEdge_loop's edge_list_() function give use
        // the edge_list from the SdaiPath??  Initialized to NULL and
        // crashes - what good is it?  Have to get at the internal
        // SdaiPath directly to build something that STEPwrite will
        // output.
-       SdaiPath *e_loop_path = (SdaiPath *)edge_loops.at(i)->GetNextMiEntity();
+       SdaiPath *e_loop_path = (SdaiPath 
*)info->edge_loops.at(i)->GetNextMiEntity();
        for (int l = 0; l < loop->TrimCount(); ++l) {
-           int trim_edge = Add_Edge(loop->Trim(l), info->registry, 
info->instance_list, &oriented_edges, &edge_curves, &vertex_pnts);
+           int trim_edge = Add_Edge(loop->Trim(l), info->registry, 
info->instance_list, &info->oriented_edges, &info->edge_curves, 
&info->vertex_pnts);
            if (trim_edge >= 0)
-               e_loop_path->edge_list_()->AddNode(new 
EntityNode((SDAI_Application_instance *)(oriented_edges.at(trim_edge))));
+               e_loop_path->edge_list_()->AddNode(new 
EntityNode((SDAI_Application_instance *)(info->oriented_edges.at(trim_edge))));
        }
     }
 
@@ -859,15 +856,15 @@
 
            ON_NurbsSurface p_nurb;
            p_surface->GetNurbForm(p_nurb);
-           surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
+           info->surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
 
-           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)surfaces.at(i);
+           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)info->surfaces.at(i);
            curr_surface->name_("''");
            curr_surface->u_degree_(p_nurb.Degree(0));
            curr_surface->v_degree_(p_nurb.Degree(1));
            ON_NurbsSurfaceCV_to_GenericAggregate(&p_nurb, curr_surface, 
info->registry, info->instance_list);
 
-           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)surfaces.at(i);
+           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)info->surfaces.at(i);
            ON_NurbsSurfaceKnots_to_Aggregates(&p_nurb, surface_knots);
            curr_surface->surface_form_(B_spline_surface_form__plane_surf);
            /* Planes don't self-intersect */
@@ -875,7 +872,7 @@
            /* TODO - need to recognize when these should be true */
            curr_surface->u_closed_(LFalse);
            curr_surface->v_closed_(LFalse);
-           info->instance_list->Append(surfaces.at(i), completeSE);
+           info->instance_list->Append(info->surfaces.at(i), completeSE);
            surface_converted = 1;
        }
 
@@ -885,15 +882,15 @@
 
        if (n_surface && !surface_converted) {
            std::cout << "Have NurbsSurface\n";
-           surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
+           info->surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
 
-           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)surfaces.at(i);
+           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)info->surfaces.at(i);
            curr_surface->name_("''");
            curr_surface->u_degree_(n_surface->Degree(0));
            curr_surface->v_degree_(n_surface->Degree(1));
            ON_NurbsSurfaceCV_to_GenericAggregate(n_surface, curr_surface, 
info->registry, info->instance_list);
 
-           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)surfaces.at(i);
+           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)info->surfaces.at(i);
            ON_NurbsSurfaceKnots_to_Aggregates(n_surface, surface_knots);
            curr_surface->surface_form_(B_spline_surface_form__unspecified);
            /* TODO - for now, assume the surfaces don't self-intersect - need 
to figure out how to test this */
@@ -901,7 +898,7 @@
            /* TODO - need to recognize when these should be true */
            curr_surface->u_closed_(LFalse);
            curr_surface->v_closed_(LFalse);
-           info->instance_list->Append(surfaces.at(i), completeSE);
+           info->instance_list->Append(info->surfaces.at(i), completeSE);
            surface_converted = 1;
        }
 
@@ -914,15 +911,15 @@
 
            ON_NurbsSurface sum_nurb;
            sum_surface->GetNurbForm(sum_nurb);
-           surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
+           info->surfaces.at(i) = 
info->registry->ObjCreate("B_SPLINE_SURFACE_WITH_KNOTS");
 
-           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)surfaces.at(i);
+           SdaiB_spline_surface *curr_surface = (SdaiB_spline_surface 
*)info->surfaces.at(i);
            curr_surface->name_("''");
            curr_surface->u_degree_(sum_nurb.Degree(0));
            curr_surface->v_degree_(sum_nurb.Degree(1));
            ON_NurbsSurfaceCV_to_GenericAggregate(&sum_nurb, curr_surface, 
info->registry, info->instance_list);
 
-           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)surfaces.at(i);
+           SdaiB_spline_surface_with_knots *surface_knots = 
(SdaiB_spline_surface_with_knots *)info->surfaces.at(i);
            ON_NurbsSurfaceKnots_to_Aggregates(&sum_nurb, surface_knots);
            curr_surface->surface_form_(B_spline_surface_form__plane_surf);
            /* TODO - for now, assume non-self-intersecting */
@@ -930,7 +927,7 @@
            /* TODO - need to recognize when these should be true */
            curr_surface->u_closed_(LFalse);
            curr_surface->v_closed_(LFalse);
-           info->instance_list->Append(surfaces.at(i), completeSE);
+           info->instance_list->Append(info->surfaces.at(i), completeSE);
            surface_converted = 1;
        }
 
@@ -943,11 +940,10 @@
     // faces
     for (int i = 0; i < brep->m_F.Count(); ++i) {
        ON_BrepFace* face = &(brep->m_F[i]);
-       faces.at(i) = info->registry->ObjCreate("ADVANCED_FACE");
-
-       SdaiAdvanced_face *step_face = (SdaiAdvanced_face *)faces.at(i);
+       info->faces.at(i) = info->registry->ObjCreate("ADVANCED_FACE");
+       SdaiAdvanced_face *step_face = (SdaiAdvanced_face *)info->faces.at(i);
        step_face->name_("''");
-       step_face->face_geometry_((SdaiSurface 
*)surfaces.at(face->SurfaceIndexOf()));
+       step_face->face_geometry_((SdaiSurface 
*)info->surfaces.at(face->SurfaceIndexOf()));
        // TODO - is m_bRev the same thing as same_sense?
        step_face->same_sense_((const Boolean)(face->m_bRev));
 
@@ -959,7 +955,7 @@
                SdaiFace_outer_bound *outer_bound = (SdaiFace_outer_bound 
*)info->registry->ObjCreate("FACE_OUTER_BOUND");
                outer_bound->name_("''");
                info->instance_list->Append(outer_bound, completeSE);
-               outer_bound->bound_((SdaiLoop 
*)edge_loops.at(curr_loop->m_loop_index));
+               outer_bound->bound_((SdaiLoop 
*)info->edge_loops.at(curr_loop->m_loop_index));
                // TODO - When should this be false?
                outer_bound->orientation_(BTrue);
                bounds->AddNode(new EntityNode((SDAI_Application_instance 
*)outer_bound));
@@ -967,7 +963,7 @@
                SdaiFace_bound *inner_bound = (SdaiFace_bound 
*)info->registry->ObjCreate("FACE_BOUND");
                inner_bound->name_("''");
                info->instance_list->Append(inner_bound, completeSE);
-               inner_bound->bound_((SdaiLoop 
*)edge_loops.at(curr_loop->m_loop_index));
+               inner_bound->bound_((SdaiLoop 
*)info->edge_loops.at(curr_loop->m_loop_index));
                // TODO - When should this be false?
                inner_bound->orientation_(BTrue);
                bounds->AddNode(new EntityNode((SDAI_Application_instance 
*)inner_bound));
@@ -977,33 +973,33 @@
     }
 
     // Closed shell that assembles the faces
-    SdaiClosed_shell *closed_shell = (SdaiClosed_shell 
*)info->registry->ObjCreate("CLOSED_SHELL");
-    closed_shell->name_("''");
-    info->instance_list->Append(closed_shell, completeSE);
+    info->closed_shell = (SdaiClosed_shell 
*)info->registry->ObjCreate("CLOSED_SHELL");
+    info->closed_shell->name_("''");
+    info->instance_list->Append(info->closed_shell, completeSE);
 
-    EntityAggregate *shell_faces = closed_shell->cfs_faces_();
+    EntityAggregate *shell_faces = info->closed_shell->cfs_faces_();
     for (int i = 0; i < brep->m_F.Count(); ++i) {
-       shell_faces->AddNode(new EntityNode((SDAI_Application_instance 
*)faces.at(i)));
+       shell_faces->AddNode(new EntityNode((SDAI_Application_instance 
*)info->faces.at(i)));
     }
 
     // Solid manifold BRep
-    SdaiManifold_solid_brep *manifold_solid_brep = (SdaiManifold_solid_brep 
*)info->registry->ObjCreate("MANIFOLD_SOLID_BREP");
-    info->instance_list->Append(manifold_solid_brep, completeSE);
-    manifold_solid_brep->outer_(closed_shell);
-    manifold_solid_brep->name_("''");
+    info->manifold_solid_brep = (SdaiManifold_solid_brep 
*)info->registry->ObjCreate("MANIFOLD_SOLID_BREP");
+    info->instance_list->Append(info->manifold_solid_brep, completeSE);
+    info->manifold_solid_brep->outer_(info->closed_shell);
+    info->manifold_solid_brep->name_("''");
 
     // Advanced BRep shape representation - this is the object step-g will 
look for
-    SdaiAdvanced_brep_shape_representation *advanced_brep= 
(SdaiAdvanced_brep_shape_representation 
*)info->registry->ObjCreate("ADVANCED_BREP_SHAPE_REPRESENTATION");
-    advanced_brep->name_("'brep.s'");
-    info->instance_list->Append(advanced_brep, completeSE);
-    EntityAggregate *items = advanced_brep->items_();
-    items->AddNode(new EntityNode((SDAI_Application_instance 
*)manifold_solid_brep));
-    advanced_brep->context_of_items_((SdaiRepresentation_context *) context);
+    info->advanced_brep= (SdaiAdvanced_brep_shape_representation 
*)info->registry->ObjCreate("ADVANCED_BREP_SHAPE_REPRESENTATION");
+    info->advanced_brep->name_("'brep.s'");
+    info->instance_list->Append(info->advanced_brep, completeSE);
+    EntityAggregate *items = info->advanced_brep->items_();
+    items->AddNode(new EntityNode((SDAI_Application_instance 
*)info->manifold_solid_brep));
+    info->advanced_brep->context_of_items_((SdaiRepresentation_context *) 
context);
 
     // Top level structures
-    SdaiRepresentation *shape_rep = Add_Shape_Representation(info->registry, 
info->instance_list, (SdaiRepresentation_context *)context);
-    (void *)Add_Shape_Representation_Relationship(info->registry, 
info->instance_list, shape_rep, (SdaiRepresentation *)advanced_brep);
-    (void *)Add_Shape_Definition_Representation(info->registry, 
info->instance_list, (SdaiRepresentation *)shape_rep);
+    info->shape_rep = Add_Shape_Representation(info->registry, 
info->instance_list, (SdaiRepresentation_context *)context);
+    (void *)Add_Shape_Representation_Relationship(info->registry, 
info->instance_list, info->shape_rep, (SdaiRepresentation 
*)info->advanced_brep);
+    (void *)Add_Shape_Definition_Representation(info->registry, 
info->instance_list, info->shape_rep);
 
     return true;
 }

Modified: brlcad/trunk/src/conv/step/g-step/ON_Brep.h
===================================================================
--- brlcad/trunk/src/conv/step/g-step/ON_Brep.h 2013-08-28 18:58:26 UTC (rev 
57230)
+++ brlcad/trunk/src/conv/step/g-step/ON_Brep.h 2013-08-28 19:27:58 UTC (rev 
57231)
@@ -41,6 +41,7 @@
     SdaiClosed_shell *closed_shell;
     SdaiManifold_solid_brep *manifold_solid_brep;
     SdaiAdvanced_brep_shape_representation *advanced_brep;
+    SdaiRepresentation *shape_rep;
 
     std::map<int, std::pair<STEPentity *, STEPentity *> > sdai_curve_to_splits;
     std::map<int, STEPentity * > split_midpt_vertex;

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


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to