File Polyhedron.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class Polyhedron
#include <Acts/Geometry/Polyhedron.hpp>

Struct which contains a cartesian approximation for any surface type.

It contains a list of cartesian vertices in the global frame, and additionally a list of lists of indices which indicate which vertices form a face. Each entry in faces is a face, which is in turn a list of vertices that need to be connected to form a face. This allows the objString method to produce a ready-to-go obj output.

Public Types

using FaceType = std::vector<size_t>

Public Functions

Polyhedron() = default

Default constructor.

inline Polyhedron(const std::vector<Vector3> &verticesIn, const std::vector<FaceType> &facesIn, const std::vector<FaceType> &triangularMeshIn, bool isExact = true)

Default constructor from a vector of vertices and a vector of faces.

Note

This creates copies of the input vectors

Parameters
  • verticesIn – The 3D global vertices that make up the object

  • facesIn – List of lists of indices for faces.

  • triangularMeshIn – List of lists of indices for a triangular mesh

  • isExact – A dedicated flag if this is exact or not

Extent extent(const Transform3 &transform = Transform3::Identity()) const

Maximum extent of the polyhedron in space.

Parameters

transform – An (optional) transform to apply to the vertices for estimation the extent with respect to a given coordinate frame

Returns

ranges that describe the space taken by this surface

void merge(const Polyhedron &other)

Merge another Polyhedron into this one.

Parameters

other – is the source representation

void move(const Transform3 &transform)

Move the polyhedron with a Transfrom3D.

Parameters

transform – The additional transform applied

Public Members

bool exact = true

Is this an exact representation (approximating curved spaces)

std::vector<FaceType> faces

List of faces connecting the vertices.

each face is a list of vertices v corresponding to the vertex vector above

std::vector<FaceType> triangularMesh

List of faces connecting the vertices.

each face is a list of vertices v

  • in this case restricted to a triangular representation

std::vector<Vector3> vertices

List of 3D vertices as vectors.