(SceneNode) Added virtual constructor idiom
(Light) Added default constructor Former-commit-id: 591e6a8435d2cea6238e70c0058d381b8d547f3e
This commit is contained in:
parent
1f043b61df
commit
cf12552358
|
|
@ -18,12 +18,15 @@ struct NzLightUniforms;
|
|||
class NAZARA_API NzLight : public NzSceneNode
|
||||
{
|
||||
public:
|
||||
NzLight(nzLightType type);
|
||||
NzLight(nzLightType type = nzLightType_Point);
|
||||
NzLight(const NzLight& light);
|
||||
~NzLight() = default;
|
||||
|
||||
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
|
||||
|
||||
NzLight* Clone() const;
|
||||
NzLight* Create() const;
|
||||
|
||||
void Enable(const NzShader* shader, const NzLightUniforms& uniforms, int offset = 0) const;
|
||||
|
||||
float GetAmbientFactor() const;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,9 @@ class NAZARA_API NzModel : public NzSceneNode
|
|||
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
|
||||
void AdvanceAnimation(float elapsedTime);
|
||||
|
||||
NzModel* Clone() const;
|
||||
NzModel* Create() const;
|
||||
|
||||
void EnableAnimation(bool animation);
|
||||
|
||||
NzAnimation* GetAnimation() const;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ class NAZARA_API NzSceneNode : public NzNode
|
|||
|
||||
virtual void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const = 0;
|
||||
|
||||
// Idiôme "virtual constructor"
|
||||
virtual NzSceneNode* Clone() const = 0;
|
||||
virtual NzSceneNode* Create() const = 0;
|
||||
|
||||
void EnableDrawing(bool drawingEnabled);
|
||||
|
||||
NzVector3f GetBackward() const;
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ class NAZARA_API NzSceneRoot : public NzSceneNode
|
|||
NzSceneRoot(NzScene* scene);
|
||||
virtual ~NzSceneRoot();
|
||||
|
||||
NzSceneRoot* Clone() const;
|
||||
NzSceneRoot* Create() const;
|
||||
|
||||
void MakeBoundingVolume() const override;
|
||||
void Register();
|
||||
void Unregister();
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ class NAZARA_API NzSprite : public NzSceneNode
|
|||
|
||||
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
|
||||
|
||||
NzSprite* Clone() const;
|
||||
NzSprite* Create() const;
|
||||
|
||||
const NzColor& GetColor() const;
|
||||
NzMaterial* GetMaterial() const;
|
||||
nzSceneNodeType GetSceneNodeType() const override;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ class NAZARA_API NzTextSprite : public NzSceneNode, NzAbstractAtlas::Listener
|
|||
|
||||
void Clear();
|
||||
|
||||
NzTextSprite* Clone() const;
|
||||
NzTextSprite* Create() const;
|
||||
|
||||
const NzColor& GetColor() const;
|
||||
NzMaterial* GetMaterial() const;
|
||||
nzSceneNodeType GetSceneNodeType() const override;
|
||||
|
|
|
|||
|
|
@ -47,6 +47,16 @@ void NzLight::AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const
|
|||
renderQueue->AddLight(this);
|
||||
}
|
||||
|
||||
NzLight* NzLight::Clone() const
|
||||
{
|
||||
return new NzLight(*this);
|
||||
}
|
||||
|
||||
NzLight* NzLight::Create() const
|
||||
{
|
||||
return new NzLight;
|
||||
}
|
||||
|
||||
void NzLight::Enable(const NzShader* shader, const NzLightUniforms& uniforms, int offset) const
|
||||
{
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -66,6 +66,16 @@ void NzModel::AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const
|
|||
}
|
||||
}
|
||||
|
||||
NzModel* NzModel::Clone() const
|
||||
{
|
||||
return new NzModel(*this);
|
||||
}
|
||||
|
||||
NzModel* NzModel::Create() const
|
||||
{
|
||||
return new NzModel;
|
||||
}
|
||||
|
||||
NzMaterial* NzModel::GetMaterial(const NzString& subMeshName) const
|
||||
{
|
||||
#if NAZARA_GRAPHICS_SAFE
|
||||
|
|
|
|||
|
|
@ -30,6 +30,18 @@ bool NzSceneRoot::IsDrawable() const
|
|||
return true;
|
||||
}
|
||||
|
||||
NzSceneRoot* NzSceneRoot::Clone() const
|
||||
{
|
||||
NazaraInternalError("SceneNode::Clone() called on SceneRoot");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
NzSceneRoot* NzSceneRoot::Create() const
|
||||
{
|
||||
NazaraInternalError("SceneNode::Create() called on SceneRoot");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void NzSceneRoot::MakeBoundingVolume() const
|
||||
{
|
||||
m_boundingVolume.MakeInfinite();
|
||||
|
|
|
|||
|
|
@ -48,6 +48,16 @@ void NzSprite::AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const
|
|||
renderQueue->AddSprites(m_material, m_vertices, 1);
|
||||
}
|
||||
|
||||
NzSprite* NzSprite::Clone() const
|
||||
{
|
||||
return new NzSprite(*this);
|
||||
}
|
||||
|
||||
NzSprite* NzSprite::Create() const
|
||||
{
|
||||
return new NzSprite;
|
||||
}
|
||||
|
||||
const NzColor& NzSprite::GetColor() const
|
||||
{
|
||||
return m_color;
|
||||
|
|
|
|||
|
|
@ -65,6 +65,16 @@ void NzTextSprite::Clear()
|
|||
m_vertices.clear();
|
||||
}
|
||||
|
||||
NzTextSprite* NzTextSprite::Clone() const
|
||||
{
|
||||
return new NzTextSprite(*this);
|
||||
}
|
||||
|
||||
NzTextSprite* NzTextSprite::Create() const
|
||||
{
|
||||
return new NzTextSprite;
|
||||
}
|
||||
|
||||
const NzColor& NzTextSprite::GetColor() const
|
||||
{
|
||||
return m_color;
|
||||
|
|
|
|||
Loading…
Reference in New Issue