Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Methods that update the coloring


Detailed Description

These methods are the external interface for updating a coloring object.

Each method has three versions: one which tests to see if the update would leave the coloring in a valid state; a second version which executes the update only if it would leave the coloring in a valid state; and a third version that tries to execute the update without first testing to see if the result would be valid. These three versions are dispatched with the tags #TEST_IF_VALID_TAG, #DO_IF_VALID_TAG, and #DO_WITHOUT_VALID_TAG.


[NOHEADER]

bool Arak::Coloring::splitEdge (IntEdgeHandle e, const Geometry::Point &p, TEST_IF_VALID_TAG) const
 Splits an interior edge into two that are joined by a vertex at the supplied point.

bool Arak::Coloring::splitEdge (IntEdgeHandle &e, const Geometry::Point &p, DO_IF_VALID_TAG)
 Splits an interior edge into two that are joined by a vertex at the supplied point.

bool Arak::Coloring::splitEdge (IntEdgeHandle &e, const Geometry::Point &p, DO_WITHOUT_TEST_TAG)
 Splits an interior edge into two that are joined by a vertex at the supplied point.


[NOHEADER]

bool Arak::Coloring::newInteriorTriangle (const Geometry::Point &x, const Geometry::Point &y, const Geometry::Point &z, TEST_IF_VALID_TAG) const
 Constructs a fresh triangular path in the interior of the colored region.

VertexHandle Arak::Coloring::newInteriorTriangle (const Geometry::Point &x, const Geometry::Point &y, const Geometry::Point &z, DO_IF_VALID_TAG)
 Constructs a fresh triangular path in the interior of the colored region.

VertexHandle Arak::Coloring::newInteriorTriangle (const Geometry::Point &x, const Geometry::Point &y, const Geometry::Point &z, DO_WITHOUT_TEST_TAG)
 Constructs a fresh triangular path in the interior of the colored region.


[NOHEADER]

bool Arak::Coloring::newBoundaryTriangle (BdEdgeHandle e, const Geometry::Point &u, const Geometry::Point &v, const Geometry::Point &w, TEST_IF_VALID_TAG) const
 Constructs a fresh triangular path along the boundary of the colored region.

VertexHandle Arak::Coloring::newBoundaryTriangle (BdEdgeHandle e, const Geometry::Point &u, const Geometry::Point &v, const Geometry::Point &w, DO_IF_VALID_TAG)
 Constructs a fresh triangular path along the boundary of the colored region.

VertexHandle Arak::Coloring::newBoundaryTriangle (BdEdgeHandle e, const Geometry::Point &u, const Geometry::Point &v, const Geometry::Point &w, DO_WITHOUT_TEST_TAG)
 Constructs a fresh triangular path along the boundary of the colored region.


[NOHEADER]

bool Arak::Coloring::newCornerTriangle (VertexHandle corner, const Geometry::Point &u, const Geometry::Point &v, TEST_IF_VALID_TAG) const
 Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.

VertexHandle Arak::Coloring::newCornerTriangle (VertexHandle corner, const Geometry::Point &u, const Geometry::Point &v, DO_IF_VALID_TAG)
 Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.

VertexHandle Arak::Coloring::newCornerTriangle (VertexHandle corner, const Geometry::Point &u, const Geometry::Point &v, DO_WITHOUT_TEST_TAG)
 Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.


[NOHEADER]

bool Arak::Coloring::deleteIntTriangle (VertexHandle vh, TEST_IF_VALID_TAG) const
 Removes an interior triangle from the coloring.

bool Arak::Coloring::deleteIntTriangle (VertexHandle &vh, DO_IF_VALID_TAG)
 Removes an interior triangle from the coloring.

bool Arak::Coloring::deleteIntTriangle (VertexHandle &vh, DO_WITHOUT_TEST_TAG)
 Removes an interior triangle from the coloring.


[NOHEADER]

bool Arak::Coloring::deleteBdTriangle (VertexHandle vh, TEST_IF_VALID_TAG) const
 Removes a boundary triangle from the coloring.

bool Arak::Coloring::deleteBdTriangle (VertexHandle &vh, DO_IF_VALID_TAG)
 Removes a boundary triangle from the coloring.

bool Arak::Coloring::deleteBdTriangle (VertexHandle &vh, DO_WITHOUT_TEST_TAG)
 Removes a boundary triangle from the coloring.


[NOHEADER]

bool Arak::Coloring::deleteCornerTriangle (VertexHandle vh, TEST_IF_VALID_TAG) const
 Removes a corner triangle from the coloring.

bool Arak::Coloring::deleteCornerTriangle (VertexHandle &vh, DO_IF_VALID_TAG)
 Removes a corner triangle from the coloring.

bool Arak::Coloring::deleteCornerTriangle (VertexHandle &vh, DO_WITHOUT_TEST_TAG)
 Removes a corner triangle from the coloring.


[NOHEADER]

bool Arak::Coloring::moveIntVertex (VertexHandle v, const Geometry::Point &p, TEST_IF_VALID_TAG) const
 Moves an interior vertex to the supplied location.

bool Arak::Coloring::moveIntVertex (VertexHandle &v, const Geometry::Point &p, DO_IF_VALID_TAG)
 Moves an interior vertex to the supplied location.

bool Arak::Coloring::moveIntVertex (VertexHandle &v, const Geometry::Point &p, DO_WITHOUT_TEST_TAG)
 Moves an interior vertex to the supplied location.


[NOHEADER]

bool Arak::Coloring::moveVertexAlongBd (VertexHandle v, const Geometry::Point &p, TEST_IF_VALID_TAG) const
 Moves a boundary vertex to the supplied location on the same face of the boundary.

bool Arak::Coloring::moveVertexAlongBd (VertexHandle &v, const Geometry::Point &p, DO_IF_VALID_TAG)
 Moves a boundary vertex to the supplied location on the same face of the boundary.

bool Arak::Coloring::moveVertexAlongBd (VertexHandle &v, const Geometry::Point &p, DO_WITHOUT_TEST_TAG)
 Moves a boundary vertex to the supplied location on the same face of the boundary.


[NOHEADER]

bool Arak::Coloring::moveBdVertexPastCorner (BdEdgeHandle e, const Geometry::Point &p, TEST_IF_VALID_TAG) const
 Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.

bool Arak::Coloring::moveBdVertexPastCorner (BdEdgeHandle &e, const Geometry::Point &p, DO_IF_VALID_TAG)
 Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.

bool Arak::Coloring::moveBdVertexPastCorner (BdEdgeHandle &e, const Geometry::Point &p, DO_WITHOUT_TEST_TAG)
 Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.


[NOHEADER]

bool Arak::Coloring::recolorQuadrilateral (IntEdgeHandle ab, IntEdgeHandle cd, bool ac, TEST_IF_VALID_TAG) const
 Recolors a quadrilateral region of the colorings.

bool Arak::Coloring::recolorQuadrilateral (IntEdgeHandle &ab, IntEdgeHandle &cd, bool ac, DO_IF_VALID_TAG)
 Recolors a quadrilateral region of the colorings.

bool Arak::Coloring::recolorQuadrilateral (IntEdgeHandle &ab, IntEdgeHandle &cd, bool ac, DO_WITHOUT_TEST_TAG)

Functions

bool Arak::Coloring::deleteVertex (VertexHandle v, TEST_IF_VALID_TAG) const
 Removes a vertex by joining its two adjacent vertices.

bool Arak::Coloring::deleteVertex (VertexHandle &v, DO_IF_VALID_TAG)
bool Arak::Coloring::deleteVertex (VertexHandle &v, DO_WITHOUT_TEST_TAG)


Function Documentation

bool Coloring::deleteBdTriangle VertexHandle vh,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Removes a boundary triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 913 of file coloring.cpp.

References Arak::Coloring::disconnectFromBd(), Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::deleteBdTriangle VertexHandle vh,
DO_IF_VALID_TAG 
[inherited]
 

Removes a boundary triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 946 of file coloring.cpp.

References Arak::Coloring::deleteBdTriangle(), and Arak::Coloring::VertexHandle.

bool Coloring::deleteBdTriangle VertexHandle  vh,
TEST_IF_VALID_TAG 
const [inherited]
 

Removes a boundary triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 881 of file coloring.cpp.

References Arak::Coloring::VertexHandle.

Referenced by Arak::Coloring::deleteBdTriangle(), Arak::CN94Proposal::BoundaryTriangleDeath::execute(), Arak::CN94Proposal::proposeBdTriangleDeath(), and Arak::CN94Proposal::BoundaryTriangleBirth::undo().

bool Coloring::deleteCornerTriangle VertexHandle vh,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Removes a corner triangle from the coloring.

The supplied vertex handle must point to a vertex of a triangle in a corner of the window. All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 963 of file coloring.cpp.

References Arak::Coloring::disconnectFromBd(), Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::deleteCornerTriangle VertexHandle vh,
DO_IF_VALID_TAG 
[inherited]
 

Removes a corner triangle from the coloring.

The supplied vertex handle must point to a vertex of a triangle in a corner of the window. All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 995 of file coloring.cpp.

References Arak::Coloring::deleteCornerTriangle(), and Arak::Coloring::VertexHandle.

bool Coloring::deleteCornerTriangle VertexHandle  vh,
TEST_IF_VALID_TAG 
const [inherited]
 

Removes a corner triangle from the coloring.

The supplied vertex handle must point to a vertex of a triangle in a corner of the window. All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 951 of file coloring.cpp.

References Arak::Coloring::VertexHandle.

Referenced by Arak::Coloring::deleteCornerTriangle(), Arak::CN94Proposal::CornerCutDeath::execute(), Arak::CN94Proposal::sampleCornerCutDeath(), and Arak::CN94Proposal::CornerCutBirth::undo().

bool Coloring::deleteIntTriangle VertexHandle vh,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Removes an interior triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 844 of file coloring.cpp.

References Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::deleteIntTriangle VertexHandle vh,
DO_IF_VALID_TAG 
[inherited]
 

Removes an interior triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 876 of file coloring.cpp.

References Arak::Coloring::deleteIntTriangle(), and Arak::Coloring::VertexHandle.

bool Coloring::deleteIntTriangle VertexHandle  vh,
TEST_IF_VALID_TAG 
const [inherited]
 

Removes an interior triangle from the coloring.

All points in the triangle are recolored.

Parameters:
vh a handle to a vertex of the triangle; this is updated to be invalid
Returns:
true if the deletion was executed

Definition at line 830 of file coloring.cpp.

References Arak::Coloring::VertexHandle.

Referenced by Arak::Coloring::deleteIntTriangle(), Arak::CN94Proposal::InteriorTriangleDeath::execute(), Arak::CN94Proposal::proposeIntTriangleDeath(), and Arak::CN94Proposal::InteriorTriangleBirth::undo().

bool Coloring::deleteVertex VertexHandle v,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Definition at line 540 of file coloring.cpp.

References Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newInteriorEdge(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::deleteVertex VertexHandle v,
DO_IF_VALID_TAG 
[inherited]
 

Definition at line 567 of file coloring.cpp.

References Arak::Coloring::deleteVertex(), and Arak::Coloring::VertexHandle.

bool Coloring::deleteVertex VertexHandle  v,
TEST_IF_VALID_TAG 
const [inherited]
 

Removes a vertex by joining its two adjacent vertices.

This operation is supported only when the vertex is part of a path with four or more vertices, and when the new edge would not cross any other edges in the coloring. If either of these conditions does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the vertex to be deleted; this vertex object becomes invalid if the operation is successful
Returns:
true if the deletion was executed, and false otherwise

Definition at line 515 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Referenced by Arak::Coloring::deleteVertex(), Arak::CN94Proposal::InteriorVertexDeath::execute(), Arak::CN94Proposal::proposeIntVertexDeath(), and Arak::CN94Proposal::InteriorVertexBirth::undo().

bool Coloring::moveBdVertexPastCorner BdEdgeHandle e,
const Geometry::Point p,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.

This operation is supported only when the movement update yields a valid coloring. If it would cause crossing edges or if the boundary vertex is adjacent to a boundary vertex on the adjacent face, then this method leaves the coloring unchanged and returns false.

Parameters:
e an edge joining a corner vertex to a boundary vertex
p the new location for the vertex on the other boundary face adjacent to the corner
Returns:
true if the movement was executed, and false otherwise

Definition at line 1171 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newBoundaryEdge(), Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Coloring::numBoundaryEdges(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::moveBdVertexPastCorner BdEdgeHandle e,
const Geometry::Point p,
DO_IF_VALID_TAG 
[inherited]
 

Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.

This operation is supported only when the movement update yields a valid coloring. If it would cause crossing edges or if the boundary vertex is adjacent to a boundary vertex on the adjacent face, then this method leaves the coloring unchanged and returns false.

Parameters:
e an edge joining a corner vertex to a boundary vertex
p the new location for the vertex on the other boundary face adjacent to the corner
Returns:
true if the movement was executed, and false otherwise

Definition at line 1231 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::moveBdVertexPastCorner(), and Arak::Geometry::Point.

bool Coloring::moveBdVertexPastCorner BdEdgeHandle  e,
const Geometry::Point p,
TEST_IF_VALID_TAG 
const [inherited]
 

Moves a boundary vertex past a corner vertex to an adjacent face of the boundary.

This operation is supported only when the movement update yields a valid coloring. If it would cause crossing edges or if the boundary vertex is adjacent to a boundary vertex on the adjacent face, then this method leaves the coloring unchanged and returns false.

Parameters:
e an edge joining a corner vertex to a boundary vertex
p the new location for the vertex on the other boundary face adjacent to the corner
Returns:
true if the movement was executed, and false otherwise

Definition at line 1132 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::compatible(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::MoveBdVertexPastCorner::execute(), Arak::Coloring::moveBdVertexPastCorner(), Arak::CN94Proposal::sampleMoveBdVertexPastCorner(), and Arak::CN94Proposal::MoveBdVertexPastCorner::undo().

bool Coloring::moveIntVertex VertexHandle v,
const Geometry::Point p,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Moves an interior vertex to the supplied location.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the interior vertex to be moved
p the new location for the vertex
Returns:
true if the movement was executed, and false otherwise

Definition at line 1019 of file coloring.cpp.

References Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::moveIntVertex VertexHandle v,
const Geometry::Point p,
DO_IF_VALID_TAG 
[inherited]
 

Moves an interior vertex to the supplied location.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the interior vertex to be moved
p the new location for the vertex
Returns:
true if the movement was executed, and false otherwise

Definition at line 1052 of file coloring.cpp.

References Arak::Coloring::moveIntVertex(), Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

bool Coloring::moveIntVertex VertexHandle  v,
const Geometry::Point p,
TEST_IF_VALID_TAG 
const [inherited]
 

Moves an interior vertex to the supplied location.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the interior vertex to be moved
p the new location for the vertex
Returns:
true if the movement was executed, and false otherwise

Definition at line 1000 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::interior(), Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::MoveInteriorVertex::execute(), Arak::Coloring::moveIntVertex(), Arak::CN94Proposal::sampleMoveInteriorVertex(), Arak::ModifiedCN94Proposal::sampleSlideInteriorVertex(), and Arak::CN94Proposal::MoveInteriorVertex::undo().

bool Coloring::moveVertexAlongBd VertexHandle v,
const Geometry::Point p,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Moves a boundary vertex to the supplied location on the same face of the boundary.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the boundary vertex to be moved
p the new location for the vertex on the same boundary face
Returns:
true if the movement was executed, and false otherwise

Definition at line 1083 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::freeEdge(), Arak::Coloring::freeVertex(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newBoundaryEdge(), Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Coloring::numBoundaryEdges(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::moveVertexAlongBd VertexHandle v,
const Geometry::Point p,
DO_IF_VALID_TAG 
[inherited]
 

Moves a boundary vertex to the supplied location on the same face of the boundary.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the boundary vertex to be moved
p the new location for the vertex on the same boundary face
Returns:
true if the movement was executed, and false otherwise

Definition at line 1125 of file coloring.cpp.

References Arak::Coloring::moveVertexAlongBd(), Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

bool Coloring::moveVertexAlongBd VertexHandle  v,
const Geometry::Point p,
TEST_IF_VALID_TAG 
const [inherited]
 

Moves a boundary vertex to the supplied location on the same face of the boundary.

This operation is supported only when the movement would not cause the vertex's edges to cross any other edges in the coloring. If this condition does not hold, then this method leaves the coloring unchanged and returns false.

Parameters:
v the boundary vertex to be moved
p the new location for the vertex on the same boundary face
Returns:
true if the movement was executed, and false otherwise

Definition at line 1059 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::MoveVertexAlongBdEdge::execute(), Arak::Coloring::moveVertexAlongBd(), Arak::CN94Proposal::sampleMoveVertexAlongBd(), and Arak::CN94Proposal::MoveVertexAlongBdEdge::undo().

Coloring::VertexHandle Coloring::newBoundaryTriangle BdEdgeHandle  e,
const Geometry::Point u,
const Geometry::Point v,
const Geometry::Point w,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Constructs a fresh triangular path along the boundary of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
e a boundary edge
u a point on e
v another point on f (distinct from u)
w a point in the interior of the colored region
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 713 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::freeEdge(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newBoundaryEdge(), Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::numBoundaryEdges(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Coloring::VertexHandle Coloring::newBoundaryTriangle BdEdgeHandle  e,
const Geometry::Point u,
const Geometry::Point v,
const Geometry::Point w,
DO_IF_VALID_TAG 
[inherited]
 

Constructs a fresh triangular path along the boundary of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
e a boundary edge
u a point on e
v another point on f (distinct from u)
w a point in the interior of the colored region
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 755 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::newBoundaryTriangle(), Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

bool Coloring::newBoundaryTriangle BdEdgeHandle  e,
const Geometry::Point u,
const Geometry::Point v,
const Geometry::Point w,
TEST_IF_VALID_TAG 
const [inherited]
 

Constructs a fresh triangular path along the boundary of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
e a boundary edge
u a point on e
v another point on f (distinct from u)
w a point in the interior of the colored region
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 684 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::compatible(), Arak::Coloring::interior(), Arak::Coloring::minEdgeLengthSq, and Arak::Geometry::Point.

Referenced by Arak::CN94Proposal::BoundaryTriangleBirth::execute(), Arak::Coloring::newBoundaryTriangle(), Arak::ModifiedCN94Proposal::sampleBoundaryTriangleBirth(), Arak::CN94Proposal::sampleBoundaryTriangleBirth(), and Arak::CN94Proposal::BoundaryTriangleDeath::undo().

Coloring::VertexHandle Coloring::newCornerTriangle VertexHandle  corner,
const Geometry::Point u,
const Geometry::Point v,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.

If the interior edge of the triangle would cross existing edges in the coloring, then this method does nothing.

Parameters:
corner the corner that is one vertex of the triangle
u the second point of the triangle; this must lie on the previous boundary edge incident to the corner
v the third point of the triangle; this must lie on the next boundary edge incident to the corner
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 779 of file coloring.cpp.

References Arak::Coloring::BdEdgeHandle, Arak::Coloring::freeEdge(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newBoundaryEdge(), Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::numBoundaryEdges(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Coloring::VertexHandle Coloring::newCornerTriangle VertexHandle  corner,
const Geometry::Point u,
const Geometry::Point v,
DO_IF_VALID_TAG 
[inherited]
 

Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.

If the interior edge of the triangle would cross existing edges in the coloring, then this method does nothing.

Parameters:
corner the corner that is one vertex of the triangle
u the second point of the triangle; this must lie on the previous boundary edge incident to the corner
v the third point of the triangle; this must lie on the next boundary edge incident to the corner
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 822 of file coloring.cpp.

References Arak::Coloring::newCornerTriangle(), Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

bool Coloring::newCornerTriangle VertexHandle  corner,
const Geometry::Point u,
const Geometry::Point v,
TEST_IF_VALID_TAG 
const [inherited]
 

Recolors a triangle in the corner of the colored region by constructing single interior edge that joins boundary vertices on adjacent faces of the boundary.

If the interior edge of the triangle would cross existing edges in the coloring, then this method does nothing.

Parameters:
corner the corner that is one vertex of the triangle
u the second point of the triangle; this must lie on the previous boundary edge incident to the corner
v the third point of the triangle; this must lie on the next boundary edge incident to the corner
Returns:
a handle to the root vertex of the new boundary triangle, or an invalid vertex handle if the triangle was not created

Definition at line 765 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::CornerCutBirth::execute(), Arak::Coloring::newCornerTriangle(), Arak::CN94Proposal::sampleCornerCutBirth(), and Arak::CN94Proposal::CornerCutDeath::undo().

Coloring::VertexHandle Coloring::newInteriorTriangle const Geometry::Point x,
const Geometry::Point y,
const Geometry::Point z,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Constructs a fresh triangular path in the interior of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
x the first point of the triangle
y the second point of the triangle
z the third point of the triangle
Returns:
a handle on a vertex of the new triangle, or an invalid vertex handle if the triangle was not created

Definition at line 649 of file coloring.cpp.

References Arak::Coloring::IntEdgeHandle, Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

Coloring::VertexHandle Coloring::newInteriorTriangle const Geometry::Point x,
const Geometry::Point y,
const Geometry::Point z,
DO_IF_VALID_TAG 
[inherited]
 

Constructs a fresh triangular path in the interior of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
x the first point of the triangle
y the second point of the triangle
z the third point of the triangle
Returns:
a handle on a vertex of the new triangle, or an invalid vertex handle if the triangle was not created

Definition at line 675 of file coloring.cpp.

References Arak::Coloring::newInteriorTriangle(), Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

bool Coloring::newInteriorTriangle const Geometry::Point x,
const Geometry::Point y,
const Geometry::Point z,
TEST_IF_VALID_TAG 
const [inherited]
 

Constructs a fresh triangular path in the interior of the colored region.

All points inside the triangle are recolored. This method does nothing if the edges of the triangle would cross existing edges in the coloring.

Parameters:
x the first point of the triangle
y the second point of the triangle
z the third point of the triangle
Returns:
a handle on a vertex of the new triangle, or an invalid vertex handle if the triangle was not created

Definition at line 626 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::interior(), Arak::Coloring::minEdgeLengthSq, and Arak::Geometry::Point.

Referenced by Arak::CN94Proposal::InteriorTriangleBirth::execute(), Arak::Coloring::newInteriorTriangle(), Arak::CN94Proposal::sampleInteriorTriangleBirth(), and Arak::CN94Proposal::InteriorTriangleDeath::undo().

bool Coloring::recolorQuadrilateral IntEdgeHandle ab,
IntEdgeHandle cd,
bool  ac,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Definition at line 1287 of file coloring.cpp.

References Arak::Coloring::freeEdge(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newInteriorEdge(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Coloring::recolored(), TEST_VALIDITY, PointerHandle< T >::valid(), and Arak::Coloring::VertexHandle.

bool Coloring::recolorQuadrilateral IntEdgeHandle ab,
IntEdgeHandle cd,
bool  ac,
DO_IF_VALID_TAG 
[inherited]
 

Recolors a quadrilateral region of the colorings.

The two supplied interior edges $a \rightarrow b$ and $c \rightarrow d$ are exchanged for two new edges: $\{a, c\}$ and $\{b, d\}$ (if ac is true) or $\{a, d\}$ and $\{b, c\}$ (if ac is false). The supplied edge objects are updated in place to represent these new edges. If this operation would not yield a valid coloring, then this method leaves the coloring unchanged and returns false.

Parameters:
ab the $a \rightarrow b$ edge
cd the $c \rightarrow d$ edge
ac if this flag is true, the current edges are exchanged for $\{a, c\}$ and $\{b, d\}$; otherwise they are exchanged for $\{a, d\}$ and $\{b, c\}$.
Returns:
true if the recoloring was executed, and false otherwise

Definition at line 1442 of file coloring.cpp.

References Arak::Coloring::IntEdgeHandle, and Arak::Coloring::recolorQuadrilateral().

bool Coloring::recolorQuadrilateral IntEdgeHandle  ab,
IntEdgeHandle  cd,
bool  ac,
TEST_IF_VALID_TAG 
const [inherited]
 

Recolors a quadrilateral region of the colorings.

The two supplied interior edges $a \rightarrow b$ and $c \rightarrow d$ are exchanged for two new edges: $\{a, c\}$ and $\{b, d\}$ (if ac is true) or $\{a, d\}$ and $\{b, c\}$ (if ac is false). The supplied edge objects are updated in place to represent these new edges. If this operation would not yield a valid coloring, then this method leaves the coloring unchanged and returns false.

Parameters:
ab the $a \rightarrow b$ edge
cd the $c \rightarrow d$ edge
ac if this flag is true, the current edges are exchanged for $\{a, c\}$ and $\{b, d\}$; otherwise they are exchanged for $\{a, d\}$ and $\{b, c\}$.
Returns:
true if the recoloring was executed, and false otherwise

Definition at line 1238 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Segment, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::Recolor::execute(), Arak::Coloring::recolorQuadrilateral(), Arak::ModifiedCN94Proposal::sampleRecolor(), and Arak::CN94Proposal::sampleRecolor().

bool Coloring::splitEdge IntEdgeHandle e,
const Geometry::Point p,
DO_WITHOUT_TEST_TAG 
[inherited]
 

Splits an interior edge into two that are joined by a vertex at the supplied point.

This operation is supported only when the new edges would not cross any other edges in the coloring. If this is not true then this method leaves the coloring unchanged and returns false.

Parameters:
e the edge to be split; this edge object becomes invalid if the operation is successful
p the location of the new vertex
Returns:
true if the split was executed, and false otherwise

Definition at line 592 of file coloring.cpp.

References Arak::Coloring::freeEdge(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::newInteriorEdge(), Arak::Coloring::newVertex(), Arak::Coloring::notifyEdgeHasBeenAdded(), Arak::Coloring::notifyEdgeWillBeRemoved(), Arak::Coloring::notifyVertexHasBeenAdded(), Arak::Coloring::notifyVertexWillBeRemoved(), Arak::Geometry::Point, Arak::Coloring::recolored(), TEST_VALIDITY, and Arak::Coloring::VertexHandle.

bool Coloring::splitEdge IntEdgeHandle e,
const Geometry::Point p,
DO_IF_VALID_TAG 
[inherited]
 

Splits an interior edge into two that are joined by a vertex at the supplied point.

This operation is supported only when the new edges would not cross any other edges in the coloring. If this is not true then this method leaves the coloring unchanged and returns false.

Parameters:
e the edge to be split; this edge object becomes invalid if the operation is successful
p the location of the new vertex
Returns:
true if the split was executed, and false otherwise

Definition at line 619 of file coloring.cpp.

References Arak::Coloring::IntEdgeHandle, Arak::Geometry::Point, and Arak::Coloring::splitEdge().

bool Coloring::splitEdge IntEdgeHandle  e,
const Geometry::Point p,
TEST_IF_VALID_TAG 
const [inherited]
 

Splits an interior edge into two that are joined by a vertex at the supplied point.

This operation is supported only when the new edges would not cross any other edges in the coloring. If this is not true then this method leaves the coloring unchanged and returns false.

Parameters:
e the edge to be split; this edge object becomes invalid if the operation is successful
p the location of the new vertex
Returns:
true if the split was executed, and false otherwise

Definition at line 572 of file coloring.cpp.

References Arak::Coloring::compatible(), Arak::Coloring::IntEdgeHandle, Arak::Coloring::minEdgeLengthSq, Arak::Geometry::Point, and Arak::Coloring::VertexHandle.

Referenced by Arak::CN94Proposal::InteriorVertexBirth::execute(), Arak::CN94Proposal::sampleInteriorVertexBirth(), Arak::Coloring::splitEdge(), and Arak::CN94Proposal::InteriorVertexDeath::undo().


Generated on Wed May 25 14:40:14 2005 for Arak by doxygen 1.3.6