VedaLib3DEngine/Object3DGrid.h

Go to the documentation of this file.
00001 /*! \file 
00002     \author victorien ferry & www.m4nkind.com
00003     \brief This file applies the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 , read file COPYING.
00004 */
00005 #ifndef COM_M4NKIND_Object3DGrid_H
00006 #define COM_M4NKIND_Object3DGrid_H
00007 #include "Object3DMeshVirtual.h"
00008 
00009 #include "PackFloatByte_Limits.h"
00010 #include "PackDynamicType.h"
00011 #include "PackLong_WithLimits.h"
00012 #include "PackULong_Flags.h"
00013 #include "PackTreeCell.h"
00014 /*!
00015     \class  Object3DGrid
00016     \ingroup BaseObjectInherited_VedaLib3DEngine
00017     \brief  Define an object with a list of vertex and polygons.
00018 */
00019 
00020 class Object3DGrid : public Object3DMeshVirtual
00021 {
00022 /*==================================================================
00023                                 PUBLIC
00024 ==================================================================*/
00025 public:
00026     /*!
00027         \brief  Constructor. There should only be members initialisation there.
00028     */
00029     Object3DGrid(void);
00030 
00031     /*!
00032         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00033     */
00034     BASEOBJECT_DEFINE_CLASS(Object3DGrid);
00035 
00036 /*==================================================================
00037                                 PROTECTED
00038 ==================================================================*/
00039 protected:
00040     //! subdivision.
00041     PackLong_WithLimits mSer_SubdivisionX;
00042     //! subdivision.
00043     PackLong_WithLimits mSer_SubdivisionY;
00044     //! space dimension.
00045     PackFloat   mSer_DimensionXY;
00046     //! coord yx mapping
00047     PackFloat   mSer_MappingUV1;
00048     //! coord yx mapping
00049     PackFloat   mSer_MappingUV2;
00050 
00051     /*!
00052         \brief  Method that really build the object using the serializable parameters.
00053                 Close() should close everything opened by CreateInternal().
00054     */
00055     virtual bool CreateInternal(void);
00056     /*!
00057         \brief  update the shape of the object for this date, during
00058                 the lifetime the object, when it is created.
00059                 by defdault, does nothing, so static object can be created
00060                 with CreateInternal() only.
00061         \param  _newShapeTime the new date.
00062         \param  _shapeIndex the index of the shape to modify.
00063     */
00064     virtual void CreateShape(float _newShapeTime, unsigned int _shapeIndex=0);
00065 };
00066 
00067 #endif

      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/