cgal/Kinetic_data_structures/doc/Kinetic_framework/Concepts/SimulationTraits.h

101 lines
2.2 KiB
C++

namespace Kinetic {
/*!
\ingroup PkgKdsFrameworkConcepts
\cgalConcept
This concept ties together the parts needed in order to run a kinetic
data structure. All support trajectories defined by polynomial coordinates. The
`Exact` vs `Inexect` picks whether the roots of the
certificate functions are compared exactly or approximated
numerically. The regular triangulation models have weighted points of
the appropriate dimension as the primitive used in the
`Kinetic::InstantaneousKernel` and the
`Kinetic::ActiveObjectsTable`.
\cgalHasModel `CGAL::Kinetic::Exact_simulation_traits`
\cgalHasModel `CGAL::Kinetic::Inexact_simulation_traits`
\cgalHasModel `CGAL::Kinetic::Regular_triangulation_exact_simulation_traits`
\cgalHasModel `CGAL::Kinetic::Regular_triangulation_inexact_simulation_traits`
*/
class SimulationTraits {
public:
/// \name Types
/// @{
/*!
The number type used for representation.
*/
typedef unspecified_type NT;
/*!
A model of
`Kinetic::InstantaneousKernel` which can be used to apply static CGAL
data structures to snapshots of moving data.
*/
typedef unspecified_type Instantaneous_kernel;
/*!
A model of `Kinetic::Kernel`.
*/
typedef unspecified_type Kinetic_kernel;
/*!
A model of `Kinetic::FunctionKernel`.
*/
typedef unspecified_type Function_kernel;
/*!
A model of
`Kinetic::ActiveObjectsTable` which holds the relevant kinetic
primitives.
*/
typedef unspecified_type Active_points_@omtable;
/*!
A model of `Kinetic::Simulator` which will be
used by all the kinetic data structures.
*/
typedef unspecified_type Simulator;
/// @}
/// \name Operations
/// @{
/*!
Get a new instantaneous kernel.
*/
Instantaneous_kernel instantaneous_kernel_object();
/*!
Get a new kinetic kernel.
*/
Kinetic_kernel kinetic_kernel_object();
/*!
Get a new function kernel.
*/
Function_kernel function_kernel_object();
/*!
Return a pointer to the `Kinetic::Simulator` which is to be used in the simulation.
*/
Simulator::Handle simulator_handle();
/*!
Return a pointer to the
`Kinetic::ActiveObjectsTable` which is to be used in the
simulation.
*/
Active_points_[123]_table::Handle
active_points_[123]_table_handle();
/// @}
}; /* end Kinetic::SimulationTraits */
} /* end namespace KineticConcepts */