00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #pragma once
00013
00015 #include "nvsgcommon.h"
00016
00017 #include "nvsg/Object.h"
00018
00019 namespace nvmath
00020 {
00021 class Sphere3f;
00022 }
00023
00024 namespace nvsg
00025 {
00027 class HighlightObject : public Object
00028 {
00029 public:
00031
00033 NVSG_API virtual bool isBoundingSphereValid( void ) const = 0;
00034
00036
00039 NVSG_API virtual const nvmath::Sphere3f & getBoundingSphere( void ) const = 0;
00040
00042
00044 NVSG_API virtual bool isValid( void ) const;
00045
00047 NVSG_API virtual void invalidate( void );
00048
00049 protected:
00051 NVSG_API HighlightObject( void );
00052
00053 protected:
00054 bool m_invalid;
00055 };
00056
00057 inline HighlightObject::HighlightObject( void )
00058 : m_invalid(true)
00059 {
00060 __TRACE();
00061 }
00062
00063 inline bool HighlightObject::isValid( void ) const
00064 {
00065 __TRACE();
00066 return !m_invalid;
00067 }
00068
00069 inline void HighlightObject::invalidate( void )
00070 {
00071 __TRACE();
00072 m_invalid=true;
00073 }
00074 }