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 \____/