### Install OpenVolumeMesh Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command installs the compiled OpenVolumeMesh library and its header files to the system, usually requiring superuser privileges. ```bash sudo make install ``` -------------------------------- ### Build Specific Example Target Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command builds a specific example target named 'simple_mesh' defined within the OpenVolumeMesh CMake configuration. ```bash make simple_mesh ``` -------------------------------- ### OpenVolumeMesh Simple Example ASCII File Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/file_format An example demonstrating the structure of a simple OpenVolumeMesh ASCII file, including vertices, edges, faces, and properties. ```plaintext OVM ASCII Vertices 8 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0 1.0 1.0 -1.0 1.0 1.0 Vertex_Property "Vertex Weights" float 1.363 6.334 2.766 8.348 4.214 2.136 7.114 0.651 Edges 12 0 1 1 2 2 3 3 0 4 5 5 6 6 7 7 4 0 4 1 5 2 6 3 7 Edge_Property "Edge Tag" bool 1 1 0 1 1 0 0 1 0 0 1 1 Faces 6 4 0 2 4 6 4 8 10 12 14 4 18 10 21 3 4 16 15 23 6 4 20 12 23 5 4 0 18 9 17 Face_Property "Face Selection" bool 1 1 0 1 1 0 HalfFace_Property "HalfFace Constraints" double 1.22354 0.11698 1.83562 0.19378 0.23567 1.23565 1.23567 0.95874 0.43532 2.22457 0.10957 1.09758 Polyhedra 1 6 1 2 5 6 9 10 ``` -------------------------------- ### Build OpenVolumeMesh Documentation Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command triggers the generation of the project's documentation, typically using Doxygen, after the library has been built. ```bash make doc ``` -------------------------------- ### Clone OpenVolumeMesh Repository Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command clones the latest revision of the OpenVolumeMesh project from its GitLab repository using Git. ```bash git clone https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh.git ``` -------------------------------- ### Get Incidence Information (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Retrieves information about element incidences. This includes getting the valence of a cell (number of incident faces), and finding the halfface adjacent to a given halfface within the same cell, or the cell incident to a halfface. ```cpp unsigned int | valence (const CellHandle &_ch) const HalfFaceHandle | adjacent_halfface_in_cell (const HalfFaceHandle &_halfFaceHandle, const HalfEdgeHandle &_halfEdgeHandle) const CellHandle | incident_cell (const HalfFaceHandle &_halfFaceHandle) const ``` -------------------------------- ### OpenVolumeMesh::PropertyPtr Constructor Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1VertexPropertyT-members Shows the constructor for OpenVolumeMesh::PropertyPtr, which initializes the property pointer with resource management details. ```cpp PropertyPtr(OpenVolumeMeshPropertyT< T > *_ptr, ResourceManager &_resMan, VertexPropHandle_handle)| OpenVolumeMesh::PropertyPtr< OpenVolumeMeshPropertyT< T >, VertexPropHandle >| ``` -------------------------------- ### Get Half Edge Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Retrieves the edge corresponding to a given half-edge handle. ```APIDOC ## OpenVolumeMesh::TopologyKernel::halfedge ### Description Gets the edge that corresponds to the given half-edge handle. If the direct edge is not available, it returns the opposite half-edge via the `opposite()` function. ### Method GET ### Endpoint /websites/graphics_rwth-aachen_de/media/openvolumemesh/static/openvolumemesh-doc-latest ### Parameters #### Path Parameters - **__halfEdgeHandle_** (HalfEdgeHandle) - Required - The handle of the half-edge for which to retrieve the corresponding edge. ### Response #### Success Response (200) - **OpenVolumeMeshEdge** - The edge corresponding to the provided half-edge handle. #### Response Example ```json { "OpenVolumeMeshEdge": { "edgeData": "..." } } ``` ``` -------------------------------- ### OpenVolumeMeshFace Class Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1OpenVolumeMeshFace Documentation for the OpenVolumeMeshFace class, including its constructor and member functions. ```APIDOC ## OpenVolumeMeshFace Class ### Description Represents a face in the OpenVolumeMesh structure. It stores a collection of half-edges associated with the face. ### Constructor ```cpp OpenVolumeMeshFace(const std::vector< HalfEdgeHandle > &_halfedges) ``` ### Member Functions #### Public Member Functions - **halfedges** () - Returns a constant reference to the vector of half-edges associated with the face. - **Type**: `const std::vector< HalfEdgeHandle > &` #### Protected Member Functions - **set_halfedges** (const std::vector< HalfEdgeHandle > &_halfedges) - Sets the vector of half-edges for the face. - **Type**: `void` ### Friends - **TopologyKernel** - Declared as a friend class, allowing it access to protected members. ### Source File - `OpenVolumeMesh/Core/BaseEntities.hh` ``` -------------------------------- ### Mesh Size Information Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Provides functions to get the count of various mesh elements. ```APIDOC ## Mesh Size Information ### Description Provides functions to get the count of various mesh elements. ### Methods - `n_vertices`: Get number of vertices in mesh. - `n_edges`: Get number of edges in mesh. - `n_halfedges`: Get number of half-edges in mesh. - `n_faces`: Get number of faces in mesh. - `n_halffaces`: Get number of half-faces in mesh. - `n_cells`: Get number of cells in mesh. ``` -------------------------------- ### Build OpenVolumeMesh with Make Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command compiles the OpenVolumeMesh library using the Make build utility after CMake configuration. ```bash make ``` -------------------------------- ### Get Mesh Elements Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/TopologyKernel_8hh_source Retrieve specific mesh elements using their handles. ```APIDOC ## Get Mesh Elements ### Description Retrieve specific mesh elements using their handles. ### Get Edge (const) - `const Edge& edge(const EdgeHandle& _edgeHandle) const`: Returns a constant reference to an edge given its handle. ### Get Face (const) - `const Face& face(const FaceHandle& _faceHandle) const`: Returns a constant reference to a face given its handle. ### Get Cell (const) - `const Cell& cell(const CellHandle& _cellHandle) const`: Returns a constant reference to a cell given its handle. ### Get Edge (mutable) - `Edge& edge(const EdgeHandle& _edgeHandle)`: Returns a mutable reference to an edge given its handle. ### Get Face (mutable) - `Face& face(const FaceHandle& _faceHandle)`: Returns a mutable reference to a face given its handle. ### Get Cell (mutable) - `Cell& cell(const CellHandle& _cellHandle)`: Returns a mutable reference to a cell given its handle. ### Get Half-Edge - `const Edge halfedge(const HalfEdgeHandle& _halfEdgeHandle) const`: Returns the edge associated with a half-edge. ### Get Half-Face - `const Face halfface(const HalfFaceHandle& _halfFaceHandle) const`: Returns the face associated with a half-face. ### Get Opposite Half-Edge - `const Edge opposite_halfedge(const HalfEdgeHandle& _halfEdgeHandle) const`: Returns the edge that is opposite to the given half-edge. ### Get Opposite Half-Face - `const Face opposite_halfface(const HalfFaceHandle& _halfFaceHandle) const`: Returns the face that is opposite to the given half-face. ### Get Half-Edge by Vertices - `const HalfEdgeHandle halfedge(const VertexHandle& _vh1, const VertexHandle& _vh2) const`: Finds the half-edge connecting two vertices. ### Get Half-Face by Vertices - `const HalfFaceHandle halfface(const std::vector& _vs) const`: Finds a half-face from a sequence of incident vertices. (Checks first three vertices only). ### Get Half-Face by Half-Edges - `const HalfFaceHandle halfface(const std::vector& _hes) const`: Finds a half-face from a sequence of incident half-edges. (Checks first two half-edges only). ``` -------------------------------- ### OpenVolumeMesh::HalfFacePropHandle Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfFacePropHandle Documentation for the HalfFacePropHandle class, including its constructor and inherited members from OpenVolumeMeshHandle. ```APIDOC ## OpenVolumeMesh::HalfFacePropHandle ### Description Represents a handle to a half-face property within the OpenVolumeMesh structure. It inherits functionalities from OpenVolumeMeshHandle. ### Method N/A (This is class documentation, not an endpoint) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ### Public Member Functions - **HalfFacePropHandle** (int _idx = -1) - Constructor for HalfFacePropHandle. ### Inherited Public Member Functions (from OpenVolumeMesh::OpenVolumeMeshHandle) - **OpenVolumeMeshHandle** (int _idx) - Constructor for OpenVolumeMeshHandle. - **operator=** (int _idx) - Assignment operator. - **operator=** (const OpenVolumeMeshHandle & _idx) - Copy assignment operator. - **is_valid** () - Checks if the handle is valid. - **operator<** (const OpenVolumeMeshHandle & _idx) - Less than comparison operator. - **operator<** (int _idx) - Less than comparison operator with an integer. - **operator>** (const OpenVolumeMeshHandle & _idx) - Greater than comparison operator. - **operator>** (int _idx) - Greater than comparison operator with an integer. - **operator==** (const OpenVolumeMeshHandle & _h) - Equality comparison operator. - **operator!=** (const OpenVolumeMeshHandle & _h) - Inequality comparison operator. - **idx** () - Returns the internal index of the handle. - **idx** (const int & _idx) - Sets the internal index of the handle. - **operator int** () - Conversion operator to int. - **reset** () - Resets the handle. ``` -------------------------------- ### Mesh Property Iterators Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Provides functions to get constant iterators for various mesh properties. ```APIDOC ## GET /mesh/properties ### Description Returns constant iterators for accessing mesh properties. ### Method GET ### Endpoint /mesh/properties ### Parameters #### Query Parameters - **property_type** (string) - Required - Specifies the type of property to iterate over (e.g., 'face', 'halfface', 'cell', 'mesh'). ### Response #### Success Response (200) - **begin_iterator** (Properties::const_iterator) - Iterator to the beginning of the property collection. - **end_iterator** (Properties::const_iterator) - Iterator to the end of the property collection. #### Response Example ```json { "begin_iterator": "", "end_iterator": "" } ``` ``` -------------------------------- ### Get To Vertex Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1OpenVolumeMeshEdge-members Retrieves the 'to' vertex handle of the OpenVolumeMeshEdge. This is a const inline method. ```cpp to_vertex() const ``` -------------------------------- ### VectorT Constructors Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classCLASSNAME Provides documentation for the various constructors of the VectorT class, used for initializing vectors of different dimensions and from different data types. ```APIDOC ## VectorT Constructors ### Description This section details the constructors available for the VectorT class, allowing for the creation of vectors with different dimensions and initial values. ### Default Constructor ```APIDOC VectorT () ``` ### Constructors for Specific Dimensions ```APIDOC VectorT (const Scalar &v) VectorT (const Scalar &v0, const Scalar &v1) VectorT (const Scalar &v0, const Scalar &v1, const Scalar &v2) VectorT (const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3) VectorT (const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3, const Scalar &v4) VectorT (const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3, const Scalar &v4, const Scalar &v5) ``` ### Constructor from Array ```APIDOC VectorT (const Scalar _values[DIM]) ``` ### Copy and Cast Constructor ```APIDOC template VectorT (const VectorT< otherScalarType, DIM > &_rhs) ``` ### Example ```APIDOC // Default constructor VectorT vec1; // Constructor for 3D vector VectorT vec2(1.0f, 2.0f, 3.0f); // Constructor from array float values[] = {4.0f, 5.0f, 6.0f}; VectorT vec3(values); // Copy and cast constructor VectorT vec4(vec2); ``` ``` -------------------------------- ### Interactively Configure Release Build with CMake Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command allows for interactive configuration of the CMake build process, useful for selecting release settings and other build options. ```bash ccmake . ``` -------------------------------- ### Get From Vertex Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1OpenVolumeMeshEdge-members Retrieves the 'from' vertex handle of the OpenVolumeMeshEdge. This is a const inline method. ```cpp from_vertex() const ``` -------------------------------- ### Delete Cell Range Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Deletes a range of cells from the mesh, specified by start and end iterators. ```APIDOC ## OpenVolumeMesh::TopologyKernel::delete_cell_range ### Description Deletes a range of cells from the mesh, specified by the interval [_first, _last]. ### Method DELETE ### Endpoint /websites/graphics_rwth-aachen_de/media/openvolumemesh/static/openvolumemesh-doc-latest ### Parameters #### Path Parameters - **__first** (CellIter) - Required - Iterator to the first cell in the range to be deleted. - **__last** (CellIter) - Required - Iterator to the last cell in the range to be deleted. ### Response #### Success Response (200) - **CellIter** - An iterator to the first cell after the deleted range. #### Response Example ```json { "CellIter": "iteratorValue" } ``` ``` -------------------------------- ### OpenVolumeMesh VertexPropertyT Methods Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1VertexPropertyT-members Details methods for VertexPropertyT, including 'serialize' for data output and the constructor for initializing vertex properties. ```C++ serialize(std::ostream &_ostr) const // virtual ``` ```C++ VertexPropertyT(const std::string &_name, ResourceManager &_resMan, VertexPropHandle _handle, const T _def=T()) // ``` -------------------------------- ### OpenVolumeMesh HalfFaceIter Class Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfFaceIter Documentation for the HalfFaceIter class, detailing its constructors, operators, and inherited members. ```APIDOC ## Class OpenVolumeMesh::HalfFaceIter ### Description Provides an iterator for traversing half-faces within the OpenVolumeMesh topology. ### Public Types - **BaseIter** (typedef) - Alias for `BaseIterator`. - **iterator_category** (typedef) - Alias for `std::bidirectional_iterator_tag`. - **difference_type** (typedef) - Alias for `int`. - **value_type** (typedef) - Alias for `HalfFaceHandle`. - **pointer** (typedef) - Alias for `HalfFaceHandle *`. - **reference** (typedef) - Alias for `HalfFaceHandle &`. ### Public Member Functions - **HalfFaceIter**(const TopologyKernel *_mesh, const HalfFaceHandle &_hfh=HalfFaceHandle(0)) - Constructor for HalfFaceIter. - **operator++**(int) - Post-increment operator. - **operator--**(int) - Post-decrement operator. - **operator+**(int _n) - Addition operator for advancing the iterator by n positions. - **operator-**(int _n) - Subtraction operator for retreating the iterator by n positions. - **operator+=**(int _n) - Compound assignment for advancing the iterator. - **operator-=**(int _n) - Compound assignment for retreating the iterator. - **operator++**() - Pre-increment operator. - **operator--**() - Pre-decrement operator. ### Public Member Functions (Inherited from OpenVolumeMesh::BaseIterator< HalfFaceHandle, HalfFaceHandle >) - **BaseIterator**(const TopologyKernel *_mesh, const HalfFaceHandle &_ih, const HalfFaceHandle &_ch) - Constructor. - **BaseIterator**(const TopologyKernel *_mesh, const HalfFaceHandle &_ih) - Constructor. - **BaseIterator**(const TopologyKernel *_mesh) - Constructor. - **operator==**(const BaseIterator &_c) const - Equality comparison operator. - **operator!=**(const BaseIterator &_c) const - Inequality comparison operator. - **operator->**() const - Dereference operator returning a pointer to the current handle. - **operator***() const - Dereference operator returning a reference to the current handle. - **operator<**(const BaseIterator &_c) const - Less than comparison operator. - **operator=**(const BaseIterator &_c) - Assignment operator. - **operator bool**() const - Conversion to boolean to check iterator validity. - **valid**(bool _valid) - Sets the validity state of the iterator. - **valid**() const - Returns the validity state of the iterator. - **cur_handle**(const HalfFaceHandle &_h) - Sets the current handle. - **cur_handle**() const - Returns the current handle. - **ref_handle**() const - Returns the reference handle. - **mesh**() const - Returns a pointer to the associated TopologyKernel. ### Source Files - OpenVolumeMesh/Core/Iterators.hh - OpenVolumeMesh/Core/Iterators.cc ``` -------------------------------- ### Get Cell Orientation Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Determines the orientation of a halfface with respect to a specific cell in a hexahedral mesh. ```C++ unsigned char OpenVolumeMesh::HexahedralMeshTopologyKernel::orientation(const HalfFaceHandle &_hfh, const CellHandle &_ch) const; ``` -------------------------------- ### Get Vertices in a Cell Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Returns the number of vertices that constitute a given cell in the mesh topology. ```C++ unsigned int OpenVolumeMesh::TopologyKernel::n_vertices_in_cell(const CellHandle &_ch) const; ``` -------------------------------- ### OpenVolumeMesh::BaseProperty Constructors and Assignment Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1VertexPropertyT-members Covers the constructors and assignment operator for OpenVolumeMesh::BaseProperty. ```cpp BaseProperty(ResourceManager &_resMan) (defined in OpenVolumeMesh::BaseProperty)| OpenVolumeMesh::BaseProperty| inline BaseProperty(const BaseProperty &_cpy) (defined in OpenVolumeMesh::BaseProperty)| OpenVolumeMesh::BaseProperty| inline operator=(const BaseProperty &_cpy) (defined in OpenVolumeMesh::BaseProperty)| OpenVolumeMesh::BaseProperty| ``` -------------------------------- ### Configure OpenVolumeMesh Build with CMake Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/building_openvolumemesh This command configures the OpenVolumeMesh build system using CMake, typically run from an out-of-source build directory. ```bash cmake /path/to/OpenVolumeMesh/sources ``` -------------------------------- ### Get Vertices in Cell - OpenVolumeMesh Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel-members Retrieves the number of vertices that constitute a given cell. This function is part of the TopologyKernel. ```cpp n_vertices_in_cell(const CellHandle &_ch) const ``` -------------------------------- ### OpenVolumeMeshHandle Index Access Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfFacePropHandle-members Provides methods to get and set the internal index for OpenVolumeMeshHandle objects. These are inline functions. ```cpp idx() const idx(const int &_idx) ``` -------------------------------- ### OpenVolumeMesh::PropertyPtr Constructor Overloads Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1FacePropertyT-members Various constructor overloads for OpenVolumeMesh::PropertyPtr. ```cpp PropertyPtr(ResourceManager &_resMan, FacePropHandle_handle) anonymous() const ``` -------------------------------- ### HalfFacePropHandle Constructor Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfFacePropHandle Constructor for the HalfFacePropHandle class, initializing with an optional index. ```cpp HalfFacePropHandle(int _idx = -1) ``` -------------------------------- ### Delete Cell Range (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Deletes a range of cells from the TopologyKernel, specified by start and end iterators. ```C++ delete_cell_range(const CellIter &_first, const CellIter &_last) ``` -------------------------------- ### OpenVolumeMeshBaseProperty Class Overview Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1OpenVolumeMeshBaseProperty Provides an overview of the OpenVolumeMeshBaseProperty class, including its constructors and core functionalities. ```APIDOC ## OpenVolumeMeshBaseProperty ### Description Represents the base class for properties in OpenVolumeMesh, defining essential operations for managing data elements. ### Constructors - **OpenVolumeMeshBaseProperty** (const std::string &_name="") - **OpenVolumeMeshBaseProperty** (const OpenVolumeMeshBaseProperty &_rhs) ### Public Member Functions - **reserve** (size_t _n) * Reserve memory for n elements. - **resize** (size_t _n) * Resize storage to hold n elements. - **clear** () * Clear all elements and free memory. - **push_back** () * Extend the number of elements by one. - **swap** (size_t _i0, size_t _i1) * Let two elements swap their storage place. - **delete_element** (size_t _idx) * Erase an element of the vector. - **clone** () const * Return a deep copy of self. - **name** () const * Return the name of the property. - **serialize** (std::ostream &_ostr) const - **deserialize** (std::istream &) - **set_persistent** (bool _persistent) - **persistent** () const - **n_elements** () const * Number of elements in property. - **element_size** () const * Size of one element in bytes or UnknownSize if not known. - **size_of** () const * Return size of property in bytes. - **size_of** (size_t _n_elem) const * Estimated size of property if it has _n_elem elements. The member returns UnknownSize if the size cannot be estimated. - **handle** () const - **set_handle** (const OpenVolumeMeshHandle &_handle) ### Protected Member Functions - **delete_multiple_entries** (const std::vector< bool > &) * Delete multiple entries in list. ### Friends - **ResourceManager** - **PropertyPtr** ### Static Public Attributes - **UnknownSize** = std::numeric_limits::max() * Indicates an error when a size is returned by a member. ``` -------------------------------- ### Get Opposite Halfedge (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel Retrieves the opposite halfedge corresponding to a given halfedge. This is useful for traversing mesh connectivity. ```C++ const HalfEdgeHandle | **opposite_halfedge** (const Edge &_edge) const ``` -------------------------------- ### OpenVolumeMesh::BoundaryHalfFaceHalfFaceIter Class Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1BoundaryHalfFaceHalfFaceIter Documentation for the BoundaryHalfFaceHalfFaceIter class, which provides iteration over boundary half-faces. ```APIDOC ## Class OpenVolumeMesh::BoundaryHalfFaceHalfFaceIter ### Description This class provides an iterator for traversing boundary half-faces within the OpenVolumeMesh topology. ### Public Member Functions - **BoundaryHalfFaceHalfFaceIter**(const HalfFaceHandle &_ref_h, const TopologyKernel *_mesh) * Constructor for the iterator. - **BoundaryHalfFaceHalfFaceIter & operator=(const BoundaryHalfFaceHalfFaceIter &_c)** * Copy assignment operator. - **BoundaryHalfFaceHalfFaceIter operator++(int)** * Post-increment operator. - **BoundaryHalfFaceHalfFaceIter operator--(int)** * Post-decrement operator. - **BoundaryHalfFaceHalfFaceIter operator+(int _n)** * Addition operator for advancing the iterator by n positions. - **BoundaryHalfFaceHalfFaceIter operator-(int _n)** * Subtraction operator for moving the iterator back by n positions. - **BoundaryHalfFaceHalfFaceIter & operator+=(int _n)** * Pre-increment operator. - **BoundaryHalfFaceHalfFaceIter & operator-=(int _n)** * Pre-decrement operator. - **const EdgeHandle & common_edge() const** * Returns the common edge handle. - **BoundaryHalfFaceHalfFaceIter & operator++()** * Pre-increment operator. - **BoundaryHalfFaceHalfFaceIter & operator--()** * Pre-decrement operator. ### Inherited Public Member Functions from OpenVolumeMesh::BaseIterator< HalfFaceHandle, HalfFaceHandle > - **BaseIterator**(const TopologyKernel *_mesh, const HalfFaceHandle &_ih, const HalfFaceHandle &_ch) * Constructor. - **BaseIterator**(const TopologyKernel *_mesh, const HalfFaceHandle &_ih) * Constructor. - **BaseIterator**(const TopologyKernel *_mesh) * Constructor. - **bool operator==(const BaseIterator &_c) const** * Equality comparison. - **bool operator!=(const BaseIterator &_c) const** * Inequality comparison. - **const HalfFaceHandle * operator->() const** * Dereference operator to access the current handle. - **const HalfFaceHandle & operator*() const** * Dereference operator to access the current handle. - **bool operator<(const BaseIterator &_c) const** * Less than comparison. - **BaseIterator & operator=(const BaseIterator &_c)** * Copy assignment operator. - **operator bool() const** * Conversion to boolean to check validity. - **void valid(bool _valid)** * Sets the validity of the iterator. - **bool valid() const** * Returns the validity of the iterator. - **void cur_handle(const HalfFaceHandle &_h)** * Sets the current handle. - **const HalfFaceHandle & cur_handle() const** * Returns the current handle. - **const HalfFaceHandle & ref_handle() const** * Returns the reference handle. - **const TopologyKernel * mesh() const** * Returns the pointer to the topology kernel. ### Public Types inherited from OpenVolumeMesh::BaseIterator< HalfFaceHandle, HalfFaceHandle > - **typedef std::bidirectional_iterator_tag iterator_category** - **typedef int difference_type** - **typedef HalfFaceHandle value_type** - **typedef HalfFaceHandle * pointer** - **typedef HalfFaceHandle & reference** ### Source Files - OpenVolumeMesh/Core/Iterators.hh - OpenVolumeMesh/Core/Iterators.cc ``` -------------------------------- ### Get Iterator to End of Cells (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Returns an iterator to the end of the cells collection. This is an inline function in TopologyKernel. ```C++ cells_end() const ``` -------------------------------- ### Get Iterator to Beginning of Cells (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Returns an iterator to the beginning of the cells collection. This is an inline function in TopologyKernel. ```C++ cells_begin() const ``` -------------------------------- ### OpenVolumeMesh::HalfEdgePropertyT Constructor Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfEdgePropertyT Initializes a HalfEdgePropertyT object with a given name, resource manager, handle, and an optional default value. ```APIDOC ## HalfEdgePropertyT HalfEdgePropertyT ### Description Constructor for the HalfEdgePropertyT class. ### Method Constructor ### Endpoint N/A (Class Constructor) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response None ### Error Handling None ``` -------------------------------- ### HalfFacePropertyT Constructor and Methods (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfFacePropertyT Demonstrates the constructor for HalfFacePropertyT, along with its serialization and deserialization methods. It also shows inherited members from PropertyPtr and BaseProperty. ```C++ HalfFacePropertyT(const std::string &_name, ResourceManager &_resMan, HalfFacePropHandle _handle, const T _def=T()) virtual void serialize(std::ostream &_ostr) const virtual void deserialize(std::istream &_istr) ``` ```C++ virtual const std::string & name() const virtual void delete_element(size_t _idx) const_iterator begin() const iterator begin() const_iterator end() const iterator end() reference operator[](size_t _idx) const_reference operator[](size_t _idx) const reference operator[](const OpenVolumeMeshHandle &_h) const_reference operator[](const OpenVolumeMeshHandle &_h) const virtual OpenVolumeMeshHandle handle() const virtual bool persistent() const virtual bool anonymous() const ``` ```C++ BaseProperty(ResourceManager &_resMan) BaseProperty(const BaseProperty &_cpy) BaseProperty & operator=(const BaseProperty &_cpy) ``` -------------------------------- ### Get Iterator to Cell Properties (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Returns an iterator to the beginning of cell properties. This is an inline function in ResourceManager. ```C++ cell_props_begin() const ``` -------------------------------- ### Get Cell by Handle (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Retrieves a cell object using its handle. Overloaded for const and non-const access. ```C++ cell(const CellHandle &_cellHandle) const ``` ```C++ cell(const CellHandle &_cellHandle) ``` -------------------------------- ### Get Adjacent Halfface on Surface (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Retrieves the adjacent halfface on the surface. This is an inline function within HexahedralMeshTopologyKernel. ```C++ adjacent_halfface_on_surface(const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh) const ``` -------------------------------- ### MeshPropertyT Class Documentation Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1MeshPropertyT Documentation for the MeshPropertyT class, detailing its constructors, serialization methods, and inherited members. ```APIDOC ## OpenVolumeMesh::MeshPropertyT< T > ### Description This class represents a generic mesh property with type `T`. It handles property naming, resource management, and serialization. ### Constructor ``` MeshPropertyT(const std::string &_name, ResourceManager &_resMan, MeshPropHandle _handle, const T _def=T()) ``` ### Serialization Methods - **serialize**: Serializes the mesh property to an output stream. ``` virtual void serialize(std::ostream &_ostr) const ``` - **deserialize**: Deserializes the mesh property from an input stream. ``` virtual void deserialize(std::istream &_istr) ``` ### Inherited Public Member Functions from OpenVolumeMesh::PropertyPtr - **name**: Returns the name of the property. ``` virtual const std::string & name() const ``` - **delete_element**: Deletes a specific element from the property. ``` virtual void delete_element(size_t _idx) ``` - **begin**: Returns an iterator to the beginning of the property. ``` iterator begin() const_iterator begin() const ``` - **end**: Returns an iterator to the end of the property. ``` iterator end() const_iterator end() const ``` - **operator[]**: Accesses an element by index or handle. ``` reference operator[](size_t _idx) const_reference operator[](size_t _idx) const reference operator[](const OpenVolumeMeshHandle &_h) const_reference operator[](const OpenVolumeMeshHandle &_h) const ``` - **handle**: Returns the handle of the property. ``` virtual OpenVolumeMeshHandle handle() const ``` - **persistent**: Checks if the property is persistent. ``` virtual bool persistent() const ``` - **anonymous**: Checks if the property is anonymous. ``` virtual bool anonymous() const ``` ### Inherited Public Types from OpenVolumeMesh::PropertyPtr - **value_type**: The type of elements stored in the property. - **const_iterator**: A const iterator for the property. - **iterator**: An iterator for the property. - **reference**: A reference to an element in the property. - **const_reference**: A const reference to an element in the property. ### Source Files - OpenVolumeMesh/Core/PropertyDefines.hh - OpenVolumeMesh/Core/PropertyDefinesT.cc ``` -------------------------------- ### Get Adjacent Halfface on Sheet (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Retrieves the adjacent halfface on the sheet. This is an inline function within HexahedralMeshTopologyKernel. ```C++ adjacent_halfface_on_sheet(const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh) const ``` -------------------------------- ### OpenVolumeMesh::ColorAttrib Constructor Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1ColorAttrib-members Constructor for the ColorAttrib class, initializing with a topology kernel and an optional default color. ```cpp OpenVolumeMesh::ColorAttrib< ColT >(TopologyKernel &_kernel, const ColT _def=ColT()) ``` -------------------------------- ### OpenVolumeMesh::HalfEdgeHandle Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HalfEdgeHandle Documentation for the HalfEdgeHandle class, detailing its constructor and inherited public member functions. ```APIDOC ## OpenVolumeMesh::HalfEdgeHandle ### Description Represents a handle to a half-edge in the OpenVolumeMesh data structure. This class inherits from OpenVolumeMeshHandle. ### Method N/A (This is a class definition, not an API endpoint) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ## Public Member Functions ### HalfEdgeHandle (int _idx = -1) **Description:** Constructor for HalfEdgeHandle. ### Public Member Functions inherited from OpenVolumeMesh::OpenVolumeMeshHandle #### OpenVolumeMeshHandle (int _idx) **Description:** Constructor for OpenVolumeMeshHandle. #### OpenVolumeMeshHandle & operator= (int _idx) **Description:** Assignment operator for OpenVolumeMeshHandle. #### OpenVolumeMeshHandle & operator= (const OpenVolumeMeshHandle &_idx) **Description:** Copy assignment operator for OpenVolumeMeshHandle. #### bool is_valid () const **Description:** Checks if the handle is valid. #### bool operator< (const OpenVolumeMeshHandle &_idx) const **Description:** Less than comparison operator. #### bool operator< (int _idx) const **Description:** Less than comparison operator with an integer. #### bool operator> (const OpenVolumeMeshHandle &_idx) const **Description:** Greater than comparison operator. #### bool operator> (int _idx) const **Description:** Greater than comparison operator with an integer. #### bool operator== (const OpenVolumeMeshHandle &_h) const **Description:** Equality comparison operator. #### bool operator!= (const OpenVolumeMeshHandle &_h) const **Description:** Inequality comparison operator. #### const int & idx () const **Description:** Returns the internal index of the handle. #### void idx (const int &_idx) **Description:** Sets the internal index of the handle. #### operator int () const **Description:** Converts the handle to an integer. #### void reset () **Description:** Resets the handle. ``` -------------------------------- ### OpenVolumeMesh Cell Property Count Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel-members A function to get the number of cell properties present in the mesh's resource manager. ```cpp n_cell_props() const (defined in OpenVolumeMesh::ResourceManager) ``` -------------------------------- ### OpenVolumeMesh::VertexHandle Constructor Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1VertexHandle-members Details the constructor for the OpenVolumeMesh::VertexHandle class. ```APIDOC ## OpenVolumeMesh::VertexHandle Constructor ### Description This section details the constructor for the `OpenVolumeMesh::VertexHandle` class. ### Method N/A (This is a documentation of class members, not an API endpoint) ### Endpoint N/A ### Parameters N/A ### Request Example N/A ### Response #### Success Response (N/A) - **VertexHandle(int _idx=-1)** (OpenVolumeMesh::VertexHandle) - Constructor for `VertexHandle`, takes an optional integer index. Defined in `OpenVolumeMesh::VertexHandle`. ### Response Example N/A ``` -------------------------------- ### OpenVolumeMesh::OpenVolumeMeshHandle Getters and Setters Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1CellPropHandle-members Provides methods to get and set the index and check validity for OpenVolumeMeshHandle. These are inline functions. ```cpp idx() const idx(const int &_idx) is_valid() const reset() ``` -------------------------------- ### OpenVolumeMesh::PropertyPtr< PropT, HandleT > Class Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1PropertyPtr Documentation for the PropertyPtr class, detailing its public types, member functions, and inherited members. ```APIDOC ## Class OpenVolumeMesh::PropertyPtr< PropT, HandleT > ### Description A smart-pointer-like class that counts the encapsulated object's references and automatically deletes the memory as soon as the object is not used anymore. ### Public Types - **value_type** (PropT::value_type) - Alias for the value type of the encapsulated property. - **const_iterator** (PropT::vector_type::const_iterator) - Alias for a constant iterator to the encapsulated property's vector. - **iterator** (PropT::vector_type::iterator) - Alias for an iterator to the encapsulated property's vector. - **reference** (PropT::reference) - Alias for a reference to the encapsulated property's value. - **const_reference** (PropT::const_reference) - Alias for a constant reference to the encapsulated property's value. ### Public Member Functions - **PropertyPtr(PropT *_ptr, ResourceManager &_resMan, HandleT _handle)**: Constructor. - **~PropertyPtr()**: Destructor. - **name() const**: Returns the name of the property. - **delete_element(size_t _idx)**: Deletes an element at the specified index. - **begin() const**: Returns a constant iterator to the beginning of the property's data. - **begin()**: Returns an iterator to the beginning of the property's data. - **end() const**: Returns a constant iterator to the end of the property's data. - **end()**: Returns an iterator to the end of the property's data. - **operator[](size_t _idx)**: Accesses an element by index. - **operator[](size_t _idx) const**: Accesses an element by index (const version). - **operator[](const OpenVolumeMeshHandle &_h)**: Accesses an element by handle. - **operator[](const OpenVolumeMeshHandle &_h) const**: Accesses an element by handle (const version). - **handle() const**: Returns the handle associated with the property. - **persistent() const**: Checks if the property is persistent. - **anonymous() const**: Checks if the property is anonymous. ### Protected Member Functions - **delete_multiple_entries(const std::vector< bool > &_tags)**: Deletes multiple entries based on tags. - **resize(unsigned int _size)**: Resizes the property. - **set_handle(const OpenVolumeMeshHandle &_handle)**: Sets the handle for the property. ### Friends - **ResourceManager**: The ResourceManager class is a friend. ### Additional Inherited Members (from OpenVolumeMesh::BaseProperty) - **resMan_**: Reference to the ResourceManager. - **lock_**: Boolean flag indicating if the property is locked. - **lock()**: Locks the property. - **unlock()**: Unlocks the property. - **locked() const**: Checks if the property is locked. - **BaseProperty(ResourceManager &_resMan)**: Constructor. - **BaseProperty(const BaseProperty &_cpy)**: Copy constructor. - **operator=(const BaseProperty &_cpy)**: Assignment operator. - **serialize(std::ostream &_ostr) const =0**: Pure virtual function for serialization. - **deserialize(std::istream &_istr)=0**: Pure virtual function for deserialization. ### Source Files - OpenVolumeMesh/Core/PropertyPtr.hh - OpenVolumeMesh/Core/PropertyPtrT.cc ``` -------------------------------- ### Get Half-Edge - OpenVolumeMesh Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Retrieves the OpenVolumeMeshEdge object corresponding to a given HalfEdgeHandle. If the direct half-edge is not found, it returns the opposite half-edge. ```cpp const OpenVolumeMeshEdge OpenVolumeMesh::TopologyKernel::halfedge(const HalfEdgeHandle & __halfEdgeHandle_) const ``` -------------------------------- ### OpenVolumeMeshFace Constructor and Methods (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1OpenVolumeMeshFace Demonstrates the constructor for OpenVolumeMeshFace which takes a vector of HalfEdgeHandle, and the method to access these half-edges. It also shows the protected method for setting half-edges. This is defined in the BaseEntities.hh file. ```C++ OpenVolumeMeshFace (const std::vector< HalfEdgeHandle > &_halfedges) const std::vector < HalfEdgeHandle > & halfedges () const void set_halfedges (const std::vector< HalfEdgeHandle > &_halfedges) ``` -------------------------------- ### Get Number of Vertices in Cell (C++) Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1TopologyKernel Returns the number of vertices that constitute a given cell. This is a basic geometric property of the cell. ```cpp unsigned int | **n_vertices_in_cell** (const CellHandle &_ch) const ``` -------------------------------- ### Orientation Information Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel-members Functions related to orientation of elements, including checking orthogonal orientations and getting orientation within a cell. ```APIDOC ## Orientation Functions ### Description Methods for determining and comparing the orientation of topological elements, particularly in the context of hexahedral meshes. ### Methods - `opposite_orientation(const unsigned char _o1) const` - `orthogonal_orientation(const unsigned char _o1, const unsigned char _o2) const` - `orientation(const HalfFaceHandle &, const CellHandle &) const` ### Parameters - `_o1`, `_o2` (unsigned char) - Orientation values. - `_hfh` (HalfFaceHandle) - Handle to a halfface. - `_ch` (CellHandle) - Handle to a cell. ### Return Values - `opposite_orientation`/`orthogonal_orientation`: Returns a value indicating orientation relationship. - `orientation`: Returns the orientation of the halfface within the cell. ### Example ```cpp unsigned char oppOrientation = hexaKernel.opposite_orientation(orientationValue); bool areOrthogonal = hexaKernel.orthogonal_orientation(orientation1, orientation2); unsigned char cellOrientation = hexaKernel.orientation(someHalfFace, someCell); ``` ``` -------------------------------- ### OpenVolumeMesh VectorT Constructor Overloads Source: https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classCLASSNAME-members Demonstrates various constructor overloads for the VectorT class, allowing initialization with different numbers of scalar components or from existing arrays and vectors. ```cpp VectorT() VectorT(const Scalar &v) VectorT(const Scalar &v0, const Scalar &v1) VectorT(const Scalar &v0, const Scalar &v1, const Scalar &v2) VectorT(const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3) VectorT(const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3, const Scalar &v4) VectorT(const Scalar &v0, const Scalar &v1, const Scalar &v2, const Scalar &v3, const Scalar &v4, const Scalar &v5) VectorT(const Scalar _values[DIM]) VectorT(const VectorT< otherScalarType, DIM > &_rhs) ```