Updated documentation for the vertex_split operation
git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@688 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -167,28 +167,100 @@ public:
|
|||||||
|
|
||||||
//--- halfedge collapse / vertex split ---
|
//--- halfedge collapse / vertex split ---
|
||||||
|
|
||||||
/// Vertex Split: inverse operation to collapse().
|
/** \brief Vertex Split: inverse operation to collapse().
|
||||||
|
*
|
||||||
|
* Insert the new vertex at position v0. The vertex will be added
|
||||||
|
* as the inverse of the vertex split. The faces above the split
|
||||||
|
* will be correctly attached to the two new edges
|
||||||
|
*
|
||||||
|
* Before:
|
||||||
|
* v_l v0 v_r
|
||||||
|
* x x x
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* x
|
||||||
|
* v1
|
||||||
|
*
|
||||||
|
* After:
|
||||||
|
* v_l v0 v_r
|
||||||
|
* x------x------x
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \|/
|
||||||
|
* x
|
||||||
|
* v1
|
||||||
|
*
|
||||||
|
* @param _v0_point Point position for the new point
|
||||||
|
* @param _v1 Vertex that will be split
|
||||||
|
* @param _vl Left vertex handle
|
||||||
|
* @param _vr Right vertex handle
|
||||||
|
* @return Newly inserted halfedge
|
||||||
|
*/
|
||||||
inline HalfedgeHandle vertex_split(Point _v0_point, VertexHandle _v1,
|
inline HalfedgeHandle vertex_split(Point _v0_point, VertexHandle _v1,
|
||||||
VertexHandle _vl, VertexHandle _vr)
|
VertexHandle _vl, VertexHandle _vr)
|
||||||
{ return PolyMesh::vertex_split(add_vertex(_v0_point), _v1, _vl, _vr); }
|
{ return PolyMesh::vertex_split(add_vertex(_v0_point), _v1, _vl, _vr); }
|
||||||
|
|
||||||
|
/** \brief Vertex Split: inverse operation to collapse().
|
||||||
|
*
|
||||||
|
* Insert the new vertex at position v0. The vertex will be added
|
||||||
|
* as the inverse of the vertex split. The faces above the split
|
||||||
|
* will be correctly attached to the two new edges
|
||||||
|
*
|
||||||
|
* Before:
|
||||||
|
* v_l v0 v_r
|
||||||
|
* x x x
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* \ /
|
||||||
|
* x
|
||||||
|
* v1
|
||||||
|
*
|
||||||
|
* After:
|
||||||
|
* v_l v0 v_r
|
||||||
|
* x------x------x
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \ | /
|
||||||
|
* \|/
|
||||||
|
* x
|
||||||
|
* v1
|
||||||
|
*
|
||||||
|
* @param _v0 Vertex handle for the newly inserted point (Input has to be unconnected!)
|
||||||
|
* @param _v1 Vertex that will be split
|
||||||
|
* @param _vl Left vertex handle
|
||||||
|
* @param _vr Right vertex handle
|
||||||
|
* @return Newly inserted halfedge
|
||||||
|
*/
|
||||||
inline HalfedgeHandle vertex_split(VertexHandle _v0, VertexHandle _v1,
|
inline HalfedgeHandle vertex_split(VertexHandle _v0, VertexHandle _v1,
|
||||||
VertexHandle _vl, VertexHandle _vr)
|
VertexHandle _vl, VertexHandle _vr)
|
||||||
{ return PolyMesh::vertex_split(_v0, _v1, _vl, _vr); }
|
{ return PolyMesh::vertex_split(_v0, _v1, _vl, _vr); }
|
||||||
|
|
||||||
/// Edge split (= 2-to-4 split)
|
|
||||||
/// Do not call PolyMeshT function below as this does the wrong operation
|
|
||||||
|
|
||||||
/** \brief Edge split (= 2-to-4 split)
|
/** \brief Edge split (= 2-to-4 split)
|
||||||
*
|
*
|
||||||
* The properties of the new edges will be undefined!
|
* The properties of the new edges will be undefined!
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* @param _eh Edge handle that should be splitted
|
* @param _eh Edge handle that should be splitted
|
||||||
* @param _p New point position that will be inserted at the edge
|
* @param _p New point position that will be inserted at the edge
|
||||||
* @return Vertex handle of the newly added vertex
|
* @return Vertex handle of the newly added vertex
|
||||||
*/
|
*/
|
||||||
inline VertexHandle split(EdgeHandle _eh, const Point& _p)
|
inline VertexHandle split(EdgeHandle _eh, const Point& _p)
|
||||||
{ const VertexHandle vh = this->add_vertex(_p); Kernel::split(_eh, vh); return vh; }
|
{
|
||||||
|
//Do not call PolyMeshT function below as this does the wrong operation
|
||||||
|
const VertexHandle vh = this->add_vertex(_p); Kernel::split(_eh, vh); return vh;
|
||||||
|
}
|
||||||
|
|
||||||
/** \brief Edge split (= 2-to-4 split)
|
/** \brief Edge split (= 2-to-4 split)
|
||||||
*
|
*
|
||||||
@@ -199,7 +271,10 @@ public:
|
|||||||
* @return Vertex handle of the newly added vertex
|
* @return Vertex handle of the newly added vertex
|
||||||
*/
|
*/
|
||||||
inline VertexHandle split_copy(EdgeHandle _eh, const Point& _p)
|
inline VertexHandle split_copy(EdgeHandle _eh, const Point& _p)
|
||||||
{ const VertexHandle vh = this->add_vertex(_p); Kernel::split_copy(_eh, vh); return vh; }
|
{
|
||||||
|
//Do not call PolyMeshT function below as this does the wrong operation
|
||||||
|
const VertexHandle vh = this->add_vertex(_p); Kernel::split_copy(_eh, vh); return vh;
|
||||||
|
}
|
||||||
|
|
||||||
/** \brief Edge split (= 2-to-4 split)
|
/** \brief Edge split (= 2-to-4 split)
|
||||||
*
|
*
|
||||||
@@ -209,7 +284,10 @@ public:
|
|||||||
* @param _vh Vertex handle that will be inserted at the edge
|
* @param _vh Vertex handle that will be inserted at the edge
|
||||||
*/
|
*/
|
||||||
inline void split(EdgeHandle _eh, VertexHandle _vh)
|
inline void split(EdgeHandle _eh, VertexHandle _vh)
|
||||||
{ Kernel::split(_eh, _vh); }
|
{
|
||||||
|
//Do not call PolyMeshT function below as this does the wrong operation
|
||||||
|
Kernel::split(_eh, _vh);
|
||||||
|
}
|
||||||
|
|
||||||
/** \brief Edge split (= 2-to-4 split)
|
/** \brief Edge split (= 2-to-4 split)
|
||||||
*
|
*
|
||||||
@@ -219,7 +297,10 @@ public:
|
|||||||
* @param _vh Vertex handle that will be inserted at the edge
|
* @param _vh Vertex handle that will be inserted at the edge
|
||||||
*/
|
*/
|
||||||
inline void split_copy(EdgeHandle _eh, VertexHandle _vh)
|
inline void split_copy(EdgeHandle _eh, VertexHandle _vh)
|
||||||
{ Kernel::split_copy(_eh, _vh); }
|
{
|
||||||
|
//Do not call PolyMeshT function below as this does the wrong operation
|
||||||
|
Kernel::split_copy(_eh, _vh);
|
||||||
|
}
|
||||||
|
|
||||||
/** \brief Face split (= 1-to-3 split, calls corresponding PolyMeshT function).
|
/** \brief Face split (= 1-to-3 split, calls corresponding PolyMeshT function).
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user