cgma
|
00001 #ifndef PARTITION_POINT_HPP 00002 #define PARTITION_POINT_HPP 00003 00004 #include "Point.hpp" 00005 #include "PartitionEntity.hpp" 00006 00007 class CubitPointData; 00008 class PartitionCurve; 00009 00010 class PartitionPoint : public TBPoint, public PartitionEntity 00011 { 00012 00013 friend class PartitionCurve; 00014 00015 public: 00016 00017 PartitionPoint( const CubitVector& position, PartitionEntity* owner ); 00018 PartitionPoint( const CubitSimpleAttrib& attrib, PartitionEntity* owner ); 00019 PartitionPoint( TBPoint* real_point ); 00020 00021 ~PartitionPoint(); 00022 00023 virtual CubitVector coordinates() const; 00024 virtual CubitBox bounding_box() const; 00025 virtual CubitStatus move_to_geometry( CubitVector& ); 00026 00027 TBPoint* real_point() const; 00028 00029 CubitStatus move( CubitVector& delta ); 00030 00031 void append_simple_attribute_virt( const CubitSimpleAttrib& ); 00032 void remove_simple_attribute_virt( const CubitSimpleAttrib& ); 00033 void remove_all_simple_attribute_virt(); 00034 CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& ); 00035 CubitStatus get_simple_attribute( const CubitString& name, 00036 DLIList<CubitSimpleAttrib>& ); 00037 00038 void get_parents_virt( DLIList<TopologyBridge*>& parents ); 00039 void get_children_virt( DLIList<TopologyBridge*>& children ); 00040 int layer() const { return sub_entity_set().get_owner_layer(); } 00041 GeometryQueryEngine* get_geometry_query_engine() const; 00042 00043 int num_curves() const; 00044 PartitionCurve* next_curve( PartitionCurve* prev = 0 ) const; 00045 00046 PartitionCurve* common_curve( PartitionPoint* other ) const; 00047 00048 virtual void print_debug_info( const char* prefix = 0, 00049 bool print_subentity_set = true ) const; 00050 00051 virtual void reverse_sense(); 00052 00053 virtual void notify_split( FacetEntity*, FacetEntity* ); 00054 CubitPointData* facet_point() const { return facetPoint; } 00055 void facet_point( CubitPointData* set ); 00056 00057 virtual CubitStatus save( CubitSimpleAttrib& attrib ); 00058 00059 00060 virtual void transform( const CubitTransformMatrix& ); 00061 private: 00062 00063 PartitionCurve* firstCurve; 00064 int curveCount; 00065 00066 CubitVector myPosition; 00067 CubitPointData* facetPoint; 00068 }; 00069 00070 inline int PartitionPoint::num_curves() const 00071 { return curveCount; } 00072 00073 #endif