[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu3dkit-dev] New core API

From: Philippe C . D . Robert
Subject: [Gnu3dkit-dev] New core API
Date: Mon, 23 Dec 2002 19:18:40 +0100


to give you an idea how the new, simplified core API will/could look like I have listed most of the exposed interface classes and protocols w/ a short description (internal classes and backend stuff is not listed here):

- Classes:

o G3DContextManager

  Manages rendering contexts

o G3DContext

  A rendering context, uses a backend renderer context internally

o G3DCamera

  The camera controller, uses a NSView to draw

o G3DFrustum

  The frustum used by a camera object.

o G3DRotator

  A rotator/trackball controller

o G3DApplication

The application singleton used to setup a GNU 3DKit application, ie. to
  specify the threading model and renderer backend

o G3DGraphNode
  o G3DGroup
  o G3DShape
  o G3DLight

The simple scene graph. We get rid of a designated root node in the new design. Of course this can be extended in a utility lib or by 3rd party

  A further idea is to have sth like a G3DPlugin which would allow the
  incorporation of other structural scene data types.

o G3DShader

Shaders describe the appearance of a shape. The use of a standard shading
  languages would be very interesting here.

o G3DGeometry
  o G3DImplicitSurface
    o G3DQuadric
    o G3DSuperQuadric
  o G3DPatch
    o G3DPatchMesh
  o G3DPolygon
    o ...

Geometry data is used by shapes, different types will be supported by default.

o G3DRenderAction

  A render action renders a 3DKit scene taking in account the initially
specified threading model. This allows us to separate rendering from the scene

o G3DCopyAction

A copy action deep copies a scene graph portion to be reused elsewhere.

o G3DCompileAction

  A compile action optimises and compiles a scene graph.

- Protocols:

o G3DAction

o G3DRenderer
o G3DGfxContext

I tried to be closer to the original 3DKit and its thin, flexible API but still I did incorporate some missing stuff. I also believe we should use pure C for maths functionality, thus I dropped the G3DTransform class for example.

How does that sounds to you? Of course this is only a rough overview, but I try to come up with a proto as soon as possible, so that we can start playing with it.

Philippe C.D. Robert

reply via email to

[Prev in Thread] Current Thread [Next in Thread]