7 #include "imstkCamera.h" 8 #include "imstkCapsule.h" 9 #include "imstkCollidingObject.h" 10 #include "imstkCylinder.h" 11 #include "imstkDeviceManager.h" 12 #include "imstkDeviceManagerFactory.h" 13 #include "imstkDirectionalLight.h" 14 #include "imstkKeyboardDeviceClient.h" 15 #include "imstkKeyboardSceneControl.h" 16 #include "imstkLogger.h" 17 #include "imstkMouseDeviceClient.h" 18 #include "imstkMouseSceneControl.h" 19 #include "imstkOrientedBox.h" 20 #include "imstkPlane.h" 21 #include "imstkScene.h" 22 #include "imstkSceneManager.h" 23 #include "imstkSceneObjectController.h" 24 #include "imstkSimulationManager.h" 25 #include "imstkSimulationUtils.h" 26 #include "imstkSphere.h" 27 #include "imstkVTKViewer.h" 29 using namespace imstk;
42 auto scene = std::make_shared<Scene>(
"ObjectController");
46 std::shared_ptr<DeviceClient> deviceClient = hapticManager->makeDeviceClient();
48 std::shared_ptr<AnalyticalGeometry> geometries[] = {
49 std::make_shared<OrientedBox>(Vec3d::Zero(), Vec3d(0.01, 0.05, 0.01)),
50 std::make_shared<Plane>(Vec3d::Zero(), Vec3d(0.0, 0.01, 0.0)),
51 std::make_shared<Capsule>(Vec3d::Zero(), 0.005, 0.01),
52 std::make_shared<Cylinder>(Vec3d::Zero(), 0.05, 0.01),
53 std::make_shared<Sphere>(Vec3d::Zero(), 0.02)
56 auto object = std::make_shared<SceneObject>(
"VirtualObject");
57 object->setVisualGeometry(geometries[0]);
58 scene->addSceneObject(
object);
60 auto controller = std::make_shared<SceneObjectController>();
61 controller->setControlledObject(
object);
62 controller->setDevice(deviceClient);
63 scene->addControl(controller);
66 std::shared_ptr<Camera> cam = scene->getActiveCamera();
67 cam->setPosition(Vec3d(0.0, 0.0, 0.3));
68 cam->setFocalPoint(geometries[0]->getPosition());
71 auto light = std::make_shared<DirectionalLight>();
72 light->setDirection(Vec3d(5.0, -8.0, -5.0));
73 light->setIntensity(1.0);
74 scene->addLight(
"light", light);
79 auto viewer = std::make_shared<VTKViewer>();
80 viewer->setActiveScene(scene);
83 auto sceneManager = std::make_shared<SceneManager>();
84 sceneManager->setActiveScene(scene);
86 auto driver = std::make_shared<SimulationManager>();
87 driver->addModule(viewer);
88 driver->addModule(sceneManager);
89 driver->addModule(hapticManager);
90 driver->setDesiredDt(0.01);
93 std::shared_ptr<Entity> mouseAndKeyControls =
94 SimulationUtils::createDefaultSceneControl(driver);
95 scene->addSceneObject(mouseAndKeyControls);
static std::shared_ptr< DeviceManager > makeDeviceManager()
Attempts to create a new DeviceManager by whichever is default If multiple haptic managers are built ...
static LoggerG3 & startLogger()
Starts logger with default sinks, use getInstance to create a logger with no sinks.