This document describes the layer structure of Realsoft 3D libraries. You need this information to find the libraries you need to link to your plugins and applications.
Every feature in Realsoft 3D is based on one or more other features. For example, all classes in Realsoft depend on a number of other classes, such as their super class. The same applies to everything else like instances and libraries.
This dependancy chaining must always be one directional. If class A uses class B, then class B must be totally unaware about the existence of class A. Two libraries, classes or instances may newer explicitely refer to each other. Another way of saying this is that all features in the program must are built in top of other features. This rule simply stems from the reusability requirement and if it didn't hold then it wouldn't be possible to remove a feature without breaking functionality below it.
The following table describes how built-in libraries are layered in Realsoft 3D
r3wid2 | Dynamic GUI customization system |
---|---|
r3wid | High level GUI classes, such as main window, etc. |
r3win | Tool bars, tools, and other high level GUI classes for Realsoft3D. |
r3winc | Basic window classes for Realsoft3D |
r3primgad | Geometry specific gadgets (views for geometric primitives) |
r3iagad | Interactor specific gadgets (views for interactor models) |
r3gad2 | Basic user interface gadgets and views classes for models defined by r3code |
r3gad | Basic user interface gadgets and views classes for models defined by r3code |
r3code2 | Realsoft3D class, standalone renderer and other top level functionality classes. |
---|---|
r3r3lay | Classes for managing multiple projects and specifying Realsoft3D file format |
r3ias | Interactors for creating geometric objects from users input |
r3ia | Basic interactors for creating geometric objects from users input. |
r3wire | Real time rendering specific classes for wire frame and OpenGL rendering. |
r3layer | Classes for managing geometric objects, materials, etc. in projects. |
r3constr | Constructor objects, such as rotate constructor, move constructor, 3d lattice, point translator etc. |
r3obj | Geometric objects, such as NURBS, SDS, etc. |
r3code | Basic functionality for describing scenes (materials, post effects, etc.) |
r3raytr | Photo realistic renderer |
r3shade | Shading system for photo realistic rendering |
r3frio | Input / output specific classes for photo realistic rendering. |
r3dtype | Image formats (window image, ram image, image file formats, such as TGA, BMP, etc.) |
r3pl r3d r3supp | Scripting (r3pl), basic 3D functionality (r3d) and memory managment (r3supp). |
r3oops | Realsoft 3D object oriented programming system, implementing platform independent API to an underlying operating system. Sempahores, threads, widgets etc. |
---|
Plugin libraries are usually vertically oriented in that they plug-in both functionality and user interface classes. For example, 'metaball' plug-in library plugs in all the metaball functionality classes (geometry, tool, interactor, property gadget etc.) - everything which has anything to do with metaballs.
Note: If you need to use classes in a plugin library, don't call their registry functions directly, because plugin classes are registered by the kernel library (see R3LibraryInit() function). Instead, make sure the plugin is loaded by calling:
R3BOOL R3LoadPluginLibrary(R3APP *app, char *library);
where 'library' is the name of the plugin without the system specific prefix or postfix. For example:
R3LoadPluginLibrary(app, "r3invkin");
The following table lists some plugins shipped with Realsoft 3D. Note: the list is not complete and may vary depending on the version.
r3opengl | OpenGL rendering |
---|---|
r3constr | Scripting constraint |
r3creator | Creator object |
r3fieldev | Field evaluator |
r3fileinst | File Instance |
r3fprint | Footstep |
r3interpolator | Interpolator, for rendering hairs etc. |
r3link | Real3D Link Object |
r3metab | Metaball tool set |
r3pointdisplacer | Various deformators, such as point displacer |
r3sdsplus | SDS tools |
r3blur | Blur post effect |
r3detedg | Edge detection post effect |
r3dither | Dithering post effect |
r3fog | Fog post effect |
r3glow | Glow post effect |
r3gradient | Gradien post effect |
r3ligspr | |
r3line | Post effect |
r3satura | Saturation post effect |
r3tblur | Time blur post effect |
r33dp | 3D Painting Tool Set |
r3analytictools | Analytic tools |
r3deformtools | Interactive deformation tools |
r3map | Material mapping tool set |
r3nurbs | NURBS tool set |
r3nurbstools | Various NURBS tools |
r3sdstools | SDS tool set (SDS tool tab) |
r3selpainter | Selection painter tool |
r3jpeg | JPEG image format |
r3ppm | PPM image format |
r3iff | IFF image format |
r3flc | FLC animation format |
r3avi | AVI animation format |
r3ico | Microsoft .ICO image format |
r3cineon | Cineon file format |
r3hook | Special purpose image format |
r3tga | TrueVision Targa Image format |
r3tt | True Type font tool set |
r33ds | 3DS Object File Format |
r3boujou | Boujou motion capture import |
r3dxf | DXF file format |
r3jsio | JavaScript based file format |
r3rplio | RPL based file format |
r3v3io | Real 3D file format (import only) |
r3js | JavaScript scripting |
r3invkin | Inverse Kinematics object |
VRMLPlugin | VRML file format from Soft-Artists |
IGESPlugin | IGES file format from Soft-Artists |
scratches | VSL material effect from Schmeling Consulting |
objformat | WaveFront .OBJ file format |
r3icarus | Icarus motion capture import |
r3rz3 | Realwiz MatchMover motion capture import |