cgma
BodySM.hpp
Go to the documentation of this file.
00001 //-------------------------------------------------------------------------
00002 // Copyright Notice
00003 //
00004 // Copyright (c) 1996 
00005 // by Malcolm J. Panthaki, DBA, and the University of New Mexico.
00006 //-------------------------------------------------------------------------
00007 //
00008 //-------------------------------------------------------------------------
00009 // Filename      : BodySM.hpp
00010 //
00011 // Purpose       : To declare the Body solid model class.
00012 //
00013 // Special Notes :
00014 //
00015 // Creator       : Stephen J. Verzi
00016 //
00017 // Creation Date : 02/26/97
00018 //
00019 // Owner         : Stephen J. Verzi
00020 //-------------------------------------------------------------------------
00021 
00022 #ifndef BODYSM_HPP
00023 #define BODYSM_HPP
00024 
00025 // ********** BEGIN STANDARD INCLUDES      **********
00026 // ********** END STANDARD INCLUDES        **********
00027 
00028 // ********** BEGIN MOTIF INCLUDES         **********
00029 // ********** END MOTIF INCLUDES           **********
00030 
00031 // ********** BEGIN OPEN INVENTOR INCLUDES **********
00032 // ********** END OPEN INVENTOR INCLUDES   **********
00033 
00034 // ********** BEGIN CUBIT INCLUDES         **********
00035 
00036 #include "CubitDefines.h"
00037 
00038 #include "TopologyBridge.hpp"
00039 class CubitTransformMatrix;
00040 class CubitVector;
00041 class CubitBox;
00042 
00043 // ********** END CUBIT INCLUDES           **********
00044 
00045 // ********** BEGIN FORWARD DECLARATIONS   **********
00046 // ********** END FORWARD DECLARATIONS     **********
00047 
00048 class CUBIT_GEOM_EXPORT BodySM : public TopologyBridge
00049 {
00050    public :
00051 
00052       BodySM() ;
00053       //- The default constructor
00054 
00055       virtual ~BodySM() ;
00056       //- The destructor
00057 
00058       virtual CubitStatus get_transforms( CubitTransformMatrix &tfm)= 0 ;
00059       //R CubitStatus
00060       //R- CUBIT_SUCCESS/FAILURE
00061       //- return the BODY transformation matrix
00062 
00063 
00064       virtual CubitStatus mass_properties( CubitVector& centroid,
00065                                            double& volume ) = 0;
00066       
00067       //determines if a point is in/on the body to within the tolerance,
00068       //if specified.  If not specified, the geometry kernel's tolerance 
00069       //is used (i.e. catia: = 1e-6).
00070       virtual CubitPointContainment point_containment( const CubitVector& pos, 
00071         double tolerance = -1.0 ) = 0;
00072 
00073       CubitBox bounding_box();
00074       
00075    protected: 
00076 
00077    private:
00078 } ;
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines