25 using std::unique_ptr;
346 inline const string&
getId()
override {
381 return objectLOD1->getNodeTransformMatrix(
id);
const Vector3 & getLookFrom() const
Color 4 definition class.
Color4 & add(float scalar)
Adds a scalar.
Color4 & scale(float scalar)
Scales this color.
TDME2 engine entity shader parameters.
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
void setShader(const string &shaderId)
Set shader.
const ShaderParameter getShaderParameter(const string ¶meterName) const
Returns shader parameter for given parameter name, if the value does not exist, the default will be r...
LOD object to be used with engine class.
BoundingBox * getBoundingBox() override
const Vector3 & getTranslation() const override
LODObject(const string &id, Model *modelLOD1, LODLevelType levelTypeLOD2, float modelLOD2MinDistance, Model *modelLOD2, LODLevelType levelTypeLOD3, float modelLOD3MinDistance, Model *modelLOD3, float lodNoneMinDistance=150.0f)
Public constructor.
const Transform & getTransform() const override
RenderPass getRenderPass() const override
void dispose() override
Dispose this entity.
void setShader(const string &id)
Set shader id.
LODLevelType levelTypeLOD3
const Color4 & getEffectColorAddLOD2() const
void setTranslation(const Vector3 &translation) override
Set translation.
Transform parentTransform
void removeRotation(const int idx) override
Remove rotation.
Rotation & getRotation(const int idx) override
Get rotation at given index.
~LODObject()
Public destructor.
unique_ptr< Object > objectLOD3
const int getRotationCount() const override
const Vector3 & getRotationAxis(const int idx) const override
void initialize() override
Initiates this entity.
bool isReceivesShadows() override
EntityShaderParameters shaderParameters
void setRenderPass(RenderPass renderPass) override
Set render pass.
void setReceivesShadows(bool receivesShadows) override
Enable/disable receives shadows.
const string & getShader()
void addRotation(const Vector3 &axis, const float angle) override
Add rotation.
void update() override
Update transform.
const Matrix4x4 getNodeTransformMatrix(const string &id)
void setPickable(bool pickable) override
Set this entity pickable.
Color4 effectColorAddLOD3
void setEffectColorMul(const Color4 &effectColorMul) override
Set effect color that will be multiplied with fragment color.
float modelLOD3MinDistance
const ShaderParameter getShaderParameter(const string ¶meterName)
Returns shader parameter for given parameter name, if the value does not exist, the default will be r...
const Color4 & getEffectColorMulLOD3() const
bool isPickable() override
LODLevelType levelTypeLOD2
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
Matrix4x4 entityTransformMatrix
void setTransform(const Transform &transform) override
Set transform.
unique_ptr< Object > objectLOD1
float modelLOD2MinDistance
void setEffectColorAddLOD2(const Color4 &effectColorAddLOD2)
Set effect color add for LOD2 level.
const Color4 & getEffectColorAddLOD3() const
Color4 effectColorMulLOD2
const Quaternion & getRotationsQuaternion() const override
void setScale(const Vector3 &scale) override
Set scale.
bool isContributesShadows() override
const Vector3 & getScale() const override
const Color4 & getEffectColorMulLOD2() const
const float getRotationAngle(const int idx) const override
BoundingBox * getWorldBoundingBox() override
const Color4 & getEffectColorMul() const override
The effect color will be multiplied with fragment color.
void setFrustumCulling(bool frustumCulling) override
Set frustum culling.
void setEngine(Engine *engine) override
Set up engine.
void setEnabled(bool enabled) override
Enable/disable rendering.
const Transform & getParentTransform() const override
const Matrix4x4 & getTransformMatrix() const override
const string & getId() override
EntityType getEntityType() override
Color4 effectColorAddLOD2
void setEffectColorMulLOD3(const Color4 &effectColorMulLOD3)
Set effect color mul for LOD3 level.
void setContributesShadows(bool contributesShadows) override
Enable/disable contributes shadows.
void setRotationAxis(const int idx, const Vector3 &axis) override
Set rotation axis.
unique_ptr< Object > objectLOD2
bool isFrustumCulling() override
bool isEnabled() override
Object * determineLODObject(Camera *camera)
Get current lod object.
Color4 effectColorMulLOD3
void setEffectColorAddLOD3(const Color4 &effectColorAddLOD3)
Set effect color add for LOD3 level.
void setEffectColorMulLOD2(const Color4 &effectColorMulLOD2)
Set effect color mul for LOD2 level.
void setEffectColorAdd(const Color4 &effectColorAdd) override
Set effect color that will be added to fragment color.
const Color4 & getEffectColorAdd() const override
The effect color will be added to fragment color.
void setParentTransform(const Transform &parentTransform) override
Set parent transform.
void setRenderer(Renderer *renderer) override
Set up renderer.
void setRotationAngle(const int idx, const float angle) override
Object render group for static objects that might be animated by shaders.
Object to be used with engine class.
void setEffectColorMul(const Color4 &effectColorMul) override
Set effect color that will be multiplied with fragment color.
const Color4 & getEffectColorMul() const override
The effect color will be multiplied with fragment color.
void setEffectColorAdd(const Color4 &effectColorAdd) override
Set effect color that will be added to fragment color.
const Color4 & getEffectColorAdd() const override
The effect color will be added to fragment color.
Shader parameter model class.
Representation of a 3D model.
Axis aligned bounding box used for frustum, this is not directly connectable with physics engine.
Vector3 computeClosestPointInBoundingBox(const Vector3 &point)
Compute closest point in bounding box of given point.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Quaternion class representing quaternion mathematical structure and operations with x,...
Vector3 class representing vector3 mathematical structure and operations with x, y,...
float computeLengthSquared() const
Vector3 & sub(float scalar)
Subtracts a scalar.
#define FORBID_CLASS_COPY(CLASS)