41#ifndef INCLUDED_GLS_GEOMETRY_RESOURCE_MESH_H
42#define INCLUDED_GLS_GEOMETRY_RESOURCE_MESH_H
51#if( defined( GLSGEN_EXPORT_GLSADVANCEDMESH ) || defined( GLSGEN_IMPORT_GLSADVANCEDMESH ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
52 && defined( _MSC_VER )
53# if defined( GLSGEN_EXPORT_GLSADVANCEDMESH ) || defined( GLS_EXPORT_GENERATED )
54# define GLSGEN_GlsAdvancedMesh_EXPORT __declspec( dllexport )
56# define GLSGEN_GlsAdvancedMesh_EXPORT __declspec( dllimport )
59# define GLSGEN_GlsAdvancedMesh_EXPORT
66class GlsSortedDrawable;
70class GlsGloFileAttribute;
82 friend class GlsGeometryResourceMesh_SortedDrawable;
86 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
89 friend class GlsGeometryResourceMeshEditor;
272 class DistiAttributeIndexBufferEffectArray;
323 void OnMatChanged( DynamicArray<int>& a, DynamicArray<int>& b );
324 void ReplaceMaterial(
unsigned int oldIndex,
unsigned int newIndex );
330 unsigned int material_index,
331 int diffuse_texture_index,
332 int normal_texture_index,
333 int specular_texture_index,
334 int reflection_texture_index,
335 float diffuse_amount,
337 float specular_amount,
338 float reflection_amount,
339 bool useVertexColors,
340 bool normalFlipGreen,
341 float diff_map_offset_v = 0.0f,
342 float diff_map_offset_u = 0.0f,
343 float diff_map_tiling_u = 1.0f,
344 float diff_map_tiling_v = 1.0f,
345 float diff_map_angle_w = 0.0f,
346 float norm_map_offset_v = 0.0f,
347 float norm_map_offset_u = 0.0f,
348 float norm_map_tiling_u = 1.0f,
349 float norm_map_tiling_v = 1.0f,
350 float norm_map_angle_w = 0.0f,
351 float spec_map_offset_v = 0.0f,
352 float spec_map_offset_u = 0.0f,
353 float spec_map_tiling_u = 1.0f,
354 float spec_map_tiling_v = 1.0f,
355 float spec_map_angle_w = 0.0f );
Definition: dynamic_array.h:79
unsigned Count() const
Definition: dynamic_array.h:218
Definition: gls_geometry_resource_mesh.h:80
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
virtual DynamicArray< int > & MaterialIndices() DISTI_METHOD_OVERRIDE
unsigned int NumIndexBufferEffects()
Definition: gls_geometry_resource_mesh.h:194
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
virtual void Draw() DISTI_METHOD_OVERRIDE
void CleanupDefaultEffect()
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
bool ReorderAtWill()
Definition: gls_geometry_resource_mesh.h:200
virtual void ResizeIndexBufferEffectsArray(unsigned int newSize)
virtual int MaterialIndex() DISTI_METHOD_OVERRIDE
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true) DISTI_METHOD_OVERRIDE
void SetGeometryTransform(const GlsMatrixType &value)
SortedDrawableArrayT _indexBufferDrawables
GlsSortedDrawable for each index buffer.
Definition: gls_geometry_resource_mesh.h:276
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
GlsGeometryResourceMesh()
bool _reorderAtWill
Determines whether or not the draw order of this mesh can be modified to increase performance.
Definition: gls_geometry_resource_mesh.h:267
virtual GlsGeometryResource * GetRenderMesh()=0
IndexBufferEffectArrayT _indexBufferEffects
The effect to use for each index buffer.
Definition: gls_geometry_resource_mesh.h:270
GlsRenderEffect * GetIndexBufferEffect(unsigned int bufferNum)
Definition: gls_geometry_resource_mesh.h:215
virtual void TranslateVertices(float x, float y, float z) DISTI_METHOD_OVERRIDE
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
virtual int TextureIndex() DISTI_METHOD_OVERRIDE
DynamicArray< GlsRenderEffect * > IndexBufferEffectArrayT
Typedef for a list of effects (shaders).
Definition: gls_geometry_resource_mesh.h:269
void DrawIndexBuffers(GlsGeometryResource *renderMesh)
DynamicArray< GlsSortedDrawable * > SortedDrawableArrayT
Typedef for a list of sorted drawables.
Definition: gls_geometry_resource_mesh.h:275
GlsMatrixType _geometryTransform
Transformation matrix to be applied to all geometry in this mesh.
Definition: gls_geometry_resource_mesh.h:263
virtual void GetExtents(float &minx, float &miny, float &minz, float &maxx, float &maxy, float &maxz) DISTI_METHOD_OVERRIDE
virtual void CopyGeometry(DisplayObject *src) DISTI_METHOD_OVERRIDE
void ReorderAtWill(bool reorderAtWill)
Definition: gls_geometry_resource_mesh.h:204
DynamicArray< int > _newMaterialIndices
Intermediate data storage to make the setting of new material indices through the Faces simpler.
Definition: gls_geometry_resource_mesh.h:265
virtual bool SetupTexture()
unsigned int NumIndexBuffers()
Definition: gls_geometry_resource_mesh.h:186
virtual DisplayObject * Pick3D(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices) DISTI_METHOD_OVERRIDE
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0) DISTI_METHOD_OVERRIDE
void SetupDefaultEffect()
virtual void OnGeometryResourceChanged() DISTI_METHOD_OVERRIDE
Callback method to be called by this observer.
Definition: gls_geometry_resource_mesh.h:108
virtual void UpdateBoundingVolume() DISTI_METHOD_OVERRIDE
void SetIndexBufferEffect(unsigned int bufferNum, GlsRenderEffect *newEffect)
Definition: gls_geometry_resource_mesh.h:231
const GlsMatrixType & GetGeometryTransform()
Definition: gls_geometry_resource_mesh.h:181
Definition: gls_geometry_resource.h:288
Definition: gls_geometry_resource.h:87
unsigned int NumIndexBuffers() const
Definition: gls_geometry_resource.h:471
Definition: gls_geometry_resource.h:507
Definition: gls_glo_file.h:1243
Definition: gls_render_effect.h:116
virtual void Release()=0
Release a reference to this object.
virtual void AddRef()=0
Add to this object's reference count.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
The disti::DisplayObject class and global enumerations.
Macros and helper code to determine what subset of C++11/14/17 is available.
#define DISTI_SPECIAL_MEM_FUN_DELETE
Macro to wrap function deletion, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:235
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:457
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:214
The disti::GlsGeometryResource class.
#define GLSGEN_GlsAdvancedMesh_EXPORT
Provides support for creating DLLs.
Definition: gls_geometry_resource_mesh.h:59
The disti::GlsRenderEffect class.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47