Rob Kremer, kremer@cpsc.ucalgary.ca

CMap Introduction


CMap Introduction

CMap is a C++ library to support concept map interfaces to other programs (see
requirements). Supporting CMap is a the KSI general-purpose library which can also be obtained from KSI. Both these libraries require the ANSII standard C++, including the Standard Template Library (STL), the string class, and the stream library.

You can down load a simple demo application built for MS Windows95 by clicking here. To use it, just put to run Mapper.exe; note that you must put the three .DLL files either in same directory as Mapper.exe or in a directory included in your PATH environment variable.

The CMap Library

You can view a (large) picture of the class hierarchy. There is also an interactive map of the hierarchy if you have the Smart Ideas Netscape plug-in for Windows 95.

template GraphicLibrary

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: public map< string, Ref2< T >, less< string > >
Abstract: no

A Graphics library is an association between a string and some instance of class Graphic. It is used by BehaviouralGraphic so that BehaviouralGraphic objects can be instantiated and store only a string (the name) of their visual components. They can defer actually instantiating the visual component until they are requested to display themselves by using a GraphicsLibrary to perform the lookup and cloning of appropriate visual objects.

class Graphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: nothing
Abstract: yes

This is the base class of almost every class in this library. It defines the primitive interface to graphic objects. It contains an ID datum (all Graphics have IDs) and a pointer to a parent GraphicContainer (Graphics usually have parents.

class GraphicContainer

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: public CommandReceiverContainer
Abstract: yes

GraphicContainer represents a list of Graphic objects. It is responsible for maintaining the list, including destructing the objects when it is destructed.

Reponsonsibilities of the this class include:

class GraphicObjectLocator

See also the declaration in header file,
Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: public ObjectLocator
Abstract: no

The GraphicObjectLocator is responsible for finding the same object that was passed to it in it's constructor. In the case of CMap, which has hierarchically nested objects, it must trace through a vector of IDs.

class VisualGraphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: public Graphic
Abstract: yes

VisualGraphics are displayable graphics; they cannot be acted on directly by the user. They are always "slaved" to a BehaviouralGraphic.

class BehaviouralGraphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from: public Graphic, public GraphicContainer
Abstract: yes

BehaviouralGraphics implement the behaviour of a graphic. Since they have no visual representation themselves, they are always in a delegation relationship with an object of type VisualGraphic. BehaviouralGraphic is responsible to interpret exectute() and undo() as per the Command module.

class ArrowHead

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from: nothing
Abstract: no

This is utilitarian class to help create new arrowheads on a line. Inherit from this class to easily make new arrow head shapes. Override the paint() method, using the getTheta() method to initialize an angle, and the translatePoint() method to translate pre-set polor-coordiate points to the correct location and rotation in cartesian coordiates. By default, this class draws a simple three point arrowhead.

class Line

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class Connector

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class Shape

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class RectangleShape

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class EllipseShape

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class RoundedRectShape

See also the declaration in header file, Graphic.h and the definition in file, GraphicVisual.cpp.

Inherits from:
Abstract:

class SensitiveGraphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class RelationableGraphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class Maplet

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class SRGraphic

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class SMaplet

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class Node

See also the declaration in header file, Graphic.h and the definition in file, GraphicBehav.cpp.

Inherits from:
Abstract:

class GraphicsFactory

See also the declaration in header file, Graphic.h and the definition in file, GraphicBase.cpp.

Inherits from:
Abstract:

class CMap

See also the declaration in header file, CMap.h and the definition in file, CMap.cpp.

Inherits from:
Abstract:


Rob Kremer, kremer@cpsc.ucalgary.ca