The presentationaly types are determined by the ways in which the logical concepts of the construction are presented on the page. In Euclid, Ptolemy, and Archimedes, this is mostly through 2D geometry on a page. However, Ptolemy's use of multiple projections laid on top of each other indicates that this presentation relies upon a 3D model to some extent. The focus so far has been on developing a basic geometric model extending the ePiX graphics library.
As before, the syntax for a presentational type is
data_namespace:typename. In this case, the
data_namespace is going to be
epix, as the geometric primitives are based on this library.
For example, the syntax for declaring an ePiX point labeled
o takes the following form:
Using the same identifier as the logical Euclidean point in the example from the 'logical types' section means that the
o will be presented as a geometric point in the model. If I wanted to, I could present the
Euclidean point using a segment by using the following declaration, potentially violating logical constraints within the
Now lets say that I want to represent the fluid surface called
abcd. I could represent this fluid surface as
epix:circle, however lets present it as an
epix:arc. The semantics of the
ref attributes are the same as in the logical language, only here they work with identifiers for instances of
<diapre:value> <epix:arc id='abcd'> <epix:circle ref='ul_abcd'> <epix:point ref='d'> <epix:point ref='a'> </epix:arc> </diapre:value>
One very important presentational type that must be included in every presentational model is the notion of a view. Presentational primitives are declared in a cartesian space called the world. The view type of a presentational model specifies how to 'look into' that world and come out with an image. More generally, the view specifies how to map the world into a format for a user to process and does not necessarily have to be visual in theory.
In practice, the current presentational model implements this view type via the
epix:pipeline type. The pipeline acts as
an interface to a traditional graphics pipeline and encapsulates the transformation from world space to camera space, to the viewport. From
the viewport, the primitives are projected onto a plane and then translated into image coordinates. More information on this primitive will be
provided in the description of the backend of the DML compiler (dmlc).