cgma
|
#include <Body.hpp>
Public Member Functions | |
virtual | ~Body () |
DagType | dag_type () const |
Gets the dag type. | |
void | get_parent_ref_entities (DLIList< RefEntity * > &entity_list) |
const std::type_info & | entity_type_info () const |
Gets the type info. | |
virtual const char * | class_name () const |
Gets the class name: "Body". | |
BodySM * | get_body_sm_ptr () const |
Gets the underlying BodySM pointer. | |
virtual CubitBox | bounding_box () |
Returns the bounding box of this body. | |
virtual CubitVector | center_point () |
Return a CubitVector set to the centroid of this body. | |
CubitBoolean | get_mass_props (CubitVector &cofg) |
Get certain mass props, cofg is center of gravity. | |
CubitPointContainment | point_containment (CubitVector &point) |
virtual double | measure () |
Returns the volume of this body. | |
CubitBoolean | is_sheet_body () |
Query to see if this is a sheet body. | |
virtual int | validate () |
Do a measure and api entity check. | |
virtual CubitString | measure_label () |
Functions related to "measuring" the Body. | |
virtual void | color (int value) |
Sets the color. | |
virtual int | color () const |
Gets the color. | |
Static Public Member Functions | |
static const char * | get_class_name () |
Gets the class name: "Body". | |
Protected Member Functions | |
Body () | |
Body (BodySM *OSMEPtr) | |
Private Member Functions | |
Body (const Body &) | |
void | operator= (const Body &) |
Friends | |
class | RefEntityFactory |
Body::~Body | ( | ) | [virtual] |
Body::Body | ( | ) | [protected] |
Body::Body | ( | BodySM * | OSMEPtr | ) | [protected] |
Definition at line 60 of file Body.cpp.
{ // Set the new Body's OSME pointer if (OSMEPtr != NULL) { set_topology_bridge(OSMEPtr) ; } else { PRINT_ERROR("In the Body(OSME*) constructor\n"); PRINT_ERROR(" Input OSME pointer is NULL\n"); assert(OSMEPtr != NULL); } // Set the Entity ID for this new Body entityId = RefEntityFactory::instance()->next_body_id(); // read and initialize attributes auto_read_cubit_attrib(); auto_actuate_cubit_attrib(); // Assign a default entity name assign_default_name(); }
Body::Body | ( | const Body & | ) | [private] |
CubitBox Body::bounding_box | ( | ) | [virtual] |
Returns the bounding box of this body.
Implements CubitEntity.
Definition at line 160 of file Body.cpp.
{ // Get the list of RefVolumes. Perform the union of the bounding // boxes of all the RefVolumes to obtain the bounding box of // the Body. DLIList<RefVolume*> ref_volume_list ; /*CubitStatus status = */ ref_volumes(ref_volume_list); if ( ref_volume_list.size() == 0 ) { CubitVector vec(0.0, 0.0, 0.0); return CubitBox( vec, vec ); } RefVolume* ref_volume_ptr = NULL ; ref_volume_list.reset() ; CubitBox result_box = ref_volume_list.get_and_step()->bounding_box(); for(int i = 1 ; i < ref_volume_list.size() ; i++) { ref_volume_ptr = ref_volume_list.get_and_step() ; result_box |= ref_volume_ptr->bounding_box() ; } return result_box ; }
CubitVector Body::center_point | ( | ) | [virtual] |
Return a CubitVector set to the centroid of this body.
Reimplemented from RefEntity.
Definition at line 133 of file Body.cpp.
{ return bounding_box().center(); }
virtual const char* Body::class_name | ( | ) | const [inline, virtual] |
Gets the class name: "Body".
Reimplemented from TopologyEntity.
Definition at line 64 of file Body.hpp.
{ return get_class_name(); }
void Body::color | ( | int | value | ) | [virtual] |
Sets the color.
Reimplemented from RefEntity.
Definition at line 230 of file Body.cpp.
{ int i; DLIList<RefVolume*> refVolumeList; ref_volumes ( refVolumeList ); refVolumeList.reset(); for (i = refVolumeList.size(); i--; ) refVolumeList.get_and_step()->color(value); }
int Body::color | ( | ) | const [virtual] |
Gets the color.
Reimplemented from RefEntity.
Definition at line 241 of file Body.cpp.
{ return RefEntity::color(); }
DagType Body::dag_type | ( | ) | const [inline, virtual] |
Gets the dag type.
Implements RefEntity.
Definition at line 50 of file Body.hpp.
{ return DagType::body_type(); }
const std::type_info& Body::entity_type_info | ( | ) | const [inline, virtual] |
BodySM * Body::get_body_sm_ptr | ( | ) | const |
Gets the underlying BodySM pointer.
Definition at line 108 of file Body.cpp.
{ TopologyBridge* bridge = bridge_manager()->topology_bridge(); return dynamic_cast<BodySM*>(bridge); }
static const char* Body::get_class_name | ( | ) | [inline, static] |
Gets the class name: "Body".
Reimplemented from TopologyEntity.
Definition at line 58 of file Body.hpp.
{ return "Body"; }
CubitBoolean Body::get_mass_props | ( | CubitVector & | cofg | ) |
Get certain mass props, cofg is center of gravity.
Definition at line 143 of file Body.cpp.
{ double vol; CubitStatus result = get_body_sm_ptr()->mass_properties(cofg, vol); return result ? CUBIT_TRUE : CUBIT_FALSE; }
void Body::get_parent_ref_entities | ( | DLIList< RefEntity * > & | entity_list | ) | [inline, virtual] |
Query to see if this is a sheet body.
Definition at line 123 of file Body.cpp.
{ DLIList<RefVolume*> volumes; ref_volumes(volumes); while (volumes.size()) if (!volumes.pop()->is_sheet()) return CUBIT_FALSE; return CUBIT_TRUE; }
double Body::measure | ( | ) | [virtual] |
Returns the volume of this body.
Reimplemented from RefEntity.
Definition at line 188 of file Body.cpp.
{ DLIList<RefVolume*> volumes; ref_volumes(volumes); double volume = 0.0; for (int i = volumes.size(); i > 0; i--) { volume += volumes.get_and_step()->measure(); } return volume; }
CubitString Body::measure_label | ( | ) | [virtual] |
void Body::operator= | ( | const Body & | ) | [private] |
Determines whether a point is inside, outside, or on boundary of a volume.
Definition at line 138 of file Body.cpp.
{ return get_body_sm_ptr()->point_containment( point ); }
int Body::validate | ( | ) | [virtual] |
Do a measure and api entity check.
Reimplemented from RefEntity.
Definition at line 206 of file Body.cpp.
{ int error = 0; // Perform general RefEntity checks (measure > 0) error += RefEntity::validate(); // check the body from acis BodySM* osme_ptr = get_body_sm_ptr(); DLIList <TopologyEntity*> bad_entities; if ( osme_ptr != NULL ) { error += osme_ptr->validate( entity_name(), bad_entities); } else { PRINT_WARNING("\tWARNING: Null underlying solid modeling body for %s, (%s %d)\n", entity_name().c_str(), class_name(), id()); error++; } return error; }
friend class RefEntityFactory [friend] |