[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] libvob/doc design_C.rst design_transforms.rst d...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] libvob/doc design_C.rst design_transforms.rst d... |
Date: |
Fri, 02 May 2003 12:46:59 -0400 |
CVSROOT: /cvsroot/libvob
Module name: libvob
Changes by: Tuomas J. Lukka <address@hidden> 03/05/02 12:46:59
Modified files:
doc : design_C.rst design_transforms.rst
design_vobs.rst
Log message:
Start doccing for mudyc
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/doc/design_C.rst.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/doc/design_transforms.rst.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/libvob/libvob/doc/design_vobs.rst.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: libvob/doc/design_C.rst
diff -u libvob/doc/design_C.rst:1.1 libvob/doc/design_C.rst:1.2
--- libvob/doc/design_C.rst:1.1 Mon Feb 24 06:33:14 2003
+++ libvob/doc/design_C.rst Fri May 2 12:46:59 2003
@@ -13,7 +13,7 @@
package TransformInterfaces
- package Transforms
+ package TransformsImpl
use TransformInterfaces
package VobInterfaces
@@ -30,7 +30,7 @@
TransformInterfaces.c = (0,0);
- Transforms.c = (-100, 100);
+ TransformsImpl.c = (-100, 100);
VobInterfaces.c = (100, 40);
VobSceneImpl.c = (0, 150);
@@ -39,6 +39,35 @@
This way the relationships between the different
aspects of the system go through well-defined
interfaces in the packages TransformInterfaces and VobInterfaces.
+
+Interfaces
+==========
+
+The transform interfaces and vob interfaces are relatively simple,
+defined in the include files ``vob/Transform.hxx`` and ``vob/Vob.hxx``.
+
+XXX humppake show how to make bidir links to the Doc++ docs of those here!
+
+The central interfaces on the C side are ``Vob`` and
+``Transform``, corresponding to the Java side Vob design.
+
+.. UML-refer: vobs_overall_2
+
+In C++, however, transforms are *real* classes since the overhead
+is not significant.
+
+Implementations: Code Generation
+================================
+
+The TransformsImpl and VobImpl packages in the above diagram are a different
+story: in order to support extensibility and multiple language bindings,
+we rely on code generation and templates to create the glue code
+from a simple definition of the actual functionality.
+
+The details of creating each type of class are documented
+separately (design_vobs, design_transforms)
+
+XXX humppake: bidir link?
A basic concept is the PrimitiveTransform, which is a simple
parametrized function of points to points.
Index: libvob/doc/design_transforms.rst
diff -u libvob/doc/design_transforms.rst:1.1
libvob/doc/design_transforms.rst:1.2
--- libvob/doc/design_transforms.rst:1.1 Wed Feb 26 07:19:48 2003
+++ libvob/doc/design_transforms.rst Fri May 2 12:46:59 2003
@@ -32,3 +32,6 @@
``BoxPrimitiveTransform``
The transform sets the size of the output box.
+XXX tjl
+
+ - examples
Index: libvob/doc/design_vobs.rst
diff -u libvob/doc/design_vobs.rst:1.1 libvob/doc/design_vobs.rst:1.2
--- libvob/doc/design_vobs.rst:1.1 Thu Feb 27 05:18:22 2003
+++ libvob/doc/design_vobs.rst Fri May 2 12:46:59 2003
@@ -3,18 +3,19 @@
===================================
The Vob templates were not an easy design:
-the previous approach in ``gfx/librenderables/renderables.py`` was
-not at all optimal, due to the syntactic complexities.
+the previous approach in Gzz's ``gfx/librenderables/renderables.py`` was
+not at all optimal, due to the syntactic complexities and the single point
+of generation.
The ideal requirements for the template design were:
-- Pure C++ templates and possibly some preprocessor macros
+- Pure C++ templates (possibly some preprocessor macros)
- Author of Vob type should not have to type a list of assignments
to the members - at most a single list of parameter names.
- Should be able to avoid the extra assignments and initialize
- vob members directly.
+ vob members directly from the parameters passed from Java.
To my surprise, there was a solution. The basic Vob definition
would be ::
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] libvob/doc design_C.rst design_transforms.rst d...,
Tuomas J. Lukka <=