Visual Computing Library
devel
|
The Face type used by the TriMeshT class. More...
#include <vclib/meshes/tri_mesh.h>
Additional Inherited Members | |
![]() | |
using | ConstVertexIndexIterator = Base::ConstIndexIterator |
using | ConstVertexIterator = Base::ConstIterator |
using | VertexIterator = Base::Iterator |
using | VertexType = Vertex |
Expose the type of the Vertex. | |
![]() | |
using | NormalType = P |
Expose the type of the Normal. | |
![]() | |
using | ColorType = vcl::Color |
Expose the type of the Color. | |
![]() | |
using | QualityType = Scalar |
Exposes the scalar used as Quality type. | |
![]() | |
using | AdjacentFaceIterator = Base::Iterator |
using | AdjacentFaceType = Face |
Expose the type of the Adjacent Face. | |
using | ConstAdjacentFaceIndexIterator = Base::ConstIndexIterator |
using | ConstAdjacentFaceIterator = Base::ConstIterator |
![]() | |
using | ConstWedgeTexCoordsIterator = Vector< vcl::TexCoord< Scalar >, N >::ConstIterator |
using | WedgeTexCoordsIterator = Vector< vcl::TexCoord< Scalar >, N >::Iterator |
using | WedgeTexCoordType = vcl::TexCoord< Scalar > |
Expose the type of the Texture Coordinate. | |
![]() | |
using | VertexType = typename VRefs::VertexType |
![]() | |
using | Components = TypeWrapper< Comps... > |
Components is an alias to a vcl::TypeWrapper that wraps all the Components from which the Element inherits (Comps). | |
using | ParentMeshType = MeshType |
![]() | |
using | ParentMeshType = MeshType |
![]() | |
bool | deleted () const |
Returns whether the current Triangle is deleted or not. | |
BitProxy< FT > | edgeFaux (uint i) |
Accesses the 'faux' bit of the i-th edge of the triangle, returning a reference to it. | |
bool | edgeFaux (uint i) const |
Returns whether the i-th edge of the current triangle is faux or not. | |
BitProxy< FT > | edgeOnBorder (uint i) |
Accesses the 'onBorder' bit of the i-th edge of the triangle, returning a reference to it. | |
bool | edgeOnBorder (uint i) const |
Returns whether the i-th edge of the current triangle is on border or not. | |
BitProxy< FT > | edgeSelected (uint i) |
Accesses the 'selected' bit of the i-th edge of the triangle, returning a reference to it. | |
bool | edgeSelected (uint i) const |
Returns whether the i-th edge of the current triangle is selected or not. | |
BitProxy< FT > | edgeVisited (uint i) |
Accesses the 'visited' bit of the i-th edge of the triangle, returning a reference to it. | |
bool | edgeVisited (uint i) const |
Returns whether the i-th edge of the current triangle is visited or not. | |
int | exportFlagsToVCGFormat () const |
Returns the bit flags of this element in the format of the VCG library. | |
void | importFlagsFromVCGFormat (int f) |
Sets all the flags of this element to the values contained in the integer input parameter, that represents the bit flags of the VCG library. | |
bool | onBorder () const |
Returns whether the current Triangle is on border or not, by checking whether at least one of its three edges are on border or not. | |
void | resetBitFlags () |
Unsets all the flags of this Triangle and sets them to false , except the deleted flag, which needs to be manually reset. | |
BitProxy< FT > | selected () |
Accesses the 'selected' bit of this Triangle, returning a reference to it. | |
bool | selected () const |
Returns whether the current Triangle is selected or not. | |
TriangleBitFlags () | |
Initializes the bits to false . | |
BitProxy< FT > | userBit (uint bit) |
Returns the boolean value of the user bit of this Triangle given in input. The bit is checked to be less than the total number of assigned user bits, which in this class is 4. | |
bool | userBit (uint bit) const |
Returns a reference to the value of the user bit of this Triangle given in input. The bit is checked to be less than the total number of assigned user bits, which in this class is 4. | |
BitProxy< FT > | visited () |
Accesses the 'visited' bit of this Triangle, returning a reference to it. | |
bool | visited () const |
Returns whether the current Triangle has been visited or not. | |
![]() | |
void | clearVertices () |
Clears the container of vertices, making it empty. | |
bool | containsVertex (const Vertex *v) const |
Returns true if the container of vertices contains the given vertex, false otherwise. | |
bool | containsVertex (uint vi) const |
Returns true if the container of vertices contains the vertex with the given index, false otherwise. | |
void | eraseVertex (uint i) |
Removes the vertex at the given position from the container. | |
uint | indexOfEdge (const Vertex *v1, const Vertex *v2) const |
Returns the index of the given edge composed of the two vertices v1 and v2 in the container of the element. | |
uint | indexOfEdge (uint vi1, uint vi2) const |
Returns the index of the edge composed of the two vertices with the given indices in the container of the element. | |
uint | indexOfVertex (const Vertex *v) const |
Returns the index of the given vertex in the container of the element. If the given vertex is not in the container, returns UINT_NULL. | |
uint | indexOfVertex (uint vi) const |
Returns the index of the vertex with the given index in the container of the element. If the vertex with the given index is not in the container, returns UINT_NULL. | |
void | insertVertex (uint i, uint vi) |
Inserts the vertex with the given index in the container at the given position. | |
void | insertVertex (uint i, Vertex *v) |
Inserts the given vertex in the container at the given position. | |
void | pushVertex (uint vi) |
Pushes in the back of the container the given vertex. | |
void | pushVertex (Vertex *v) |
Pushes in the back of the container the given vertex. | |
void | resizeVertices (uint n) |
Resize the container of the vertices to the given size. | |
void | setVertex (ConstVertexIndexIterator it, uint vi) |
Sets the vertex pointed by the iterator. | |
void | setVertex (ConstVertexIndexIterator it, Vertex *v) |
Sets the vertex pointed by the iterator. | |
void | setVertex (ConstVertexIterator it, uint vi) |
Sets the vertex pointed by the iterator. | |
void | setVertex (ConstVertexIterator it, Vertex *v) |
Sets the vertex pointed by the iterator. | |
void | setVertex (uint i, uint vi) |
Sets the i-th vertex of the element. | |
void | setVertex (uint i, Vertex *v) |
Sets the i-th vertex of the element. | |
void | setVertexMod (int i, uint vi) |
Sets the i-th vertex of the element, but using as index the module between i and the number of vertices. You can use this function if you need to set the "next vertex after position k", without check if it is less than the number of vertices. Works also for negative numbers: | |
void | setVertexMod (int i, Vertex *v) |
Sets the i-th vertex of the element, but using as index the module between i and the number of vertices. You can use this function if you need to set the "next vertex after position k", without check if it is less than the number of vertices. Works also for negative numbers: | |
template<Range Rng> requires InputRange<Rng, Vertex*> | |
void | setVertices (Rng &&r) |
Sets all the vertex pointers of the element. | |
template<Range Rng> requires InputRange<Rng, uint> | |
void | setVertices (Rng &&r) |
Sets all the vertex pointers of the element. | |
Vertex * | vertex (uint i) |
Returns the pointer to the i-th vertex of the element. | |
const Vertex * | vertex (uint i) const |
Returns a const pointer to the i-th vertex of the element. | |
VertexIterator | vertexBegin () |
Returns an iterator to the first vertex in the container of this component. | |
ConstVertexIterator | vertexBegin () const |
Returns a const iterator to the first vertex in the container of this component. | |
VertexIterator | vertexEnd () |
Returns an iterator to the end of the container of this component. | |
ConstVertexIterator | vertexEnd () const |
Returns a const iterator to the end of the container of this component. | |
uint | vertexIndex (uint i) const |
Returns the index in the vertex container of the i-th vertex of the element. | |
ConstVertexIndexIterator | vertexIndexBegin () const |
Returns an iterator to the first vertex index in the container of this component. | |
ConstVertexIndexIterator | vertexIndexEnd () const |
Returns an iterator to the end of the container of this component. | |
uint | vertexIndexMod (int i) const |
Returns the index in the vertex container of the i-th vertex of the element, but using as index the module between i and the number of vertices. You can use this function if you need to get the "index of the
vertex next to position k", without check if it is less than the number of vertices. Works also for negative numbers: | |
View< ConstVertexIndexIterator > | vertexIndices () const |
Returns a lightweight view object that stores the begin and end iterators of the container of vertex indices of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
Vertex * | vertexMod (int i) |
Returns a reference of the pointer to the i-th vertex of the element, but using as index the module between i and the number of vertices. You can use this function if you need to get the "next vertex
after position k", without check if it is less than the number of vertices. Works also for negative numbers: | |
const Vertex * | vertexMod (int i) const |
Same of vertexMod, but returns a const pointer to the vertex. | |
uint | vertexNumber () const |
Returns the number of vertices of the element. | |
VertexReferences ()=default | |
Empty constructor. | |
View< VertexIterator > | vertices () |
Returns a lightweight view object that stores the begin and end iterators of the container of vertices of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
View< ConstVertexIterator > | vertices () const |
Returns a lightweight const view object that stores the begin and end iterators of the container of vertices of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
![]() | |
P & | normal () |
Returns a reference of the normal of the element. | |
const P & | normal () const |
Returns a const reference of the normal of the element. | |
Normal ()=default | |
Initilizes the Normal to (0, 0, 0). | |
![]() | |
vcl::Color & | color () |
Returns a reference pf the color of the element. | |
const vcl::Color & | color () const |
Returns a const reference of the color of the element. | |
Color ()=default | |
Initilizes the color to black (with alpha 255). | |
![]() | |
QualityType & | quality () |
Returns a reference of the quality of the element. | |
const QualityType & | quality () const |
Returns a const reference of the quality of the element. | |
Quality ()=default | |
Initilizes the Quality value to 0. | |
![]() | |
void | __adjacentFaces () const |
AdjacentFaces ()=default | |
Empty constructor. | |
Face * | adjFace (uint i) |
Returns the pointer to the i-th adjacent face of this element. | |
const Face * | adjFace (uint i) const |
Returns a const pointer to the i-th adjacent face of this element. | |
AdjacentFaceIterator | adjFaceBegin () |
Returns an iterator to the first adjacent face in the container of this component. | |
ConstAdjacentFaceIterator | adjFaceBegin () const |
Returns a const iterator to the first adjacent face in the container of this component. | |
AdjacentFaceIterator | adjFaceEnd () |
Returns an iterator to the end of the container of this component. | |
ConstAdjacentFaceIterator | adjFaceEnd () const |
Returns a const iterator to the end of the container of this component. | |
uint | adjFaceIndex (uint i) const |
Returns the index in the face container of the i-th adjacent face of the element. | |
ConstAdjacentFaceIndexIterator | adjFaceIndexBegin () const |
Returns an iterator to the first adjacent face index in the container of this component. | |
ConstAdjacentFaceIndexIterator | adjFaceIndexEnd () const |
Returns an iterator to the end of the container of this component. | |
uint | adjFaceIndexMod (int i) const |
Returns the index in the face container of the i-th adjacent face of the element, but using as index the module between i and the number of adjacent faces. You can use this function if you need to get the "index
of the adjacent face next to position k", without check if it is less than the number of adjacent faces. Works also for negative numbers: | |
View< ConstAdjacentFaceIndexIterator > | adjFaceIndices () const |
Returns a lightweight view object that stores the begin and end iterators of the container of adjacent face indices of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
Face * | adjFaceMod (int i) |
Returns the pointer to the i-th adjacent face of this element but using as index the module between i and the number of adjacent faces. | |
const Face * | adjFaceMod (int i) const |
Same of adjFaceMod, but returns a const Pointer to the adjacent face. | |
View< AdjacentFaceIterator > | adjFaces () |
Returns a lightweight view object that stores the begin and end iterators of the container of adjacent faces of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
View< ConstAdjacentFaceIterator > | adjFaces () const |
Returns a lightweight const view object that stores the begin and end iterators of the container of adjacent faces of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
uint | adjFacesNumber () const |
Returns the number of adjacent faces of this element. | |
void | clearAdjFaces () |
Clears the container of adjacent faces, making it empty. | |
bool | containsAdjFace (const Face *f) const |
Returns true if the container of adjacent faces contains the given face, false otherwise. | |
bool | containsAdjFace (uint fi) const |
Returns true if the container of adjacent faces contains the face with the given index, false otherwise. | |
void | eraseAdjFace (uint i) |
Removes the adjacent face at the given position from the container. | |
uint | indexOfAdjFace (const Face *f) const |
Returns the index of the given adjacent face in the container of this element. If the given adjacent face is not in the container, returns UINT_NULL. | |
uint | indexOfAdjFace (uint fi) const |
Returns the index of the adjacent face with the given index in the container of this element. If the adjacent face with the given index is not in the container, returns UINT_NULL. | |
void | insertAdjFace (uint i, Face *f) |
Inserts the given adjacent face in the container at the given position. | |
void | insertAdjFace (uint i, uint fi) |
Inserts the adjacent face with the given index in the container at the given position. | |
void | pushAdjFace (Face *f) |
Pushes in the back of the container the given adjacent face. | |
void | pushAdjFace (uint fi) |
Pushes in the back of the container the given adjacent face. | |
void | resizeAdjFaces (uint n) |
Resize the container of the adjacent faces to the given size. | |
void | setAdjFace (ConstAdjacentFaceIndexIterator it, Face *f) |
Sets the adjacent face pointed by the iterator. | |
void | setAdjFace (ConstAdjacentFaceIndexIterator it, uint fi) |
Sets the adjacent face pointed by the iterator. | |
void | setAdjFace (ConstAdjacentFaceIterator it, Face *f) |
Sets the adjacent face pointed by the iterator. | |
void | setAdjFace (ConstAdjacentFaceIterator it, uint fi) |
Sets the adjacent face pointed by the iterator. | |
void | setAdjFace (uint i, Face *f) |
Sets the i-th adjacent face of this element. | |
void | setAdjFace (uint i, uint fi) |
Sets the i-th adjacent face of the element. | |
void | setAdjFaceMod (int i, Face *f) |
Sets the i-th adjacent face of the element, but using as index the module between i and the number of adjacent faces. You can use this function if you need to set the "next adjacent face after position k", without check if it is less than the number of adjacent faces. Works also for negative numbers: | |
void | setAdjFaceMod (int i, uint fi) |
Sets the i-th adjacent face of the element, but using as index the module between i and the number of adjacent faces. You can use this function if you need to set the "next adjacent face after position k", without check if it is less than the number of adjacent faces. Works also for negative numbers: | |
template<Range Rng> requires InputRange<Rng, Face*> | |
void | setAdjFaces (Rng &&r) |
Sets all the adjacent faces of this element. | |
template<Range Rng> requires InputRange<Rng, uint> | |
void | setAdjFaces (Rng &&r) |
Sets all the adjacent faces of this element. | |
![]() | |
void | __wedgeTexCoords () const |
void | setWedgeTexCoord (uint i, const vcl::TexCoord< Scalar > &t) |
Sets the i-th wedge texcoord of the element. | |
template<Range Rng> requires InputRange<Rng, vcl::TexCoord<Scalar>> | |
void | setWedgeTexCoords (Rng &&r) |
Sets all the wedge texcoords of the element. | |
ushort & | textureIndex () |
Returns a reference to the texture index used to identify the texture on which the wedge texture coordinates are mapped. | |
ushort | textureIndex () const |
Returns the texture index used to identify the texture on which the wedge texture coordinates are mapped. | |
vcl::TexCoord< Scalar > & | wedgeTexCoord (uint i) |
Returns a reference to the i-th wedge texcoord of the element. | |
const vcl::TexCoord< Scalar > & | wedgeTexCoord (uint i) const |
Returns a const reference to the i-th wedge texcoord of the element. | |
WedgeTexCoordsIterator | wedgeTexCoordBegin () |
Returns an iterator to the first wedge texcoord in the container of this component. | |
ConstWedgeTexCoordsIterator | wedgeTexCoordBegin () const |
Returns a const iterator to the first wedge texcoord in the container of this component. | |
WedgeTexCoordsIterator | wedgeTexCoordEnd () |
Returns an iterator to the end of the container of this component. | |
ConstWedgeTexCoordsIterator | wedgeTexCoordEnd () const |
Returns a const iterator to the end of the container of this component. | |
vcl::TexCoord< Scalar > & | wedgeTexCoordMod (int i) |
Returns a reference to the i-th wedge texcoord of the element but using as index the module between i and the number of vertices of the element. You can use this function if you need to get the "next wedge
texcoord after position k", without check if it is less than the number of vertices. Works also for negative numbers: | |
const vcl::TexCoord< Scalar > & | wedgeTexCoordMod (int i) const |
Same of wedgeTexCoordMod(int) but returns a const reference. | |
View< WedgeTexCoordsIterator > | wedgeTexCoords () |
Returns a lightweight view object that stores the begin and end iterators of the container of wedge texcoords of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
View< ConstWedgeTexCoordsIterator > | wedgeTexCoords () const |
Returns a lightweight const view object that stores the begin and end iterators of the container of wedge texcoords of the element. The view object exposes the iterators trough the begin() and end() member functions, and therefore the returned object can be used in range-based for loops: | |
WedgeTexCoords ()=default | |
Empty constructor. | |
![]() | |
void | decrementMark () |
Decrements the mark of the current element/mesh by 1. | |
template<typename E > | |
bool | hasSameMark (const E &e) const |
Checks if the current element/mesh has the same mark of the given input element/mesh e . | |
void | incrementMark () |
Increments the mark of the current element/mesh by 1. | |
Mark () | |
Constructor that initializes the mark to 0. | |
int | mark () const |
Returns the value of the mark. | |
void | resetMark () |
Resets the mark to 0. | |
![]() | |
template<typename CompType > requires (!IS_VERTICAL) | |
void | addCustomComponent (const std::string &compName, const CompType &value=CompType()) |
template<typename CompType > | |
CompType & | customComponent (const std::string &compName) |
Returns the reference to the custom component of the given name having the type given as template argument. | |
template<typename CompType > | |
const CompType & | customComponent (const std::string &compName) const |
Returns the const reference to the custom component of the given name having the type given as template argument. | |
template<typename CompType > | |
std::vector< std::string > | customComponentNamesOfType () const |
Returns a std::vector of std::strings containing the names of the custom components of the type given as template argument. | |
CustomComponents ()=default | |
Initilizes an empty container of custom components. | |
std::type_index | customComponentType (const std::string &compName) const |
Returns the std::type_index of the custom component of the given name. | |
void | deleteCustomComponent (const std::string &compName) |
template<typename CompType > requires (!IS_VERTICAL) | |
void | deserializeCustomComponentsOfType (std::istream &is) |
bool | hasCustomComponent (const std::string &compName) const |
Returns true if the element has a custom component with the given name, false otherwise. The type of the custom component is not checked. | |
template<typename CompType > | |
bool | isCustomComponentOfType (const std::string &compName) const |
Returns true if the custom component of the given name is of the type given as template argument, false otherwise. | |
template<typename CompType > requires (!IS_VERTICAL) | |
void | serializeCustomComponentsOfType (std::ostream &os) const |
![]() | |
void | clearVertices () |
void | eraseVertex (uint i) |
Face ()=default | |
Empty constructor. | |
void | importFrom (const ElType &v, bool importRefs=true) |
void | insertVertex (uint i, uint vi) |
void | insertVertex (uint i, VertexType *v) |
void | pushVertex (uint vi) |
void | pushVertex (VertexType *v) |
void | resizeVertices (uint n) |
Resize the number of Vertex Pointers of the Face, taking care of updating also the other components of the Face that are tied to that number. | |
void | setVertices (Rng &&r) |
Sets all the Vertices to the face. | |
void | setVertices (V... args) |
Sets a list of Vertices to the face. | |
![]() | |
template<uint COMP_ID> | |
auto & | component () |
template<uint COMP_ID> | |
const auto & | component () const |
void | deserialize (std::istream &in) |
template<typename ElType > | |
void | importFrom (const ElType &v, bool importRefs=true) |
uint | index () const |
void | serialize (std::ostream &out) const |
![]() | |
ParentMeshPointer & | operator= (const ParentMeshPointer< MeshType > &) |
constexpr MeshType * | parentMesh () |
constexpr const MeshType * | parentMesh () const |
ParentMeshPointer (const ParentMeshPointer< MeshType > &) | |
ParentMeshPointer (ParentMeshPointer< MeshType > &&) | |
![]() | |
static const uint | USER_BITS_NUMBER = sizeof(FT) * 8 - FIRST_USER_BIT |
Static number of bits that can have custom meanings to the user. | |
![]() | |
static const bool | INDEXED = STORE_INDICES |
static const int | VERTEX_NUMBER = Base::SIZE |
![]() | |
static const int | ADJ_FACE_NUMBER = Base::SIZE |
Static size of the container. If the container is dynamic, this value will be negative and you should use the adjFacesNumber() member function. | |
![]() | |
static const int | WEDGE_TEX_COORD_NUMBER = N |
![]() | |
static const uint | COMPONENT_ID = CompId::CUSTOM_COMPONENTS |
The ID of component. | |
![]() | |
static const uint | ELEMENT_ID = ELEM_ID |
![]() | |
using | WedgeTexCoordScalarType = Scalar |
![]() | |
BitProxy< FT > | deletedBit () |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool importRefs=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool importRefs=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | clear () |
void | deserialize (std::istream &is) |
void | erase (uint i) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | insert (uint i, const vcl::TexCoord< Scalar > &t=vcl::TexCoord< Scalar >()) |
void | pushBack (const vcl::TexCoord< Scalar > &t=vcl::TexCoord< Scalar >()) |
void | resize (uint n) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | deserialize (std::istream &is) |
template<typename Element > | |
void | importFrom (const Element &e, bool=true) |
void | serialize (std::ostream &os) const |
![]() | |
void | setParentMesh (void *parentMesh) |
The Face type used by the TriMeshT class.
Scalar | The scalar type used for the mesh. |
I | A boolean flag that indicates whether the mesh uses indices or pointers to store vertices of faces and adjacency information. |