41 #ifndef INCLUDED_GLS_SERIAL_MORPH_MESH_H
42 #define INCLUDED_GLS_SERIAL_MORPH_MESH_H
51 #include "gls_resource_file_mgr.h"
57 #if (defined(GLSGEN_EXPORT_GLSADVANCEDMESH) || \
58 defined(GLSGEN_IMPORT_GLSADVANCEDMESH) || \
59 defined(GLS_EXPORT_GENERATED) || \
60 defined(GLS_IMPORT_GENERATED)) \
62 # if defined(GLSGEN_EXPORT_GLSADVANCEDMESH) || defined(GLS_EXPORT_GENERATED)
63 # define GLSGEN_GlsSerialMorphMesh_EXPORT __declspec(dllexport)
65 # define GLSGEN_GlsSerialMorphMesh_EXPORT __declspec(dllimport)
68 # define GLSGEN_GlsSerialMorphMesh_EXPORT
72 #define LIB_BASE_NAME "gls_advanced_mesh"
81 class GlsGloFileAttribute;
91 friend class GlsSerialMorphMeshEditor;
96 GLSGEN_GlsSerialMorphMesh_EXPORT
GlsSerialMorphMesh(
const GlsSerialMorphMesh& that,
const bool generateNames );
101 static GLSGEN_GlsSerialMorphMesh_EXPORT
DisplayObject* CreateInstance();
133 GLSGEN_GlsSerialMorphMesh_EXPORT
void SetNumKeyframes(
unsigned int count);
138 GLSGEN_GlsSerialMorphMesh_EXPORT
unsigned int NumKeyframes();
154 GLSGEN_GlsSerialMorphMesh_EXPORT
void SetKeyframePercent(
unsigned int index,
const float& value );
164 GLSGEN_GlsSerialMorphMesh_EXPORT
void SetMorphPercent(
const float& value);
178 GLSGEN_GlsSerialMorphMesh_EXPORT
void SetTension(
const float& value);
183 GLSGEN_GlsSerialMorphMesh_EXPORT
float GetTension();
204 virtual GLSGEN_GlsSerialMorphMesh_EXPORT
void SetFromGloData(GlsGloFileAttribute &data);
212 void SetupAttribDict();
218 GLSGEN_GlsSerialMorphMesh_EXPORT Keyframe_Data(
const Keyframe_Data&);
219 GLSGEN_GlsSerialMorphMesh_EXPORT ~Keyframe_Data();
220 GLSGEN_GlsSerialMorphMesh_EXPORT
const Keyframe_Data& operator=(
const Keyframe_Data&);
231 GlsSerialMorphMesh* _parentMesh;
237 static void element_read_func(
int index, KeyframeDataArray& array, std::istream& instr);
238 static void element_write_func(
int index, KeyframeDataArray& array, std::ostream& outstr);
249 unsigned int _last_keyframe_index;
250 unsigned int _next_keyframe_index;
251 float _last_keyframe_weight;
252 float _next_keyframe_weight;
254 bool _renderMeshIsValid;
258 GLSGEN_GlsSerialMorphMesh_EXPORT
void RecalculateKeyframeIndicesAndWeights();
261 GLSGEN_GlsSerialMorphMesh_EXPORT
void KeyframeGeometryChanged(
Keyframe_Data*);
265 int _gloKeyframeIndex;
269 GLSGEN_GlsSerialMorphMesh_EXPORT
void InitializeMembers();
272 GlsSerialMorphMesh& operator=(
const GlsSerialMorphMesh &rhs ) DISTI_SPECIAL_MEM_FUN_DELETE;
Definition: dynamic_array.h:63
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:281
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
The disti::GlsAdvancedMesh class.
void SetMorphPercent(const float &value)
void InvalidateRenderMesh()
Definition: gls_serial_morph_mesh.h:187
virtual GlsGeometryResource * GetRenderMesh()
Definition: gls_serial_morph_mesh.h:87
virtual ~GlsSerialMorphMesh()
virtual void CopyProperties(DisplayObject *src)
GlsGeometry_Generic * GetKeyframeGeometry(unsigned int index)
Definition: gls_serial_morph_mesh.h:207
Definition: gls_geometry_resource.h:86
Definition: gls_serial_morph_mesh.h:228
unsigned int NumKeyframes()
float GetKeyframePercent(unsigned int index)
virtual DisplayObject * CloneObject(bool generateNames=false)
Definition: disti_metadata.h:676
void SetKeyframeGeometry(unsigned int keyframeIndex, GlsGeometry_Generic *newKeyframeGeometry)
Definition: gls_geometry_resource_mesh.h:82
virtual void CopyGeometry(DisplayObject *src)
void SetTension(const float &value)
virtual void SetAvailableAttributes(unsigned int value)
The disti::GlsGeometryResource class.
void SetKeyframePercent(unsigned int index, const float &value)
void SetNumKeyframes(unsigned int count)
Macros and helper code to determine what subset of C++11/14/17 is available.
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
Definition: bmpimage.h:46
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
Definition: gls_geometry_resource.h:421