Namespace CAMAPI.ViewPort
Interfaces
ICamApiCustomPassVO
Render-pass aspect of a visual object: how its faces are composited into the scene. Implemented by the same object as ICamApiVisualObject (it also exposes ICamApiRenderableVO); flat : IUnknown, fetched via QueryInterface. Objects without drawable faces (e.g. a gizmo) do not implement it, so QI returns nil.
ICamApiGizmo
Interactive transform manipulator (move/rotate gizmo) rendered by the kernel - the same widget used to set the work coordinate system. Created via ICamApiVisualisationFactory.CreateGizmo, which returns this interface directly; the same object also exposes ICamApiVisualObject (its scene node) via QueryInterface. Position it via Matrix, choose which handles are active via the Move*/Rotate* flags, and react to drags through a handler.
ICamApiGizmoHandler
Implemented by the caller and registered on a gizmo to receive its transform changes as the user drags the manipulator handles. Fires on the viewport's GUI thread.
ICamApiInstancedVO
Instancing aspect of a visual object: draws the object's mesh at several placements without duplicating its geometry, so one object can render as many copies. Implemented by the same object as ICamApiVisualObject (it also exposes ICamApiRenderableVO); flat : IUnknown, fetched via QueryInterface. Objects without drawable faces (e.g. a gizmo) do not implement it, so QI returns nil.
ICamApiInteractiveVO
Interactivity of a visual object (selection, hotspots). Fetch via QueryInterface from ICamApiVisualObject; non-interactive objects (e.g. a gizmo) return nil.
ICamApiMaterialVO
Material aspect of a visual object: how its faces are shaded. Implemented by the same object as ICamApiVisualObject (it also exposes ICamApiRenderableVO); this is a flat : IUnknown, fetched via QueryInterface. Objects without drawable faces (e.g. a gizmo) do not implement it, so QI returns nil - which serves as feature detection. Meaningful only together with ICamApiRenderableVO.
ICamApiMeshBuilder
Builds a triangle mesh on the caller side, then hands the whole result to a visual object in a single AddMesh call. Vertices are added once and referenced by index from triangles. By default the mesh holds geometry only and the color is taken from the visual object at the moment the mesh is added; the AddVertexColored / AddVerticesColored variants attach a per-vertex color ($AARRGGBB), which the renderer interpolates across each triangle. Per-vertex colors are all-or-nothing for one builder: once any colored vertex is added, vertices added without a color default to white. The AddVertexUV / AddVerticesUV variants attach per-vertex texture coordinates, used when the visual object carries a texture (ICamApiTexturedVO); they follow the same all-or-nothing rule.
ICamApiRenderableVO
Drawable content of a visual object (colour, meshes, polylines). Fetch via QueryInterface from ICamApiVisualObject; objects without content (e.g. a gizmo) return nil.
ICamApiShadedVO
Custom-shading aspect of a visual object: typed parameters (uniforms) the subsystem feeds to the built-in shader that draws the object's faces. The plugin only supplies values - the subsystem owns shader compilation and binding, so this works across the process boundary (.NET / IPC). Implemented by the same object as ICamApiVisualObject (it also exposes ICamApiRenderableVO and ICamApiMaterialVO); flat : IUnknown, fetched via QueryInterface. Objects without drawable faces (e.g. a gizmo) do not implement it, so QI returns nil. Meaningful together with Lit faces (see ICamApiMaterialVO).
ICamApiTexturedVO
Texture aspect of a visual object: an image mapped onto its faces using the mesh UV coordinates (ICamApiMeshBuilder.AddVertexUV). Implemented by the same object as ICamApiVisualObject (it also exposes ICamApiRenderableVO); flat : IUnknown, fetched via QueryInterface. Objects without drawable faces (e.g. a gizmo) do not implement it, so QI returns nil. Textured faces are drawn unlit (self-illuminated): the image shows at full brightness, modulated by the current color (ICamApiRenderableVO.SetColor) so a non-white color tints it. Faces whose vertices carry no UV, and objects with no texture set, render as usual.
ICamApiViewInteractionHandler
Implemented by the caller and registered on a visual object to receive hotspot drag events from the viewport. The kernel does the picking and projects the cursor onto the ground (Z=0) plane; the handler reacts (e.g. changes a parameter and rebuilds the object's geometry via AddMesh). Callbacks run on the viewport's GUI thread; the handler may call back into the visual object (Clear/AddMesh) - those are serialized internally.
ICamApiViewManager
A view manager owns a shared set of visual objects and the viewports that render them: every viewport of the manager draws the same scene. ENCY's main window is one such manager; a plugin can create its own (via ICamApiVisualisationFactory) to draw in its own window(s).
ICamApiViewPort
View port interface: a rendering surface hosted in a caller window. Many viewports can belong to one view manager and all draw its shared set of visual objects. Created via ICamApiVisualisationFactory.CreateViewPort.
ICamApiVisualObject
Scene node shared by every visual object (previews, gizmos, caller-defined): placement and visibility only. Content and interactivity are separate aspects via QueryInterface (ICamApiRenderableVO / ICamApiInteractiveVO / ICamApiGizmo); not every object implements each, so QI also serves as feature detection and is how self-drawing objects add further aspects. Transient, not persisted.
ICamApiVisualObjectIterator
Tree iterator over the visual objects of a view manager. Objects form a logical grouping tree via the Parent passed to CreateVisualObject (grouping for enumeration only - it does not nest transforms, visibility or lifetime), so traversal follows child / sibling / parent links; Reset returns to the root. Mirrors ICAMAPIGeometryTreeNodeIterator.
ICamApiVisualisationFactory
Rendering framework entry point: creates view managers, viewports hosted in caller windows, and the visual objects / mesh builders used to feed them geometry. Resolved as a singleton via 'Extension.Global.Singletons.ViewPort'.
Enums
TCamApiMaterialPreset
TViewPortViewMode
enumTCamApiMaterialPreset
Built-in material preset for a lit object's faces (ICamApiMaterialVO.Preset): a ready-made shading look the subsystem maps to its internal lighting model.
enumTViewPortViewMode
View port rendering mode