SoFCBoundingBox.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 #ifndef COIN_SOFCBOUNDINGBOX_H
00025 #define COIN_SOFCBOUNDINGBOX_H
00026
00027 #include <Inventor/SbLinear.h>
00028 #include <Inventor/actions/SoAction.h>
00029 #include <Inventor/fields/SoSFFloat.h>
00030 #include <Inventor/fields/SoSFVec4f.h>
00031 #include <Inventor/fields/SoSFString.h>
00032 #include <Inventor/nodes/SoCoordinate3.h>
00033 #include <Inventor/nodes/SoIndexedLineSet.h>
00034 #include <Inventor/nodes/SoSeparator.h>
00035 #include <Inventor/nodes/SoText2.h>
00036 #include <Inventor/nodes/SoTransform.h>
00037 #include <Inventor/nodes/SoShape.h>
00038 #include <Inventor/fields/SoSFBool.h>
00039
00040 namespace Gui {
00041
00052 class GuiExport SoFCBoundingBox : public SoShape {
00053 typedef SoShape inherited;
00054
00055 SO_NODE_HEADER(Gui::SoFCBoundingBox);
00056
00057 public:
00058 static void initClass();
00059 static void finish();
00060
00061 public:
00062 SoFCBoundingBox();
00063 SoSFVec3f minBounds;
00064 SoSFVec3f maxBounds;
00065 SoSFBool coordsOn;
00066 SoSFBool dimensionsOn;
00069 protected:
00070 virtual ~SoFCBoundingBox();
00071 virtual void GLRender(SoGLRenderAction *action);
00072 virtual void generatePrimitives (SoAction *action);
00073 virtual void computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er);
00074
00075 private:
00076 SoSeparator *root, *textSep, *dimSep;
00077 SoCoordinate3 *bboxCoords;
00078 SoIndexedLineSet *bboxLines;
00079 };
00080
00085 class GuiExport SoSkipBoundingGroup : public SoGroup {
00086 typedef SoGroup inherited;
00087
00088 SO_NODE_HEADER(Gui::SoSkipBoundingGroup);
00089
00090 public:
00091 static void initClass(void);
00092 static void finish(void);
00093 SoSkipBoundingGroup(void);
00094
00095 enum Modes {
00096 INCLUDE_BBOX, EXCLUDE_BBOX
00097 };
00098
00099 SoSFEnum mode;
00100
00101 virtual void getBoundingBox(SoGetBoundingBoxAction *action);
00102
00103 protected:
00104 virtual ~SoSkipBoundingGroup();
00105 };
00106
00107 }
00108
00109
00110 #endif //COIN_SOFCBOUNDINGBOX_H