kdFlex 1.1.6 Code Changes Summary
API Changes
setNodalMatrix has been refactored into setRotationalNodalMatrix and setTranslationalNodalMatrix, and similarly for the getNodalMatrix method. This allows setting the respective units for each part of a flexible body nodal matrix. See setTranslationalNodalMatrix.
- Reworked
HuntCrossleyContactForce to use a “dissipation” parameter instead of the previous “kc”. This is more intuitive and easier to tune.
- Removed the alpha field from Scene.Color. Opacity is now handled separately.
- Now
FrameToFrame::pframeObservedRelSpVel/Accel() return quantities. doc
New Features
- Units for quantity types have been simplified to allow using
Angle[Vec3] and Angle[float] notation for different sized data. doc
- Added
PhysicalBody::pruneChildren() and SubTree::pruneBodies() methods to simplify multibody model by absorbing rigidly attached children bodies into their parents (only for rigid parent and children bodies). doc
- Added support for height field static geometries for more efficient collision detection for terrains and surfaces.
- Improved the robustness and speed of contact dynamics via contact point refinement.
Enhancements
- Updated installation process to use standard Python package process for
Karana to simplify dependencies management. See the installation instructions for details.
- Updated error handling for
kc.discard to create a GUI for viewing the referrers of lingering Python references.
- Added an opacity field to Scene.PhongMaterialInfo and Scene.PhysicalMaterialInfo to make the object transparent.
- Added a Scene.WireframeMaterial to display a ScenePart as a wireframe.
- Improved
SubTree::displayModel() and SubTree::dumpTree() tabular output; they also now include an informative legend doc
- Miscellaneous computational speed improvements.
Bug Fixes
- Fixed loss of precision issues in the collision pipeline that degraded performance; now double-precision is used throughout.