File: CameraInterface.cpp

package info (click to toggle)
darkradiant 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,080 kB
  • sloc: cpp: 264,743; ansic: 10,659; python: 1,852; xml: 1,650; sh: 92; makefile: 21
file content (98 lines) | stat: -rw-r--r-- 2,942 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "CameraInterface.h"

#include "math/Vector3.h"
#include <pybind11/pybind11.h>

namespace script
{

ScriptCameraView::ScriptCameraView(camera::ICameraView& cameraView) :
	_cameraView(cameraView)
{}

const Vector3& ScriptCameraView::getCameraOrigin() const
{
	return _cameraView.getCameraOrigin();
}

void ScriptCameraView::setCameraOrigin(const Vector3& newOrigin)
{
	_cameraView.setCameraOrigin(newOrigin);
}

const Vector3& ScriptCameraView::getCameraAngles() const
{
	return _cameraView.getCameraAngles();
}

void ScriptCameraView::setCameraAngles(const Vector3& newAngles)
{
	_cameraView.setCameraAngles(newAngles);
}

void ScriptCameraView::setOriginAndAngles(const Vector3& newOrigin, const Vector3& newAngles)
{
	_cameraView.setOriginAndAngles(newOrigin, newAngles);
}

const Vector3& ScriptCameraView::getRightVector() const
{
	return _cameraView.getRightVector();
}

const Vector3& ScriptCameraView::getUpVector() const
{
	return _cameraView.getUpVector();
}

const Vector3& ScriptCameraView::getForwardVector() const
{
	return _cameraView.getForwardVector();
}

float ScriptCameraView::getFarClipPlaneDistance() const
{
	return _cameraView.getFarClipPlaneDistance();
}

void ScriptCameraView::setFarClipPlaneDistance(float distance)
{
	_cameraView.setFarClipPlaneDistance(distance);
}

void ScriptCameraView::refresh()
{
    _cameraView.queueDraw();
}

ScriptCameraView CameraInterface::getActiveView()
{
	return ScriptCameraView(GlobalCameraManager().getActiveView());
}

void CameraInterface::registerInterface(py::module& scope, py::dict& globals)
{
	// Define a CameraView structure
	py::class_<ScriptCameraView> camera(scope, "CameraView");
	camera.def(py::init<camera::ICameraView&>());
	camera.def("getCameraOrigin", &ScriptCameraView::getCameraOrigin, py::return_value_policy::reference);
	camera.def("setCameraOrigin", &ScriptCameraView::setCameraOrigin);
	camera.def("getCameraAngles", &ScriptCameraView::getCameraAngles, py::return_value_policy::reference);
	camera.def("setCameraAngles", &ScriptCameraView::setCameraAngles);
	camera.def("setOriginAndAngles", &ScriptCameraView::setOriginAndAngles);
	camera.def("getRightVector", &ScriptCameraView::getRightVector, py::return_value_policy::reference);
	camera.def("getUpVector", &ScriptCameraView::getUpVector, py::return_value_policy::reference);
	camera.def("getForwardVector", &ScriptCameraView::getForwardVector, py::return_value_policy::reference);
	camera.def("getFarClipPlaneDistance", &ScriptCameraView::getFarClipPlaneDistance);
	camera.def("setFarClipPlaneDistance", &ScriptCameraView::setFarClipPlaneDistance);
	camera.def("refresh", &ScriptCameraView::refresh);

	// Define the BrushCreator interface
	py::class_<CameraInterface> cameraManager(scope, "Camera");
	cameraManager.def("getActiveView", &CameraInterface::getActiveView);

	// Now point the Python variable "GlobalCameraManager" to this instance
	globals["GlobalCameraManager"] = this;
}

}