Fréchet View  1.6.0
A Tool for Exploring Fréchet Distance Algorithms
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 NfrechetGlobal definitions for all algorithms
 NappClasses for running the Qt application; multi-core and GPGPU support
 CConcurrencyContextSingleton class managing concurrency settings for the application
 CFileEntryEntry in the recently opened file list
 CFileHistoryKeeps track of recently used files
 CFrechetViewApplicationApplication singleton
 CInterruptedExceptionThrown by long-runner tasks
 CWorkerJobBackground job to run long-runner tasks in a seperate thread
 CWorkerJobHandleThread safe access to a WorkerJob
 NdataCustomized data containers
 CArray2DA simple two-dimensional array of fixed size
 CiteratorArray2D iterator
 CBitSetA simple bit vector of fixed size
 CiteratorIterator over a BitSet
 CBLinkedListAbstract base class for LinkedList
 CBLinkedListElementBase class for elements of a BLinkedList
 CIntervalInterval of two double values
 CIntervalPairPair of horizonal / vertical intervals
 CLinkedListAn intrusive double-linked list, similar to boost::intrusive
 CLinkedListElementBase template for elements of a LinkedList
 CMatrixPoolMemory pool for matrix objects (M4RI matrices mzd_t* and OpenCL matrices clm4rm_t*)
 CRectVery simple Rectangle structure, with integer boundaries
 CSpirolatorInteger iterator that goes in "spirals", like this:
 NfsClasses for computing the free-space diagram
 CCellHolds data for one cell of the free-space diagram
 CComponentsFree-Space connected components and their projections to the domain axes
 CFreeSpaceModels the Free-Space Diagram calculated from two curves
 CGridPerforms mappings to and from the free-space grid
 CGridAxisGrid axis maps the segments of the input curve to an axis of the free-space diagram
 NinputClasses for reading files from disk
 CDataPathLocation of input data in an XML file
 CInputReaderReads input data from a file
 CXmlMessageHandlerHandles XML parse errors; used for debugging only
 NkClasses for computing the k-Fréchet Distance
 CkAlgorithmThe k-Frechet algorithm
 CBruteForceResults of the brute-force algorithm
 CGreedyResults of the Greedy algorithm
 CWorkingSetCurrent working set of mapped intervals. Horizontal intervals are mapped to the range [0..n] Vertical intervals are mapped to the range [n..n+m]
 CKWorkerJobBackground worker job for running the k-Frechet brute-force algorithm
 CMappedIntervalAttaches a component ID to an interval
 NpolyClasses for computing the Fréchet Distance on simple polygons
 CAlgorithmBase class for algorithm for simple polygons
 CCurveDataStores essential information about an input curve. This data is processed once for each input curve
 CAlgorithmMultiCoreMulti-Core implementaion. Uses Intel TBB to perform some parallel computation
 CAlgorithmSingleCoreSequential implementation for a single processor core
 CAlgorithmTopoSortImplementation with a sorted call-graph
 CCgalPointPolygon vertex to be used with CGAL::Polygon_2. Derives from CGAL::Point_2 but is convertible to an from QPoint (which is used troughout the rest of the program). Also stores the index of the polygon vertex
 CDecideWorkerJobWorker job for executing the decision variant of the algorithm for simple polygons
 CDoubleEndedQueueA double ended queue, or "Funnel". Used by the algorithm for Shortest Paths Trees (Guibas et al.)
 CFrameStack frame that tracks the necessary information for backtracking
 CDummyTDSDummy class acting as a default for template arguments (required by CGAL::Triangulation_data_structure_2)
 COptimiseCurveWorkerJobWorker job for executing the optimisation variant, or approximation variant, on curves (not on simple polygons)
 COptimisePolyWorkerJobWorker job for executing the optimisation variant, or approximation variant, of the algorithm for simple polygons
 CPartitionTraitsType traits for a polygon partition Defines the type for Points and Polygons
 CPolygonFSPathFeasible-path for simple polygons
 CPolygonShortestPathsCompute Shortest-Paths-Tree on a polygon
 CPolygonShortestPathsFSGuibas' Algorithm with additional Free-Space computation
 CPolygonTraitsType traits for CgalPolygon. Defines the type for Points
 CPolygonUtilitiesHelper class for polygon analysis
 CPolygonWorkerJobAbstract base class for executing the algorithm for simple polygons in a background thread. As any worker job, it may be interrupted by the user
 CSegmentRepresents a polygon line segment from node i to j
 CTriangulationWrapper for CGAL::Triangulation_Data_Structure https://doc.cgal.org/latest/TDS_2/index.html
 CEdge_iteratorEdge iterator. Traverses all edges of the triangulation. Derives from TDS::Edge_iterator and supplies some additional information
 CVertex_baseBase class for vertexes in a Triangulation Data Structure
 CRebind_TDSTemplate re-bind to resolve cyclic dependcies
 NreachClass for computing reachability structures and graphs
 CBoundarySegmentBoundary interval in the reachability structure. Represents an interval on the boundary of the FreeSpace (bottom.left,top, or right)
 CBoundsIndexMapping within a GraphModel
 CCalculateTaskSub-task, computing a region of the reachability structure
 CFSPathCalculates a feasible path in the Free-Space given a start point (0,0) and an end point (n-1,m-1)
 CGraphRepresents a Reachability Graph. Vertices correspond to intervals in the reachability structure, broken down to the most fine-grained intervals
 COriginHow was this graph constructed? This info is useful for visualisation & debugging. And for constructing a topologoically sorted list of tasks. (see frechet::poly::AlgorithmTopoSort)
 CGraphCLReachability Graph with additional storage in GPU memory
 CGraphModelModel the mapping of free-space intervals to nodes in a frechet::reach::Graph
 CGraphModelAxisManages a mapping between free-space intervals (continous, floating point) to reachability graph nodes (discrete, integer)
 CIndexRangeRange of node indices in a Reachability Graph
 CMergeTaskSub-taks, performing the merging of two reachability structures
 CPlacementPlacement of a diagonal point in free-space diagram When calculating valid placements in [buchin06]
 CPointerIntervalDescribes l,h pointers. Both pointers are assumed to point into the same rectangle section (right-top OR bottom-left)
 CStructureThe Reachability Structure; maintains a list of intervals on the border of Free Space, along with pointers to reachable intervals on the opposite side
 CSingleCellAuxDataAux. data structure that is used to construct an initial reachability cell
 CStructureIteratorThe StructureIterator class
 CStructureTaskTask object for parallel execution. When the reachability structur is computed in parallel threads, we create a tree of task objects that are distributed over threads
 NviewVisible parts of the Qt application: windows and widgets
 CBaseViewBase class for view widgets
 CCellViewDisplays one cell of the free-space diagram
 CControlPanelControl Panel
 CCurveViewDisplays input curves P and Q
 CFreeSpaceViewDisplay the free-space diagram
 CGraphicsHoverLineItemQGraphicsLitem that can handle mouse hover events. It is used to highlight mouse sensitve polygon segments
 CGraphicsViewQGraphicsView with additional support for mouse and gesture events. re-implements a couple of event handling routines
 CIntervalViewDisplay k-Frechet intervals, i.e. projections of connected components to the domain axes
 CMainWindowThe single application window
 CPaletteColor map
 Cclm4rm_conditionsManages OpenCL event dependencies; necessary when the queue is out-of-order; dependencies must be established through cl_event
 Cclm4rm_event_listList of cl_events; used by clm4rm_conditions to keep track of schedules jobs in the OpenCL queue
 Cclmatrix_tOpenCL boolean matrix data structure. Data is arranged in 32 bit words
 CPathRepresents a polygonal curve