#pragma once #include #include #include #include "linalg.h" #include "memory.h" class Geometry { public: typedef std::pair > ChildItem; typedef std::list ChildList; Geometry() : convexity(1) {} virtual ~Geometry() {} virtual size_t memsize() const = 0; virtual BoundingBox getBoundingBox() const = 0; virtual std::string dump() const = 0; virtual unsigned int getDimension() const = 0; virtual bool isEmpty() const = 0; virtual Geometry *copy() const = 0; unsigned int getConvexity() const { return convexity; } void setConvexity(int c) { this->convexity = c; } protected: int convexity; };