##

    Principles of operation gCAD3D

    Objectcodes are stored as asciitext not binary (like HTML or XML).
      You can create / modify modelfiles (.gcad) with any editor.

    Processing is done sequential by a interpreter.

    Curves and surfaces (ellipses, Ruled and Revolved Surfaces) are
      not converted into Splines/NURBS, they are stored / exported
      in their orignal form.

    Programlanguage:  : C
    Grafic:             OpenGL with GLU
    GUI:                GTK

    Modules:
      CommandInterpreter (CI):
        translate sourceobjects (Ascii-text) into binary objects.
      DataBase           (DB):
        intermediate save binary objects.
      DisplayList        (DL):
        Link to OpenGL and statusinfo for all visualisized binary objects
      Displayfunctiones  (GL)
        OpenGL-functiones

    Importmodules:
      All imported objects get translated directly into gcad-sourceobjects.

    Grafikprograms with interpreters:
    APT
    Varkon
    OpenSCAD
    geogebra

    ===================================================================
    APT
    ===============================================================================
    http://de.wikipedia.org/wiki/Automatically_Programmed_Tools

      APT-Programm    (Ascii)
    NC-Prozessor      (APT,MiniAPT,APL-APT,Compact,Elan,Fapt,Exapt ..)
      CLDATA-File     (binär)
    Postprocessor
      NC-Programm     (Ascii)
    Werkzeugmaschine

    Beispiel:

    P0=POINT/X0,Y0
    P1=POINT/X1,Y1
    L1=LINE/P0,P1 $$ Linie durch Punkte P0 und P1
    GOTO/P0
    GOTO/P1
    RAPID $$ Eilgang ein
    GODLTA/20 $$ um 20 mm in Z-Richtung abheben

    ===============================================================================
    Varkon
    ===============================================================================
    http://varkon.sourceforge.net/
    Interaktives GUI.
    Source (Generic Model) .mbs-files.
    Precompiled Objects (Bytecode, still parametric) .mbo-files.
    Binary modelcode .res-files

    Beispiel:

    GLOBAL MODULE rhombe_param ();
        constant VECTOR o = vec(0,0,0);
        constant VECTOR a = vec(0,1,0);
        constant VECTOR b = vec(1,0,0);
    BEGINMODULE
        b_plane(#1, o, o+a, o+a+b, o+b);
    ENDMODULE

    ===============================================================================
    OpenSCAD
    ===============================================================================
    http://www.openscad.org/
    3D-compiler, creating solid 3D CAD objects.
    Kein interaktives GUI.

    Beispiel:

    circle(r = 10);
    rotate([90,0,0]) polygon( points=[[0,0],[2,1],[1,2],[1,3],[3,4],[0,5]] );

    ===============================================================================
    geogebra
    ===============================================================================
    http://www.geogebra.org/
    Erstellung und Berechnung mathematischer Figuren.
    2D, interaktives GUI. XML-Ausgabe.