#pragma once #ifndef __Obstacles__ #define __Obstacles__ #define EIGEN_DONT_ALIGN_STATICALLY #include #include #include class Points; class Box; class Shape; #ifdef EOLC_ONLINE class MatrixStack; class Program; #endif // EOLC_ONLINE class Obstacles { public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW Obstacles(); virtual ~Obstacles() {}; int num_boxes; double cdthreshold; std::shared_ptr points; std::vector > boxes; std::vector > shapes; void load(const std::string &RESOURCE_DIR); void step(double h); #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; void init(); #endif // EOLC_ONLINE private: }; #endif