Test saving and parsing JSON configuration for Panda 3D renderer.
#include <visp3/core/vpConfig.h>
#if defined(VISP_HAVE_PANDA3D) && defined(VISP_HAVE_CATCH2)
#include <visp3/core/vpCameraParameters.h>
#include <visp3/ar/vpPanda3DBaseRenderer.h>
#include <visp3/ar/vpPanda3DRGBRenderer.h>
#include <visp3/ar/vpPanda3DFrameworkManager.h>
#include <visp3/ar/vpPanda3DRendererSet.h>
#include <visp3/ar/vpPanda3DGeometryRenderer.h>
#include <catch_amalgamated.hpp>
#ifdef ENABLE_VISP_NAMESPACE
#endif
#include <random>
{
}
SCENARIO("Instanciating multiple Panda3D renderers", "[Panda3D]")
{
GIVEN("A single renderer")
{
r1.setRenderParameters(defaultRenderParams());
r1.initFramework();
r1.renderFrame();
r1.getRender(depth);
THEN("Creating another, uncoupled renderer is ok and its destruction does not raise an error")
{
r2.setRenderParameters(defaultRenderParams());
r2.initFramework();
r2.renderFrame();
}
r1.renderFrame();
r1.getRender(depth);
}
}
SCENARIO("Sequentially instanciating and destroying Panda3D renderers", "[Panda3D]")
{
r3.setRenderParameters(defaultRenderParams());
r3.initFramework();
r3.renderFrame();
r3.getRender(depth);
{
r1.setRenderParameters(defaultRenderParams());
r1.initFramework();
r1.renderFrame();
r1.getRender(depth);
}
{
r2.setRenderParameters(defaultRenderParams());
r2.initFramework();
r2.renderFrame();
r2.getRender(depth);
}
}
SCENARIO("Sequentially instanciating and destroying Panda3D renderer sets", "[Panda3D]")
{
{
r1.addSubRenderer(std::make_shared<vpPanda3DRGBRenderer>(true));
r1.initFramework();
r1.renderFrame();
}
{
r1.addSubRenderer(std::make_shared<vpPanda3DRGBRenderer>(true));
r1.initFramework();
r1.renderFrame();
}
}
SCENARIO("Using multiple panda3d renderers in parallel", "[Panda3D]")
{
r3.setRenderParameters(defaultRenderParams());
r3.initFramework();
r3.renderFrame();
r1.setRenderParameters(defaultRenderParams());
r1.initFramework();
r1.renderFrame();
r1.getRender(depth);
r2.setRenderParameters(defaultRenderParams());
r2.initFramework();
r2.renderFrame();
r2.getRender(depth);
r1.renderFrame();
r1.getRender(depth);
}
int main(int argc, char *argv[])
{
Catch::Session session;
session.applyCommandLine(argc, argv);
int numFailed = session.run();
return numFailed;
}
#else
#include <stdlib.h>
int main() { return EXIT_SUCCESS; }
#endif
Generic class defining intrinsic camera parameters.
static vpPanda3DFrameworkManager & getInstance()
Renderer that outputs object geometric information.
@ CAMERA_NORMALS
Surface normals in the object frame.
Implementation of a traditional RGB renderer in Panda3D.
Rendering parameters for a panda3D simulation.
Class that renders multiple datatypes, in a single pass. A renderer set contains multiple subrenderer...