cgma
|
00001 //------------------------------------------------------------------------- 00002 // Filename : Shell.hpp 00003 // 00004 // Purpose : Represents a shell of a model. 00005 // 00006 // Special Notes : 00007 // 00008 // Creator : Xuechen Liu 00009 // 00010 // Creation Date : 08/02/96 00011 // 00012 // Owner : Malcolm J. Panthaki 00013 //------------------------------------------------------------------------- 00014 00015 #ifndef SHELL_HPP 00016 #define SHELL_HPP 00017 00018 // ********** BEGIN STANDARD INCLUDES ********** 00019 // ********** END STANDARD INCLUDES ********** 00020 00021 // ********** BEGIN CUBIT INCLUDES ********** 00022 #include "GroupingEntity.hpp" 00023 #include "CubitDefines.h" 00024 #include "CubitBox.hpp" 00025 // ********** END CUBIT INCLUDES ********** 00026 00027 // ********** BEGIN FORWARD DECLARATIONS ********** 00028 class ShellSM; 00029 class RefFace; 00030 class CoFace; 00031 class RefVolume; 00032 template <class X> class DLIList; 00033 // ********** END FORWARD DECLARATIONS ********** 00034 00035 class CUBIT_GEOM_EXPORT Shell : public GroupingEntity 00036 { 00037 public : 00038 00039 Shell() ; 00040 //- The default constructor. 00041 00042 Shell(ShellSM* OSMEPtr) ; 00043 //- The constructor with a pointer to an other solid model entity. 00044 00045 DagType dag_type() const { return DagType::shell_type(); } 00046 00047 CoFace* get_co_face_ptr( RefFace* ref_face_ptr ); 00048 //R CoFace* 00049 //R- A pointer to a child CoFace. 00050 //I ref_face_ptr 00051 //I- A pointer to the RefFace who's corresponding 00052 //I- CoFace is to be found. 00053 //- If there is more than one CoFace in the shell for 00054 //- the specified RefFace, the first one encountered 00055 //- will be returned. 00056 00057 RefVolume* get_ref_volume_ptr( ); 00058 //R RefVolume* 00059 //R- A pointer to the parent RefVolume. 00060 00061 CubitBox bounding_box(); 00062 //R CubitBox 00063 //R- The bounding box of the Shell 00064 //- Calculate the union of the bounding boxes of the 00065 //- RefFaces of this Shell, and return it is the 00066 //- bounding box of the Shell. 00067 00068 ShellSM* get_shell_sm_ptr() const; 00069 00070 CubitBoolean is_sheet(); 00071 //- Return true if shell is a sheet. 00072 00073 protected: 00074 00075 private: 00076 00077 Shell( const Shell& ); 00078 void operator=( const Shell&); 00079 } ; 00080 00081 // ********** BEGIN INLINE FUNCTIONS ********** 00082 // ********** END INLINE FUNCTIONS ********** 00083 00084 // ********** BEGIN FRIEND FUNCTIONS ********** 00085 // ********** END FRIEND FUNCTIONS ********** 00086 00087 // ********** BEGIN EXTERN FUNCTIONS ********** 00088 // ********** END EXTERN FUNCTIONS ********** 00089 00090 #endif 00091