123 auto currentFrame = timing->getFrame();
144 inline void computeAnimation(
int contextIdx, int64_t lastFrameAtTime, int64_t currentFrameAtTime)
override {
145 ObjectInternal::computeAnimation(contextIdx, lastFrameAtTime, currentFrameAtTime);
164 if (objectNode->renderer->needsPreRender() ==
true) {
165 objectNode->renderer->preRender(contextIdx);
223 return ObjectInternal::isEnabled();
232 return ObjectInternal::getBoundingBox();
236 return ObjectInternal::getWorldBoundingBox();
240 return ObjectInternal::getEffectColorAdd();
248 return ObjectInternal::getEffectColorMul();
255 inline const string&
getId()
override {
256 return ObjectInternal::getId();
260 return ObjectInternal::isContributesShadows();
268 return ObjectInternal::isReceivesShadows();
276 return ObjectInternal::isPickable();
280 ObjectInternal::setPickable(
pickable);
336 return ObjectBase::getTransformMatrix();
419 this->reflectionEnvironmentMappingPosition.
set(0.0f, 0.0f, 0.0f);
const Vector3 & getLookFrom() const
Color 4 definition class.
static float getAnimationComputationReduction2Distance()
static STATIC_DLL_IMPEXT AnimationProcessingTarget animationProcessingTarget
static float getAnimationComputationReduction1Distance()
TDME2 engine entity shader parameters.
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
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...
Imposter object to be used with engine class.
LOD object + imposter to be used with engine class.
LOD object to be used with engine class.
Object particle system entity to be used with engine class.
Object render group for static objects that might be animated by shaders.
Object to be used with engine class.
bool animationComputingLODEnabled
BoundingBox * getBoundingBox() override
Engine::EffectPass excludeFromEffectPass
const Vector3 & getTranslation() const override
const string & getReflectionEnvironmentMappingId()
const Transform & getTransform() const override
RenderPass getRenderPass() const override
void dispose() override
Dispose this entity.
void setShader(const string &id)
Set shader.
void setTranslation(const Vector3 &translation) override
Set translation.
bool hasReflectionEnvironmentMappingPosition()
void removeRotation(const int idx) override
Remove rotation.
Rotation & getRotation(const int idx) override
Get rotation at given index.
const int getRotationCount() const override
const Vector3 & getRotationAxis(const int idx) const override
void initialize() override
Initiates this entity.
bool isReceivesShadows() override
EntityShaderParameters shaderParameters
Engine::EffectPass getExcludeFromEffectPass() const
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.
Object(const string &id, Model *model, int instances)
Public constructor.
bool requiresForwardShading
void unsetReflectionEnvironmentMappingPosition()
Unset reflection environment mapping position.
void setPickable(bool pickable) override
Set this entity pickable.
bool reflectionEnvironmentMappingPositionSet
friend class SkinnedObjectRenderGroup
void setEffectColorMul(const Color4 &effectColorMul) override
Set effect color that will be multiplied with fragment color.
static constexpr int UNIQUEMODELID_NONE
const ShaderParameter getShaderParameter(const string ¶meterName)
Returns shader parameter for given parameter name, if the value does not exist, the default will be r...
bool isPickable() override
void setUniqueModelId(int uniqueModelId)
Set unique model id.
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
void setTransform(const Transform &transform) override
Set transform.
bool isAnimationComputationLODEnabled() const
uint8_t getUniqueShaderId()
void setRequiresPreRender(bool requiresPreRender)
Set up if this object instance needs a preRender() call each frame.
void setReflectionEnvironmentMappingId(const string &reflectionEnvironmentMappingId)
const Quaternion & getRotationsQuaternion() const override
void setScale(const Vector3 &scale) override
Set scale.
bool isRequiringAnimationComputation()
bool isDisableDepthTest() const
bool isContributesShadows() override
string reflectionEnvironmentMappingId
Vector3 reflectionEnvironmentMappingPosition
const Vector3 & getScale() const override
const float getRotationAngle(const int idx) const override
void setReflectionEnvironmentMappingPosition(const Vector3 &reflectionEnvironmentMappingPosition)
Set reflection environment mapping position.
void computeAnimation(int contextIdx, int64_t lastFrameAtTime, int64_t currentFrameAtTime) override
Compute animations.
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 setExcludeEffectPass(Engine::EffectPass effectPass)
Set exclude from effect pass.
void setAnimationComputationLODEnabled(bool animationComputationLODEnabled)
Set transform computing LOD enabled.
void setEnabled(bool enabled) override
Enable/disable rendering.
bool isRequiringForwardShading()
const Transform & getParentTransform() const override
const Matrix4x4 & getTransformMatrix() const override
const string & getId() override
EntityType getEntityType() override
void setContributesShadows(bool contributesShadows) override
Enable/disable contributes shadows.
bool isRequiringPreRender()
void setRotationAxis(const int idx, const Vector3 &axis) override
Set rotation axis.
void preRender(int contextIdx)
Pre render step like uploading VBOs and such.
bool isFrustumCulling() override
bool isEnabled() override
void computeAnimations(int contextIdx)
Compute animations.
int64_t frameTransformLast
int64_t timeTransformLast
const Vector3 & getReflectionEnvironmentMappingPosition()
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
void setDisableDepthTest(bool disableDepthTest)
Set disable depth test.
Shader parameter model class.
int64_t getCurrentFrameAtTime()
Representation of a 3D model.
bool hasBoundingBoxUpdate()
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.
Transform parentTransform
vector< Transform > instanceTransform
vector< ObjectNode * > objectNodes
void updateBoundingBox()
Update bounding volume.
Object node VBO renderer.
Object node specifically for rendering.
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,...
Vector3 & set(float x, float y, float z)
Sets this vector3 by its components.
#define FORBID_CLASS_COPY(CLASS)