Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Switch.h

Go to the documentation of this file.
00001 // Copyright NVIDIA Corporation 2002-2004
00002 // TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
00003 // *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS
00004 // OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
00005 // AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS
00006 // BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES
00007 // WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
00008 // BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS)
00009 // ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS
00010 // BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 
00011 
00012 #pragma once
00013 
00015 #include "nvsgcommon.h"
00016 
00017 #include <set>
00018 #include "nvsg/Group.h"
00019 
00020 namespace nvsg
00021 {
00023 
00026   class Switch : public Group
00027   {
00028     public:
00030 
00031       NVSG_API static const Switch * create( void );
00032 
00034 
00035       NVSG_API static const Switch * createFromBase( const Group &rhs );
00036 
00038 
00039       NVSG_API virtual const Switch * clone( void ) const;
00040 
00042       NVSG_API void setActive( void );
00043 
00045 
00046       NVSG_API void setActive( size_t index   
00047                              );
00048 
00050       NVSG_API void setInactive( void );
00051 
00053 
00054       NVSG_API void setInactive( size_t index   
00055                                );
00056 
00058 
00059       NVSG_API size_t getNumberOfActive( void ) const;
00060 
00062 
00067       NVSG_API size_t getActive( std::vector<size_t>& indices ) const;
00068 
00070 
00072       NVSG_API bool isActive( void ) const;
00073 
00075 
00077       NVSG_API bool isActive( size_t index    
00078                             ) const;
00079 
00080       NVSG_API virtual bool isDataShared( void ) const;
00081       NVSG_API virtual DataID getDataID( void ) const;
00082 
00083     protected:
00085       NVSG_API Switch( void );
00086 
00088       NVSG_API Switch( const Group &rhs );
00089 
00091       NVSG_API Switch( const Switch &rhs );
00092 
00094       NVSG_API virtual ~Switch( void );
00095 
00097 
00102       NVSG_API virtual bool calcBoundingSphere( void ) const;
00103 
00104     private:
00106       std::set<size_t> m_activeChildren;
00107   };
00108   
00109 } //  namespace nvsg

Generated on Tue Mar 1 13:19:20 2005 for NVSGSDK by NVIDIA