TAPs 0.7.7.3
TAPsShape.hpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsShape.hpp
00003 ******************************************************************************/
00007 /******************************************************************************
00008 SUKITTI PUNAK   (03/25/2010)
00009 UPDATE          (05/01/2010)
00010 ******************************************************************************/
00011 #ifndef TAPs_SHAPE_HPP
00012 #define TAPs_SHAPE_HPP
00013 
00014 #include "../../OpenGLModelFromFile/TAPsReadModels.hpp"
00015 
00016 BEGIN_NAMESPACE_TAPs
00017 //=============================================================================
00018 template <typename T>
00019 class Shape {
00020 //=============================================================================
00021 public:
00022     // Member Functions -------------------------------------------------------
00024     friend std::ostream & operator<< ( std::ostream &output, Shape<T> const &obj )
00025     {
00026         output << obj.StrInfo();
00027         return output;
00028     }
00029     //-------------------------------------------------------------------------
00031     Shape ();
00033     //Shape ( Shape<T> const &orig );
00035     virtual ~Shape ();
00036     //-------------------------------------------------------------------------
00038     virtual std::string StrInfo () const;
00039     //-------------------------------------------------------------------------
00041     //inline Shape<T> & operator= ( Shape<T> const &orig );
00042 
00044     void SetShapeType ( Enum::Shape type ); 
00046     void GetShapeType ( Enum::Shape & type ) const;
00047 
00049     bool SetModelFromFile ( 
00050         std::string modelFile,  
00051         //Enum::ModelType modelType = Enum::MODEL_TYPE_POLYGONAL    //!< model type
00052         Enum::ModelType modelType = Enum::MODEL_TYPE_XPOLYGONAL     
00053         //Enum::ModelType modelType = Enum::MODEL_TYPE_HALFEDGE     //!< model type
00054     );
00055 
00056 #if defined(__gl_h_) || defined(__GL_H__)
00057 
00058     OpenGL::OpenGLModel<T> const *  GetPtrToModel () const  { return m_pModel; }
00060     OpenGL::OpenGLModel<T> *        GetPtrToModel ()        { return m_pModel; }
00061 #endif
00062 
00063     // Data Members -----------------------------------------------------------
00064 
00065 //=============================================================================
00066 protected:
00067     // Member Functions -------------------------------------------------------
00068     // Data Members -----------------------------------------------------------
00069     Enum::Shape                 m_ShapeType;    
00070 #if defined(__gl_h_) || defined(__GL_H__)
00071     OpenGL::OpenGLModel<T> *    m_pModel;       
00072 #endif
00073 //=============================================================================
00074 private:
00075     // Member Functions -------------------------------------------------------
00076     // Data Members -----------------------------------------------------------
00077 //=============================================================================
00078 
00079 #if defined(__gl_h_) || defined(__GL_H__)
00080 public:
00082     virtual void Draw () const;
00083 #endif
00084 
00085 //=============================================================================
00086 }; // END CLASS Shape
00087 //=============================================================================
00088 //-----------------------------------------------------------------------------
00090 typedef Shape<int>    Shapei;
00091 typedef Shape<float>  Shapef;
00092 typedef Shape<double> Shaped;
00093 //=============================================================================
00094 END_NAMESPACE_TAPs
00095 //-----------------------------------------------------------------------------
00097 #include "TAPsShape.cpp"
00098 
00100 // Include definition if TAPs_USE_EXPORT is not defined
00101 //#if !defined( TAPs_USE_EXPORT )
00102 //  #include "TAPsShape.cpp"
00103 //#endif
00104 //-----------------------------------------------------------------------------
00105 #endif
00106 //34567890123456789012345678901234567890123456789012345678901234567890123456789
00107 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines