PicoGK v2.0.0
PicoGK v2
This is a substantial release, as a large part of PicoGK was rewritten and enhanced to provide a more robust basis for the future.
Core areas of focus for 2.0 were:
- Improved Memory Management. PicoGK now works with much larger objects and more complex projects.
- Support for non-global use of PicoGK objects (i.e. by instantiating a
Libraryobject for a limited scope) - Foundational support for user interface (using Dear ImGui under the hood)
- A new viewer with improved interactivity
- Support for rendering bitmaps in the viewer (and visualizing slices)
Many of these areas will be extended in the coming months.
Release Notes
- NEW: A substantial amount of the PicoGK Runtime was rewritten and extended to support
- Robust memory management and reporting for very large objects
- Foundational work for a sophisticated user interface (based on the
Imguiopen-source library) - Images in the viewer
- Performance enhancements for lattice operations and booleans by using new
openvdbfunctions - Enhanced rendering support
- Moved to
opendbtransformations for better compatibility with .VDB exchange
- NEW: Completely new Viewer with enhanced zooming, panning, intuitive navigation. Foundational work on adding a proper UI framework
- CHANGE: Entirely new memory management system
- CHANGE: PicoGK now requires OpenGL 4.1 Core profile
- NEW: Support for rendering text to bitmaps
- NEW: Support for 2D textures (bitmaps) in the viewer (
GPUTexture) - NEW: Each viewer object now can have its own rotation/translation matrix (in addition to each viewer group having one). This is preparation for assemblies.
- NEW: Added
Frame3dobject (similar to ShapeKernel'sLocalFrame) to encapsulate a local coordinate system - NEW: A number of base interfaces to abstract 2D and 3D paths and contours (
PicoGK.Shapes) - NEW: Support for visualizing exceeded overhang angle in Viewer objects (important for 3D printing)
- NEW: Added
SliceVizto show slicedVoxelsbitmaps in the viewer - NEW: Added
VoxCutVizto enable cuttingVoxelsand showing the slice bitmap at the cut intersection - NEW: Added
ILoginterface to abstract logging of information and replaced rigidLogFileimplementation - NEW: Added
IProgressinterface and various progress reporting objects - NEW: Added RemoteAllObjects to Viewer
- NEW: Added extraction of slices from
Voxelsin X and Y directions. - NEW: Added
Voxels.bIsEmptyto detect whether a voxel field doesn't contain data - NEW: Added
Voxels.bIsInsideto detect if a position is inside aVoxelsobject - NEW: Added fast function to create voxelized lattice beams
Voxels.voxLatticeBeam - NEW: Added function to create a shelled
MeshasVoxelsobjectVoxels.voxMeshShell - NEW: Library can now report memory consumption of all objects
- NEW: A number of numerical helper functions for comparisons
- FIX: Using multiple
Libraryobjects in sequence didn't work properly - FIX: Slices were mirrored in Y, resulting in flipped CLI files
- FIX:
PolyLineobjects were not included in theViewerbounding box calculations. - FIX: Inconsistency between PicoGK Runtime and C# size about row order vs column order matrices (now consistently uses row order as does C#)
- CHANGE: Reorganized file structure with subfolders