summaryrefslogtreecommitdiffstats
path: root/src/perspective-line.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/perspective-line.cpp')
-rw-r--r--src/perspective-line.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/perspective-line.cpp b/src/perspective-line.cpp
new file mode 100644
index 0000000..afa3278
--- /dev/null
+++ b/src/perspective-line.cpp
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/**
+ * Perspective line for 3D perspectives
+ *
+ * Authors:
+ * Maximilian Albert <Anhalter42@gmx.de>
+ *
+ * Copyright (C) 2007 authors
+ *
+ * Released under GNU GPL v2+, read the file 'COPYING' for more information.
+ */
+
+#include "perspective-line.h"
+
+namespace Box3D {
+
+PerspectiveLine::PerspectiveLine (Geom::Point const &pt, Proj::Axis const axis, Persp3D const *persp) :
+ Line (pt, persp->get_VP(axis).affine(), true)
+{
+ g_assert (persp != nullptr);
+
+ if (!persp->get_VP(axis).is_finite()) {
+ Proj::Pt2 vp(persp->get_VP(axis));
+ this->set_direction(Geom::Point(vp[Proj::X], vp[Proj::Y]));
+ }
+ this->vp_dir = axis;
+ this->persp = persp;
+}
+
+} // namespace Box3D
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8 :