Skip to content

File SkeletonSetup.cpp

File List > api > cppSDK > SDKBase > SkeletonSetup.cpp

Go to the documentation of this file

//Used for Wstring conversion
#include <locale>
#include <codecvt>
#include <string>

#include "ManusSDKTypes.h"
#include "ManusSDKTypeInitializers.h"
#include "ManusSDKExtendedTypes.h"
#include "ManusSDKExtendedTypeInitializers.h"

#include <vector>

#include "SkeletonSetup.hpp"

namespace ManusSDK
{
    SkeletonSetup::SkeletonSetup()
    {
        info = new SkeletonSetupInfo();
        nodes = std::vector<NodeSetup*>();
        chains = std::vector<ChainSetup*>();
        colliders = std::vector<ColliderSetup*>();
        meshes = std::vector<MeshSetup*>();
    }

    SkeletonSetup::SkeletonSetup(const SkeletonSetupInfo& p_SetupInfo)
    {
        info = new SkeletonSetupInfo();
        *info = p_SetupInfo;
        nodes = std::vector<NodeSetup*>();
        chains = std::vector<ChainSetup*>();
        colliders = std::vector<ColliderSetup*>();
        meshes = std::vector<MeshSetup*>();
    }

    SkeletonSetup::~SkeletonSetup()
    {
        delete info;
        ClearNodes();
        ClearChains();
        ClearColliders();
        ClearMeshes();
    }

    void SkeletonSetup::ClearNodes()
    {
        for (size_t i = 0; i < nodes.size(); i++)
        {
            delete nodes[i];
        }
        nodes.clear();
    }

    void SkeletonSetup::ClearChains()
    {
        for (size_t i = 0; i < chains.size(); i++)
        {
            delete chains[i];
        }
        chains.clear();
    }

    void SkeletonSetup::ClearColliders()
    {
        for (size_t i = 0; i < colliders.size(); i++)
        {
            delete colliders[i];
        }
        colliders.clear();
    }

    void SkeletonSetup::ClearMeshes()
    {
        for (size_t i = 0; i < meshes.size(); i++)
        {
            delete meshes[i];
        }
        meshes.clear();
    }

    // Mesh
    MeshSetup::MeshSetup()
    {
        nodeID = 0;
        expectedVertexCount = 0;
        expectedTriangleCount = 0;
        vertices = std::vector<Vertex*>();
        triangles = std::vector<Triangle*>();
    }

    MeshSetup::MeshSetup(uint32_t p_NodeId) 
    {
        nodeID = p_NodeId;
        expectedVertexCount = 0;
        expectedTriangleCount = 0;
        vertices = std::vector<Vertex*>();
        triangles = std::vector<Triangle*>();
    }

    MeshSetup::~MeshSetup()
    {
        ClearVertices();
        ClearTriangles();
    }

    void MeshSetup::ClearVertices()
    {
        for (size_t i = 0; i < vertices.size(); i++)
        {
            delete vertices[i];
        }
        vertices.clear();
    }

    void MeshSetup::ClearTriangles()
    {
        for (size_t i = 0; i < triangles.size(); i++)
        {
            delete triangles[i];
        }
        triangles.clear();
    }

} // namespace ManusSDK