Skip to content

File Mesh.h

File List > include > mesh > Mesh.h

Go to the documentation of this file

#pragma once

#include "Face.h"
#include "mesh/Vertex.h"
#include <vector>

namespace Argos {

class Mesh {
private:
  std::vector<Vector3D<double>> vertices;
  std::vector<Face> faces;

public:
  Mesh() = default;

  Mesh(const std::vector<Vector3D<double>>& vertices, const std::vector<Face>& faces);

  Mesh(const Mesh &other);

  int vertexCount() const;

  int faceCount() const;

  bool isEmpty() const;

  Vertex getVertex(int i) const;

  std::vector<Vertex> getFace(int i) const;

  const std::vector<Vector3D<double>>& getVertices() const;

  std::vector<Vector3D<double>>& getVertices();

  const std::vector<Face>& getFaces() const;

  std::vector<Face>& getFaces();
};

} // namespace Argos