cgma
PartitionBody.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Filename      : PartitionBody.hpp
00003 //
00004 // Purpose       : BodySM implementation for partition geometry
00005 //
00006 // Special Notes : Catches transforms
00007 //
00008 // Creator       : Jason Kraftcheck
00009 //
00010 // Creation Date : 02/13/03
00011 //-------------------------------------------------------------------------
00012 
00013 #ifndef PARTITION_BODY_HPP
00014 #define PARTITION_BODY_HPP
00015 
00016 #include "BodySM.hpp"
00017 #include "PartitionEntity.hpp"
00018 
00019 class CubitFacetPoint;
00020 class SegmentedCurve;
00021 class PartitionPoint;
00022 
00023 class PartitionBody : public BodySM, public PartitionEntity
00024 {
00025   public:
00026   
00027     PartitionBody( BodySM* );
00028     
00029     ~PartitionBody();
00030     
00031 
00032     /************** Functions from BodySM **************/
00033 /*    
00034     CubitStatus move( const CubitVector& offset );
00035     
00036     CubitStatus rotate( const CubitVector& axis, double angle );
00037     
00038     CubitStatus scale( double factor );
00039     
00040     CubitStatus scale( const CubitVector& factors );
00041     
00042     CubitStatus reflect( const CubitVector& axis );
00043     
00044     CubitStatus restore();
00045     
00046     CubitStatus reverse();
00047 */    
00048     CubitStatus get_transforms( CubitTransformMatrix& );
00049     
00050     CubitStatus mass_properties( CubitVector& centroid, double& volume );
00051     
00052     CubitPointContainment point_containment( const CubitVector& pos, double tolerance = -1.0 );
00053     
00054  
00055     /************** Functions from TopologyBridge **************/
00056     
00057     void append_simple_attribute_virt( const CubitSimpleAttrib& );
00058     
00059     void remove_simple_attribute_virt( const CubitSimpleAttrib& );
00060     
00061     void remove_all_simple_attribute_virt();
00062     
00063     CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& );
00064     
00065     CubitStatus get_simple_attribute( const CubitString& name,   
00066                                       DLIList<CubitSimpleAttrib>& );
00067     
00068     virtual int layer() const;
00069     
00070     void get_parents_virt( DLIList<TopologyBridge*>& );
00071     
00072     void get_children_virt( DLIList<TopologyBridge*>& );
00073     
00074     GeometryQueryEngine* get_geometry_query_engine() const;
00075     
00076     
00077      /************** Functions from PartitionEntity **************/
00078    
00079     void reverse_sense();
00080     
00081     void notify_split( FacetEntity*, FacetEntity* );
00082     
00083     CubitStatus save( CubitSimpleAttrib& );
00084     
00085     CubitBox bounding_box() const;
00086     
00087     
00088      /************** Local Functions **************/
00089     
00090     BodySM* real_body() const;
00091     
00092     void add( SubEntitySet& );
00093     
00094     void remove( SubEntitySet& );
00095     
00096     bool has_children() const { return !!childList; } 
00097     
00098     void destroy_all_children();
00099     
00100     void transform(const CubitTransformMatrix&) {}
00101     
00102     void get_all_children( DLIList<PartitionEntity*>& list );
00103 
00104   protected:
00105     
00106   private:
00107   
00108     SubEntitySet* childList;
00109 };
00110 
00111 #endif
00112 
00113     
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines