How leap71/picogkruntime works
PicoGK Runtime is a C++ computational-geometry kernel exposed through a C-compatible handle-based API. A typical client creates a library instance, constructs or manipulates voxel geometry, and may convert it to a mesh or display geometry in a viewer. The tree and API excerpt also identify polyline, lattice, and OpenVDB file/field capabilities. The sampled implementation confirms instance-owned mesh and voxel handles and viewer event dispatch; links between other API subsystems are omitted where their implementation was not sampled.
Main entry points: PicoGKLibrary.cpp Runtime facade · PicoGK.h C API · PicoGKGLViewerManager.cpp Viewer manager · PicoGKGLViewer.cpp Viewer window
Components 20
Public API
- C API
API/PicoGK.h - API types
API/PicoGKApiTypes.h - Runtime facade
Source/PicoGKLibrary.cpp - Handle manager
Source/PicoGKHandleManager.h - Viewer API
API/PicoGK.h
Geometry Data
- Voxel fields
Source/PicoGKVdbVoxels.h - VDB fields
Source/PicoGKVdbField.h - Mesh data
Source/PicoGKMesh.h - Polylines
Source/PicoGKPolyLine.h - Lattice data
Source/PicoGKLattice.h
VDB Interchange
- VDB files
Source/PicoGKVdbFile.h - VDB metadata
Source/PicoGKVdbMeta.h
Visualization
- Viewer manager
Source/PicoGKGLViewerManager.cpp - Viewer window
Source/PicoGKGLViewer.cpp - Render objects
Source/PicoGKGLViewerObjects.cpp - GPU objects
Source/PicoGKGLObjects.cpp - Viewer shaders
Source/PicoGKGLViewerShaders.cpp - GLFW
- OpenGL
Other components
- Engineering client
Connections 15
- Engineering client → C API: calls
- C API → Runtime facade: implemented by
- C API → API types: uses types
- Runtime facade → Handle manager: manages handles
- Runtime facade → Mesh data: creates and reads
- Runtime facade → Voxel fields: creates and reads
- Runtime facade → VDB files: accesses
- Runtime facade → VDB fields: accesses
- Viewer API → Viewer manager: creates viewers
- Viewer manager → Viewer window: creates and dispatches
- Viewer manager → GLFW: creates windows
- Viewer window → Render objects: displays
- Render objects → GPU objects: uses GPU objects
- GPU objects → OpenGL: issues graphics calls
- Viewer window → Viewer shaders: uses shaders