Program Listing for File hexagon.h

Return to documentation for file (src/primitives/hexagon.h)

#pragma once

#include <vector>                // for vector

#include "primitives/polygon.h"  // for RegularPolygon
#include "tal/vector3.h"         // for Vector3

namespace sota {

class Hexagon : public RegularPolygon {
 public:
  Hexagon(Vector3 center, std::vector<Vector3> points, Vector3 normal) : RegularPolygon(center, points, normal) {}
  Hexagon(Vector3 center, Vector3 normal) : RegularPolygon(center, normal) {}
  Hexagon(const Hexagon& other) = default;
  Hexagon(Hexagon&& other) = default;
  Hexagon& operator=(const Hexagon& rhs) = default;
  Hexagon& operator=(Hexagon&& rhs) = default;

  void check() const override;
  static std::vector<Vector3> calculate_points(Vector3 center, float diameter);
};

Hexagon make_hexagon_at_position(Vector3 position, float diameter);
Hexagon make_hexagon_at_origin(float diameter);
Hexagon make_unit_hexagon();

}  // namespace sota