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