github brenocq/implot3d v0.3

latest releases: v0.5, v0.4
pre-release11 months ago

Hello everyone! I hope you're having a good time with ImPlot3D.

After almost one year in the making, I'm happy to announce ImPlot3D v0.3 🎉.

This release brings a massive leap in precision for large-scale data, adds exciting new features like image plotting and log scales, and includes numerous fixes and improvements. A special thank you to everyone who contributed to v0.3!

On a personal note, I have recently stepped up as a maintainer for ImPlot. I want to thank @epezent for his trust and for this incredible opportunity (read more about the transition in epezent/implot#643).

This is an exciting time for the ecosystem as we work to align and improve both libraries. I invite you to get involved with both ImPlot and ImPlot3D - report bugs, suggest new features, open PRs.

❤️ Sponsor the Project I have also enabled GitHub Sponsors. Your support allows me to dedicate focused time to the health of the ImPlot/ImPlot3D ecosystem and directly contributes to my future academic studies in robotics and XR. If you find these tools valuable to your work, please consider becoming a sponsor.

🚀 New Features

  • Feat: Add ImPlot3DFlags_Equal flag for equal axis scaling by @brenocq in #142
  • Feat: ImPlot3D Flags for disabling user inputs by @chrissanrow in #153
    • ImPlot3DFlags_NoRotate
    • ImPlot3DFlags_NoPan
    • ImPlot3DFlags_NoZoom
    • ImPlot3DFlags_NoInputs

📸 New Demos

The documentation was improved in #154 and new demos were also added.

  • Legend options demo
  • Auto-fitting data demo
  • Mouse picking demo
  • Custom overlay demo
  • Custom per-point style
  • Config tab (Highly inspired by ImPlot's)
  • About window with build information (Highly inspired by ImGui's)

🐛 Bug Fixes | 🛠️ Chores

⚠️ Breaking Changes

As ImPlot3D is in early development, breaking changes may occur in the first few releases as the public API stabilizes.

To ensure ImPlot3D is ready for complex, real-world datasets, all plot coordinates have been migrated from float to double precision.
While most users won't need to change their code (as C++ handles implicit conversions), advanced users who directly interact with the following types and function signatures may need to update:

  • Struct Members: ImPlot3DPoint, ImPlot3DRange, ImPlot3DQuat, ImPlot3DTick::PlotPos, ImPlot3DAxis::NDCScale.
  • Draw List: ImDrawList3D::ZBuffer and ImDrawList3D::_ZWritePtr are now using double.
  • Functions: SetupBoxRotation, SetupBoxInitialRotation, SetupBoxScale, and PlotText now accept double parameters.

Additionally, the functions GetPlotPos() and GetPlotSize() have been renamed to GetPlotRectPos() and GetPlotRectSize() for clarity within the 3D context. The old functions are now deprecated and will be removed in future versions.

See implot3d.cpp for the full list of changes.

🎉 New Contributors

Full Changelog: v0.2...v0.3

Don't miss a new implot3d release

NewReleases is sending notifications on new releases.