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:
<epix:point id='o'/>
Using the same identifier as the logical Euclidean point in the example from the 'logical types' section means that the
Euclidean point 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
construction).
<epix:segment id='o'/>
Now lets say that I want to represent the fluid surface called abcd
. I could represent this fluid surface as
a epix:circle
, however lets present it as an epix:arc
. The semantics of the id
and
ref
attributes are the same as in the logical language, only here they work with identifiers for instances of
presentational types.
<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).