cgma
OCCCoEdge.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Filename      : OCCCoEdge.hpp
00003 //
00004 // Purpose       : 
00005 //
00006 // Special Notes :
00007 //
00008 // Creator       : Steven J. Owen
00009 //
00010 // Creation Date : 07/23/00
00011 //
00012 // Owner         : Steven J. Owen
00013 //-------------------------------------------------------------------------
00014 
00015 #ifndef OCCCOEDGE_HPP
00016 #define OCCCOEDGE_HPP
00017 
00018 // ********** BEGIN STANDARD INCLUDES      **********
00019 // ********** END STANDARD INCLUDES        **********
00020 
00021 // ********** BEGIN CUBIT INCLUDES         **********
00022 #include "CubitDefines.h"
00023 #include "CubitEntity.hpp"
00024 #include "CoEdgeSM.hpp"
00025 #include <TopoDS_Edge.hxx>
00026 // ********** END CUBIT INCLUDES           **********
00027 
00028 // ********** BEGIN FORWARD DECLARATIONS   **********
00029 class TopologyEntity;
00030 class LoopSM;
00031 
00032 class OCCBody;
00033 class OCCLump;
00034 class OCCShell;
00035 class OCCSurface;
00036 class OCCLoop;
00037 class OCCCurve;
00038 class OCCPoint;
00039 
00040 // ********** END FORWARD DECLARATIONS     **********
00041 
00042 class OCCCoEdge : public CoEdgeSM
00043 {
00044 public:
00045   
00046   OCCCoEdge(Curve *curv_ptr, LoopSM *loop_ptr, CubitSense sense);
00047     //- A constructor
00048   
00049   virtual ~OCCCoEdge() ;
00050     //- The destructor
00051     
00052   inline CubitSense sense(){return edgeSense;}
00053     //- returns the sense of the underlying coedge wrt the underlying edge
00054 
00055   inline void set_sense(CubitSense sense) {edgeSense = sense;}
00056 
00057   inline Curve *curve()
00058     {return myCurve;}
00059     //- get the curve associated with this coedge
00060     
00061   inline void set_curve(Curve* curve) {myCurve = curve;}
00062 
00063   inline LoopSM* loop() const { if(myLoop)return myLoop;
00064                                 else return NULL; }
00065 
00066   inline void set_loop(LoopSM * loop) {myLoop = loop;}
00067 
00068   inline int get_mark(){return myMark;}
00069   inline void set_mark(int k){myMark = k;}
00070 
00071   virtual GeometryQueryEngine*
00072   get_geometry_query_engine() const;
00073     //R GeometryQueryEngine*
00074     //R- A pointer to the geometric modeling engine associated with
00075     //R- the object.
00076     //- This function returns a pointer to the geometric modeling engine
00077     //- associated with the object.
00078 
00079   virtual void append_simple_attribute_virt(const CubitSimpleAttrib&);
00080     //R void
00081     //I
00082     //I-
00083     //I- that is to be appended to this OSME object.
00084     //- The purpose of this function is to append a
00085     //- attribute to the OSME. The  is attached to each of the
00086     //- underlying solid model entities this one points to.
00087 
00088   virtual void remove_simple_attribute_virt(const CubitSimpleAttrib&);
00089     //R void
00090     //I CubitSimpleAttrib*
00091     //I- A reference to a CubitSimpleAttrib object which is the object
00092     //I- that is to be removed to this OSME object.
00093     //- The purpose of this function is to remove a simple
00094     //- attribute from the OSME. The attribute is attached to each of the
00095     //- underlying solid model entities this one points to.
00096 
00097   virtual void remove_all_simple_attribute_virt();
00098     //R void
00099     //I-
00100     //- The purpose of this function is to remove all simple
00101     //- attributes from the OSME.
00102 
00103   virtual CubitStatus get_simple_attribute(DLIList<CubitSimpleAttrib>&);
00104   virtual CubitStatus get_simple_attribute(const CubitString& name,
00105                                            DLIList<CubitSimpleAttrib>&);
00106     //R CubitSimpleAttrib*
00107     //R- the returned cubit simple attribute.
00108     //- The purpose of this function is to get the attributes
00109     //- of the geometry entity. The name is attached to the underlying solid
00110     //- model entity(ies) this one points to.
00111     //- MJP Note:
00112     //- This is the code that implements the requirement that names
00113     //- of VGI Entities propagate across solid model boolean
00114     //- operations.  The success of this relies, of course, on the underlying
00115     //- solid modeler being able to propagate attributes across
00116     //- such operations on its entities. If it cannot, then "names"
00117     //- of VGI entities will not propagate.
00118 
00119   virtual void get_parents_virt( DLIList<TopologyBridge*>& parents );
00120   virtual void get_children_virt( DLIList<TopologyBridge*>& children );
00121 protected: 
00122   
00123 private:
00124   int myMark;
00125   Curve *myCurve ;
00126   LoopSM *myLoop ;
00127   CubitSense edgeSense;
00128 };
00129 
00130 
00131 // ********** BEGIN INLINE FUNCTIONS       **********
00132 // ********** END INLINE FUNCTIONS         **********
00133 
00134 // ********** BEGIN FRIEND FUNCTIONS       **********
00135 // ********** END FRIEND FUNCTIONS         **********
00136 
00137 // ********** BEGIN EXTERN FUNCTIONS       **********
00138 // ********** END EXTERN FUNCTIONS         **********
00139 
00140 #endif
00141 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines