Commit e8a59d8c authored by chili's avatar chili
Browse files

applied transform before node transform

parent e7e22eda
......@@ -66,20 +66,20 @@ DirectX::XMMATRIX Mesh::GetTransformXM() const noexcept
// Node
Node::Node( const std::string& name,std::vector<Mesh*> meshPtrs,const DirectX::XMMATRIX& transform ) noxnd
Node::Node( const std::string& name,std::vector<Mesh*> meshPtrs,const DirectX::XMMATRIX& transform_in ) noxnd
:
meshPtrs( std::move( meshPtrs ) ),
name( name )
{
dx::XMStoreFloat4x4( &baseTransform,transform );
dx::XMStoreFloat4x4( &transform,transform_in );
dx::XMStoreFloat4x4( &appliedTransform,dx::XMMatrixIdentity() );
}
void Node::Draw( Graphics& gfx,DirectX::FXMMATRIX accumulatedTransform ) const noxnd
{
const auto built =
dx::XMLoadFloat4x4( &baseTransform ) *
dx::XMLoadFloat4x4( &appliedTransform ) *
const auto built =
dx::XMLoadFloat4x4( &appliedTransform ) *
dx::XMLoadFloat4x4( &transform ) *
accumulatedTransform;
for( const auto pm : meshPtrs )
{
......
......@@ -45,7 +45,7 @@ private:
std::string name;
std::vector<std::unique_ptr<Node>> childPtrs;
std::vector<Mesh*> meshPtrs;
DirectX::XMFLOAT4X4 baseTransform;
DirectX::XMFLOAT4X4 transform;
DirectX::XMFLOAT4X4 appliedTransform;
};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment