00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SOCUBE_H
00021 #define COIN_SOCUBE_H
00022
00023 #include <Inventor/nodes/SoSubNode.h>
00024 #include <Inventor/fields/SoSFFloat.h>
00025 #include <Inventor/nodes/SoShape.h>
00026
00027 class SoIndexedFaceSet;
00028
00029
00030 class COIN_DLL_API SoCube : public SoShape {
00031 typedef SoShape inherited;
00032
00033 SO_NODE_HEADER(SoCube);
00034
00035 public:
00036 static void initClass(void);
00037 SoCube(void);
00038
00039 SoSFFloat width;
00040 SoSFFloat height;
00041 SoSFFloat depth;
00042
00043 virtual void GLRender(SoGLRenderAction * action);
00044 virtual void rayPick(SoRayPickAction * action);
00045 virtual void getPrimitiveCount(SoGetPrimitiveCountAction * action);
00046
00047 protected:
00048 virtual ~SoCube();
00049
00050 virtual void generatePrimitives(SoAction * action);
00051 virtual void computeBBox(SoAction * action, SbBox3f & box, SbVec3f & center);
00052
00053 private:
00054 void getHalfSize(float & w, float & h, float & d);
00055 };
00056
00057 #endif // !COIN_SOCUBE_H