35#include <wx/chartype.h>
57 Draw(
false, 1.0f, aUseSelectedMaterial, aSelectionColor,
nullptr,
nullptr );
66 Draw(
true, aOpacity, aUseSelectedMaterial, aSelectionColor,
nullptr,
nullptr );
74 void Draw(
bool aTransparent,
float aOpacity,
bool aUseSelectedMaterial,
76 const glm::mat4 *aModelWorldMatrix,
77 const SFVEC3F *aCameraWorldPos )
const;
174 GLuint* aIdxOut,
const glm::vec4& aColor );
declared enumerations and flags
MATERIAL_MODE
Render 3d model shape materials mode.
Bounding Box class definition.
define an internal structure to be used by the 3D renders
void DrawBbox() const
Draw main bounding box of the model.
bool m_have_opaque_meshes
static void EndDrawMulti()
Cleanup render states after drawing multiple models.
GLenum m_index_buffer_type
MODEL_3D(const S3DMODEL &a3DModel, MATERIAL_MODE aMaterialMode)
Load a 3D model.
std::vector< MATERIAL > m_materials
static void MakeBbox(const BBOX_3D &aBox, unsigned int aIdxOffset, VERTEX *aVtxOut, GLuint *aIdxOut, const glm::vec4 &aColor)
bool HasTransparentMeshes() const
Return true if have transparent mesh's to render.
void Draw(bool aTransparent, float aOpacity, bool aUseSelectedMaterial, const SFVEC3F &aSelectionColor, const glm::mat4 *aModelWorldMatrix, const SFVEC3F *aCameraWorldPos) const
Render the model into the current context.
static void BeginDrawMulti(bool aUseColorInformation)
Set some basic render states before drawing multiple models.
GLuint m_bbox_index_buffer
static constexpr unsigned int bbox_idx_count
MATERIAL_MODE m_materialMode
void DrawBboxes() const
Draw individual bounding boxes of each mesh.
static const wxChar * m_logTrace
bool m_have_transparent_meshes
std::vector< BBOX_3D > m_meshes_bbox
individual bbox for each mesh
GLenum m_bbox_index_buffer_type
static constexpr unsigned int bbox_vtx_count
BBOX_3D m_model_bbox
global bounding box for this model
GLuint m_bbox_vertex_buffer
bool HasOpaqueMeshes() const
Return true if have opaque meshes to render.
void DrawTransparent(float aOpacity, bool aUseSelectedMaterial, SFVEC3F aSelectionColor=SFVEC3F(0.0f)) const
Render the model into the current context.
void DrawOpaque(bool aUseSelectedMaterial, SFVEC3F aSelectionColor=SFVEC3F(0.0f)) const
Render the model into the current context.
const BBOX_3D & GetBBox() const
Get the main bounding box.
includes in a proper way the openGL related includes
Manage a bounding box defined by two SFVEC3F min max points.
MATERIAL(const SMATERIAL &aOther)
bool IsTransparent() const
unsigned int m_render_idx_count
BBOX_3D m_bbox
bounding box for this material group, used for transparent material ordering.
unsigned int m_render_idx_buffer_offset
Store the a model based on meshes and materials.
float m_Transparency
1.0 is completely transparent, 0.0 completely opaque