#pragma once #ifndef __Scene__ #define __Scene__ #include #include #include #define EIGEN_DONT_ALIGN_STATICALLY #include #include "boxTriCollision.h" class Cloth; class Obstacles; class Constraints; class Shape; class GeneralizedSolver; #ifdef EOLC_ONLINE class MatrixStack; class Program; #endif // EOLC_ONLINE class Scene { public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW Scene(); virtual ~Scene() {}; void load(const std::string &RESOURCE_DIR); void init(const bool online, const bool exportObjs); void reset(); void step(); void partialStep(); #ifdef EOLC_ONLINE void draw(std::shared_ptr MV, const std::shared_ptr p) const; void drawSimple(std::shared_ptr MV, const std::shared_ptr p) const; #endif // EOLC_ONLINE double h; Eigen::Vector3d grav; bool EOLon; int part; std::shared_ptr GS; std::shared_ptr cloth; std::shared_ptr obs; std::vector > cls; private: double t; }; #endif