cgma
PartitionPoint.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines