TAPs 0.7.7.3
TAPsImplicitObject_Torus.hpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsImplicitObject_Torus.hpp
00003 ******************************************************************************/
00015 /******************************************************************************
00016 SUKITTI PUNAK   (10/14/2009)
00017 UPDATE          (10/14/2009)
00018 ******************************************************************************/
00019 #ifndef TAPs_IMPLICIT_OBJECT_TORUS_HPP
00020 #define TAPs_IMPLICIT_OBJECT_TORUS_HPP
00021 
00022 #include "TAPsImplicitObject.hpp"
00023 
00024 BEGIN_NAMESPACE_TAPs
00025 //=============================================================================
00026 template <typename T>
00027 class ImplicitObject_Torus : public /*virtual*/ ImplicitObject<T> {
00028 //=============================================================================
00029 public:
00030     // Member Functions -------------------------------------------------------
00032     friend std::ostream & operator<< ( std::ostream &output, ImplicitObject_Torus<T> const &obj )
00033     {
00034         output << obj.StrInfo();
00035         return output;
00036     }
00037     //-------------------------------------------------------------------------
00039     ImplicitObject_Torus ( T inner_radius = 0.1, T outer_radius = 0.5, std::string & name = std::string("") );
00041     ImplicitObject_Torus ( ImplicitObject_Torus<T> const &orig );
00043     virtual ~ImplicitObject_Torus ();
00044     //-------------------------------------------------------------------------
00046     virtual std::string StrInfo () const;
00047     //-------------------------------------------------------------------------
00049     inline ImplicitObject_Torus<T> & operator= ( ImplicitObject_Torus<T> const &orig );
00050 
00052     inline void GetTransformedRadii ( T & inner_radius, T & outer_radius ) const;
00053 
00055     inline Vector3<T> GetTransformedAxis () const;
00056 
00057     T       GetInnerRadius () const { return m_InnerRadius; }
00059     void    SetInnerRadius ( T r )  { m_InnerRadius = r; }
00060 
00062     T       GetOuterRadius () const { return m_OuterRadius; }
00064     void    SetOuterRadius ( T r )  { m_OuterRadius = r; }
00065 
00067     virtual void BuildBVHTree ( int detail_level = 4, Enum::CD treeType = Enum::BVH_TREE_BINARY_SPHERE );
00068 
00069     // Data Members -----------------------------------------------------------
00070 //=============================================================================
00071 protected:
00072     // Member Functions -------------------------------------------------------
00073     // Data Members -----------------------------------------------------------
00074     T   m_InnerRadius;  
00075     T   m_OuterRadius;  
00076 //=============================================================================
00077 private:
00078     // Member Functions -------------------------------------------------------
00079     // Data Members -----------------------------------------------------------
00080 //=============================================================================
00081 
00082 #if defined(__gl_h_) || defined(__GL_H__)
00083 public:
00087     virtual void Draw ( GLenum mode = GL_TRIANGLES, GLint nsides = 8, GLint rings = 16 );
00088 #endif
00089 
00090 //=============================================================================
00091 }; // END CLASS ImplicitObject_Torus
00092 //=============================================================================
00093 //-----------------------------------------------------------------------------
00095 typedef ImplicitObject_Torus<int>    ImplicitObject_Torusi;
00096 typedef ImplicitObject_Torus<float>  ImplicitObject_Torusf;
00097 typedef ImplicitObject_Torus<double> ImplicitObject_Torusd;
00098 //=============================================================================
00099 END_NAMESPACE_TAPs
00100 //-----------------------------------------------------------------------------
00102 #include "TAPsImplicitObject_Torus.cpp"
00103 
00105 // Include definition if TAPs_USE_EXPORT is not defined
00106 //#if !defined( TAPs_USE_EXPORT )
00107 //  #include "TAPsImplicitObject_Torus.cpp"
00108 //#endif
00109 //-----------------------------------------------------------------------------
00110 #endif
00111 //34567890123456789012345678901234567890123456789012345678901234567890123456789
00112 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines