VedaLibDemo/Object3DFontVirtual.h

00001 #ifndef COM_M4NKIND_Object3DFontVirtual_H
00002 #define COM_M4NKIND_Object3DFontVirtual_H
00003 
00004 #include "Object3DMeshVirtual.h"
00005 #include "PackFloatByte_Limits.h"
00006 #include "PackObjectReference.h"
00007 #include "PackList.h"
00008 /*!
00009     \class  Object3DFontVirtual
00010     \ingroup    BaseObjectInherited_VedaLibDemo
00011     \brief  virtual base class for all collection of objects used as fonts
00012             for texts.
00013 */
00014 
00015 class Object3DFontVirtual : public Object3DMeshVirtual
00016 {
00017 /*==================================================================
00018                                 PUBLIC
00019 ==================================================================*/
00020 public:
00021     /*!
00022         \brief  Constructor. There should only be members initialisation there.
00023     */
00024     Object3DFontVirtual(void);
00025 
00026     /*!
00027         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00028     */
00029     BASEOBJECT_DEFINE_VIRTUALCLASS(Object3DFontVirtual);
00030     /*!
00031         \brief  Return the 3D shape index of the object that fit one character.
00032                 (then use index with RenderObject() )
00033                 a character is given with a zero-ended string because we can support
00034                 one byte character and more large char formats.
00035                 If the char is not supportd, we return false.
00036                 else,_rShapeIndex can return -1 if the char is space or tab.
00037         \param  _pString    zero ended char.
00038         \param  _rShapeIndex return index
00039         \param  _rCharWidth     the width of the char, to use them in the geometry.
00040         \return true if there is a character, false if no char.
00041     */
00042     virtual bool GetShapeIndexForCharacter( const char *_pString,
00043                                             int &_rShapeIndex,
00044                                             float &_rCharWidth )=0;
00045 
00046 /*==================================================================
00047                                 PROTECTED
00048 ==================================================================*/
00049 protected:
00050     class Shadow : public PackStruct
00051     { public:
00052         // constructor:
00053         Shadow();
00054         //! texture to draw a back border:
00055         PackObjectReference     mSer_TextureReference;
00056         PackFloatByte_Limits    mSer_DecalX;
00057         PackFloatByte_Limits    mSer_DecalY;
00058     };
00059     /*!
00060         \brief  static method passed to the list to create new elements.
00061         \return a new  object.
00062     */
00063     static BaseType *NewShadow();
00064 
00065     //!
00066     PackList    mSer_ShadowList;
00067 
00068 };
00069 
00070 #endif

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