OpenGL-based interactive plotting library for scientific computing.
git clone --recursive git@github.com:haykh/nttiny.git
# to update submodules
git submodule update --remoteCompile nttiny as a static library with the example code as a standalone application:
cmake -B build -D CMAKE_INSTALL_PREFIX=<install_dir> -D BUILD_EXAMPLES=ON
cd build
make -j
# install to the specified directory
make installFile examples/examples.cpp contains the most comprehensive examples on how to use nttiny for your own code.
To use nttiny as a plotting tool for your code you would need to build and use nttiny as a static library. To do that simply add nttiny as a subdirectory and link to your target; can be done by adding the following to your CmakeLists.txt:
add_subdirectory(${PATH_TO_NTTINY} nttiny)
target_link_libraries(${YOUR_TARGET_NAME} PRIVATE nttiny)
target_include_directories(${YOUR_TARGET_NAME} PRIVATE ${PATH_TO_NTTINY}/)If using GNU Makefiles you can do the same by adding the following to your Makefile:
NTTINY_DIR = ${PATH_TO_NTTINY}
NTTINY_LIB = ${BUILD_DIR}/libnttiny.a
${BUILD_DIR}/libnttiny.a:
cmake -B ${BUILD_DIR} -D CMAKE_INSTALL_PREFIX=${BUILD_DIR} -S ${NTTINY_DIR} -D BUILD_EXAMPLES=OFF && cd ${BUILD_DIR} && make -j && make install
LIBS += ${NTTINY_LIB}
INCLUDES += -I${NTTINY_DIR}
# then use ${LIBS} and ${INCLUDES} when compiling/linking your targetv0.7.1[Jan 2023]:- fixed a bug which caused closing of all the legends when one of them was closed
- saving color-symmetry parameter now in metadata
- saving jumpover time
- fixed a bug when jumpover=0 was crashing the program
- minor bug fixes
v0.7.0[Oct 2022]:- full cmake support (readme updated)
- option for symmetric colorbar
- unnnecessary freetype dependency removed
- minor bugs fixed
v0.6.4[Sep 2022]:- notifications
- movie recording (frames)
- more advanced file saving (directory creation)
- ignoring warnings for some external depends
v0.6.3[Sep 2022]:- timeplot added
- collapsible controls
- better organizing state saving/loading
- minor bug fixes
- minor UI improvements
v0.6.2[Sep 2022]:- better menu ui
- better legends (cmap selector) + plot control
- global ui settings
- optimized data loading/updating
- minor bug fixes with rescaling
v0.6.1[Sep 2022]:- windows support
- hidpi support using scales (see
main.cppfor usage) - minor bug fixes in Makefile
v0.6.0[Sep 2022]:- better plot layouts
- linked axes
- easier API access (see
main.cppfor usage examples) - ghost cell support
- icons + custom font support
- now using implot main branch
- bump implot version to v0.14
- minor bugs + code restructure
v0.5.2[Apr 2022]:- timestep jumpover to skip rendering certain number of steps (faster)
v0.5.1[Mar 2022]:- saving and loading of plotter states
- "log"-scale: uses
sign(x) * abs(x)^0.25 - freetype font rendering
- particle selection
- custom colormaps
- user-specific outlining
- save/load states
- timestep jumpover
- hidpi support
- subplots & linked axes
- resizing of plots
GLAD and KHR for GL=4.4 is included in the repo. If for some reason you might have other version of openGL, use the following instruction to obtain the proper .cpp and .h files.
- Obtain
gladheaders andglad.cfrom this online server, for your specific version of OpenGL (use "Profile: Core" and mark the "Generate a loader" tick).
To find out your OpenGL version run
glxinfo | grep "OpenGL version".
-
Download the generated
glad.ziparchive, and unzip it (unzip glad.zip). If you do this from the source code directory (<NTTINY_PATH>) the headers will be properly placed intoextern/gladandextern/KHRdirectories (otherwise, do that manually). -
Move the
glad.cfile to a more appropriate place (and change.cto.cpp):mv glad.c lib/glad.cpp.