VisualModel.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef SOFA_CORE_VISUALMODEL_H
00028 #define SOFA_CORE_VISUALMODEL_H
00029
00030 #include <sofa/core/objectmodel/BaseObject.h>
00031 #include <sofa/defaulttype/Vec.h>
00032 #include <sofa/defaulttype/Quat.h>
00033
00034 namespace sofa
00035 {
00036
00037 namespace core
00038 {
00039
00053 class VisualModel : public virtual objectmodel::BaseObject
00054 {
00055 public:
00057 virtual ~VisualModel() { }
00058
00065 virtual void initVisual() { initTextures(); }
00066
00072 virtual void initTextures() {}
00073
00075 enum Pass { Std,
00076 Transparent,
00077 Shadow
00078 };
00079
00083 virtual void fwdDraw(Pass = Std) {}
00084
00088 virtual void bwdDraw(Pass = Std) {}
00089
00093 virtual void drawVisual() {}
00094
00095
00101 virtual void drawTransparent()
00102 {
00103 }
00104
00111 virtual void drawShadow()
00112 {
00113 drawVisual();
00114 }
00115
00119 virtual void updateVisual() { update(); }
00120
00126 virtual void update() {}
00127
00138 virtual bool addBBox(double* , double* )
00139 {
00140 return false;
00141 }
00142
00146 virtual void applyTranslation(const double , const double , const double )
00147 {
00148 }
00149
00153 virtual void applyRotation (const double , const double , const double )
00154 {
00155 }
00156
00160 virtual void applyRotation(const defaulttype::Quat )
00161 {
00162 }
00163
00167 virtual void applyScale(const double )
00168 {
00169 }
00170
00177 virtual void exportOBJ(std::string , std::ostream* , std::ostream* , int& , int& , int& )
00178 {
00179 }
00180 };
00181
00182 }
00183
00184 }
00185
00186 #endif