"Xanadu" and the Flaming-X logo are registered trademarks of Project Xanadu.

Google
  Entire Web   sunless-sea.net   xanadu.net   udanax.com
 
  6 Visitor(s) on Site
  98 Wiki Pages

Recently Modified

Sections (edit)

How This Wiki Works

SearchWiki:
Recent Changes Printable View Page History Edit Page
Content Last Modified on January 22, 2008, at 09:57 PM CST

A coordinate space represents (among other things) the domain space of a table.

Corresponding to each coordinate space will be a set of objects of the following kinds:

Position -- The elements of the coordinate space.

Mapping -- (Add a description.)

OrderSpec? -- The ways of specifying partial orders of this coordinate space''s Positions.

XuRegion -- An XuRegion represents a set of Positions. The domain of a table is an XuRegion.

When defining a new coordinate space class, one generally defines new correspoding subclasses of each of the above classes. A kind of any of the above classes knows what coordinate space it is a part of (the "coordinateSpace()" message will yield an appropriate kind of CoordinateSpace). CoordinateSpace objects exist mostly just to represent this commonality. Coordinate spaces are disjoint -- it is an error to use any of the generic protocol of any of the above classes if the objects in question are of two different coordinate spaces. For example, "dsp->of (pos)" is not an error iff "dsp->coordinateSpace()->isEqual (pos->coordinateSpace())".

All of the instance variables for CoordinateSpace are basically cached quantities that require vary little actual state from the derived classes in order to be constructed. This realization allows a knot to be untangled when reading these objects from external storage.

Recent Changes Printable View Page History Edit Page
All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest (c) 2001-2007 Jeff Rush