00001 00002 00003 00004 00005 // ChangeLog is at the implementation file 00006 00007 #ifndef __VPGRAPHICOBJ_H 00008 #define __VPGRAPHICOBJ_H 00009 00010 #include "vpscenenode.h" 00011 #include "vpboundingbox.h" 00012 00019 class VPGraphicObj : public VPSceneNode { 00020 public: 00021 VPGraphicObj(); 00023 void Show(); 00025 void Hide(); 00027 void ToggleVisibility(); 00029 bool IsVisible(); 00030 00032 virtual void ComputeBoundingBox() = 0; 00033 00035 00038 void ComputeRecursiveBoundingBox(); 00039 00041 const VPBoundingBox& GetBoundingBox() const { return bBox; } 00042 00044 const VPBoundingBox& GetRecursiveBoundingBox() const { return recBBox; } 00045 protected: 00046 bool show; 00047 VPBoundingBox bBox; 00048 VPBoundingBox recBBox; // recursive bounding box 00049 }; 00050 00051 #endif