CanvasMap
Getting Started Tutorials 3D Reference

Core Classes

Below are additional details on the design of CanvasMap.

Classes in CanvasMap can be broken down into the following areas with a few examples added:

The main container contents the panels that make up a CanvasMap map. While users will interact with the MainContainer regularlly, they will probably not interact with the other panels unless they are creating new panel classes so the focus of this document is on the other classes.

Main Hierarchy

Core classes the main hierarchy for 2D and 3D:

Main Hierarchy 2D

Main Hierarchy 3D

Additional Core Classes

Design Details

CMBase

Almost all classes in CanvasMap inherit from CMBase, typically through another superclass. CMBase provides a strong superclass to create consistency and limit code redundancy throughout CanvasMap.

CMBase is rather large and this could create performance problems as JavaScript dupilcates the functions for each object. However, this can be overcome by moving the content of large functions to a static function and having the object function call the static function. There are some examples of this in CanvasMap and this could be used with CMBase if performance becomes a problem in the future.

The key functions within CMBase include:

CMItem

- add Reset() as a function? Resets any cached data for rendering. This includes line segments for Bezier polys and THREE.js objects.

Issues

3D