31#include "../../common_ogl/openGL_includes.h"
32#include "../raytracing/shapes3D/bbox_3d.h"
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;
173 GLuint* aIdxOut,
const glm::vec4& aColor );
declared enumerations and flags
MATERIAL_MODE
Render 3d model shape materials mode.
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
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.
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