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

Parma_Polyhedra_Library::NNC_Polyhedron Class Reference

A not necessarily closed convex polyhedron. More...

Inherits Parma_Polyhedra_Library::Polyhedron.

List of all members.

Public Member Functions

 NNC_Polyhedron (dimension_type num_dimensions=0, Degenerate_Kind kind=UNIVERSE)
 Builds either the universe or the empty NNC polyhedron.
 NNC_Polyhedron (const Constraint_System &cs)
 Builds an NNC polyhedron from a system of constraints.
 NNC_Polyhedron (Constraint_System &cs)
 Builds an NNC polyhedron recycling a system of constraints.
 NNC_Polyhedron (const Generator_System &gs)
 Builds an NNC polyhedron from a system of generators.
 NNC_Polyhedron (Generator_System &gs)
 Builds an NNC polyhedron recycling a system of generators.
 NNC_Polyhedron (const C_Polyhedron &y)
 Builds an NNC polyhedron from the C polyhedron y.
template<typename Box>
 NNC_Polyhedron (const Box &box, From_Bounding_Box dummy)
 Builds an NNC polyhedron out of a generic, interval-based bounding box.
 NNC_Polyhedron (const NNC_Polyhedron &y)
 Ordinary copy-constructor.
NNC_Polyhedronoperator= (const NNC_Polyhedron &y)
 The assignment operator. (*this and y can be dimension-incompatible.).
NNC_Polyhedronoperator= (const C_Polyhedron &y)
 Assigns to *this the C polyhedron y.
 ~NNC_Polyhedron ()
 Destructor.


Detailed Description

A not necessarily closed convex polyhedron.

An object of the class NNC_Polyhedron represents a not necessarily closed (NNC) convex polyhedron in the vector space $\Rset^n$.

Note:
Since NNC polyhedra are a generalization of closed polyhedra, any object of the class C_Polyhedron can be (explicitly) converted into an object of the class NNC_Polyhedron. The reason for defining two different classes is that objects of the class C_Polyhedron are characterized by a more efficient implementation, requiring less time and memory resources.


Constructor & Destructor Documentation

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron dimension_type  num_dimensions = 0,
Degenerate_Kind  kind = UNIVERSE
[explicit]
 

Builds either the universe or the empty NNC polyhedron.

Parameters:
num_dimensions The number of dimensions of the vector space enclosing the NNC polyhedron;
kind Specifies whether a universe or an empty NNC polyhedron should be built.
Exceptions:
std::length_error Thrown if num_dimensions exceeds the maximum allowed space dimension.
Both parameters are optional: by default, a 0-dimension space universe NNC polyhedron is built.

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron const Constraint_System &  cs  )  [explicit]
 

Builds an NNC polyhedron from a system of constraints.

The polyhedron inherits the space dimension of the constraint system.

Parameters:
cs The system of constraints defining the polyhedron. It is not declared const because its data-structures will be recycled to build the polyhedron.

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron Constraint_System &  cs  )  [explicit]
 

Builds an NNC polyhedron recycling a system of constraints.

The polyhedron inherits the space dimension of the constraint system.

Parameters:
cs The system of constraints defining the polyhedron. It is not declared const because its data-structures will be recycled to build the polyhedron.

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron const Generator_System &  gs  )  [explicit]
 

Builds an NNC polyhedron from a system of generators.

The polyhedron inherits the space dimension of the generator system.

Parameters:
gs The system of generators defining the polyhedron. It is not declared const because its data-structures will be recycled to build the polyhedron.
Exceptions:
std::invalid_argument Thrown if the system of generators is not empty but has no points.

Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron Generator_System &  gs  )  [explicit]
 

Builds an NNC polyhedron recycling a system of generators.

The polyhedron inherits the space dimension of the generator system.

Parameters:
gs The system of generators defining the polyhedron. It is not declared const because its data-structures will be recycled to build the polyhedron.
Exceptions:
std::invalid_argument Thrown if the system of generators is not empty but has no points.

template<typename Box>
Parma_Polyhedra_Library::NNC_Polyhedron::NNC_Polyhedron const Box &  box,
From_Bounding_Box  dummy
 

Builds an NNC polyhedron out of a generic, interval-based bounding box.

For a description of the methods that should be provided by the template class Box, see the documentation of the protected method: template <typename Box> Polyhedron::Polyhedron(Topology topol, const Box& box);

Parameters:
box The bounding box representing the polyhedron to be built;
dummy A dummy tag to syntactically differentiate this one from the other constructors.
Exceptions:
std::length_error Thrown if the space dimension of box exceeds the maximum allowed space dimension.


Generated on Fri Dec 24 16:50:19 2004 for PPL by  doxygen 1.3.9.1-20041213