Files
solver/MbDCode/System.h
Aik-Siong Koh 8ca8eb7122 Second commit
2023-04-28 16:29:43 -06:00

35 lines
1.0 KiB
C++

#pragma once
#include <memory>
#include <vector>
#include "Item.h"
#include "Part.h"
#include "Joint.h"
#include "SystemSolver.h"
namespace MbD {
class Part;
class SystemSolver;
class System : public Item
{
//ToDo: Needed members admSystem namedItems mbdTime parts jointsMotions forcesTorques sensors variables hasChanged mbdSystemSolver
public:
static System& getInstance() {
//https://medium.com/@caglayandokme/further-enhancing-the-singleton-pattern-in-c-8278b02b1ac7
static System singleInstance; // Block-scoped static Singleton instance
return singleInstance;
};
std::vector<std::shared_ptr<Part>> parts;
std::vector<std::shared_ptr<Joint>> jointsMotions;
bool hasChanged = false;
std::shared_ptr<SystemSolver> systemSolver;
void addPart(std::shared_ptr<Part> part);
private:
System();
//System() = default; // Private constructor
System(const System&) = delete;
System& operator=(const System&) = delete; // Deleted copy assignment
~System() = default; // Private destructor
};
}