#ifndef WIREFRAME_HPP
#define WIREFRAME_HPP

#include <vector>
#include "Point.hpp"
#include "Triangle.hpp"
#include "Convex.hpp"
#include "Box.hpp"

class Wireframe
{
    public:
        Wireframe();
        Wireframe(const std::vector<Point>& Points);
        ~Wireframe();

        Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, double PointGenAccuracy) const;
        Point GetProfileHybridRandomPoint() const;
        Point GetProfileHybridRandomPoint(double PointGenAccuracy) const;
        Box GetBox() const;
        Convex GetConvex() const;
        bool Contains(const Point& P) const;
        operator bool() const;
        std::vector<Point> Points;
        std::vector<Triangle> Triangles;
        Convex C;
        Box B;
};

#endif // WIREFRAME_HPP
