Added the ASSIMP library

Added the files provided for the tutorial
Added the SplitMeshNode and SubMeshNode classes
This commit is contained in:
iDunnoDev
2022-03-18 21:26:31 +00:00
committed by iDunnoDev
parent 6bdfe4569f
commit 65255f1321
105 changed files with 19816 additions and 11 deletions

80
Graphics2/SceneGraph.cpp Normal file
View File

@ -0,0 +1,80 @@
#include "SceneGraph.h"
bool SceneGraph::Initialise()
{
bool currentStatus = true;
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
currentStatus = currentSceneGraphPtr->Initialise();
if (!currentStatus)
{
break;
}
}
return currentStatus;
}
void SceneGraph::Update(FXMMATRIX& currentWorldTransformation)
{
SceneNode::Update(currentWorldTransformation);
XMMATRIX combinedWorldTransform = XMLoadFloat4x4(&_combinedWorldTransformation);
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
currentSceneGraphPtr->Update(combinedWorldTransform);
}
}
void SceneGraph::Render()
{
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
currentSceneGraphPtr->Render();
}
}
void SceneGraph::Shutdown()
{
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
currentSceneGraphPtr->Shutdown();
}
}
void SceneGraph::Add(SceneNodePointer node)
{
_children.push_back(node);
}
void SceneGraph::Remove(SceneNodePointer node)
{
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
if (currentSceneGraphPtr == node)
{
_children.remove(currentSceneGraphPtr);
return;
}
}
}
SceneNodePointer SceneGraph::Find(wstring name)
{
if (_name == name)
{
return shared_from_this();
}
SceneNodePointer foundValue = nullptr;
for (SceneNodePointer& currentSceneGraphPtr : _children)
{
foundValue = currentSceneGraphPtr->Find(name);
if (foundValue != nullptr)
{
break;
}
}
return foundValue;
}