Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/scene_graph/NodeCamera.cpp')
-rw-r--r--source/blender/freestyle/intern/scene_graph/NodeCamera.cpp140
1 files changed, 78 insertions, 62 deletions
diff --git a/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp b/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp
index 3413cd125c7..30d05ee571c 100644
--- a/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp
+++ b/source/blender/freestyle/intern/scene_graph/NodeCamera.cpp
@@ -20,81 +20,97 @@
*/
#include <math.h>
-#include <string.h> // for memcpy
+#include <string.h> // for memcpy
#include "NodeCamera.h"
namespace Freestyle {
-static void loadIdentity(double * matrix)
+static void loadIdentity(double *matrix)
{
- int i;
-
- // Build Identity matrix
- for (i = 0; i < 16; ++i) {
- double value ;
- if ((i % 5) == 0)
- value = 1.0;
- else
- value = 0;
- matrix[i] = value;
- }
+ int i;
+
+ // Build Identity matrix
+ for (i = 0; i < 16; ++i) {
+ double value;
+ if ((i % 5) == 0)
+ value = 1.0;
+ else
+ value = 0;
+ matrix[i] = value;
+ }
}
NodeCamera::NodeCamera(CameraType camera_type) : camera_type_(camera_type)
{
- loadIdentity(modelview_matrix_);
- loadIdentity(projection_matrix_);
+ loadIdentity(modelview_matrix_);
+ loadIdentity(projection_matrix_);
}
-#if 0 /* UNUSED, gives warning in gcc */
+#if 0 /* UNUSED, gives warning in gcc */
NodeCamera::NodeCamera(const NodeCamera& iBrother) : camera_type_(iBrother.camera_type_)
{
- memcpy(modelview_matrix_, iBrother.modelview_matrix_, 16 * sizeof(double));
- memcpy(projection_matrix_, iBrother.projection_matrix_, 16 * sizeof(double));
+ memcpy(modelview_matrix_, iBrother.modelview_matrix_, 16 * sizeof(double));
+ memcpy(projection_matrix_, iBrother.projection_matrix_, 16 * sizeof(double));
}
#endif
-void NodeCamera::accept(SceneVisitor& v)
+void NodeCamera::accept(SceneVisitor &v)
{
- v.visitNodeCamera(*this);
+ v.visitNodeCamera(*this);
}
void NodeCamera::setModelViewMatrix(double modelview_matrix[16])
{
- memcpy(modelview_matrix_, modelview_matrix, 16 * sizeof(double));
+ memcpy(modelview_matrix_, modelview_matrix, 16 * sizeof(double));
}
void NodeCamera::setProjectionMatrix(double projection_matrix[16])
{
- memcpy(projection_matrix_, projection_matrix, 16 * sizeof(double));
+ memcpy(projection_matrix_, projection_matrix, 16 * sizeof(double));
}
NodeOrthographicCamera::NodeOrthographicCamera()
-: NodeCamera(NodeCamera::ORTHOGRAPHIC), left_(0), right_(0), bottom_(0), top_(0), zNear_(0), zFar_(0)
+ : NodeCamera(NodeCamera::ORTHOGRAPHIC),
+ left_(0),
+ right_(0),
+ bottom_(0),
+ top_(0),
+ zNear_(0),
+ zFar_(0)
{
- loadIdentity(projection_matrix_);
- loadIdentity(modelview_matrix_);
+ loadIdentity(projection_matrix_);
+ loadIdentity(modelview_matrix_);
}
-NodeOrthographicCamera::NodeOrthographicCamera(double left, double right, double bottom, double top,
- double zNear, double zFar)
-: NodeCamera(NodeCamera::ORTHOGRAPHIC), left_(left), right_(right), bottom_(bottom), top_(top),
- zNear_(zNear), zFar_(zFar)
+NodeOrthographicCamera::NodeOrthographicCamera(
+ double left, double right, double bottom, double top, double zNear, double zFar)
+ : NodeCamera(NodeCamera::ORTHOGRAPHIC),
+ left_(left),
+ right_(right),
+ bottom_(bottom),
+ top_(top),
+ zNear_(zNear),
+ zFar_(zFar)
{
- loadIdentity(projection_matrix_);
-
- projection_matrix_[0] = 2.0 / (right - left);
- projection_matrix_[3] = -(right + left) / (right - left) ;
- projection_matrix_[5] = 2.0 / (top - bottom);
- projection_matrix_[7] = -(top + bottom) / (top - bottom) ;
- projection_matrix_[10] = -2.0 / (zFar - zNear);
- projection_matrix_[11] = -(zFar + zNear) / (zFar - zNear);
+ loadIdentity(projection_matrix_);
+
+ projection_matrix_[0] = 2.0 / (right - left);
+ projection_matrix_[3] = -(right + left) / (right - left);
+ projection_matrix_[5] = 2.0 / (top - bottom);
+ projection_matrix_[7] = -(top + bottom) / (top - bottom);
+ projection_matrix_[10] = -2.0 / (zFar - zNear);
+ projection_matrix_[11] = -(zFar + zNear) / (zFar - zNear);
}
-NodeOrthographicCamera::NodeOrthographicCamera(const NodeOrthographicCamera& iBrother)
-: NodeCamera(iBrother), left_(iBrother.left_), right_(iBrother.right_), bottom_(iBrother.bottom_), top_(iBrother.top_),
- zNear_(iBrother.zNear_), zFar_(iBrother.zFar_)
+NodeOrthographicCamera::NodeOrthographicCamera(const NodeOrthographicCamera &iBrother)
+ : NodeCamera(iBrother),
+ left_(iBrother.left_),
+ right_(iBrother.right_),
+ bottom_(iBrother.bottom_),
+ top_(iBrother.top_),
+ zNear_(iBrother.zNear_),
+ zFar_(iBrother.zFar_)
{
}
@@ -103,34 +119,34 @@ NodePerspectiveCamera::NodePerspectiveCamera() : NodeCamera(NodeCamera::PERSPECT
}
NodePerspectiveCamera::NodePerspectiveCamera(double fovy, double aspect, double zNear, double zFar)
-: NodeCamera(NodeCamera::PERSPECTIVE)
+ : NodeCamera(NodeCamera::PERSPECTIVE)
{
- loadIdentity(projection_matrix_);
+ loadIdentity(projection_matrix_);
- double f = cos(fovy / 2.0) / sin(fovy / 2.0); // cotangent
+ double f = cos(fovy / 2.0) / sin(fovy / 2.0); // cotangent
- projection_matrix_[0] = f / aspect;
- projection_matrix_[5] = f;
- projection_matrix_[10] = (zNear + zFar) / (zNear - zFar);
- projection_matrix_[11] = (2.0 * zNear * zFar) / (zNear - zFar);
- projection_matrix_[14] = -1.0;
- projection_matrix_[15] = 0;
+ projection_matrix_[0] = f / aspect;
+ projection_matrix_[5] = f;
+ projection_matrix_[10] = (zNear + zFar) / (zNear - zFar);
+ projection_matrix_[11] = (2.0 * zNear * zFar) / (zNear - zFar);
+ projection_matrix_[14] = -1.0;
+ projection_matrix_[15] = 0;
}
-NodePerspectiveCamera::NodePerspectiveCamera(double left, double right, double bottom, double top,
- double zNear, double zFar)
-: NodeCamera(NodeCamera::PERSPECTIVE)
+NodePerspectiveCamera::NodePerspectiveCamera(
+ double left, double right, double bottom, double top, double zNear, double zFar)
+ : NodeCamera(NodeCamera::PERSPECTIVE)
{
- loadIdentity(projection_matrix_);
-
- projection_matrix_[0] = (2.0 * zNear) / (right - left);
- projection_matrix_[2] = (right + left) / (right - left);
- projection_matrix_[5] = (2.0 * zNear) / (top - bottom);
- projection_matrix_[6] = (top + bottom) / (top - bottom);
- projection_matrix_[10] = -(zFar + zNear) / (zFar - zNear);
- projection_matrix_[11] = -(2.0 * zFar * zNear) / (zFar - zNear);
- projection_matrix_[14] = -1.0;
- projection_matrix_[15] = 0;
+ loadIdentity(projection_matrix_);
+
+ projection_matrix_[0] = (2.0 * zNear) / (right - left);
+ projection_matrix_[2] = (right + left) / (right - left);
+ projection_matrix_[5] = (2.0 * zNear) / (top - bottom);
+ projection_matrix_[6] = (top + bottom) / (top - bottom);
+ projection_matrix_[10] = -(zFar + zNear) / (zFar - zNear);
+ projection_matrix_[11] = -(2.0 * zFar * zNear) / (zFar - zNear);
+ projection_matrix_[14] = -1.0;
+ projection_matrix_[15] = 0;
}
} /* namespace Freestyle */