+
+ // ==============================
+ // Add segments of enforced mesh
+ // ==============================
+
+ if ( enforcedMesh.HasSegmentsOnFace( f ))
+ {
+ BLSURFPlugin_EnforcedMesh1D::Segmemnt seg;
+ while ( enforcedMesh.NextSegment( seg, pmap ))
+ {
+ curves.push_back( seg._pcurve );
+
+ cad_edge_t *edg = cad_edge_new( fce, seg._tag, seg._u[0], seg._u[1],
+ curv_fun,seg._pcurve.get());
+ cad_edge_set_tag( edg, seg._tag );
+
+ cad_edge_set_property( edg, EDGE_PROPERTY_SOFT_REQUIRED );
+ cad_edge_set_property( edg, EDGE_PROPERTY_INTERNAL );
+
+ cad_edge_set_extremities ( edg, seg._vTag[0], seg._vTag[1]);
+ cad_edge_set_extremities_tag( edg, seg._vTag[0], seg._vTag[1]);
+
+ dcad_edge_discretization_t *dedge;
+ dcad_get_edge_discretization( dcad, edg, &dedge );
+ dcad_edge_discretization_set_vertex_count( dedge, 2 );
+
+ dcad_edge_discretization_set_vertex_coordinates( dedge, 1,
+ seg._u [0],
+ &seg._uv[0].ChangeCoord(1),
+ seg._xyz[0].ChangeData() );
+ dcad_edge_discretization_set_vertex_coordinates( dedge, 2,
+ seg._u [1],
+ &seg._uv[1].ChangeCoord(1),
+ seg._xyz[1].ChangeData() );
+
+ dcad_edge_discretization_set_vertex_tag( dedge, 1, seg._vTag[0] );
+ dcad_edge_discretization_set_vertex_tag( dedge, 2, seg._vTag[1] );
+
+ dcad_edge_discretization_set_property(dedge, DISTENE_DCAD_PROPERTY_REQUIRED);
+ }
+ }
+
+