jdsl.map.api
Interface InspectableEmbeddedPlanarGraph
- All Superinterfaces:
- InspectableContainer, InspectableGraph, InspectablePositionalContainer
- All Known Subinterfaces:
- EmbeddedPlanarGraph
- public interface InspectableEmbeddedPlanarGraph
- extends InspectableGraph
An interface describing the accessor methods of an embedded planar
graph. In an embedded planar graph the ordering of the edges
incident with a vertex is given by a planar embedding of the graph.
The graph must be connected. Directed and undirected edges may
coexist. Multiple edges and self-loops are allowed.
A position and its dual position may store different elements (the
actual behavior is implementation-dependent).
If an edge is directed, its dual edge need not be (the actual
behavior is implementation-dependent).
- Version:
- $Id: InspectableEmbeddedPlanarGraph.java,v 1.11 2001/10/18 15:39:04 lv Exp $
- Author:
- Luca Vismara (lv)
|
Method Summary |
Face |
aCommonFace(Edge e1,
Edge e2)
|
Face |
aCommonFace(Vertex v1,
Vertex v2)
|
FaceIterator |
adjacentFaces(Face f)
|
Face |
aFace()
|
Edge |
anIncidentEdge(Face f)
|
Face |
anIncidentFace(Vertex v)
|
Vertex |
anIncidentVertex(Face f)
|
boolean |
areAdjacent(Edge e1,
Edge e2)
Checks whether two edges have at least one common endpoint. |
boolean |
areAdjacent(Face f1,
Face f2)
|
boolean |
areIncident(Edge e,
Face f)
|
boolean |
areIncident(Vertex v,
Face f)
|
EdgeIterator |
connectingEdges(Face f1,
Face f2)
|
int |
degree(Face f)
|
Edge |
dual(Edge e)
|
Vertex |
dual(Face f)
|
Face |
dual(Vertex v)
|
FaceIterator |
faces()
|
Edge |
incidentEdge(Face f,
Order order,
Edge e,
Vertex v)
|
Edge |
incidentEdge(Vertex v,
Order order,
Edge e,
Face f)
|
EdgeIterator |
incidentEdges(Face f)
|
Face |
incidentFace(Vertex v,
Order order,
Edge e)
|
Face[] |
incidentFaces(Edge e)
|
FaceIterator |
incidentFaces(Vertex v)
|
Vertex |
incidentVertex(Face f,
Order order,
Edge e)
|
VertexIterator |
incidentVertices(Face f)
|
InspectableEmbeddedPlanarGraph |
inspectableDual()
|
Face |
leftFace(Edge e)
|
int |
numFaces()
|
Face |
opposite(Face f,
Edge e)
|
Face |
rightFace(Edge e)
|
| Methods inherited from interface jdsl.graph.api.InspectableGraph |
aCommonVertex, aConnectingEdge, adjacentVertices, adjacentVertices, anEdge, anIncidentEdge, anIncidentEdge, areAdjacent, areIncident, aVertex, connectingEdges, degree, degree, destination, directedEdges, edges, endVertices, incidentEdges, incidentEdges, isDirected, numEdges, numVertices, opposite, origin, undirectedEdges, vertices |
numFaces
public int numFaces()
- Returns:
- the number of faces
faces
public FaceIterator faces()
- Returns:
- an iterator over the faces in the graph
aFace
public Face aFace()
- Returns:
- an arbitrary face
areAdjacent
public boolean areAdjacent(Edge e1,
Edge e2)
throws InvalidAccessorException
- Description copied from interface:
InspectableGraph
- Checks whether two edges have at least one common endpoint.
(For example, parallel edges are considered adjacent, as are
two self-loops incident on a single vertex.)
- Specified by:
areAdjacent in interface InspectableGraph
- Parameters:
e1 - an edgee2 - an edge- Returns:
- whether e1 and e2 are adjacent, i.e., whether they have
at least one common endvertex or one common incident face
- Throws:
InvalidAccessorException - if either e1 or
e2 is null or not contained in this graph
areAdjacent
public boolean areAdjacent(Face f1,
Face f2)
throws InvalidAccessorException
- Parameters:
f1 - a facef2 - a face- Returns:
- whether f1 and f2 are adjacent, i.e., whether they have
at least one edge in common
- Throws:
InvalidAccessorException - if either f1 or
f2 is null or not contained in this graph
areIncident
public boolean areIncident(Vertex v,
Face f)
throws InvalidAccessorException
- Parameters:
v - a vertexf - a face- Returns:
- whether v and f are incident
- Throws:
InvalidAccessorException - if either v or
f is null or not contained in this graph
areIncident
public boolean areIncident(Edge e,
Face f)
throws InvalidAccessorException
- Parameters:
e - an edgef - a face- Returns:
- whether e and f are incident
- Throws:
InvalidAccessorException - if either e or
f is null or not contained in this graph
incidentFaces
public FaceIterator incidentFaces(Vertex v)
throws InvalidAccessorException
- Parameters:
v - a vertex- Returns:
- an iterator over the faces incident with
v - Throws:
InvalidAccessorException - if v is null or not
contained in this graph
anIncidentFace
public Face anIncidentFace(Vertex v)
throws InvalidAccessorException
- Parameters:
v - a vertex- Returns:
- an arbitrary face incident with
v - Throws:
InvalidAccessorException - if v is null or not
contained in this graph
aCommonFace
public Face aCommonFace(Vertex v1,
Vertex v2)
throws InvalidAccessorException
- Parameters:
v1 - a vertexv2 - a vertex- Returns:
- any face that is incident with both v1 and v2, or
Face.NONE if there is no such face
- Throws:
InvalidAccessorException - if v1 or
v2 is null or not contained in this graph
incidentFaces
public Face[] incidentFaces(Edge e)
throws InvalidAccessorException
- Parameters:
e - an edge- Returns:
- an array (of size 2) containing the two faces incident
with e
- Throws:
InvalidAccessorException - if e is null or
not contained in this graph
opposite
public Face opposite(Face f,
Edge e)
throws InvalidAccessorException,
InvalidFaceException
- Parameters:
f - one of the two faces incident with ee - an edge- Returns:
- the face incident with e different from f
- Throws:
InvalidAccessorException - if either f or
e is null or not contained in this graphInvalidFaceException - if f is not a face
incident with e
aCommonFace
public Face aCommonFace(Edge e1,
Edge e2)
throws InvalidAccessorException
- Parameters:
e1 - an edgee2 - an edge- Returns:
- any face that is incident with both e1 and e2, or
Face.NONE if there is no such face
- Throws:
InvalidAccessorException - if e1 or
e2 is null or not contained in this graph
degree
public int degree(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- the number of edges incident with f
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
adjacentFaces
public FaceIterator adjacentFaces(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- an iterator over the faces adjacent to f
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
incidentVertices
public VertexIterator incidentVertices(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- an iterator over the vertices incident with f
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
anIncidentVertex
public Vertex anIncidentVertex(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- an arbitrary vertex incident with f
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
incidentEdges
public EdgeIterator incidentEdges(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- an iterator over the edges incident with f
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
anIncidentEdge
public Edge anIncidentEdge(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- an arbitrary edge incident with f or Edge.NONE if there
is no such edge
- Throws:
InvalidAccessorException - if f is null or not
contained in this graph
connectingEdges
public EdgeIterator connectingEdges(Face f1,
Face f2)
throws InvalidAccessorException
- Parameters:
f1 - a facef2 - a face- Returns:
- an iterator over the edges in common between f1 and f2
- Throws:
InvalidAccessorException - if either f1 or
f2 is null or not contained in this graph
inspectableDual
public InspectableEmbeddedPlanarGraph inspectableDual()
- Returns:
- the dual inspectable embedded planar graph
dual
public Face dual(Vertex v)
throws InvalidAccessorException
- Parameters:
v - a vertex- Returns:
- the dual face of
v - Throws:
InvalidAccessorException - if v is null or
not contained in this graph
dual
public Edge dual(Edge e)
throws InvalidAccessorException
- Parameters:
e - an edge- Returns:
- the dual edge of
e - Throws:
InvalidAccessorException - if e is null or not
contained in this graph
dual
public Vertex dual(Face f)
throws InvalidAccessorException
- Parameters:
f - a face- Returns:
- the dual vertex of
f - Throws:
InvalidAccessorException - if f is null or not
contained in this graph
leftFace
public Face leftFace(Edge e)
throws InvalidAccessorException,
InvalidEdgeException
- Parameters:
e - a directed edge- Returns:
- the face to the left of e
- Throws:
InvalidAccessorException - if e is null or
not contained in this graphInvalidEdgeException - if e is not directed
rightFace
public Face rightFace(Edge e)
throws InvalidAccessorException,
InvalidEdgeException
- Parameters:
e - a directed edge- Returns:
- the face to the right of e
- Throws:
InvalidAccessorException - if e is null or not
contained in this graphInvalidEdgeException - if e is not directed
incidentEdge
public Edge incidentEdge(Vertex v,
Order order,
Edge e,
Face f)
throws InvalidAccessorException,
InvalidOrderException,
InvalidEdgeException,
InvalidFaceException
- Parameters:
v - a vertexorder - indicates if the edge to return is the one
Order.AFTER_CW or Order.AFTER_CCW e
around ve - an edge incident with vf - a face incident with e; this parameter is
meaningful only if e is a self-loop, otherwise null
can be passed- Returns:
- the edge incident with
v (and
f, if e is a self-loop) that comes
order e - Throws:
InvalidAccessorException - if v, or
e, or f is null or not contained in
this graphInvalidOrderException - if order is
different from Order.AFTER_CW or
Order.AFTER_CCWInvalidEdgeException - if e is not an edge
incident with vInvalidFaceException - if f is not a face
incident with e
incidentEdge
public Edge incidentEdge(Face f,
Order order,
Edge e,
Vertex v)
throws InvalidAccessorException,
InvalidOrderException,
InvalidEdgeException,
InvalidVertexException
- Parameters:
f - a faceorder - indicates if the edge to return is the one
Order.AFTER_LHS or Order.AFTER_RHS e
around fe - an edge incident with fv - an endvertex of e; this parameter is
meaningful only if e is a bridge, otherwise null
can be passed- Returns:
- the edge incident with
f (and
v, if e is a bridge) that comes
order e - Throws:
InvalidAccessorException - if f, or
e, or v is null or not contained in
this graphInvalidOrderException - if order is different from
Order.AFTER_LHS or Order.AFTER_RHSInvalidEdgeException - if e is not an edge
incident with fInvalidVertexException - if v is not an
endvertex of e
incidentFace
public Face incidentFace(Vertex v,
Order order,
Edge e)
throws InvalidAccessorException,
InvalidOrderException,
InvalidEdgeException,
NoUniqueResultException
- Parameters:
v - a vertexorder - indicates if the face to return is the one
Order.AFTER_CW or Order.AFTER_CCW e
around ve - an edge incident with v- Returns:
- the face incident with
v that comes
order e - Throws:
InvalidAccessorException - if v, or
e is null or not contained in this graphInvalidOrderException - if order is
different from Order.AFTER_CW or
Order.AFTER_CCWInvalidEdgeException - if e is not an edge
incident with vNoUniqueResultException - if e is a
self-loop
incidentVertex
public Vertex incidentVertex(Face f,
Order order,
Edge e)
throws InvalidAccessorException,
InvalidOrderException,
InvalidEdgeException,
InvalidVertexException
- Parameters:
f - a faceorder - indicates if the vertex to return is the one
Order.AFTER_LHS or Order.AFTER_RHS e
around fe - an edge incident with f- Returns:
- the vertex incident with
f that comes
order e - Throws:
InvalidAccessorException - if f, or
e is null or not contained in this graphInvalidOrderException - if order is different from
Order.AFTER_LHS or Order.AFTER_RHSInvalidEdgeException - if e is not an edge
incident with fNoUniqueResultException - if e is a bridge