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 'extern/carve/include/carve/vector.hpp')
-rw-r--r--extern/carve/include/carve/vector.hpp163
1 files changed, 0 insertions, 163 deletions
diff --git a/extern/carve/include/carve/vector.hpp b/extern/carve/include/carve/vector.hpp
deleted file mode 100644
index b7e81e92c88..00000000000
--- a/extern/carve/include/carve/vector.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-// Begin License:
-// Copyright (C) 2006-2014 Tobias Sargeant (tobias.sargeant@gmail.com).
-// All rights reserved.
-//
-// This file is part of the Carve CSG Library (http://carve-csg.com/)
-//
-// This file may be used under the terms of either the GNU General
-// Public License version 2 or 3 (at your option) as published by the
-// Free Software Foundation and appearing in the files LICENSE.GPL2
-// and LICENSE.GPL3 included in the packaging of this file.
-//
-// This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-// INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE.
-// End:
-
-
-#pragma once
-
-#include <carve/carve.hpp>
-
-#include <carve/math_constants.hpp>
-#include <carve/geom.hpp>
-#include <carve/geom3d.hpp>
-
-#include <sstream>
-#include <algorithm>
-
-#include <math.h>
-
-namespace carve {
- namespace geom3d {
-
- struct hash_vector_ptr {
- size_t operator()(const Vector * const &v) const {
- return (size_t)v;
- }
- size_t operator()(const std::pair<const Vector *, const Vector *> &v) const {
- size_t r = (size_t)v.first;
- size_t s = (size_t)v.second;
- return r ^ ((s >> 16) | (s << 16));
- }
- };
-
-
-
- struct vec_adapt_ident {
- const Vector &operator()(const Vector &v) const { return v; }
- Vector &operator()(Vector &v) const { return v; }
- };
-
-
-
- struct vec_adapt_ptr {
- const Vector &operator()(const Vector * const &v) const { return *v; }
- Vector &operator()(Vector *&v) const { return *v; }
- };
-
-
-
- struct vec_adapt_pair_first {
- template<typename pair_t> const Vector &operator()(const pair_t &v) const { return v.first; }
- template<typename pair_t> Vector &operator()(pair_t &v) const { return v.first; }
- };
-
-
-
- struct vec_adapt_pair_second {
- template<typename pair_t> const Vector &operator()(const pair_t &v) const { return v.second; }
- template<typename pair_t> Vector &operator()(pair_t &v) const { return v.second; }
- };
-
-
-
- template<typename adapt_t>
- struct vec_cmp_lt_x {
- adapt_t adapt;
- vec_cmp_lt_x(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).x < adapt(b).x; }
- };
- template<typename adapt_t> vec_cmp_lt_x<adapt_t> vec_lt_x(adapt_t &adapt) { return vec_cmp_lt_x<adapt_t>(adapt); }
-
-
-
- template<typename adapt_t>
- struct vec_cmp_lt_y {
- adapt_t adapt;
- vec_cmp_lt_y(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).y < adapt(b).y; }
- };
- template<typename adapt_t> vec_cmp_lt_y<adapt_t> vec_lt_y(adapt_t &adapt) { return vec_cmp_lt_y<adapt_t>(adapt); }
-
-
-
- template<typename adapt_t>
- struct vec_cmp_lt_z {
- adapt_t adapt;
- vec_cmp_lt_z(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).z < adapt(b).z; }
- };
- template<typename adapt_t> vec_cmp_lt_z<adapt_t> vec_lt_z(adapt_t &adapt) { return vec_cmp_lt_z<adapt_t>(adapt); }
-
-
-
- template<typename adapt_t>
- struct vec_cmp_gt_x {
- adapt_t adapt;
- vec_cmp_gt_x(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).x > adapt(b).x; }
- };
- template<typename adapt_t> vec_cmp_gt_x<adapt_t> vec_gt_x(adapt_t &adapt) { return vec_cmp_gt_x<adapt_t>(adapt); }
-
-
-
- template<typename adapt_t>
- struct vec_cmp_gt_y {
- adapt_t adapt;
- vec_cmp_gt_y(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).y > adapt(b).y; }
- };
- template<typename adapt_t> vec_cmp_gt_y<adapt_t> vec_gt_y(adapt_t &adapt) { return vec_cmp_gt_y<adapt_t>(adapt); }
-
-
-
- template<typename adapt_t>
- struct vec_cmp_gt_z {
- adapt_t adapt;
- vec_cmp_gt_z(adapt_t _adapt = adapt_t()) : adapt(_adapt) {}
- template<typename input_t> bool operator()(const input_t &a, const input_t &b) const { return adapt(a).z > adapt(b).z; }
- };
- template<typename adapt_t> vec_cmp_gt_z<adapt_t> vec_gt_z(adapt_t &adapt) { return vec_cmp_gt_z<adapt_t>(adapt); }
-
-
-
- template<typename iter_t, typename adapt_t>
- void sortInDirectionOfRay(const Vector &ray_dir, iter_t begin, iter_t end, adapt_t adapt) {
- switch (carve::geom::largestAxis(ray_dir)) {
- case 0:
- if (ray_dir.x > 0) {
- std::sort(begin, end, vec_lt_x(adapt));
- } else {
- std::sort(begin, end, vec_gt_x(adapt));
- }
- break;
- case 1:
- if (ray_dir.y > 0) {
- std::sort(begin, end, vec_lt_y(adapt));
- } else {
- std::sort(begin, end, vec_gt_y(adapt));
- }
- break;
- case 2:
- if (ray_dir.z > 0) {
- std::sort(begin, end, vec_lt_z(adapt));
- } else {
- std::sort(begin, end, vec_gt_z(adapt));
- }
- break;
- }
- }
-
- }
-}