mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0024737: Coding - remove <br> tag from header files
Eliminate #ifdefs around #includes, some unnecessary includes and macros
This commit is contained in:
@@ -41,87 +41,61 @@ DEFINE_STANDARD_HANDLE (Poly_CoherentTriangulation, Standard_Transient)
|
||||
/**
|
||||
* Triangulation structure that allows to:
|
||||
* <ul>
|
||||
* <li>Store the connectivity of each triangle with up to 3 neighbouring ones
|
||||
* and with the corresponding 3rd nodes on them,</li>
|
||||
* <li>Store the connectivity of each node with all triangles that share this
|
||||
* node</li>
|
||||
* <li>Store the connectivity of each triangle with up to 3 neighbouring ones and with the corresponding 3rd nodes on them,</li>
|
||||
* <li>Store the connectivity of each node with all triangles that share this node</li>
|
||||
* <li>Add nodes and triangles to the structure,</li>
|
||||
* <li>Find all triangles sharing a single or a couple of nodes</li>
|
||||
* <li>Remove triangles from structure</li>
|
||||
* <li>Optionally create Links between pairs of nodes according to the current
|
||||
* triangulation.
|
||||
* <li>Optionally create Links between pairs of nodes according to the current triangulation.</li>
|
||||
* <li>Convert from/to Poly_Triangulation structure.</li>
|
||||
* </ul>
|
||||
* This class is useful for algorithms that need to analyse and/or edit a
|
||||
* triangulated mesh -- for example for mesh refining. The connectivity model
|
||||
* follows the idea that all Triangles in a mesh should have coherent orientation
|
||||
* like on a surface of a solid body. Connections between more than 2 triangles
|
||||
* are not suppoorted.
|
||||
*
|
||||
* This class is useful for algorithms that need to analyse and/or edit a triangulated mesh -- for example for mesh refining.
|
||||
* The connectivity model follows the idea that all Triangles in a mesh should have coherent orientation like on a surface of a solid body.
|
||||
* Connections between more than 2 triangles are not suppoorted.
|
||||
*
|
||||
* @section Poly_CoherentTriangulation Architecture
|
||||
* The data types used in this structure are:
|
||||
* <ul>
|
||||
* <li><b>Poly_CoherentNode</b>: Inherits go_XYZ therefore provides the full
|
||||
* public API of gp_XYZ. Contains references to all incident triangles. You
|
||||
* can add new nodes but you cannot remove existing ones. However each node
|
||||
* that has no referenced triangle is considered as "free" (use the method
|
||||
* IsFreeNode() to check this). Free nodes are not available to further
|
||||
* processing, particularly they are not exported in Poly_Triangulation.
|
||||
* <li><b>Poly_CoherentNode</b>: Inherits go_XYZ therefore provides the full public API of gp_XYZ.
|
||||
* Contains references to all incident triangles. You can add new nodes but you cannot remove existing ones.
|
||||
* However each node that has no referenced triangle is considered as "free" (use the method IsFreeNode() to check this).
|
||||
* Free nodes are not available to further processing, particularly they are not exported in Poly_Triangulation.
|
||||
* </li>
|
||||
* <li><b>Poly_CoherentTriangle</b>: Main data type. Refers three Nodes, three
|
||||
* connected Triangles, three opposite (connected) Nodes and three Links.
|
||||
* If there is boundary then 1, 2 or 3 references to Triangles/connected
|
||||
* Nodes/Links are assigned to NULL (for pointers) or -1 (for integer
|
||||
* node index).
|
||||
* <br>
|
||||
* You can find a triangle by one node using its triangle iterator or by
|
||||
* two nodes - creating a temporary Poly_CoherentLink and calling the method
|
||||
* FindTriangle().
|
||||
* <br>
|
||||
* Triangles can be removed but they are never deleted from
|
||||
* the containing array. Removed triangles have all nodes equal to -1. You
|
||||
* can use the method IsEmpty() to check that.
|
||||
* <li><b>Poly_CoherentTriangle</b>: Main data type. Refers three Nodes, three connected Triangles, three opposite (connected) Nodes and three Links.
|
||||
* If there is boundary then 1, 2 or 3 references to Triangles/connected Nodes/Links are assigned to NULL (for pointers) or -1 (for integer node index).
|
||||
*
|
||||
* You can find a triangle by one node using its triangle iterator or by
|
||||
* two nodes - creating a temporary Poly_CoherentLink and calling the method FindTriangle().
|
||||
*
|
||||
* Triangles can be removed but they are never deleted from the containing array. Removed triangles have all nodes equal to -1.
|
||||
* You can use the method IsEmpty() to check that.
|
||||
* </li>
|
||||
* <li><b>Poly_CoherentLink</b>: Auxiliary data type. Normally the array of
|
||||
* Links is empty, because for many algorithms it is sufficient to define
|
||||
* only Triangles. You can explicitly create the Links at least once,
|
||||
* calling the method ComputeLinks(). Each Link is oriented couple of
|
||||
* Poly_CoherentNode (directed to the ascending Node index). It refers
|
||||
* two connected triangulated Nodes - on the left and on the right,
|
||||
* therefore a Poly_CoherentLink instance refers the full set of nodes
|
||||
* that constitute a couple of connected Triangles. A boundary Link has
|
||||
* either the first (left) or the second (right) connected node index
|
||||
* equal to -1.
|
||||
* <br>
|
||||
* When the array of Links is created, all subsequent calls to AddTriangle
|
||||
* and RemoveTriangle try to preserve the connectivity Triangle-Link in
|
||||
* addition to the connectivity Triangle-Triangle. Particularly, new Links
|
||||
* are created by method AddTriangle() and existing ones are removed by
|
||||
* method RemoveTriangle(), in each case whenever necessary.
|
||||
* <br>
|
||||
* Similarly to Poly_CoherentTriangle, a Link can be removed but not
|
||||
* destroyed separately from others. Removed Link can be recogniosed using
|
||||
* the method IsEmpty(). To destroy all Links, call the method ClearLinks(),
|
||||
* this method also nullifies Link references in all Triangles.
|
||||
* <li><b>Poly_CoherentLink</b>: Auxiliary data type. Normally the array of Links is empty, because for many algorithms it is sufficient to define only Triangles.
|
||||
* You can explicitly create the Links at least once, calling the method ComputeLinks(). Each Link is oriented couple of Poly_CoherentNode (directed to the ascending Node index).
|
||||
* It refers two connected triangulated Nodes - on the left and on the right,
|
||||
* therefore a Poly_CoherentLink instance refers the full set of nodes that constitute a couple of connected Triangles.
|
||||
* A boundary Link has either the first (left) or the second (right) connected node index equal to -1.
|
||||
*
|
||||
* When the array of Links is created, all subsequent calls to AddTriangle and RemoveTriangle try to preserve the connectivity Triangle-Link in addition to the connectivity Triangle-Triangle.
|
||||
* Particularly, new Links are created by method AddTriangle() and existing ones are removed by method RemoveTriangle(), in each case whenever necessary.
|
||||
*
|
||||
* Similarly to Poly_CoherentTriangle, a Link can be removed but not destroyed separately from others.
|
||||
* Removed Link can be recogniosed using the method IsEmpty(). To destroy all Links, call the method ClearLinks(),
|
||||
* this method also nullifies Link references in all Triangles.
|
||||
* </li>
|
||||
* All objects (except for free Nodes and empty Triangles and Links) can be
|
||||
* visited by the corresponding Iterator. Direct access is provided only for
|
||||
* Nodes (needed to resolve Node indexed commonly used as reference). Triangles
|
||||
* and Links can be retrieved by their index only internally, the public API
|
||||
* provides only references or pointers to C++ objects. If you need a direct
|
||||
* access to Triangles and Links, you can subclass Poly_CoherentTriangulation
|
||||
* and use the protected API for your needs.
|
||||
* <br>
|
||||
* Memory management: All data objects are stored in NCollection_Vector
|
||||
* containers that prove to be efficient for the performance. In addition
|
||||
* references to triangles are stored in ring lists, with an instance of such
|
||||
* list per Poly_CoherentNode. These lists are allocated in a memory allocator
|
||||
* that is provided in the constructor of Poly_CoherentTriangulation. By default
|
||||
* the standard OCCT allocator (aka NCollection_BaseAllocator) is used. But if
|
||||
* you need to increase the performance you can use NCollection_IncAllocator
|
||||
* instead.
|
||||
* All objects (except for free Nodes and empty Triangles and Links) can be visited by the corresponding Iterator.
|
||||
* Direct access is provided only for Nodes (needed to resolve Node indexed commonly used as reference).
|
||||
* Triangles and Links can be retrieved by their index only internally, the public API provides only references or pointers to C++ objects.
|
||||
* If you need a direct access to Triangles and Links, you can subclass Poly_CoherentTriangulation and use the protected API for your needs.
|
||||
*
|
||||
* Memory management: All data objects are stored in NCollection_Vector containers that prove to be efficient for the performance.
|
||||
* In addition references to triangles are stored in ring lists, with an instance of such list per Poly_CoherentNode.
|
||||
* These lists are allocated in a memory allocator that is provided in the constructor of Poly_CoherentTriangulation.
|
||||
* By default the standard OCCT allocator (aka NCollection_BaseAllocator) is used.
|
||||
* But if you need to increase the performance you can use NCollection_IncAllocator instead.
|
||||
* </ul>
|
||||
*/
|
||||
|
||||
class Poly_CoherentTriangulation : public Standard_Transient
|
||||
{
|
||||
public:
|
||||
|
Reference in New Issue
Block a user