cgma
|
#include <CompositeSurface.hpp>
Definition at line 35 of file CompositeSurface.hpp.
CompositeSurface::CompositeSurface | ( | Surface * | surf_ptr | ) |
Definition at line 43 of file CompositeSurface.cpp.
: HadBridgeRemoved(0), stitchPartner(0), firstCoSurf(0), firstLoop(0), hiddenSet(0), facetTool(0) { assert( surface != NULL ); compGeom = new CompositeGeom(1); compGeom->append( surface, CUBIT_FORWARD ); if( surface->owner() ) surface->owner()->swap_bridge( surface, this, false ); surface->owner(this); }
CompositeSurface::CompositeSurface | ( | CompositeGeom * | geom_ptr | ) |
Definition at line 54 of file CompositeSurface.cpp.
: HadBridgeRemoved(0), compGeom(geometry), stitchPartner(0), firstCoSurf(0), firstLoop(0), hiddenSet(0), facetTool(0) { assert( geometry != NULL ); for( int i = 0; i < compGeom->num_entities(); i++ ) { GeometryEntity* entity = compGeom->entity(i); assert( !entity->owner() ); entity->owner(this); } }
CompositeSurface::~CompositeSurface | ( | ) | [virtual] |
Definition at line 83 of file CompositeSurface.cpp.
{ while( firstCoSurf ) { CompositeCoSurf* cosurf = firstCoSurf; remove( cosurf ); if( cosurf->get_shell() ) cosurf->get_shell()->remove( cosurf ); delete cosurf; } while( firstLoop ) remove( firstLoop ); for( int j = 0; j < num_surfs(); j++ ) if( get_surface(j)->owner() == this ) get_surface(j)->owner(0); if( stitchPartner ) { stitchPartner->stitchPartner = 0; stitchPartner = 0; } delete hiddenSet; delete compGeom; delete facetTool; hiddenSet = (HiddenEntitySet*)0xbdbdbdbd; compGeom = (CompositeGeom*)0xbdbdbdbd; }
CompositeSurface::CompositeSurface | ( | const CompositeSurface & | ) | [private] |
CubitStatus CompositeSurface::add | ( | CompositeLoop * | loop | ) |
Definition at line 123 of file CompositeSurface.cpp.
{ if( loop->mySurface ) { assert(0); return CUBIT_FAILURE; } loop->mySurface = this; loop->loopNext = firstLoop; firstLoop = loop; return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::add | ( | CompositeCoSurf * | cosurf | ) |
Definition at line 185 of file CompositeSurface.cpp.
{ if( cosurf->mySurface ) return CUBIT_FAILURE; cosurf->mySurface = this; cosurf->surfaceNext = firstCoSurf; firstCoSurf = cosurf; return CUBIT_SUCCESS; }
void CompositeSurface::append_simple_attribute_virt | ( | const CubitSimpleAttrib & | simple_attrib_ptr | ) | [virtual] |
Implements TopologyBridge.
Definition at line 398 of file CompositeSurface.cpp.
{ if(compGeom) compGeom->add_attribute( simple_attrib_ptr ); }
CubitBox CompositeSurface::bounding_box | ( | void | ) | const [virtual] |
Implements GeometryEntity.
Definition at line 346 of file CompositeSurface.cpp.
{ return compGeom->bounding_box(); }
CubitStatus CompositeSurface::closest_point | ( | CubitVector const & | location, |
CubitVector * | closest_location = NULL , |
||
CubitVector * | unit_normal = NULL , |
||
CubitVector * | curvature1 = NULL , |
||
CubitVector * | curvature2 = NULL |
||
) | [virtual] |
Implements Surface.
Definition at line 895 of file CompositeSurface.cpp.
{ if ( num_surfs() == 1 ) return get_surface(0)->closest_point( location, closest_location, unit_normal, curvature1, curvature2 ); update_facet_tool(); if ( facetTool ) { CubitStatus result = CUBIT_SUCCESS; CubitVector facet_closest; // look for multiple surfaces if normal is requested if (unit_normal) { DLIList<int> index_list; int num_found = facetTool->closest_index( location, index_list, &facet_closest ); CubitVector normal(0.0, 0.0, 0.0); int i; for (i = 0; i < num_found; i++) { int index = index_list[i]; if(index > -1) { Surface* surf = get_surface(index); result = surf->closest_point( facet_closest, closest_location, &normal, curvature1, curvature2 ); if (get_sense(index) == CUBIT_REVERSED) *unit_normal += (-normal); else *unit_normal += normal; } } unit_normal->normalize(); } else { int index = facetTool->closest_index( location, &facet_closest ); if(index > -1) { Surface* surf = get_surface(index); result = surf->closest_point( location, closest_location, unit_normal, curvature1, curvature2 ); // if (unit_normal && get_sense(index) == CUBIT_REVERSED) // *unit_normal = -*unit_normal; } else result = CUBIT_FAILURE; } return result; // this code is never accessed Surface* surf = NULL; int index = -1; double u, v; result = surf->u_v_from_position( facet_closest, u, v ); if (!result) return CUBIT_FAILURE; CubitVector surf_closest; result = surf->closest_point_uv_guess( location, u, v, &surf_closest, unit_normal ); if (!result) return CUBIT_FAILURE; if (unit_normal && get_sense(index) == CUBIT_REVERSED) *unit_normal = -*unit_normal; if (curvature1 || curvature2) { result = surf->closest_point( surf_closest, 0, 0, curvature1, curvature2 ); if (!result) return CUBIT_FAILURE; } if(closest_location) *closest_location = surf_closest; return CUBIT_SUCCESS; } double shortest_dist_sqr, current_dist_sqr; CubitVector closest_point, current_point; int closest_surf, current_surf; //initialize CompositeEntity data structures closest_surf = compGeom->closest_box( location ); closest_trimmed( closest_surf, location, closest_point ); shortest_dist_sqr = (location - closest_point).length_squared(); while( (current_surf = compGeom->next_box_within_dist( shortest_dist_sqr ) ) >= 0 ) { closest_trimmed( current_surf, location, current_point ); current_dist_sqr = (location - current_point).length_squared(); if( current_dist_sqr < shortest_dist_sqr ) { closest_surf = current_surf; closest_point = current_point; shortest_dist_sqr = current_dist_sqr; } } if( closest_location ) *closest_location = closest_point; if( unit_normal || curvature1 || curvature2 ) { get_surface( closest_surf )->closest_point( closest_point, NULL, unit_normal, curvature1, curvature2 ); if( unit_normal && compGeom->sense(closest_surf) == CUBIT_REVERSED ) *unit_normal *= -1; } return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::closest_point_along_vector | ( | CubitVector & | from_point, |
CubitVector & | along_vector, | ||
CubitVector & | point_on_surface | ||
) | [virtual] |
Implements Surface.
Definition at line 2044 of file CompositeSurface.cpp.
{ int index = closest_underlying_surface( from_point ); CubitStatus status = get_surface(index)->closest_point_along_vector( from_point, along_vector, point_on_surface ); if( CUBIT_FAILURE == status ) { //find the next closest surface and try it double shortest_dist_sqr = CUBIT_DBL_MAX; double current_dist_sqr; CubitVector closest_point; int closest_surf = 0; for( int k=0; k<compGeom->num_entities(); k++ ) { if( k==index ) continue; closest_trimmed( k, from_point, closest_point ); current_dist_sqr = (from_point - closest_point).length_squared(); if( current_dist_sqr < shortest_dist_sqr ) { closest_surf = k; shortest_dist_sqr = current_dist_sqr; } } status = get_surface(closest_surf)->closest_point_along_vector( from_point, along_vector, point_on_surface ); } return status; }
void CompositeSurface::closest_point_trimmed | ( | CubitVector | from_point, |
CubitVector & | result | ||
) | [virtual] |
Implements Surface.
Definition at line 580 of file CompositeSurface.cpp.
{ int index = closest_underlying_surface( from_point ); get_surface(index)->closest_point_trimmed( from_point, point_on_surf ); }
CubitStatus CompositeSurface::closest_point_uv_guess | ( | CubitVector const & | location, |
double & | u, | ||
double & | v, | ||
CubitVector * | closest_location = NULL , |
||
CubitVector * | unit_normal = NULL |
||
) | [virtual] |
Implements Surface.
Definition at line 757 of file CompositeSurface.cpp.
{ if ( num_surfs() == 1) return get_surface(0)-> closest_point_uv_guess(location, u, v, closest_location, unit_normal); else return closest_point(location, closest_location, unit_normal); }
CubitStatus CompositeSurface::closest_trimmed | ( | int | underlying_surface, |
const CubitVector & | position, | ||
CubitVector & | result | ||
) | [protected] |
Definition at line 1097 of file CompositeSurface.cpp.
{ get_surface(index)->closest_point_trimmed( position, result ); return CUBIT_SUCCESS; /* total_calls++; CubitVector close, copy(position); Surface* surf = get_surface(index); timer.cpu_secs(); surf->closest_point_trimmed( position, result ); trimmed_time += timer.cpu_secs(); surf->closest_point( position, &close ); closest_time += timer.cpu_secs(); CubitPointContainment contain = surf->point_containment( copy ); contain_time += timer.cpu_secs(); if ( contain == CUBIT_PNT_OUTSIDE ) contain_trim_count++; else if( (result - close).length_squared() > GEOMETRY_RESABS*GEOMETRY_RESABS) error_count++; return CUBIT_SUCCESS; */ // if( use_gme_cpt ) // { // get_surface( index )->closest_point_trimmed( position, result ); // return CUBIT_SUCCESS; // } /* DLIList<TopologyBridge*> bridge_list; Surface* surf_ptr = get_surface(index); CubitVector surf_pt, normal, curve_pt; if( !surf_ptr->closest_point( position, &surf_pt, &normal ) ) return CUBIT_FAILURE; CoEdgeSM *closest_coedge, *other_coedge = 0; cptInfo.setup(surf_ptr); cptInfo.closest_coedge( position, closest_coedge, other_coedge, curve_pt ); if ( !closest_coedge ) return CUBIT_FAILURE; CubitVector coe_normal, cross, tangent1, tangent2, junk; bool inside; if ( !other_coedge ) { bridge_list.clean_out(); closest_coedge->get_children_virt( bridge_list ); Curve* curve_ptr = dynamic_cast<Curve*>(bridge_list.get()); assert( !!curve_ptr ); double u = curve_ptr->u_from_position( curve_pt ); if( !curve_ptr->G1_discontinuous( u, &tangent1, &tangent2 ) ) { curve_ptr->closest_point( curve_pt, junk, &tangent1 ); bool inside = is_inside( tangent1, curve_pt, surf_pt, normal ); result = inside ? surf_pt : curve_pt; return CUBIT_SUCCESS; } if( closest_coedge->sense() == CUBIT_REVERSED ) { tangent1 = -tangent1; tangent2 = -tangent2; } } else { bridge_list.clean_out(); closest_coedge->get_children_virt( bridge_list ); Curve* curve1 = dynamic_cast<Curve*>(bridge_list.get()); bridge_list.clean_out(); other_coedge->get_children_virt( bridge_list ); Curve* curve2 = dynamic_cast<Curve*>(bridge_list.get()); assert(curve1 && curve2); curve1->closest_point( curve_pt, junk, &tangent1 ); curve2->closest_point( curve_pt, junk, &tangent2 ); if( closest_coedge->sense() == CUBIT_REVERSED ) tangent1 = -tangent1; if( other_coedge->sense() == CUBIT_REVERSED ) tangent2 = -tangent2; } surf_ptr->closest_point( curve_pt, 0, &coe_normal ); cross = tangent1 * tangent2; bool inside1 = is_inside( tangent1, curve_pt, surf_pt, normal ); bool inside2 = is_inside( tangent2, curve_pt, surf_pt, normal ); if ( (cross % coe_normal) > 0.0 ) inside = inside1 && inside2; else inside = inside1 || inside2; result = inside ? surf_pt : curve_pt; return CUBIT_SUCCESS; */ }
int CompositeSurface::closest_underlying_surface | ( | const CubitVector & | position | ) |
Definition at line 1031 of file CompositeSurface.cpp.
{ if( num_surfs() == 1 ) return 0; update_facet_tool(); if( facetTool ) return facetTool->closest_index( pos ); double shortest_dist_sqr, current_dist_sqr; CubitVector closest_point; int closest_surf, current_surf; //initialize CompositeEntity data structures closest_surf = compGeom->closest_box( pos ); closest_trimmed( closest_surf, pos, closest_point ); shortest_dist_sqr = (pos - closest_point).length_squared(); while( (current_surf = compGeom->next_box_within_dist( shortest_dist_sqr ) ) >= 0 ) { closest_trimmed( current_surf, pos, closest_point ); current_dist_sqr = (pos - closest_point).length_squared(); if( current_dist_sqr < shortest_dist_sqr ) { closest_surf = current_surf; shortest_dist_sqr = current_dist_sqr; } } return closest_surf; }
CubitStatus CompositeSurface::combine | ( | CompositeSurface * | dead_surface | ) |
Definition at line 299 of file CompositeSurface.cpp.
{ int old_size = compGeom->num_entities(); // Merge the "surfaces_to_ignore" list. surfacesToIgnore.merge_unique(dead_surf->surfacesToIgnore); compGeom->merge( *(dead_surf->compGeom) ); if( dead_surf->hiddenSet != 0 ) hidden_entities().merge( dead_surf->hiddenSet ); for( int i = old_size; i < compGeom->num_entities(); i++ ) { TopologyBridge* bridge = compGeom->entity(i); assert( bridge->owner() == dead_surf ); bridge->owner( this ); } delete facetTool; facetTool = 0; return CUBIT_SUCCESS; }
CubitBoolean CompositeSurface::contains_bridge | ( | TopologyBridge * | bridge | ) | const [virtual] |
Reimplemented from TBOwner.
Definition at line 532 of file CompositeSurface.cpp.
{ return (CubitBoolean)(compGeom->index_of(bridge) >= 0); }
CubitStatus CompositeSurface::evaluate | ( | double | u, |
double | v, | ||
CubitVector * | position, | ||
CubitVector * | normal, | ||
CubitVector * | curvature1, | ||
CubitVector * | curvature2 | ||
) | [virtual] |
Implements Surface.
Definition at line 770 of file CompositeSurface.cpp.
{ if( position || normal || (curvature1 && curvature2) ) { if ( num_surfs() == 1) return get_surface(0)->evaluate(u, v, position, normal, curvature1, curvature2 ); else return CUBIT_FAILURE; } else return CUBIT_FAILURE; }
CompositeCoSurf * CompositeSurface::find_first | ( | CompositeShell * | shell | ) | const |
Definition at line 236 of file CompositeSurface.cpp.
{ CompositeCoSurf* cos = firstCoSurf; while( cos && cos->get_shell() != shell ) cos = cos->next_in_surface(); return cos; }
CompositeCoSurf * CompositeSurface::find_first | ( | CompositeLump * | lump | ) | const |
Definition at line 243 of file CompositeSurface.cpp.
{ CompositeCoSurf* cos = firstCoSurf; while( cos && (!cos->get_shell() || cos->get_shell()->get_lump() != lump ) ) cos = cos->next_in_surface(); return cos; }
CompositeCoSurf * CompositeSurface::find_next | ( | CompositeCoSurf * | cosurf | ) | const |
Definition at line 250 of file CompositeSurface.cpp.
{ CompositeCoSurf* cos = cosurf; while( cos && cos->get_shell() != cosurf->get_shell() ) cos = cos->next_in_surface(); return cos; }
CompositeLoop * CompositeSurface::first_loop | ( | ) | const [inline] |
Definition at line 346 of file CompositeSurface.hpp.
{ return firstLoop; }
GeometryType CompositeSurface::geometry_type | ( | ) | [virtual] |
Reimplemented from Surface.
Definition at line 1563 of file CompositeSurface.cpp.
{ return UNDEFINED_SURFACE_TYPE; }
void CompositeSurface::get_children_virt | ( | DLIList< TopologyBridge * > & | children | ) | [virtual] |
Implements TopologyBridge.
Definition at line 382 of file CompositeSurface.cpp.
{ for( CompositeLoop* loop = firstLoop; loop; loop = loop->loopNext ) list.append( loop ); }
CubitStatus CompositeSurface::get_cone_params | ( | CubitVector & | center, |
CubitVector & | normal, | ||
CubitVector & | major_axis, | ||
double & | radius_ratio, | ||
double & | sine_angle, | ||
double & | cos_angle | ||
) | const [virtual] |
Implements Surface.
Definition at line 2001 of file CompositeSurface.cpp.
{ PRINT_ERROR("Currently, Cubit is unable to determine cone parameters for CompositeSurfaces.\n"); return CUBIT_FAILURE; }
void CompositeSurface::get_curves | ( | DLIList< CompositeCurve * > & | curves | ) |
Definition at line 1544 of file CompositeSurface.cpp.
{ for( CompositeLoop* loop = firstLoop; loop; loop = loop->loopNext ) { CompositeCoEdge* coedge = loop->first_coedge(); while( coedge ) { result.append_unique( coedge->get_curve() ); coedge = loop->next_coedge( coedge ); } } }
GeometryQueryEngine * CompositeSurface::get_geometry_query_engine | ( | ) | const [virtual] |
Implements TopologyBridge.
Definition at line 550 of file CompositeSurface.cpp.
{ return VirtualQueryEngine::instance(); }
CubitSense CompositeSurface::get_geometry_sense | ( | ) | [virtual] |
CubitStatus CompositeSurface::get_graphics | ( | GMem & | gmem | ) |
Definition at line 1948 of file CompositeSurface.cpp.
{ if (!facetTool) update_facet_tool(); if (!facetTool) return CUBIT_FAILURE; facetTool->graphics( GEOMETRY_RESABS, gmem); return CUBIT_SUCCESS; }
void CompositeSurface::get_hidden_curves | ( | DLIList< Curve * > & | curves | ) |
Definition at line 1566 of file CompositeSurface.cpp.
{ if( hiddenSet ) hiddenSet->hidden_curves( curves ); }
void CompositeSurface::get_ignored_surfs | ( | DLIList< Surface * > & | surfs | ) |
Definition at line 322 of file CompositeSurface.cpp.
{ int i; if(surfacesToIgnore.size() > 0) { for(i=0; i<num_surfs(); i++) { Surface *srf = get_surface(i); if(surfacesToIgnore.is_in_list(srf)) surfs.append(srf); } } }
CubitStatus CompositeSurface::get_nurb_params | ( | bool & | rational, |
int & | degree_u, | ||
int & | degree_v, | ||
int & | num_cntrl_pts_u, | ||
int & | num_cntrl_pts_v, | ||
DLIList< CubitVector > & | cntrl_pts, | ||
DLIList< double > & | weights, | ||
DLIList< double > & | u_knots, | ||
DLIList< double > & | v_knots | ||
) | const [virtual] |
Implements Surface.
Definition at line 2027 of file CompositeSurface.cpp.
{ PRINT_ERROR("Currently, Cubit is unable to determine nurbs parameters for CompositeSurface.\n"); return CUBIT_FAILURE; }
CubitBoolean CompositeSurface::get_param_range_U | ( | double & | lower, |
double & | upper | ||
) | [virtual] |
Implements Surface.
Definition at line 1430 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->get_param_range_U(lower, upper); lower = upper = 0; return CUBIT_FALSE; }
CubitBoolean CompositeSurface::get_param_range_V | ( | double & | lower, |
double & | upper | ||
) | [virtual] |
Implements Surface.
Definition at line 1439 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->get_param_range_V(lower, upper); lower = upper = 0; return CUBIT_FALSE; }
void CompositeSurface::get_parents_virt | ( | DLIList< TopologyBridge * > & | parents | ) | [virtual] |
Implements TopologyBridge.
Definition at line 360 of file CompositeSurface.cpp.
{ DLIList<TopologyBridge*> parents, parents2; for( int i = 0; i < num_surfs(); i++ ) { parents.clean_out(); get_surface(i)->get_parents( parents ); parents.reset(); for ( int j = parents.size(); j--; ) { TopologyBridge* shell = parents.get_and_step(); shell->get_parents( parents2 ); assert (parents2.size() == 1); if (0 == dynamic_cast<CompositeLump*>(parents2.pop()->owner())) list.append_unique( shell ); } } CompositeCoSurf* cosurf = 0; while ((cosurf = next_co_surface( cosurf ))) list.append_unique( cosurf->get_shell() ); }
CubitStatus CompositeSurface::get_point_normal | ( | CubitVector & | origin, |
CubitVector & | normal | ||
) | [virtual] |
Implements Surface.
Definition at line 589 of file CompositeSurface.cpp.
{ int count = num_surfs(); CubitVector* vect_list = new CubitVector[count]; double RESABS_SQUARED = CUBIT_RESABS * CUBIT_RESABS; normal.set(0.0,0.0,0.0); if (count == 1) { return get_surface(0)->get_point_normal(origin,normal); } for( int i = 0; i < count; i++ ) { Surface* surf = get_surface(i); if( surf->get_point_normal(origin,vect_list[i]) == CUBIT_FAILURE ) { delete [] vect_list; return CUBIT_FAILURE; } if( compGeom->sense(i) == CUBIT_REVERSED ) vect_list[i] *= -1.0; normal += vect_list[i]; } //If we reach this point, then all of the underlying surfaces are planar. //Next check if they are coplanar. if( normal.length_squared() < RESABS_SQUARED ) { delete [] vect_list; return CUBIT_FAILURE; } normal.normalize(); for( int j = 0; j < count; j++ ) { if( fabs( 1.0 - (normal % ~vect_list[j]) ) > CUBIT_RESABS ) { delete [] vect_list; return CUBIT_FAILURE; } } delete [] vect_list; CubitVector zero( 0.0, 0.0, 0.0 ); closest_point( zero, &origin ); return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::get_projected_distance_on_surface | ( | CubitVector * | pos1, |
CubitVector * | pos2, | ||
double & | distance | ||
) | [virtual] |
Implements Surface.
Definition at line 1980 of file CompositeSurface.cpp.
{ if ( num_surfs() == 1) return get_surface(0)->get_projected_distance_on_surface( pos1, pos2, distance ); else return CUBIT_FAILURE; return CUBIT_FAILURE; }
CubitSense CompositeSurface::get_sense | ( | int | index | ) | const [inline] |
Definition at line 335 of file CompositeSurface.hpp.
CubitSense CompositeSurface::get_shell_sense | ( | ShellSM * | shell_ptr | ) | const [virtual] |
Implements Surface.
Definition at line 1650 of file CompositeSurface.cpp.
{ CompositeShell* shell = dynamic_cast<CompositeShell*>(shellsm_ptr); if( shell ) return shell->find_sense(this); DLIList<TopologyBridge*> parents; for( int i = 0; i < num_surfs(); i++ ) { parents.clean_out(); get_surface(i)->get_parents( parents ); if( parents.is_in_list( shellsm_ptr ) ) { CubitSense result = get_surface(i)->get_shell_sense(shellsm_ptr); if( get_sense(i) == CUBIT_REVERSED ) { if( result == CUBIT_FORWARD ) result = CUBIT_REVERSED; else if( result == CUBIT_REVERSED ) result = CUBIT_FORWARD; } return result; } } return CUBIT_UNKNOWN; }
CubitStatus CompositeSurface::get_simple_attribute | ( | DLIList< CubitSimpleAttrib > & | attrib_list | ) | [virtual] |
Implements TopologyBridge.
Definition at line 447 of file CompositeSurface.cpp.
{ if(!compGeom) return CUBIT_FAILURE; compGeom->get_attributes( attrib_list ); return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::get_simple_attribute | ( | const CubitString & | name, |
DLIList< CubitSimpleAttrib > & | attrib_list | ||
) | [virtual] |
Implements TopologyBridge.
Definition at line 455 of file CompositeSurface.cpp.
{ if(!compGeom) return CUBIT_FAILURE; compGeom->get_attributes( name.c_str(), attrib_list ); return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::get_sphere_params | ( | CubitVector & | center, |
double & | radius | ||
) | const [virtual] |
Implements Surface.
Definition at line 1991 of file CompositeSurface.cpp.
{ PRINT_ERROR("Currently, Cubit is unable to determine sphere parameters for CompositeSurfaces.\n"); return CUBIT_FAILURE; }
CompositeSurface* CompositeSurface::get_stitch_partner | ( | ) | const [inline] |
Definition at line 88 of file CompositeSurface.hpp.
{ return stitchPartner; }
Surface * CompositeSurface::get_surface | ( | int | index | ) | const [inline] |
Definition at line 332 of file CompositeSurface.hpp.
CubitStatus CompositeSurface::get_torus_params | ( | CubitVector & | center, |
CubitVector & | normal, | ||
double & | major_radius, | ||
double & | minor_radius | ||
) | const [virtual] |
Implements Surface.
Definition at line 2015 of file CompositeSurface.cpp.
{ PRINT_ERROR("Currently, Cubit is unable to determine torus parameters for CompositeSurface.\n"); return CUBIT_FAILURE; }
bool CompositeSurface::has_hidden_entities | ( | ) | const |
Definition at line 1558 of file CompositeSurface.cpp.
HiddenEntitySet & CompositeSurface::hidden_entities | ( | ) | [inline] |
Definition at line 355 of file CompositeSurface.hpp.
{ if( !hiddenSet ) hiddenSet = new HiddenEntitySet(this); return *hiddenSet; }
void CompositeSurface::ignore_surface | ( | int | surface_id | ) |
Definition at line 673 of file CompositeSurface.cpp.
{ update_facet_tool(); if(facetTool) { int i; int num_surfs_in_composite = num_surfs(); for (i=0; i<num_surfs_in_composite; i++) { Surface *cur_surf = get_surface(i); if(cur_surf->get_saved_id() == surface_id) { surfacesToIgnore.append_unique(cur_surf); i = num_surfs_in_composite; update_facets_to_ignore(); } } } }
void CompositeSurface::ignore_surface | ( | Surface * | surf | ) |
Definition at line 693 of file CompositeSurface.cpp.
{ update_facet_tool(); if(facetTool) { int i; int num_surfs_in_composite = num_surfs(); for (i=0; i<num_surfs_in_composite; i++) { Surface *cur_surf = get_surface(i); if(cur_surf == surf) { surfacesToIgnore.append_unique(cur_surf); i = num_surfs_in_composite; update_facets_to_ignore(); } } } }
int CompositeSurface::index_of | ( | Surface * | surface | ) | const [inline] |
Definition at line 341 of file CompositeSurface.hpp.
CubitBoolean CompositeSurface::is_closed_in_U | ( | ) | [virtual] |
Reimplemented from Surface.
Definition at line 1365 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_closed_in_U(); return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_closed_in_V | ( | ) | [virtual] |
Reimplemented from Surface.
Definition at line 1372 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_closed_in_V(); return CUBIT_FALSE; }
bool CompositeSurface::is_dead_coedge | ( | CompositeCoEdge * | coedge | ) | [protected] |
Definition at line 1838 of file CompositeSurface.cpp.
{ if (coedge->num_coedges() > 0) return false; CompositeCurve* curve = coedge->get_curve(); if (!curve) return true; if (curve->num_curves() == 0) // point-curve { CompositePoint* comp = curve->start_point(); assert(comp == curve->end_point()); return !(comp->get_point()); } return false; }
CubitBoolean CompositeSurface::is_parametric | ( | ) | [virtual] |
Implements Surface.
Definition at line 1412 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_parametric(); return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_periodic | ( | ) | [virtual] |
Implements Surface.
Definition at line 1296 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_periodic(); return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_periodic_in_U | ( | double & | period | ) | [virtual] |
Implements Surface.
Definition at line 1313 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_periodic_in_U(period); period = 0.0; return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_periodic_in_V | ( | double & | period | ) | [virtual] |
Implements Surface.
Definition at line 1321 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_periodic_in_V(period); period = 0.0; return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_position_on | ( | CubitVector & | position | ) | [virtual] |
Implements Surface.
Definition at line 1459 of file CompositeSurface.cpp.
{ for( int i = 0; i < compGeom->num_entities(); i++ ) { Surface* surf = get_surface(i); if( surf->is_position_on( position ) ) return CUBIT_TRUE; } return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_singular_in_U | ( | double | u_value | ) | [virtual] |
Implements Surface.
Definition at line 1340 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_singular_in_U(param); return CUBIT_FALSE; }
CubitBoolean CompositeSurface::is_singular_in_V | ( | double | v_value | ) | [virtual] |
Implements Surface.
Definition at line 1347 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->is_singular_in_V(param); return CUBIT_FALSE; }
int CompositeSurface::layer | ( | ) | const [inline, virtual] |
Reimplemented from TopologyBridge.
Definition at line 125 of file CompositeSurface.hpp.
{ return COMPOSITE_LAYER; }
double CompositeSurface::measure | ( | ) | [virtual] |
Implements GeometryEntity.
Definition at line 565 of file CompositeSurface.cpp.
CompositeCoSurf * CompositeSurface::next_co_surface | ( | CompositeCoSurf * | prev = 0 | ) | const [inline] |
Definition at line 352 of file CompositeSurface.hpp.
{ return prev ? prev->surfaceNext : firstCoSurf; }
CompositeLoop * CompositeSurface::next_loop | ( | CompositeLoop * | after_this = 0 | ) | const [inline] |
Definition at line 349 of file CompositeSurface.hpp.
void CompositeSurface::notify_reversed | ( | TopologyBridge * | bridge | ) | [virtual] |
Implements TBOwner.
Definition at line 1677 of file CompositeSurface.cpp.
{ int index = compGeom->index_of(bridge); if( index >= 0 ) compGeom->reverse_sense(index); }
void CompositeSurface::notify_split | ( | TopologyBridge * | new_bridge, |
TopologyBridge * | old_bridge | ||
) | [virtual] |
Reimplemented from TBOwner.
Definition at line 1814 of file CompositeSurface.cpp.
{ assert(!new_bridge->owner()); Surface* old_surf = dynamic_cast<Surface*>(old_bridge); Surface* new_surf = dynamic_cast<Surface*>(new_bridge); assert( old_surf && new_surf ); int old_surf_index = index_of(old_surf); assert(old_surf_index >= 0); compGeom->append(new_surf, compGeom->sense(old_surf_index)); new_surf->owner(this); DLIList<CompositeCurve*> new_curves; update_modified(); update_modified( old_surf, new_curves ); update_modified( new_surf, new_curves ); // for( int i = new_curves.size(); i--; ) // if( !CompositeEngine::instance().restore_curve(new_curves.get_and_step()) ) // assert(0); }
void CompositeSurface::notify_topology_modified | ( | TopologyBridge * | bridge | ) | [virtual] |
Reimplemented from TBOwner.
Definition at line 1714 of file CompositeSurface.cpp.
{ DLIList<CompositeCurve*> new_curves; Surface* surf = dynamic_cast<Surface*>(bridge); assert( surf && index_of(surf) >= 0 ); update_modified(); update_modified( surf, new_curves ); // for( int i = new_curves.size(); i--; ) // if( !CompositeEngine::instance().restore_curve(new_curves.get_and_step()) ) // assert(0); }
void CompositeSurface::notify_transformed | ( | ) |
Definition at line 1969 of file CompositeSurface.cpp.
int CompositeSurface::num_surfs | ( | ) | const [inline] |
Definition at line 338 of file CompositeSurface.hpp.
{ return compGeom->num_entities(); }
CompositeSurface& CompositeSurface::operator= | ( | const CompositeSurface & | ) | [private] |
CubitPointContainment CompositeSurface::point_containment | ( | const CubitVector & | point | ) | [virtual] |
Implements Surface.
Definition at line 1480 of file CompositeSurface.cpp.
{ bool boundary = false; for( int i = 0; i < num_surfs(); i++ ) { CubitPointContainment cpc = get_surface(i)->point_containment( point ); switch( cpc ) { case CUBIT_PNT_OUTSIDE: //case CUBIT_PNT_OFF: break; case CUBIT_PNT_INSIDE: //case CUBIT_PNT_ON: return cpc; case CUBIT_PNT_BOUNDARY: boundary = true; break; case CUBIT_PNT_UNKNOWN: default: return CUBIT_PNT_UNKNOWN; } } if( boundary ) return CUBIT_PNT_BOUNDARY; else return CUBIT_PNT_OUTSIDE; }
CubitPointContainment CompositeSurface::point_containment | ( | double | u, |
double | v | ||
) | [virtual] |
Implements Surface.
Definition at line 1516 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->point_containment(u,v); // Set this up when uv parameters are defined for composite surfaces. return CUBIT_PNT_UNKNOWN; }
CubitVector CompositeSurface::position_from_u_v | ( | double | u, |
double | v | ||
) | [virtual] |
Implements Surface.
Definition at line 1251 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->position_from_u_v(u,v); PRINT_ERROR("CompositeSurface::position_from_u_v for non-paramtric surface.\n"); CubitVector nulvect( 0., 0., 0.); return nulvect; }
CubitStatus CompositeSurface::principal_curvatures | ( | CubitVector const & | location, |
double & | curvature_1, | ||
double & | curvature_2, | ||
CubitVector * | closest_location | ||
) | [virtual] |
Implements Surface.
Definition at line 1220 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)-> principal_curvatures(location, curvature_1, curvature_2, closest_location); CubitVector curvature1, curvature2; CubitStatus s = closest_point( location, closest_location, NULL, &curvature1, &curvature2 ); if( s == CUBIT_FAILURE ) return CUBIT_FAILURE; curvature_1 = curvature1.length(); curvature_2 = curvature2.length(); return CUBIT_SUCCESS; }
void CompositeSurface::print_cpt_stats | ( | ) | [static] |
Definition at line 1074 of file CompositeSurface.cpp.
{ /* PRINT_INFO("Total Calls %10d\n", total_calls); PRINT_INFO("ClosestTrimmed %10.0f %10.5f\n", trimmed_time, trimmed_time / total_calls ); PRINT_INFO("Closest %10.0f %10.5f\n", closest_time, closest_time / total_calls ); PRINT_INFO("Containment %10.0f %10.5f\n", contain_time, contain_time / total_calls ); double average_outside = (double)contain_trim_count / total_calls; PRINT_INFO("Outside Count %10d %10.5f\n", contain_trim_count, average_outside ); double containment = contain_time + average_outside * trimmed_time + (1.0-average_outside) * closest_time; PRINT_INFO("Contain Est. %10.0f %10.5f\n", containment, containment / total_calls ); PRINT_INFO("Error Count %10d %10.5f\n", error_count, (double)error_count / total_calls ); */ }
void CompositeSurface::print_debug_info | ( | const char * | line_prefix = 0 , |
bool | brief = false |
||
) |
Definition at line 1572 of file CompositeSurface.cpp.
{ if( line_prefix == 0 ) line_prefix = ""; CompositeLoop* loop = 0; if( brief ) { int count = 0; while ( (loop = next_loop(loop) ) != NULL ) count++; #ifdef TOPOLOGY_BRIDGE_IDS PRINT_INFO("%sCompositeSurface %d : %d loops ", line_prefix, get_id(), count ); if ( num_surfs() == 1 ) PRINT_INFO("%s %d\n", fix_type_name(typeid(*get_surface(0)).name()), get_surface(0)->get_id()); else PRINT_INFO("%d surfaces.\n", num_surfs()); #else PRINT_INFO("%sCompositeSurface %p : %d loops ", line_prefix, (void*)this, count ); if ( num_surfs() == 1 ) PRINT_INFO("%s %d\n", fix_type_name(typeid(*get_surface(0)).name()), get_surface(0)->get_saved_id()); // PRINT_INFO("%s %p\n", fix_type_name(typeid(*get_surface(0)).name()), get_surface(0)); else PRINT_INFO("%d surfaces.\n", num_surfs()); #endif return; } char* new_prefix = new char[strlen(line_prefix)+3]; strcpy( new_prefix, line_prefix ); strcat( new_prefix, " " ); #ifdef TOPOLOGY_BRIDGE_IDS PRINT_INFO("%sCompositeSurface %d\n", line_prefix, get_id() ); #else PRINT_INFO("%sCompositeSurface %d\n", line_prefix, this->get_saved_id() ); // PRINT_INFO("%sCompositeSurface %p\n", line_prefix, this ); #endif compGeom->print_debug_info( new_prefix ); // Print out info about any surfaces we are ingoring // during evaluation. if(surfacesToIgnore.size() > 0) { PRINT_INFO("%sSurfaces which are ignored:\n", new_prefix); for(int k=surfacesToIgnore.size(); k--;) { PRINT_INFO("%sSurface: %d\n", new_prefix, surfacesToIgnore.get_and_step()->get_saved_id()); } } if( hiddenSet ) hiddenSet->print_debug_info( new_prefix ); else PRINT_INFO("%s No Hidden Entities.\n", line_prefix ); while( (loop = next_loop(loop) ) != NULL ) loop->print_debug_info( new_prefix ); delete [] new_prefix; update_facet_tool(); if ( facetTool ) { facetTool->debug_draw_facets(); // bool* reversed = new bool[num_surfs()]; // for (int i = 0; i < num_surfs(); i++ ) // reversed[i] = get_sense(i) == CUBIT_REVERSED; // facetTool->consolidate_points(reversed, GEOMETRY_RESABS); // delete [] reversed; } }
void CompositeSurface::read_attributes | ( | ) | [inline] |
Definition at line 285 of file CompositeSurface.hpp.
{ compGeom->read_attributes(); }
CubitStatus CompositeSurface::remove | ( | CompositeLoop * | loop | ) |
Definition at line 147 of file CompositeSurface.cpp.
{ if( loop->mySurface != this ) return CUBIT_FAILURE; if( firstLoop == loop ) { firstLoop = loop->loopNext; } else { CompositeLoop *prev = firstLoop, *next = firstLoop->loopNext; while( next != loop ) { assert( next != NULL ); prev = next; next = next->loopNext; } prev->loopNext = next->loopNext; } loop->loopNext = 0; loop->mySurface = 0; return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::remove | ( | CompositeCoSurf * | cosurf | ) |
Definition at line 205 of file CompositeSurface.cpp.
{ if( cosurf->mySurface != this ) return CUBIT_FAILURE; if( cosurf == firstCoSurf ) firstCoSurf = cosurf->surfaceNext; else { CompositeCoSurf* prev = firstCoSurf; while( prev && prev->surfaceNext != cosurf ) prev = prev->surfaceNext; assert( prev != NULL ); prev->surfaceNext = cosurf->surfaceNext; } cosurf->mySurface = 0; cosurf->surfaceNext = 0; return CUBIT_SUCCESS; }
void CompositeSurface::remove_all_simple_attribute_virt | ( | ) | [virtual] |
Implements TopologyBridge.
Definition at line 431 of file CompositeSurface.cpp.
{ if(compGeom) compGeom->rem_all_attributes( ); }
CubitStatus CompositeSurface::remove_bridge | ( | TopologyBridge * | bridge | ) | [virtual] |
Implements TBOwner.
Definition at line 474 of file CompositeSurface.cpp.
{ if(!compGeom) return CUBIT_FAILURE; int i = compGeom->index_of(bridge); if( i < 0 ) return CUBIT_FAILURE; delete facetTool; facetTool = 0; assert( bridge->owner() == this ); bridge->owner(0); if (!compGeom->remove(i, true)) return CUBIT_FAILURE; if (compGeom->num_entities() == 0) CompositeEngine::instance().notify_deactivated(this); HadBridgeRemoved = 1; return CUBIT_SUCCESS; }
void CompositeSurface::remove_dead_coedge | ( | CompositeCoEdge * | coedge | ) | [protected] |
Definition at line 1905 of file CompositeSurface.cpp.
{ assert(is_dead_coedge(coedge)); CompositeCurve* curve = coedge->get_curve(); assert(curve->num_curves() == 0); curve->remove(coedge); delete coedge; if (curve->next_coedge(NULL)) return; CompositePoint* start = curve->start_point(); CompositePoint* end = curve->end_point(); curve->start_point(0); curve->end_point(0); delete curve; if ( start->next_curve(NULL) == NULL ) { if ( start->get_point() ) CompositeEngine::instance().restore_point_in_curve(start); else delete start; } if ( end != start && end->next_curve(NULL) == NULL ) { if ( end->get_point() ) CompositeEngine::instance().restore_point_in_curve(end); else delete end; } }
void CompositeSurface::remove_simple_attribute_virt | ( | const CubitSimpleAttrib & | simple_attrib_ptr | ) | [virtual] |
Implements TopologyBridge.
Definition at line 414 of file CompositeSurface.cpp.
{ if(compGeom) compGeom->rem_attribute( simple_attrib_ptr ); }
Surface * CompositeSurface::remove_surface | ( | int | index | ) |
Definition at line 497 of file CompositeSurface.cpp.
{ Surface* result = get_surface(index); if ( !result || !compGeom->remove(index,false) ) return 0; result->owner(0); return result; }
void CompositeSurface::reset_cpt_stats | ( | ) | [static] |
Definition at line 1090 of file CompositeSurface.cpp.
{ /* trimmed_time = contain_time = closest_time = 0.0; total_calls = contain_trim_count = error_count = 0; */ }
void CompositeSurface::reverse_sense | ( | ) | [virtual] |
Definition at line 1538 of file CompositeSurface.cpp.
CompositeSurface * CompositeSurface::split | ( | VGArray< int > & | indices_to_move | ) |
Definition at line 268 of file CompositeSurface.cpp.
{ int i; for( i = 0; i < indices_to_move.size(); i++ ) if( indices_to_move[i] < 0 || indices_to_move[i] >= num_surfs() ) return 0; CompositeGeom* new_geom = compGeom->split( indices_to_move ); if( !new_geom ) return 0; for( i = 0; i < new_geom->num_entities(); i++ ) new_geom->entity(i)->owner( 0 ); delete facetTool; facetTool = 0; return new CompositeSurface( new_geom ); }
CubitStatus CompositeSurface::stitch | ( | CompositeSurface * | stitch_partner | ) |
Definition at line 1684 of file CompositeSurface.cpp.
{ if( this == partner || this->stitchPartner || partner->stitchPartner ) { assert(0); return CUBIT_FAILURE; } this->stitchPartner = partner; partner->stitchPartner = this; return CUBIT_SUCCESS; }
CubitStatus CompositeSurface::swap_bridge | ( | TopologyBridge * | old_tb, |
TopologyBridge * | new_tb, | ||
bool | reversed | ||
) | [virtual] |
Implements TBOwner.
Definition at line 509 of file CompositeSurface.cpp.
{ if( n->owner() ) return CUBIT_FAILURE; int i = compGeom->index_of(o); GeometryEntity* ge = dynamic_cast<GeometryEntity*>(n); if( i >= 0 && ge != 0 ) { o->owner(0); n->owner(this); if ( !compGeom->swap( i, ge ) ) return CUBIT_FAILURE; if (reversed) compGeom->reverse_sense(i); return CUBIT_SUCCESS; } else return CUBIT_FAILURE; }
CubitStatus CompositeSurface::u_v_from_position | ( | CubitVector const & | position, |
double & | u, | ||
double & | v, | ||
CubitVector * | closest_point | ||
) | [virtual] |
Implements Surface.
Definition at line 1272 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->u_v_from_position(pos, u, v, closest); PRINT_ERROR("CompositeSurface::u_v_from_position for non-paramtric surface.\n"); u = v = 0.0; return CUBIT_FAILURE; }
void CompositeSurface::unignore_surface | ( | int | surface_id | ) |
Definition at line 715 of file CompositeSurface.cpp.
{ update_facet_tool(); if(facetTool) { int i; int num_surfs_in_composite = num_surfs(); for (i=0; i<num_surfs_in_composite; i++) { Surface *cur_surf = get_surface(i); if(cur_surf->get_saved_id() == surface_id) { surfacesToIgnore.remove(cur_surf); update_facets_to_ignore(); i = num_surfs_in_composite; } } } }
Definition at line 1697 of file CompositeSurface.cpp.
{ CompositeSurface* result = this->stitchPartner; if( result ) this->stitchPartner = result->stitchPartner = 0; return result; }
void CompositeSurface::update | ( | ) | [inline] |
Definition at line 344 of file CompositeSurface.hpp.
{ compGeom->update_cached_data(); }
void CompositeSurface::update_facet_tool | ( | ) | [protected] |
Definition at line 735 of file CompositeSurface.cpp.
{ if( ! facetTool ) { std::vector<Surface*> surf_vect(num_surfs()); for ( int i = 0; i < num_surfs(); i++ ) surf_vect[i] = get_surface(i); facetTool = new CompSurfFacets(); if ( ! facetTool->setup( surf_vect ) ) { delete facetTool; facetTool = 0; } else { // Make sure to update the facetTool to reflect // any surfaces we think we need to ignore. update_facets_to_ignore(); } } }
void CompositeSurface::update_facets_to_ignore | ( | ) | [protected] |
Definition at line 644 of file CompositeSurface.cpp.
{ if(facetTool) { int i; DLIList<int> surfaces_to_ignore; int num_surfs_in_composite = num_surfs(); for (i=0; i<num_surfs_in_composite; i++) { Surface *cur_surf = get_surface(i); surfacesToIgnore.reset(); for(int j=surfacesToIgnore.size(); j--;) { if(cur_surf == surfacesToIgnore.get_and_step()) { surfaces_to_ignore.append( i ); j=0; } } } //do it all at once facetTool->set_ignore_flag( surfaces_to_ignore, 1 ); } }
void CompositeSurface::update_modified | ( | Surface * | modified_surface, |
DLIList< CompositeCurve * > & | new_curves | ||
) | [protected] |
Definition at line 1727 of file CompositeSurface.cpp.
{ int i; //int i = index_of(surf); //assert(i >= 0); //CubitSense rel_sense = get_sense(i); // find any new coedges in the surface DLIList<TopologyBridge*> bridge_list; DLIList<LoopSM*> loops; DLIList<CoEdgeSM*> coedges; surf->get_children_virt( bridge_list ); CAST_LIST( bridge_list, loops, LoopSM ); assert( bridge_list.size() == loops.size() ); bridge_list.clean_out(); for( i = loops.size(); i--; ) { loops.get_and_step()->get_children_virt( bridge_list ); while( bridge_list.size() ) { CoEdgeSM* coedge = dynamic_cast<CoEdgeSM*>(bridge_list.pop()); assert(0 != coedge); coedges.append(coedge); } } for( i = coedges.size(); i--; ) { CoEdgeSM* coedge = coedges.get_and_step(); bridge_list.clean_out(); coedge->get_children_virt( bridge_list ); assert( bridge_list.size() == 1 ); Curve* curve = dynamic_cast<Curve*>(bridge_list.get()); assert( 0 != curve ); CompositeCoEdge* ccoedge = dynamic_cast<CompositeCoEdge*>(coedge->owner()); if (ccoedge) { // If replace-curve was already done for the curve // when processing the other surface, the composite // coedge will have been created already. Add it to // the hidden set. if( !ccoedge->owner() && ccoedge->get_curve()->owner() == &hidden_entities()) hidden_entities().hide( ccoedge ); // If the coedge is a composite, the curve must be one // already as well. Done with this coedge. continue; } // Replace curve with composite, and hide composite curve // and any new child points. CompositeCurve* ccurve = CompositeEngine::instance().replace_curve(curve); assert(0 != ccurve); new_curves.append(ccurve); hidden_entities().hide( ccurve ); CompositePoint* start = ccurve->start_point(); if( ! start->owner() ) hidden_entities().hide(start); CompositePoint* end = ccurve->start_point(); if( ! end->owner() ) hidden_entities().hide(end); // CompositeCoEdge was created by replace_curve(..) // Add it to the HiddenEntitySet ccoedge = dynamic_cast<CompositeCoEdge*>(coedge->owner()); assert(ccoedge && !ccoedge->owner()); hidden_entities().hide( ccoedge ); } }
void CompositeSurface::update_modified | ( | ) | [protected] |
Definition at line 1857 of file CompositeSurface.cpp.
{ // search for dead CoEdge-Curve pairs DLIList<CoEdgeSM*> coedge_list; if ( hiddenSet ) hiddenSet->hidden_coedges( coedge_list ); while (coedge_list.size()) { CompositeCoEdge* coedge = dynamic_cast<CompositeCoEdge*>(coedge_list.pop()); if ( is_dead_coedge(coedge) ) remove_dead_coedge(coedge); } CompositeLoop* loop = next_loop(); while (loop) { CompositeLoop* next = next_loop(loop); CompositeCoEdge* coedge = loop->first_coedge(); while (coedge && is_dead_coedge(coedge)) { remove_dead_coedge(coedge); coedge = loop->first_coedge(); } if (coedge) { coedge = coedge->next(); while ( coedge != loop->first_coedge() ) { CompositeCoEdge* next_coe = coedge->next(); if (is_dead_coedge(coedge)) remove_dead_coedge(coedge); coedge = next_coe; } } if (loop->first_coedge() == NULL) { remove(loop); delete loop; } loop = next; } }
CubitStatus CompositeSurface::uv_derivitives | ( | double | u, |
double | v, | ||
CubitVector & | du, | ||
CubitVector & | dv | ||
) | [virtual] |
Implements Surface.
Definition at line 1390 of file CompositeSurface.cpp.
{ if (num_surfs() == 1) return get_surface(0)->uv_derivitives(u, v, du, dv); PRINT_ERROR("CompositeSurface::uv_derivitives for non-paramtric surface.\n"); return CUBIT_FAILURE; }
void CompositeSurface::write_attributes | ( | ) | [inline] |
Definition at line 286 of file CompositeSurface.hpp.
{ compGeom->write_attributes(); }
friend class CompositeEngine [friend] |
Definition at line 37 of file CompositeSurface.hpp.
CompositeGeom* CompositeSurface::compGeom [private] |
Definition at line 319 of file CompositeSurface.hpp.
CompSurfFacets* CompositeSurface::facetTool [private] |
Definition at line 328 of file CompositeSurface.hpp.
CompositeCoSurf* CompositeSurface::firstCoSurf [private] |
Definition at line 322 of file CompositeSurface.hpp.
CompositeLoop* CompositeSurface::firstLoop [private] |
Definition at line 324 of file CompositeSurface.hpp.
int CompositeSurface::HadBridgeRemoved [private] |
Definition at line 310 of file CompositeSurface.hpp.
HiddenEntitySet* CompositeSurface::hiddenSet [private] |
Definition at line 326 of file CompositeSurface.hpp.
CompositeSurface* CompositeSurface::stitchPartner [private] |
Definition at line 320 of file CompositeSurface.hpp.
DLIList<Surface*> CompositeSurface::surfacesToIgnore [private] |
Definition at line 312 of file CompositeSurface.hpp.