diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/ActiveObjectsTable.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/ActiveObjectsTable.tex index 85f015f00e3..385dc85ba43 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/ActiveObjectsTable.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/ActiveObjectsTable.tex @@ -20,7 +20,7 @@ This container holds a set of objects of a particular type. It creates -notifications using the standard \ccc{ulti_listener} +notifications using the standard \ccc{Multi_listener} interface when a primitive changes or is added or deleted. Objects which are listening for events can then ask which primitives changed. @@ -62,7 +62,7 @@ allow you to iterate through the objects in the set \ccc{Foo}. \ccMethod{Data operator[](Key key) const;}{Access the object referenced by the key.} -\ccMethod{Data at(Key key) const;}{Access the object referencd by the key.} +\ccMethod{Data at(Key key) const;}{Access the object referenced by the key.} \ccMethod{void set_is_editing(bool is_editing);}{Set the editing state of the object. A notification is sent when the editing state is set to @@ -71,7 +71,7 @@ allow you to iterate through the objects in the set \ccc{Foo}. \ccMethod{bool is_editing() const;}{Access the editing state.} -\ccMethod{void set(Key key, Moving_object object);}{This method changes +\ccMethod{void set(Key key, Data object);}{This method changes the motion of one moving object. The position at the current time should not be different from the previous current position. However, at the moment I do not check this as there is no reference to time @@ -99,7 +99,7 @@ allow you to iterate through the objects in the set \ccc{Foo}. \ccSeeAlso -\ccc{Multi_listener}. +\ccc{Multi_listener}, \ccc{Kinetic::Active_objects_listener_helper} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Active_objects_vector.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Active_objects_vector.tex index 7a4abb0e778..28698dd697d 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Active_objects_vector.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Active_objects_vector.tex @@ -28,7 +28,7 @@ to remove all reference counts for the table or to call \ccc{clear()}. \ccIsModel -Kinetic::ActiveObjectsTable +\ccc{Kinetic::ActiveObjectsTable} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_instantaneous_kernel.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_instantaneous_kernel.tex index 807a1b04f09..4ed5f1fbc1d 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_instantaneous_kernel.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_instantaneous_kernel.tex @@ -24,7 +24,7 @@ needed for Delaunay triangulations and regular triangulations. For technical reasons, the user must pick out one particular type of primitive to use when instantiating a model. For example, if the user -passes a model of \ccc{Kinetic::Active_objects_vector} with a +passes a model of \ccc{Kinetic::Active_objects_vector} with a \ccc{Kinetic::Kernel::Point_2} as the kinetic primitive, then the type \ccc{Point_2} will be properly defined and the predicates on it will work properly, but the other predicates will not work. @@ -33,7 +33,7 @@ work properly, but the other predicates will not work. \ccIsModel -Kinetic::InstantaneousKernel +\ccc{Kinetic::InstantaneousKernel} \end{ccRefClass} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_kinetic_kernel.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_kinetic_kernel.tex index f9eaba99125..9efe7dee1e3 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_kinetic_kernel.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Cartesian_kinetic_kernel.tex @@ -24,7 +24,7 @@ This class provides a model of \ccc{Kinetic::Kernel} for use with general Cartes \ccTypes -\ccNestedType{Certificate}{This is a \ccc{Kinetic::Certificate} model.} +\ccNestedType{Certificate}{This is a model of \ccc{Kinetic::Certificate}.} \ccNestedType{Point_1}{} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_2.tex index cc87ec2ebe2..01385e45b37 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_2.tex @@ -23,11 +23,15 @@ This concept is for proxy objects which get notified when a kinetic Delaunay tri \ccMethod{void create_vertex(Vertex_handle);}{The vertex was just created.} -\ccMethod{void modify_vertex(Vertex_handle);}{Something changed at the vertex.} +\ccMethod{void modify_vertex(Vertex_handle);}{The trajectory of the point at the vertex changed.} -\ccMethod{template void create_faces(It begin, It end);}{New faces have just been made. The \ccc{value_type} of the iterator is a \ccc{TriangulationDataStructure_2::Face_handle}.} +\ccMethod{template void create_faces(It begin, It + end);}{New faces have just been made. The \ccc{value_type} of the + iterator is a \ccc{TriangulationDataStructure_2::Face_handle}.} -\ccMethod{template void remove_faces(It, It);}{The faces in the range are about to be deleted. The \ccc{value_type} of the iterator is a \ccc{TriangulationDataStructure_2::Face_handle}.} +\ccMethod{template void remove_faces(It, It);}{The faces in + the range are about to be deleted. The \ccc{value_type} of the + iterator is a \ccc{TriangulationDataStructure_2::Face_handle}.} \ccMethod{void before_flip(Edge);}{The edge is about to be flipped.} @@ -36,7 +40,9 @@ This concept is for proxy objects which get notified when a kinetic Delaunay tri \ccHasModels -\ccc{Kinetic::Delaunay_triangulation_visitor_base_2}, \ccc{Kinetic::Delaunay_triangulation_recent_edges_visitor_2}, \ccc{Kinetic::Delaunay_triangulation_event_log_visitor_2} +\ccc{Kinetic::Delaunay_triangulation_visitor_base_2}, +\ccc{Kinetic::Delaunay_triangulation_recent_edges_visitor_2}, +\ccc{Kinetic::Delaunay_triangulation_event_log_visitor_2} \end{ccRefConcept} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_3.tex index 7fed223ca41..6585919c43a 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/DelaunayTriangulationVisitor_3.tex @@ -23,7 +23,7 @@ This concept is for proxy objects which get notified when a kinetic Delaunay tri \ccMethod{void create_vertex(Vertex_handle);}{The vertex was just created.} -\ccMethod{void modify_vertex(Vertex_handle);}{Something changed at the vertex.} +\ccMethod{void modify_vertex(Vertex_handle);}{The trajectory of the point at the vertex changed.} \ccMethod{template void create_cells(It begin, It end);}{New faces have just been made. The iterator \ccc{value_type} is a \ccc{TriangulationDataStructure_3::Cell_handle}.} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_2.tex index 143e7e92650..e86bddd50a2 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_2.tex @@ -19,23 +19,25 @@ \ccDefinition The class \ccRefName\ maintains a Delaunay triangulation on top of the -points contained in a \ccc{Kinetic::ActiveObjectsTable}. It has one main method -of interest. \ccc{triangulation()} which returns the triangulation it -is maintaining. +points contained in a \ccc{Kinetic::ActiveObjectsTable}. It has one +main method of interest, \ccc{triangulation()}, which returns the +triangulation it is maintaining. The class \ccc{Kinetic::Qt_triangulation_2} displays a kinetic Delaunay + QtWidget_2, QtMovingPoints_2>} displays a kinetic Delaunay triangulation using the Qt widget. This class is a good example of a simple, but non-trivial, kinetic data structure. -The Triangulation template parameter must use -\ccc{Traits::Instantaneous_kernel} as its geometric traits and the -\ccc{Triangulation::Face} must inherit from \ccc{Kinetic::Delaunay_triangulation_face_base_2}. +The \ccc{Triangulation} template parameter must be a model of +\ccc{CGAL::Delaunay_triangulation_2} which uses +\ccc{Traits::Instantaneous_kernel} as its geometric traits and a +\ccc{Tds} whose face inherits from +\ccc{Kinetic::Delaunay_triangulation_face_base_2}. The optional \ccc{Visitor} parameter takes a model of -Kinetic::DelaunayTriangulationVisitor2. Methods on this object will be called +\ccc{Kinetic::DelaunayTriangulationVisitor2}. Methods on this object will be called whenever the triangulation changes. \ccInclude{CGAL/Kinetic/Delaunay_triangulation_2.h} @@ -47,16 +49,22 @@ whenever the triangulation changes. \ccTypes -\ccNestedType{Triangulation}{The type of the Delaunay triangulation it maintains. This is a \ccc{CGAL::Delaunay_triangulation} built using the \ccc{Kinetic::InstantaneousKernel} as the kernel.} +\ccNestedType{Triangulation}{The template argument triangulation.} + +\ccNestedType{Visitor}{The template argument for the visitor.} \ccCreation \ccCreationVariable{dt} %% choose variable name -\ccConstructor{Delaunay_triangulation_2(Traits tr);}{Maintain the Delaunay triangulation of the points in \ccc{mot}.} +\ccConstructor{Delaunay_triangulation_2(Traits tr);}{Maintain the + Delaunay triangulation of the points in + \ccc{tr.active_points_2_handle()}.} \ccOperations -\ccMethod{const Triangulation& triangulation();}{Access the triangulation that is maintained. } +\ccMethod{const Triangulation& triangulation() const;}{Access the triangulation that is maintained. } + +\ccMethod{Visitor& visitor();}{Access the visitor. } \ccSeeAlso diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_3.tex index 0b8bbc0e218..47d5ade8033 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_3.tex @@ -27,7 +27,7 @@ a large number of changes to the underlying points to be made at one time without recomputing the certificates each time a single point changes. -The class \ccc{Kinetic::Qty_triangulation_3}, included as part +The class \ccc{Kinetic::Qt_triangulation_3}, included as part of the demo code, displays a kinetic Delaunay triangulation in three dimensions using the Coin library. @@ -45,12 +45,14 @@ type. \ccTypes -\ccNestedType{Triangulation}{The type of the Delaunay triangulation it maintains. This is a \ccc{CGAL::Delaunay_triangulation_3} built using the \ccc{Kinetic::InstantaneousKernel} as the kernel.} +\ccNestedType{Triangulation}{The template argument.} + +\ccNestedType{Visitor}{The template argument.} \ccCreation \ccCreationVariable{dt} %% choose variable name -\ccConstructor{Delaunay_triangulation_3(Traits tr);}{Maintain the Delaunay triangulation of the points in \ccc{mot}.} +\ccConstructor{Delaunay_triangulation_3(Traits tr);}{Maintain the Delaunay triangulation of the points in \ccc{tr.active_points_3_handle()}.} \ccOperations @@ -60,6 +62,8 @@ type. \ccMethod{void set_has_certificates(bool tf);}{This method allows you to control whether the triangulation is maintaining certificates.} +\ccMethod{Visitor& visitor();}{Access the visitor.} + \ccSeeAlso \ccc{Kinetic::Regular_triangulation_3}, diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_cell_base_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_cell_base_3.tex index a2e53224f9e..c8d8d20bc20 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_cell_base_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_cell_base_3.tex @@ -18,7 +18,7 @@ \ccDefinition -This is the base class for faces used by \ccc{Kinetic::Delaunay_triangulation_3}. +This is the base class for faces used by \ccc{Kinetic::Delaunay_triangulation_3::Triangulation}. \ccInclude{CGAL/Kinetic/Delaunay_triangulation_cell_base_3.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_2.tex index 7de13037e6e..37ead8443e2 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_2.tex @@ -19,12 +19,12 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::DelaunayTriangulationVisitor2 and \ccc{Kinetic::EventLogVisitor} which logs edge flip events. +\ccc{Kinetic::DelaunayTriangulationVisitor2} and \ccc{Kinetic::EventLogVisitor} which logs edge flip events. \ccIsModel -Kinetic::DelaunayTriangulationVisitor2, \ccc{Kinetic::EventLogVisitor} +\ccc{Kinetic::DelaunayTriangulationVisitor2}, \ccc{Kinetic::EventLogVisitor} \ccSeeAlso diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_3.tex index 9bfa924bc58..9901f4488be 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_event_log_visitor_3.tex @@ -19,12 +19,12 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::DelaunayTriangulationVisitor3 and \ccc{Kinetic::EventLogVisitor} -which logs edge and facet flip events. +\ccc{Kinetic::DelaunayTriangulationVisitor3} and +\ccc{Kinetic::EventLogVisitor} which logs edge and facet flip events. \ccIsModel -Kinetic::DelaunayTriangulationVisitor3, \ccc{Kinetic::EventLogVisitor} +\ccc{Kinetic::DelaunayTriangulationVisitor3}, \ccc{Kinetic::EventLogVisitor} \ccSeeAlso diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_face_base_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_face_base_2.tex index 4717c62fb3f..54b15d2bd0e 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_face_base_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_face_base_2.tex @@ -18,7 +18,9 @@ \ccDefinition -This is the base class for faces used by \ccc{Kinetic::Delaunay_triangulation_2}. +This is the base class for faces used by the triangulation used in +\ccc{Kinetic::Delaunay_triangulation_2}. \ccInclude{CGAL/Kinetic/Delaunay_triangulation_face_base_2.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_recent_edges_visitor_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_recent_edges_visitor_2.tex index 4d32e7efda8..6676b8ff540 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_recent_edges_visitor_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_recent_edges_visitor_2.tex @@ -24,7 +24,7 @@ the most recent change. \ccIsModel -Kinetic::DelaunayTriangulationVisitor2 +\ccc{Kinetic::DelaunayTriangulationVisitor2} \ccCreation \ccCreationVariable{a} %% choose variable name @@ -37,7 +37,7 @@ Kinetic::DelaunayTriangulationVisitor2 \ccMethod{iterator begin() const;}{Begin iteration through the recent edges.} -\ccMethod{iterator end() const;}{Begin iteration through the recent edges.} +\ccMethod{iterator end() const;}{End iteration through the recent edges.} \ccMethod{bool contains(Triangulation::Edge) const;}{Returns true if this edge exists in the set.} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_2.tex index a38731e3439..ecabb1c8dbf 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_2.tex @@ -19,12 +19,12 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::DelaunayTriangulationVisitor2. You can extend this class if you only -want to implement a few methods from \ccc{Kinetic::DelaunayTriangulationVisitor}2. +\ccc{Kinetic::DelaunayTriangulationVisitor2}. You can extend this class if you only +want to implement a few methods from \ccc{Kinetic::DelaunayTriangulationVisitor2}. \ccIsModel -Kinetic::DelaunayTriangulationVisitor2 +\ccc{Kinetic::DelaunayTriangulationVisitor2} \ccCreation \ccCreationVariable{a} %% choose variable name diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_3.tex index 318c450c18c..b590bf82437 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Delaunay_triangulation_visitor_base_3.tex @@ -19,8 +19,8 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::DelaunayTriangulationVisitor3. You can extend this class if you only -want to implement a few methods from \ccc{Kinetic::DelaunayTriangulationVisitor}2. +\ccc{Kinetic::DelaunayTriangulationVisitor3}. You can extend this class if you only +want to implement a few methods from \ccc{Kinetic::DelaunayTriangulationVisitor3}. \ccIsModel diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_2.tex index 291bceeb01f..5ad84a7085b 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_2.tex @@ -22,8 +22,10 @@ The class \ccRefName\ keeps the points in the simulation inside of a box. Whenever the points come close to the wall of the box they bounce off of the wall. Note that, in general, points hit the wall of the box at times which -are not easily represented by number types. In order to handle this, -the \ccRefName\ bounces the points at the nearest easily representable +are not easily represented by standard (rational) number types. The +resulting trajectories would also have non-rational coefficients, +complicating and slowing the simulation. In order to handle this, the +\ccRefName\ bounces the points at the nearest easily representable time before the point would leave the box. \ccInclude{CGAL/Kinetic/Enclosing_box_2.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_3.tex index 439d27dab1b..ae396552248 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Enclosing_box_3.tex @@ -19,11 +19,15 @@ \ccDefinition The class \ccRefName\ keeps the points in the simulation inside of a -box. Whenever the points come close to the wall of the box they bounce off of the wall. +box. Whenever the points come close to the wall of the box they bounce +off of the wall. + Note that, in general, points hit the wall of the box at times which -are not easily represented by number types. In order to handle this, -the \ccRefName\ bounces the points at the nearest easily representable +are not easily represented by standard (rational) number types. The +resulting trajectories would also have non-rational coefficients, +complicating and slowing the simulation. In order to handle this, the +\ccRefName\ bounces the points at the nearest easily representable time before the point would leave the box. \ccInclude{CGAL/Kinetic/Enclosing_box_3.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Event.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Event.tex index 0517d94f8ac..80cf06a52b6 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Event.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Event.tex @@ -26,7 +26,10 @@ scheduling events which will in turn pass them to the \ccOperations -\ccMethod{void process();}{This method is called when the event occurs, and the time when it occurs is passed in as \ccc{t}. \ccc{Time} is the type defined by the \ccc{Simulator}. This method will only be called once per time this event is scheduled and the event will be removed from the queue immediately afterwards.} +\ccMethod{void process();}{This method is called when the event + occurs. This method will only be called once per time this event is + scheduled and the event will be removed from the queue immediately + afterwards.} \ccGlobalFunction{std::ostream& operator<<(std::ostream&, Event);}{Write a text description of the event to a standard stream.} @@ -36,7 +39,7 @@ All over the place. \ccSeeAlso -Kinetic::EventQueue +\ccc{Kinetic::EventQueue} \ccExample @@ -45,15 +48,19 @@ All of the kinetic data structures provided have models of sorting kinetic data structure. \begin{ccExampleCode} -template +template class Swap_event { public: - Swap_event(Id o, typename Sort::Pointer sorter, - const Root_enumerator &s): left_object_(o), sorter_(sorter), s_(s){} + Swap_event(Id o, typename Sort::Handle sorter, + const Certificate &s): left_object_(o), + sorter_(sorter), + s_(s){} void process(){ sorter_->swap(left_object_, s_); } - Id left_object_; typename Sort::Pointer sorter_; Solver s_; + Id left_object_; + typename Sort::Handle sorter_; + Certificate s_; }; \end{ccExampleCode} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/EventQueue.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/EventQueue.tex index 5b6038f0f55..dac3c6f313e 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/EventQueue.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/EventQueue.tex @@ -26,14 +26,18 @@ queue must implement the \ccc{Event} concept. \ccTypes -\ccNestedType{Key}{The type used to access items in the queue in order to change or delete them.} +\ccNestedType{Key}{The type used to access items in the queue in order + to change or delete them.} -\ccNestedType{Priority}{The priority type for items in the queue. This is typically the same as \ccc{Kinetic::Simulator}::Time}. +\ccNestedType{Priority}{The priority type for items in the queue. This + is typically the same as \ccc{Kinetic::Simulator::Time}}. \ccCreation \ccCreationVariable{q} %% choose variable name -\ccConstructor{EventQueue(Priority start, Priority end, int size_hint);}{Construct a queue which will start at time start and run until time end.} +\ccConstructor{EventQueue(Priority start, Priority end, int + size_hint);}{Construct a queue which will start at time start and + run until time end.} \ccOperations diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/FunctionKernel.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/FunctionKernel.tex index 0512dd47aaa..11be925b286 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/FunctionKernel.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/FunctionKernel.tex @@ -37,21 +37,29 @@ capability is not needed. \ccNestedType{Root}{A type representing the roots of a \ccc{Function}.} -\ccNestedType{Root_stack}{A model of \ccc{RootEnumerator}. These objects can be created by calling the \ccc{root_enumerator_object} method with a \ccc{Function} and two (optional) \ccc{Root} objects. The enumerator then enumerates all roots of the function in the open inverval defined by the two root arguments. They optional arguments default to positive and negative infinity. } +\ccNestedType{Root_stack}{A model of \ccc{RootStack}. These objects can be created by calling the \ccc{root_stack_object} method with a \ccc{Function} and two (optional) \ccc{Root} objects. The enumerator then enumerates all roots of the function in the open inverval defined by the two root arguments. They optional arguments default to positive and negative infinity. } \ccNestedType{Root_enumerator_traits}{The traits for the \ccc{Root_enumerator} class.} -Each of the following types has a corresponding \ccc{type_object} method (not explicitly documented) which takes a \ccc{Function} as an argument. +Each of the following types has a corresponding \ccc{type_object} +method (not explicitly documented) which takes a \ccc{Function} as an +argument. -\ccNestedType{Sign_at}{A functor which returns the sign of a \ccc{Function} at a \ccc{NT} or \ccc{Root}.} +\ccNestedType{Sign_at}{A functor which returns the sign of a + \ccc{Function} at a \ccc{NT} or \ccc{Root}.} \ccNestedType{Multiplicity}{A functor which returns the multiplicity of roots.} -\ccNestedType{Sign_above}{A functor which returns sign of a function immediately above a root.} +\ccNestedType{Sign_above}{A functor which returns sign of a function + immediately above a root.} -The following functor likewise have a \ccc{type_object} method, but these take arguments other than a \ccc{Function}. The arguments are given below. +The following functor likewise have a \ccc{type_object} method, but +these take arguments other than a \ccc{Function}. The arguments are +given below. -\ccNestedType{Sign_between_roots}{This functor, creation of which requires two \ccc{Root}s, returns the sign of a passed function between the pair of roots.} +\ccNestedType{Sign_between_roots}{This functor, creation of which + requires two \ccc{Root}s, returns the sign of a passed function + between the pair of roots.} %\ccNestedType{Compare_isolated_roots_in_interval}{This functor, creation of which requires two functions, compares the roots of two functions in an isolating invterval. More specifically, it takes two \ccc{NT}s as an argument. These numbers must isolate a root for each of the functions the functor is constructed with. The functor then returns true if the isolated root of the first function is less than that of the second.} @@ -61,7 +69,7 @@ The following functor likewise have a \ccc{type_object} method, but these take a %\ccNestedType{Remainder}{Compute the remainder of one \ccc{Functions} divided by another.} -\ccNestedType{Are_negations_object}{Return true of the two functions passed are negations of one another.} +%\ccNestedType{Are_negations_object}{Return true of the two functions passed are negations of one another.} %\ccNestedType{Sturm_sequence}{This object evaluates the Sturm sequence of two \ccc{Function}s at a \ccc{NT} value. Construction requires two \ccc{Function}s.} @@ -95,7 +103,7 @@ The following methods do not require any arguments to get the functor and take o %\ccMethod{void foo();}{some member functions} \ccHasModels -\ccc{POLYNOMIAL::Kernel}, \ccc{POLYNOMIAL::Filtered_kernel}. +\ccc{POLYNOMIAL::Kernel}, \ccc{POLYNOMIAL::Filtered_kernel}. \ccSeeAlso @@ -105,7 +113,7 @@ Kinetic::RootEnumerator We provide several models of the concept, which are not documented separately. The models of \ccc{Kinetic::SimulationTraits} all choose -appropriate models, so the user should have have to pick. However, if +appropriate models. However, if more control is desired, we here provide examples of how to create the various supported \ccc{Kinetic::FunctionKernel}. @@ -120,7 +128,7 @@ typedef CGAL::POLYNOMIAL::Kernel Function_kernel; A wrapper for \ccc{CORE::Expr} which implements the necessary operations: \begin{ccExampleCode} - typedef CGAL::POLYNOMIAL::CORE_kernel Function_kernel; +typedef CGAL::POLYNOMIAL::CORE_kernel Function_kernel; \end{ccExampleCode} A function kernel which computes approximations to the roots of the polynomials: diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Insert_event.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Insert_event.tex index 6b49dd93d9c..eab927a8cdb 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Insert_event.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Insert_event.tex @@ -18,28 +18,46 @@ \ccDefinition -This event inserts a point into the \ccc{ActiveObjectsTable} when the event is processed. +This event inserts a point into the \ccc{ActiveObjectsTable} when it +is processed. \ccInclude{CGAL/Kinetic/Insert_event.h} \ccIsModel -Kinetic::Event +\ccc{Kinetic::Event} \ccCreation \ccCreationVariable{i} %% choose variable name -\ccConstructor{Insert_event(ActiveObjectsTable::Data o, ActiveObjectsTable::Handle t);}{Insert the object o, into the table t when processed.} +\ccConstructor{Insert_event(ActiveObjectsTable::Data o, + ActiveObjectsTable::Handle t);}{Insert the object o, into the table + t when processed.} \ccSeeAlso -Kinetic::ActiveObjectsTable, +\ccc{Kinetic::ActiveObjectsTable}, \ccc{Kinetic::Active_objects_vector}. \ccExample +\begin{ccExampleCode} +typedef CGAL::Kinetic::Exact_simulation_traits_2 Simulation_traits; +typedef Simulation_traits::Kinetic_kernel::Point_2 Moving_point_2; +typedef CGAL::Kinetic::Insert_event Insert_event; +typedef CGAL::Kinetic::Delaunay_triangulation_2 KDel; -\verb|\ccIncludeExampleCode{Kinetic_data_structures/insert_event.C}| +Simulation_traits tr; + +KDel kdel(tr); + +Moving_point_2 mp(Moving_point_2::NT(0), + Moving_point_2::NT(0)); +tr.simulator_handle()->new_event(Simulation_traits::Simulator::Time(3), + Insert_event(mp, + tr.active_points_2_table_handle())); + +\end{ccExampleCode} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/InstantaneousKernel.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/InstantaneousKernel.tex index c9fbf5946ca..327b07c3f8d 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/InstantaneousKernel.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/InstantaneousKernel.tex @@ -24,7 +24,7 @@ typically only supports one type of moving object. Currently, each model is created for one particular type of kinetic primitive. The primitives are identified by -Kinetic::ActiveObjectsTable::Key objects. +\ccc{Kinetic::ActiveObjectsTable::Key} objects. \ccTypes diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/KineticKernel.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/KineticKernel.tex index 486426f709e..4dd2fc399fd 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/KineticKernel.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/KineticKernel.tex @@ -26,13 +26,20 @@ them. \ccCreationVariable{kk} \ccTypes -\ccNestedType{Motion_function}{The type which is used to represent coordinates of moving primitives. This is the analog of the CGAL kernel \ccc{RT}.} -\ccNestedType{Certificate}{The type representing the results of predicates. See \ccc{Kinetic::Certificate}.} -\ccNestedType{Function_kernel}{The type of the function kernel used. See \ccc{Kinetic::FunctionKernel}.} +\ccNestedType{Motion_function}{The type which is used to represent + coordinates of moving primitives. This is the analog of the CGAL + kernel \ccc{RT}.} + +\ccNestedType{Certificate}{The type representing the results of + predicates. See \ccc{Kinetic::Certificate}.} + +\ccNestedType{Function_kernel}{The type of the function kernel used. + See \ccc{Kinetic::FunctionKernel}.} \ccOperations -\ccMethod{Function_kernel function_kernel_object() const;}{Gets a copy of the function kernel.} +\ccMethod{Function_kernel function_kernel_object() const;}{Gets a copy + of the function kernel.} \ccCreationVariable{a} %% choose variable name diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Listener.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Listener.tex index 6222dcaecff..8d3f2b9fefa 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Listener.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Listener.tex @@ -31,10 +31,10 @@ method on the proxy, passing the type of the notification. The proxy stores a reference counted pointer to the notifier, ensuring that there are never any dangling pointers in the system. -The class \ccRefName\ provides base class for listener proxy -objects. An notifier should provide class which uses this base. To use -this base class, implement a class, here called Interface, which -defines a type \ccc{Interface::Notification_type} and a type +The class \ccRefName\ provides base class for listener proxy objects. +A notifier should provide a class which inherits from this base. To +use this base class, implement a class, here called \ccc{Interface}, +which defines a type \ccc{Interface::Notification_type} and a type \ccc{Interface::Notifier_handle}. The \ccc{Notification_type} is generally an enum with one value for @@ -48,16 +48,17 @@ pointer. The \ccRefName\ maintains a ref counted pointer to the object performing notifications. It is registered for notifications on construction and unregistered on destruction using the function -\ccc{set_listener} on the object providing the notifications. The use -of ref counted pointers means that as long as the notification object -exists, the object providing the notifications must exist, ensuring -that the object providing the notifications is not prematurely -destroyed. +\ccc{set_listener(Listener*)} on the object providing the +notifications. The use of ref counted pointers means that as long as +the notification object exists, the object providing the notifications +must exist, ensuring that the object providing the notifications is +not prematurely destroyed. These objects cannot be copied since the notifier only support one -listener. +listener. If copying and more than one listener are desired, the +\ccc{Multi_listener} base class should be used instead. -Boost provides a similar functionality in the Boost.Signal +As a side note, Boost provides a similar functionality in the Boost.Signal package. However, it is quite a bit more complex (and flexible). This complexity add significantly to compile time and (although I did not test this directly), I suspect it is much slower at runtime due to the @@ -95,7 +96,53 @@ writing my own. \ccExample -\ccIncludeExampleCode{Kinetic_data_structures/listener.C} +Here is a simplier class that provides notifications: +\begin{ccExampleCode} +struct Notifier: public CGAL::Kinetic::Ref_counted +{ +public: + Notifier(): data_(0), listener_(NULL){} + + struct Listener_interface + { + public: + typedef enum Notification_type {DATA_CHANGED} Notification_type; + typedef Notifier::Handle Notifier_handle; + }; + + typedef CGAL::Kinetic::Listener Listener; + friend class CGAL::Kinetic::Listener; + + void set_data(int d) { + data_=d; + if (listener_ != NULL) listener_->new_notification(Listener_interface::DATA_CHANGED); + } + +protected: + void set_listener(Listener *l) { + listener_= l; + } + Listener* listener() const {return listener_;} + + int data_; + Listener *listener_; +}; +\end{ccExampleCode} + +Now the listener: +\begin{ccExampleCode} + +struct My_listener: public Notifier::Listener, public CGAL::Kinetic::Ref_counted +{ + typedef Notifier::Listener::Notifier_handle PP; + My_listener(PP p): P(p){} + + void new_notification(P::Notification_type nt) { + ... + } +}; + +\end{ccExampleCode} \end{ccRefClass} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Multi_listener.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Multi_listener.tex index c42fed0a8bd..4a8784cce87 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Multi_listener.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Multi_listener.tex @@ -18,7 +18,11 @@ \ccDefinition -The class \ccRefName\ implements a base class for listeners where more than one listener is allowed to subscribe to a notifier. See \ccc{Listener} for full documentation. +The class \ccRefName\ implements a base class for listeners where more +than one listener is allowed to subscribe to a notifier. See +\ccc{Listener} for full documentation. This uses the function calls +\ccc{new_listener()} and \ccc{delete_listener()} to register and +unrester the listener (instead of \ccc{set_listener()}). \ccInclude{CGAL/Kinetic/Multi_listener.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_moving_points_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_moving_points_2.tex index 344d9e5c00c..5923eb598b8 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_moving_points_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_moving_points_2.tex @@ -20,6 +20,8 @@ The class \ccRefName\ displays a set of moving points in 2D. +See Section~\ref{sec:delaunay_2_example} for an example using this class. + \ccInclude{CGAL/Kinetic/IO/Qt_moving_points_2.h} @@ -35,11 +37,6 @@ The class \ccRefName\ displays a set of moving points in 2D. \ccc{Kinetic::Qt_widget_2}. -\ccExample - -\ccIncludeExampleCode{Kinetic_data_structures/Delaunay_triangulation_2.C} - - \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_triangulation_2.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_triangulation_2.tex index c50afb6ef24..beca1d8fc6c 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_triangulation_2.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Qt_triangulation_2.tex @@ -18,10 +18,12 @@ \ccDefinition -The class draws a triangulation into the \ccc{QtWidget_2}. This class is +The class draws a triangulation into a \ccc{CGAL::Qt_widget_2}. This class is very simple and a good one to look at if you want to see how to draw your own two dimensional kinetic data structure. +See Section~\ref{sec:delaunay_2_example} for an example using this class. + \ccInclude{CGAL/Kinetic/IO/Qt_triangulation_2.h} \ccCreation diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Ref_counted.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Ref_counted.tex index 82c24fc76a5..09b64bdfa76 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Ref_counted.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Ref_counted.tex @@ -18,7 +18,11 @@ \ccDefinition -The class \ccRefName\ implements a base class for objects which are reference counted. To use it simply inherit from \ccRefName\ (passing the type to be reference counted as the template argument) and then access the object through \ccc{Pointer} objects rather than bare C++ pointers. +The class \ccRefName\ implements a base class for objects which are +reference counted. To use it simply inherit from \ccRefName\ (passing +the type to be reference counted as the template argument) and then +access the object through \ccc{Handle} objects rather than bare C++ +pointers. \ccInclude{CGAL/Kinetic/Ref_counted.h} @@ -37,13 +41,6 @@ The class \ccRefName\ implements a base class for objects which are reference co There are no methods which should be called by users of this class. - -\ccExample - -\ccIncludeExampleCode{Kinetic_data_structures/ref_counted.C} - - - \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RegularTriangulationVisitor_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RegularTriangulationVisitor_3.tex index ac03e9c210d..5ffc1dbbccb 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RegularTriangulationVisitor_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RegularTriangulationVisitor_3.tex @@ -23,7 +23,7 @@ This concept is for proxy objects which get notified when a kinetic regular tria \ccMethod{void create_vertex(Vertex_handle);}{The vertex was just created.} -\ccMethod{void modify_vertex(Vertex_handle);}{Something changed at the vertex.} +\ccMethod{void modify_vertex(Vertex_handle);}{The trajectory of the vertex just changed.} \ccMethod{template void create_cells(It begin, It end);}{New faces have just been made. The iterator \ccc{value_type} is a \ccc{TriangulationDataStructure_3::Cell_handle}.} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_3.tex index 62c68d06053..6348d919b4a 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_3.tex @@ -22,9 +22,12 @@ The class \ccRefName\ maintains a triangulation of set of moving weighted points. Its interface is the same as \ccc{Kinetic::Delaunay_triangulation_3}. -The \ccc{Triangulation} template argument must have +The optional \ccc{Triangulation} template argument must be a model of +\ccc{CGAL::RegularTriangulation_3} which has \ccc{Kinetic::Regular_triangulation_cell_base_3} as a -cell base and \ccc{Kinetic::Regular_triangulation_vertex_base_3} as a vertex base. +cell base and +\ccc{Kinetic::Regular_triangulation_vertex_base_3} as a +vertex base. \ccInclude{CGAL/Kinetic/Regular_triangulation_3.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_event_log_visitor_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_event_log_visitor_3.tex index 77b0616ef24..57d63e25c2a 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_event_log_visitor_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_event_log_visitor_3.tex @@ -19,12 +19,12 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::RegularTriangulationVisitor3 and \ccc{EventLogVisitor} which logs edge flip events. +\ccc{Kinetic::RegularTriangulationVisitor3} and \ccc{EventLogVisitor} which logs edge flip events. \ccIsModel -Kinetic::RegularTriangulationVisitor\_3, \ccc{Kinetic::EventLogVisitor} +\ccc{Kinetic::RegularTriangulationVisitor3}, \ccc{Kinetic::EventLogVisitor} \ccSeeAlso diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_instantaneous_traits_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_instantaneous_traits_3.tex index e00e9f8744d..9300a45f309 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_instantaneous_traits_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_instantaneous_traits_3.tex @@ -11,7 +11,7 @@ % +------------------------------------------------------------------------+ -\begin{ccRefClass}{Kinetic::Regular_triangulation_instantaneous_traits_3} %% add template arg's if necessary +\begin{ccRefClass}{Kinetic::Regular_triangulation_instantaneous_traits_3} %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[class]{} %% add further index entries @@ -20,14 +20,15 @@ The class \ccRefName\ is an instantaneous kernel for use with a regular triangulation data structure. There is not currently a reason -for the user to call this directly as it is included as part of the +for the user to call this directly unless the user wants created their +own simulation traits as it is included as part of the \ccc{Kinetic::Regular_triangulation_exact_simulation_traits_3}. \ccInclude{CGAL/Kinetic/Regular_triangulation_instantaneous_traits_3.h} \ccIsModel -RegularTriangulationTraits\_3, \ccc{Kinetic::InstantaneousKernel} +\ccc{CGAL::RegularTriangulationTraits\_3}, \ccc{Kinetic::InstantaneousKernel} \ccSeeAlso diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_vertex_base_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_vertex_base_3.tex index 3bc4fc54a51..da27326c9f2 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_vertex_base_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_vertex_base_3.tex @@ -18,7 +18,9 @@ \ccDefinition -This is the base class for faces used by \ccc{Kinetic::Regular_triangulation_3}. +This is the base class for the vertices of the triangulation class +used by \ccc{Kinetic::Regular_triangulation_3}. \ccInclude{CGAL/Kinetic/Regular_triangulation_vertex_base_3.h} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_visitor_base_3.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_visitor_base_3.tex index 9c22bb97f3b..4ee830826df 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_visitor_base_3.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Regular_triangulation_visitor_base_3.tex @@ -19,12 +19,12 @@ \ccDefinition The concept \ccRefName\ provides a model of -Kinetic::RegularTriangulationVisitor\_3. You can extend this class if you only -want to implement a few methods from \ccc{Kinetic::RegularTriangulationVisitor}\_3. +\ccc{Kinetic::RegularTriangulationVisitor3}. You can extend this class if you only +want to implement a few methods from \ccc{Kinetic::RegularTriangulationVisitor3}. \ccIsModel -Kinetic::RegularTriangulationVisitor\_3 +\ccc{Kinetic::RegularTriangulationVisitor3} \ccCreation \ccCreationVariable{a} %% choose variable name diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RootStack.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RootStack.tex index 39f905cb917..882192e7bf7 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RootStack.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/RootStack.tex @@ -18,9 +18,11 @@ \ccDefinition -The concept \ccRefName\ enumerates through roots of a function. Most -of the root stacks maintain the invariant that -\ccc{pop()} can be called exactly once per root in the interval. However, certain of the \ccRefName s delay prooving that there are no remaining root, and so might return one root with the value \ccc{std::numeric_limits::infinity()} which does not correspond to an existing root. Comparing \ccc{top()} to the \ccc{Root} defining the end of the interval will allow you to make sure that it corresponds to an actual root of the polynomial (it is greater or equal then it is not in the interval). +The concept \ccRefName\ enumerates through roots of a function +contained in a certain interval. They may return one extra root which +has value \ccc{std::numeric_limits::infinity()}, as this allows +the root stacks to delay isolating roots until the isolation is needed +to properly evaluate comparisons. \ccTypes @@ -48,7 +50,7 @@ of the root stacks maintain the invariant that \ccSeeAlso -Kinetic::FunctionKernel, \ccc{Kinetic::Certificate}. +\ccc{Kinetic::FunctionKernel}, \ccc{Kinetic::Certificate}. diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/SimulationTraits.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/SimulationTraits.tex index 75a564af451..dbc8fe0563c 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/SimulationTraits.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/SimulationTraits.tex @@ -17,20 +17,44 @@ \ccDefinition This concept ties together the parts needed in order to run a kinetic -data structure. +data structure. We provide several models of this concept: +\begin{itemize} +\item \ccc{Kinetic::Exact_simulation_traits_1} +\item \ccc{Kinetic::Exact_simulation_traits_2} +\item \ccc{Kinetic::Exact_simulation_traits_3} +\item \ccc{Kinetic::Inexact_simulation_traits_1} +\item \ccc{Kinetic::Inexact_simulation_traits_2} +\item \ccc{Kinetic::Inexact_simulation_traits_3} +\item \ccc{Kinetic::Exact_linear_simulation_traits_2} +\item \ccc{Kinetic::Exact_linear_simulation_traits_3} +\item \ccc{Kinetic::Inexact_linear_simulation_traits_2} +\item \ccc{Kinetic::Inexact_linear_simulation_traits_3} +\item \ccc{Kinetic::Regular_triangulation_exact_simulation_traits_3} +\item \ccc{Kinetic::Regular_triangulation_inexact_simulation_traits_3} +\end{itemize} + +All support trajectories defined by polynomial coordinates. The +\ccc{Exact} vs \ccc{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 +\ccc{Kinetic::InstantaneousKernel} and the +\ccc{Kinetic::ActiveObjectsTable}. \ccTypes \ccNestedType{NT}{The number type used for representation.} -\ccNestedType{Static_kernel}{A CGAL kernel which can be used for static computations.} - \ccNestedType{Instantaneous_kernel}{A model of \ccc{Kinetic::InstantaneousKernel} which can be used to apply static CGAL data structures to snapshots of moving data.} -\ccNestedType{Kinetic_kernel}{A model of Kineti::Kernel.} +\ccNestedType{Kinetic_kernel}{A model of \ccc{Kinetic::Kernel}.} + +\ccNestedType{Active_points_[123]_table}{A model of + \ccc{Kinetic::ActiveObjectsTable} which holds the relevant kinetic + primitives.} \ccNestedType{Simulator}{A model of \ccc{Kinetic::Simulator} which will be used by all the kinetic data structures.} @@ -40,13 +64,16 @@ used by all the kinetic data structures.} \ccOperations \ccCreationVariable{st} -\ccMethod{Static_kernel static_kernel_object();}{Get a new static kernel.} - \ccMethod{Instantaneous_kernel instantaneous_kernel_object();}{Get a new instantaneous kernel.} \ccMethod{Kinetic_kernel kinetic_kernel_object();}{Get a new kinetic kernel.} -\ccMethod{Simulator::Handle simulator_handle();}{Return a pointer to the \ccc{Simulator} which is to be used in the simulation.} +\ccMethod{Simulator::Handle simulator_handle();}{Return a pointer to the \ccc{Kinetic::Simulator} which is to be used in the simulation.} + +\ccMethod{Active_points_[123]_table::Handle + active_points_[123]_table_handle();}{Return a pointer to the + \ccc{Kinetic::ActiveObjectsTable} which is to be used in the + simulation.} %\ccMethod{Active_objects_table* active_objects_table_pointer();}{Return a pointer to the table holding points which is to be used in the simulation.} @@ -61,7 +88,9 @@ used by all the kinetic data structures.} \ccc{Kinetic::Exact_linear_simulation_traits_2}, \ccc{Kinetic::Exact_linear_simulation_traits_3}, \ccc{Kinetic::Inexact_linear_simulation_traits_2}, -\ccc{Kinetic::Inexact_linear_simulation_traits_3} +\ccc{Kinetic::Inexact_linear_simulation_traits_3}, +\ccc{Kinetic::Regular_triangulation_exact_simulation_traits_3}, +\ccc{Kinetic::Regular_triangulation_inexact_simulation_traits_3} \end{ccRefConcept} diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator.tex index ad6592d1a6e..5c56f5b5f38 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator.tex @@ -19,8 +19,8 @@ \ccDefinition The class \ccRefName\ controls kinetic data structures by maintaining -a concept of time and ensuring that events are processed when -necessary. +a the current time and ensuring that events are processed when +necessary. In addition, the \ccRefName\ can call on the kinetic data structures to audit themselves at appropriate times. When the last event diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator_kds_listener.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator_kds_listener.tex index 29d30cff05d..cb342ee6ac5 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator_kds_listener.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/Simulator_kds_listener.tex @@ -22,7 +22,7 @@ The class \ccRefName\ acts as a helper class for kinetic data structures which want to respond to \ccc{Simulator::Listener::HAS_AUDIT_TIME} notifications. When kinetic data structures can audit themselves, the \ccRefName\ calls the -\ccc{audit()} method on the \ccc{KDS}. +\ccc{audit()} method on the kinetic data structure. \ccInclude{CGAL/Kinetic/Simulator_kds_listener.h} @@ -34,7 +34,7 @@ data structures can audit themselves, the \ccRefName\ calls the \ccSeeAlso -Kinetic::Simulator, Listener. +\ccc{Kinetic::Simulator}, \ccc{Listener}. diff --git a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/intro.tex b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/intro.tex index 965ddc71ddd..640c84e7169 100644 --- a/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/intro.tex +++ b/Kinetic_data_structures/doc_tex/Kinetic_data_structures_ref/intro.tex @@ -4,87 +4,142 @@ \ccHeading{Definition} Kinetic data structures are a way of adding motion to classical -geometric data structures. \cgal provides a number of classes to aid +geometric data structures. \cgal\ provides a number of classes to aid implementation of kinetic data structures as well as a number of prepackaged kinetic data structures. There are three levels at which the user can interact with the -package. The can use an existing kinetic data structure, write a new -kinetic data structure, or replace parts of the framework. The +package. The user can use an existing kinetic data structure, write a +new kinetic data structure, or replace parts of the framework. The concepts and models are grouped into these three classes. \ccHeading{Existing Kinetic Data Structures} -First we have the -existing kinetic data structures and the helper classes that allow -their activity to monitored. +First we have the existing kinetic data structures and the helper +classes that allow their activity to monitored. + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_2} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_3} + \ccRefIdfierPage{Kinetic::Enclosing_box_2} + \ccRefIdfierPage{Kinetic::Enclosing_box_3} -\ccRefIdfierPage{Kinetic::Regular_triangulation_3} + +\ccRefIdfierPage{Kinetic::Regular_triangulation_3} + \ccRefIdfierPage{Kinetic::Sort} The visitors: + \ccRefConceptPage{Kinetic::DelaunayTriangulationVisitor2} + \ccRefConceptPage{Kinetic::DelaunayTriangulationVisitor3} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_event_log_visitor_2} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_event_log_visitor_3} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_recent_edges_visitor_2} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_visitor_base_2} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_visitor_base_3} + \ccRefConceptPage{Kinetic::RegularTriangulationVisitor3} + \ccRefIdfierPage{Kinetic::Regular_triangulation_visitor_base_3} + \ccRefIdfierPage{Kinetic::Regular_triangulation_event_log_visitor_3} + \ccRefConceptPage{Kinetic::SortVisitor} + \ccRefIdfierPage{Kinetic::Sort_visitor_base} + \ccRefIdfierPage{Kinetic::Sort_event_log_visitor} The support classes: \ccRefIdfierPage{Kinetic::Delaunay_triangulation_face_base_2} + \ccRefIdfierPage{Kinetic::Delaunay_triangulation_cell_base_3} + \ccRefIdfierPage{Kinetic::Regular_triangulation_cell_base_3} + \ccRefIdfierPage{Kinetic::Regular_triangulation_vertex_base_3} \ccHeading{Graphical display} Next we have some support classes which are used to display kinetic data structures: + \ccRefIdfierPage{Kinetic::Qt_moving_points_2} + \ccRefIdfierPage{Kinetic::Qt_triangulation_2} + \ccRefIdfierPage{Kinetic::Qt_widget_2} \ccHeading{Main support classes and concepts} Here we list the main classes and concepts provided by the framework to support implementing kinetic data structures + \ccRefConceptPage{Kinetic::ActiveObjectsTable} + \ccRefConceptPage{Kinetic::FunctionKernel} + \ccRefConceptPage{Kinetic::Kernel} + \ccRefConceptPage{Kinetic::InstantaneousKernel} + + \ccRefConceptPage{Kinetic::SimulationTraits} + \ccRefConceptPage{Kinetic::Simulator} + + \ccRefIdfierPage{Kinetic::Active_objects_vector} + \ccRefIdfierPage{Kinetic::Cartesian_instantaneous_kernel} + \ccRefIdfierPage{Kinetic::Cartesian_kinetic_kernel} + \ccRefIdfierPage{Kinetic::Simulator} + + \ccHeading{Miscellaneous classes and concepts} + \ccRefIdfierPage{Kinetic::Regular_triangulation_instantaneous_traits_3} + \ccRefConceptPage{Kinetic::EventLogVisitor} + \ccRefConceptPage{Kinetic::EventQueue} + + \ccRefConceptPage{Kinetic::Event} + \ccRefConceptPage{Key} + \ccRefConceptPage{Kinetic::Certificate} + \ccRefConceptPage{Kinetic::RootStack} + \ccRefConceptPage{Kinetic::Time} + + \ccRefIdfierPage{Kinetic::Active_objects_listener_helper} + \ccRefIdfierPage{Kinetic::Insert_event} + \ccRefIdfierPage{CGAL::Listener} + \ccRefIdfierPage{CGAL::Multi_listener} + \ccRefIdfierPage{CGAL::Ref_counted} + \ccRefIdfierPage{Kinetic::Simulator_kds_listener} + \ccRefIdfierPage{Kinetic::Simulator_objects_listener} diff --git a/Kinetic_data_structures/examples/Kinetic_data_structures/regular_triangulation_3.C b/Kinetic_data_structures/examples/Kinetic_data_structures/regular_triangulation_3.C index 4625dc820e8..59b419710fb 100644 --- a/Kinetic_data_structures/examples/Kinetic_data_structures/regular_triangulation_3.C +++ b/Kinetic_data_structures/examples/Kinetic_data_structures/regular_triangulation_3.C @@ -1,11 +1,8 @@ #include #include -int main(int, char *[]) -{ - +int main(int, char *[]) { typedef CGAL::Kinetic::Regular_triangulation_exact_simulation_traits_3 Traits; - typedef CGAL::Kinetic::Regular_triangulation_3 KDel; Traits tr;