summaryrefslogtreecommitdiff
path: root/tools/camera/viewer.cpp
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
committerclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
commit847962910f0bff071f3bf07c9abb87764fb6cac3 (patch)
treeddcd429e134c7fd5f72ddc97ced175de8d66fcd0 /tools/camera/viewer.cpp
downloadlibrw-master.tar.gz
librw-master.zip
Import aap/librw @ masterHEADmaster
Snapshot for re3/reVC vendoring, per @lzcnt. Source: https://github.com/aap/librw (master).
Diffstat (limited to 'tools/camera/viewer.cpp')
-rw-r--r--tools/camera/viewer.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/tools/camera/viewer.cpp b/tools/camera/viewer.cpp
new file mode 100644
index 0000000..b9732d3
--- /dev/null
+++ b/tools/camera/viewer.cpp
@@ -0,0 +1,51 @@
+#include <rw.h>
+#include <skeleton.h>
+
+rw::Camera*
+ViewerCreate(rw::World *world)
+{
+ rw::Camera *camera = sk::CameraCreate(sk::globals.width, sk::globals.height, 1);
+ assert(camera);
+ camera->setNearPlane(0.1f);
+ camera->setFarPlane(500.0f);
+ world->addCamera(camera);
+ return camera;
+}
+
+void
+ViewerDestroy(rw::Camera *camera, rw::World *world)
+{
+ if(camera && world){
+ world->removeCamera(camera);
+ sk::CameraDestroy(camera);
+ }
+}
+
+void
+ViewerMove(rw::Camera *camera, rw::V3d *offset)
+{
+ sk::CameraMove(camera, offset);
+}
+
+void
+ViewerRotate(rw::Camera *camera, float deltaX, float deltaY)
+{
+ sk::CameraTilt(camera, nil, deltaY);
+ sk::CameraPan(camera, nil, deltaX);
+}
+
+void
+ViewerTranslate(rw::Camera *camera, float deltaX, float deltaY)
+{
+ rw::V3d offset;
+ offset.x = deltaX;
+ offset.y = deltaY;
+ offset.z = 0.0f;
+ sk::CameraMove(camera, &offset);
+}
+
+void
+ViewerSetPosition(rw::Camera *camera, rw::V3d *position)
+{
+ camera->getFrame()->translate(position, rw::COMBINEREPLACE);
+}