13 |
|
|
14 |
package TransformInterfaces |
package TransformInterfaces |
15 |
|
|
16 |
package Transforms |
package TransformsImpl |
17 |
use TransformInterfaces |
use TransformInterfaces |
18 |
|
|
19 |
package VobInterfaces |
package VobInterfaces |
30 |
|
|
31 |
TransformInterfaces.c = (0,0); |
TransformInterfaces.c = (0,0); |
32 |
|
|
33 |
Transforms.c = (-100, 100); |
TransformsImpl.c = (-100, 100); |
34 |
VobInterfaces.c = (100, 40); |
VobInterfaces.c = (100, 40); |
35 |
|
|
36 |
VobSceneImpl.c = (0, 150); |
VobSceneImpl.c = (0, 150); |
40 |
aspects of the system go through well-defined |
aspects of the system go through well-defined |
41 |
interfaces in the packages TransformInterfaces and VobInterfaces. |
interfaces in the packages TransformInterfaces and VobInterfaces. |
42 |
|
|
43 |
|
Interfaces |
44 |
|
========== |
45 |
|
|
46 |
|
The transform interfaces and vob interfaces are relatively simple, |
47 |
|
defined in the include files ``vob/Transform.hxx`` and ``vob/Vob.hxx``. |
48 |
|
|
49 |
|
XXX humppake show how to make bidir links to the Doc++ docs of those here! |
50 |
|
|
51 |
|
The central interfaces on the C side are ``Vob`` and |
52 |
|
``Transform``, corresponding to the Java side Vob design. |
53 |
|
|
54 |
|
.. UML-refer: vobs_overall_2 |
55 |
|
|
56 |
|
In C++, however, transforms are *real* classes since the overhead |
57 |
|
is not significant. |
58 |
|
|
59 |
|
Implementations: Code Generation |
60 |
|
================================ |
61 |
|
|
62 |
|
The TransformsImpl and VobImpl packages in the above diagram are a different |
63 |
|
story: in order to support extensibility and multiple language bindings, |
64 |
|
we rely on code generation and templates to create the glue code |
65 |
|
from a simple definition of the actual functionality. |
66 |
|
|
67 |
|
The details of creating each type of class are documented |
68 |
|
separately (design_vobs, design_transforms) |
69 |
|
|
70 |
|
XXX humppake: bidir link? |
71 |
|
|
72 |
A basic concept is the PrimitiveTransform, which is a simple |
A basic concept is the PrimitiveTransform, which is a simple |
73 |
parametrized function of points to points. |
parametrized function of points to points. |
74 |
The public members are as follows:: |
The public members are as follows:: |