Revision: 77179
          http://sourceforge.net/p/brlcad/code/77179
Author:   starseeker
Date:     2020-09-19 02:00:53 +0000 (Sat, 19 Sep 2020)
Log Message:
-----------
Backport switch from glm to internal Qt math types from arbalest

Modified Paths:
--------------
    brlcad/trunk/doc/legal/embedded/CMakeLists.txt
    brlcad/trunk/src/qged/display/Camera.h
    brlcad/trunk/src/qged/display/Display.cpp
    brlcad/trunk/src/qged/display/OrthographicCamera.cpp
    brlcad/trunk/src/qged/display/OrthographicCamera.h

Removed Paths:
-------------
    brlcad/trunk/doc/legal/embedded/glm.txt

Modified: brlcad/trunk/doc/legal/embedded/CMakeLists.txt
===================================================================
--- brlcad/trunk/doc/legal/embedded/CMakeLists.txt      2020-09-19 01:20:09 UTC 
(rev 77178)
+++ brlcad/trunk/doc/legal/embedded/CMakeLists.txt      2020-09-19 02:00:53 UTC 
(rev 77179)
@@ -21,7 +21,6 @@
   gecode.txt
   gdal_gcv_plugin1.txt
   gdal_gcv_plugin2.txt
-  glm.txt
   halfedge.txt
   humanize.txt
   hv3.txt

Deleted: brlcad/trunk/doc/legal/embedded/glm.txt
===================================================================
--- brlcad/trunk/doc/legal/embedded/glm.txt     2020-09-19 01:20:09 UTC (rev 
77178)
+++ brlcad/trunk/doc/legal/embedded/glm.txt     2020-09-19 02:00:53 UTC (rev 
77179)
@@ -1,314 +0,0 @@
-================================================================================
-OpenGL Mathematics (GLM)
---------------------------------------------------------------------------------
-GLM is licensed under The Happy Bunny License or MIT License
-
-BRL-CAD will use glm under the standard MIT license
-
-================================================================================
-The MIT License
---------------------------------------------------------------------------------
-Copyright (c) 2005 - G-Truc Creation
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-file:/src/qged/display/glm/glm/common.hpp
-file:/src/qged/display/glm/glm/detail/_features.hpp
-file:/src/qged/display/glm/glm/detail/_fixes.hpp
-file:/src/qged/display/glm/glm/detail/_noise.hpp
-file:/src/qged/display/glm/glm/detail/_swizzle.hpp
-file:/src/qged/display/glm/glm/detail/_swizzle_func.hpp
-file:/src/qged/display/glm/glm/detail/_vectorize.hpp
-file:/src/qged/display/glm/glm/detail/compute_common.hpp
-file:/src/qged/display/glm/glm/detail/compute_vector_relational.hpp
-file:/src/qged/display/glm/glm/detail/glm.cpp
-file:/src/qged/display/glm/glm/detail/qualifier.hpp
-file:/src/qged/display/glm/glm/detail/setup.hpp
-file:/src/qged/display/glm/glm/detail/type_float.hpp
-file:/src/qged/display/glm/glm/detail/type_half.hpp
-file:/src/qged/display/glm/glm/detail/type_mat2x2.hpp
-file:/src/qged/display/glm/glm/detail/type_mat2x3.hpp
-file:/src/qged/display/glm/glm/detail/type_mat2x4.hpp
-file:/src/qged/display/glm/glm/detail/type_mat3x2.hpp
-file:/src/qged/display/glm/glm/detail/type_mat3x3.hpp
-file:/src/qged/display/glm/glm/detail/type_mat3x4.hpp
-file:/src/qged/display/glm/glm/detail/type_mat4x2.hpp
-file:/src/qged/display/glm/glm/detail/type_mat4x3.hpp
-file:/src/qged/display/glm/glm/detail/type_mat4x4.hpp
-file:/src/qged/display/glm/glm/detail/type_quat.hpp
-file:/src/qged/display/glm/glm/detail/type_vec1.hpp
-file:/src/qged/display/glm/glm/detail/type_vec2.hpp
-file:/src/qged/display/glm/glm/detail/type_vec3.hpp
-file:/src/qged/display/glm/glm/detail/type_vec4.hpp
-file:/src/qged/display/glm/glm/exponential.hpp
-file:/src/qged/display/glm/glm/ext.hpp
-file:/src/qged/display/glm/glm/ext/matrix_clip_space.hpp
-file:/src/qged/display/glm/glm/ext/matrix_common.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double2x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double3x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_double4x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float2x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float3x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x2_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x3_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_float4x4_precision.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int2x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int3x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_int4x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_projection.hpp
-file:/src/qged/display/glm/glm/ext/matrix_relational.hpp
-file:/src/qged/display/glm/glm/ext/matrix_transform.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint2x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint3x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x2.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x2_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x3.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x3_sized.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x4.hpp
-file:/src/qged/display/glm/glm/ext/matrix_uint4x4_sized.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_common.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_double.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_double_precision.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_exponential.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_float.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_float_precision.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_geometric.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_relational.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_transform.hpp
-file:/src/qged/display/glm/glm/ext/quaternion_trigonometric.hpp
-file:/src/qged/display/glm/glm/ext/scalar_common.hpp
-file:/src/qged/display/glm/glm/ext/scalar_constants.hpp
-file:/src/qged/display/glm/glm/ext/scalar_int_sized.hpp
-file:/src/qged/display/glm/glm/ext/scalar_integer.hpp
-file:/src/qged/display/glm/glm/ext/scalar_packing.hpp
-file:/src/qged/display/glm/glm/ext/scalar_relational.hpp
-file:/src/qged/display/glm/glm/ext/scalar_uint_sized.hpp
-file:/src/qged/display/glm/glm/ext/scalar_ulp.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool1.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool1_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool2.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool2_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool3.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool3_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool4.hpp
-file:/src/qged/display/glm/glm/ext/vector_bool4_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_common.hpp
-file:/src/qged/display/glm/glm/ext/vector_double1.hpp
-file:/src/qged/display/glm/glm/ext/vector_double1_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_double2.hpp
-file:/src/qged/display/glm/glm/ext/vector_double2_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_double3.hpp
-file:/src/qged/display/glm/glm/ext/vector_double3_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_double4.hpp
-file:/src/qged/display/glm/glm/ext/vector_double4_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_float1.hpp
-file:/src/qged/display/glm/glm/ext/vector_float1_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_float2.hpp
-file:/src/qged/display/glm/glm/ext/vector_float2_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_float3.hpp
-file:/src/qged/display/glm/glm/ext/vector_float3_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_float4.hpp
-file:/src/qged/display/glm/glm/ext/vector_float4_precision.hpp
-file:/src/qged/display/glm/glm/ext/vector_int1.hpp
-file:/src/qged/display/glm/glm/ext/vector_int1_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_int2.hpp
-file:/src/qged/display/glm/glm/ext/vector_int2_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_int3.hpp
-file:/src/qged/display/glm/glm/ext/vector_int3_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_int4.hpp
-file:/src/qged/display/glm/glm/ext/vector_int4_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_integer.hpp
-file:/src/qged/display/glm/glm/ext/vector_packing.hpp
-file:/src/qged/display/glm/glm/ext/vector_relational.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint1.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint1_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint2.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint2_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint3.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint3_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint4.hpp
-file:/src/qged/display/glm/glm/ext/vector_uint4_sized.hpp
-file:/src/qged/display/glm/glm/ext/vector_ulp.hpp
-file:/src/qged/display/glm/glm/fwd.hpp
-file:/src/qged/display/glm/glm/geometric.hpp
-file:/src/qged/display/glm/glm/glm.hpp
-file:/src/qged/display/glm/glm/gtc/bitfield.hpp
-file:/src/qged/display/glm/glm/gtc/color_space.hpp
-file:/src/qged/display/glm/glm/gtc/constants.hpp
-file:/src/qged/display/glm/glm/gtc/epsilon.hpp
-file:/src/qged/display/glm/glm/gtc/integer.hpp
-file:/src/qged/display/glm/glm/gtc/matrix_access.hpp
-file:/src/qged/display/glm/glm/gtc/matrix_integer.hpp
-file:/src/qged/display/glm/glm/gtc/matrix_inverse.hpp
-file:/src/qged/display/glm/glm/gtc/matrix_transform.hpp
-file:/src/qged/display/glm/glm/gtc/noise.hpp
-file:/src/qged/display/glm/glm/gtc/packing.hpp
-file:/src/qged/display/glm/glm/gtc/quaternion.hpp
-file:/src/qged/display/glm/glm/gtc/random.hpp
-file:/src/qged/display/glm/glm/gtc/reciprocal.hpp
-file:/src/qged/display/glm/glm/gtc/round.hpp
-file:/src/qged/display/glm/glm/gtc/type_aligned.hpp
-file:/src/qged/display/glm/glm/gtc/type_precision.hpp
-file:/src/qged/display/glm/glm/gtc/type_ptr.hpp
-file:/src/qged/display/glm/glm/gtc/ulp.hpp
-file:/src/qged/display/glm/glm/gtc/vec1.hpp
-file:/src/qged/display/glm/glm/gtx/associated_min_max.hpp
-file:/src/qged/display/glm/glm/gtx/bit.hpp
-file:/src/qged/display/glm/glm/gtx/closest_point.hpp
-file:/src/qged/display/glm/glm/gtx/color_encoding.hpp
-file:/src/qged/display/glm/glm/gtx/color_space.hpp
-file:/src/qged/display/glm/glm/gtx/color_space_YCoCg.hpp
-file:/src/qged/display/glm/glm/gtx/common.hpp
-file:/src/qged/display/glm/glm/gtx/compatibility.hpp
-file:/src/qged/display/glm/glm/gtx/component_wise.hpp
-file:/src/qged/display/glm/glm/gtx/dual_quaternion.hpp
-file:/src/qged/display/glm/glm/gtx/easing.hpp
-file:/src/qged/display/glm/glm/gtx/euler_angles.hpp
-file:/src/qged/display/glm/glm/gtx/extend.hpp
-file:/src/qged/display/glm/glm/gtx/extended_min_max.hpp
-file:/src/qged/display/glm/glm/gtx/exterior_product.hpp
-file:/src/qged/display/glm/glm/gtx/fast_exponential.hpp
-file:/src/qged/display/glm/glm/gtx/fast_square_root.hpp
-file:/src/qged/display/glm/glm/gtx/fast_trigonometry.hpp
-file:/src/qged/display/glm/glm/gtx/functions.hpp
-file:/src/qged/display/glm/glm/gtx/gradient_paint.hpp
-file:/src/qged/display/glm/glm/gtx/handed_coordinate_space.hpp
-file:/src/qged/display/glm/glm/gtx/hash.hpp
-file:/src/qged/display/glm/glm/gtx/integer.hpp
-file:/src/qged/display/glm/glm/gtx/intersect.hpp
-file:/src/qged/display/glm/glm/gtx/io.hpp
-file:/src/qged/display/glm/glm/gtx/log_base.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_cross_product.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_decompose.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_factorisation.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_interpolation.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_major_storage.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_operation.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_query.hpp
-file:/src/qged/display/glm/glm/gtx/matrix_transform_2d.hpp
-file:/src/qged/display/glm/glm/gtx/mixed_product.hpp
-file:/src/qged/display/glm/glm/gtx/norm.hpp
-file:/src/qged/display/glm/glm/gtx/normal.hpp
-file:/src/qged/display/glm/glm/gtx/normalize_dot.hpp
-file:/src/qged/display/glm/glm/gtx/number_precision.hpp
-file:/src/qged/display/glm/glm/gtx/optimum_pow.hpp
-file:/src/qged/display/glm/glm/gtx/orthonormalize.hpp
-file:/src/qged/display/glm/glm/gtx/perpendicular.hpp
-file:/src/qged/display/glm/glm/gtx/polar_coordinates.hpp
-file:/src/qged/display/glm/glm/gtx/projection.hpp
-file:/src/qged/display/glm/glm/gtx/quaternion.hpp
-file:/src/qged/display/glm/glm/gtx/range.hpp
-file:/src/qged/display/glm/glm/gtx/raw_data.hpp
-file:/src/qged/display/glm/glm/gtx/rotate_normalized_axis.hpp
-file:/src/qged/display/glm/glm/gtx/rotate_vector.hpp
-file:/src/qged/display/glm/glm/gtx/scalar_multiplication.hpp
-file:/src/qged/display/glm/glm/gtx/scalar_relational.hpp
-file:/src/qged/display/glm/glm/gtx/spline.hpp
-file:/src/qged/display/glm/glm/gtx/std_based_type.hpp
-file:/src/qged/display/glm/glm/gtx/string_cast.hpp
-file:/src/qged/display/glm/glm/gtx/texture.hpp
-file:/src/qged/display/glm/glm/gtx/transform.hpp
-file:/src/qged/display/glm/glm/gtx/transform2.hpp
-file:/src/qged/display/glm/glm/gtx/type_aligned.hpp
-file:/src/qged/display/glm/glm/gtx/type_trait.hpp
-file:/src/qged/display/glm/glm/gtx/vec_swizzle.hpp
-file:/src/qged/display/glm/glm/gtx/vector_angle.hpp
-file:/src/qged/display/glm/glm/gtx/vector_query.hpp
-file:/src/qged/display/glm/glm/gtx/wrap.hpp
-file:/src/qged/display/glm/glm/integer.hpp
-file:/src/qged/display/glm/glm/mat2x2.hpp
-file:/src/qged/display/glm/glm/mat2x3.hpp
-file:/src/qged/display/glm/glm/mat2x4.hpp
-file:/src/qged/display/glm/glm/mat3x2.hpp
-file:/src/qged/display/glm/glm/mat3x3.hpp
-file:/src/qged/display/glm/glm/mat3x4.hpp
-file:/src/qged/display/glm/glm/mat4x2.hpp
-file:/src/qged/display/glm/glm/mat4x3.hpp
-file:/src/qged/display/glm/glm/mat4x4.hpp
-file:/src/qged/display/glm/glm/matrix.hpp
-file:/src/qged/display/glm/glm/packing.hpp
-file:/src/qged/display/glm/glm/simd/common.h
-file:/src/qged/display/glm/glm/simd/exponential.h
-file:/src/qged/display/glm/glm/simd/geometric.h
-file:/src/qged/display/glm/glm/simd/integer.h
-file:/src/qged/display/glm/glm/simd/matrix.h
-file:/src/qged/display/glm/glm/simd/neon.h
-file:/src/qged/display/glm/glm/simd/packing.h
-file:/src/qged/display/glm/glm/simd/platform.h
-file:/src/qged/display/glm/glm/simd/trigonometric.h
-file:/src/qged/display/glm/glm/simd/vector_relational.h
-file:/src/qged/display/glm/glm/trigonometric.hpp
-file:/src/qged/display/glm/glm/vec2.hpp
-file:/src/qged/display/glm/glm/vec3.hpp
-file:/src/qged/display/glm/glm/vec4.hpp
-file:/src/qged/display/glm/glm/vector_relational.hpp
-

Modified: brlcad/trunk/src/qged/display/Camera.h
===================================================================
--- brlcad/trunk/src/qged/display/Camera.h      2020-09-19 01:20:09 UTC (rev 
77178)
+++ brlcad/trunk/src/qged/display/Camera.h      2020-09-19 02:00:53 UTC (rev 
77179)
@@ -23,14 +23,15 @@
 #define RT3_CAMERABK_H
 
 
-#include <glm/detail/type_mat4x4.hpp>
+#include <QMatrix4x4>
+#include <QVector3D>
 
 
 class Camera {
 public:
-    glm::vec3  axisX = glm::vec3(1.0f,0.0f,0.0f);
-    glm::vec3  axisY = glm::vec3(0.0f,1.0f,0.0f);
-    glm::vec3  axisZ = glm::vec3(0.0f,0.0f,1.0f);
+    QVector3D  axisX = QVector3D(1.0f,0.0f,0.0f);
+    QVector3D  axisY = QVector3D(0.0f,1.0f,0.0f);
+    QVector3D  axisZ = QVector3D(0.0f,0.0f,1.0f);
 
     virtual void setWH(float w, float h) = 0;
     virtual void processMoveRequest(const int &deltaX, const int &deltaY) = 0;
@@ -37,9 +38,12 @@
     virtual void processRotateRequest(const int & deltaX, const int & deltaY, 
const bool& thirdAxis) = 0;
     virtual void processZoomRequest(const int & deltaWheelAngle) = 0;
 
-    virtual glm::mat4 modelViewMatrix() const = 0;
-    virtual glm::mat4 projectionMatrix() const = 0;
+    virtual QMatrix4x4 modelViewMatrix() const = 0;
+    virtual QMatrix4x4 modelViewMatrixNoTranslate() const = 0;
+    virtual QMatrix4x4 projectionMatrix() const = 0;
 
+    virtual void setEyePosition(float x, float y, float z) = 0;
+
 };
 
 

Modified: brlcad/trunk/src/qged/display/Display.cpp
===================================================================
--- brlcad/trunk/src/qged/display/Display.cpp   2020-09-19 01:20:09 UTC (rev 
77178)
+++ brlcad/trunk/src/qged/display/Display.cpp   2020-09-19 02:00:53 UTC (rev 
77179)
@@ -21,7 +21,6 @@
 
 
 #include "Display.h"
-#include <glm/gtc/type_ptr.hpp>
 #include <QtWidgets/QApplication>
 #include <OrthographicCamera.h>
 #include "DisplayManager.h"
@@ -65,9 +64,9 @@
 void Display::paintGL() {
     displayManager->drawBegin();
 
-    displayManager->loadMatrix((const 
float*)glm::value_ptr(camera->modelViewMatrix()));
-    displayManager->loadPMatrix((const 
float*)glm::value_ptr(camera->projectionMatrix()));
-
+    displayManager->loadMatrix(camera->modelViewMatrix().data());
+    displayManager->loadPMatrix(camera->projectionMatrix().data());
+ 
     for (auto i:renderers) i->render();
 }
 

Modified: brlcad/trunk/src/qged/display/OrthographicCamera.cpp
===================================================================
--- brlcad/trunk/src/qged/display/OrthographicCamera.cpp        2020-09-19 
01:20:09 UTC (rev 77178)
+++ brlcad/trunk/src/qged/display/OrthographicCamera.cpp        2020-09-19 
02:00:53 UTC (rev 77179)
@@ -23,8 +23,7 @@
 #include "common.h"
 
 #include "OrthographicCamera.h"
-#include <glm/glm.hpp>
-#include <glm/gtx/transform.hpp>
+#include <cmath>
 
 #if defined(__GNUC__) && !defined(__clang__)
 #  pragma GCC diagnostic push
@@ -41,17 +40,24 @@
 
 OrthographicCamera::OrthographicCamera() = default;
 
-glm::mat4 OrthographicCamera::modelViewMatrix() const {
-    auto rotationMatrixAroundX = glm::rotate(glm::radians(angleAroundAxes.x), 
axisX);
-    auto rotationMatrixAroundY = glm::rotate(glm::radians(angleAroundAxes.y), 
axisY);
-    auto rotationMatrixAroundZ = glm::rotate(glm::radians(angleAroundAxes.z), 
axisZ);
-    auto rotationMatrix = rotationMatrixAroundX * rotationMatrixAroundY * 
rotationMatrixAroundZ;
+QMatrix4x4 OrthographicCamera::modelViewMatrix() const {
+    QMatrix4x4 rotationMatrixAroundX;
+    rotationMatrixAroundX.rotate(angleAroundAxes.x(), axisX);
+    QMatrix4x4 rotationMatrixAroundY;
+    rotationMatrixAroundY.rotate(angleAroundAxes.y(), axisY);
+    QMatrix4x4 rotationMatrixAroundZ;
+    rotationMatrixAroundZ.rotate(angleAroundAxes.z(), axisZ);
+    QMatrix4x4 rotationMatrix = rotationMatrixAroundX * rotationMatrixAroundY 
* rotationMatrixAroundZ;
+    rotationMatrix.translate(-eyePosition);
 
-    return glm::translate(rotationMatrix, eyePosition);
+    return rotationMatrix;
 }
 
-glm::mat4 OrthographicCamera::projectionMatrix() const {
-    return glm::ortho(-zoom * w / h, zoom * w / h, -zoom, zoom, nearPlane, 
farPlane);
+QMatrix4x4 OrthographicCamera::projectionMatrix() const {
+    QMatrix4x4 ret;
+    ret.ortho(-(verticalSpan/2) * w / h, (verticalSpan/2) * w / h, 
-verticalSpan/2, verticalSpan/2, nearPlane, farPlane);
+
+    return ret;
 }
 
 void OrthographicCamera::setWH(float w, float h) {
@@ -64,14 +70,14 @@
         return;
     }
 
-    float deltaAngleX = float(deltaX) / h;
-    float deltaAngleY = float(deltaY) / h;
+    const float deltaAngleX = float(deltaX) / h;
+    const float deltaAngleY = float(deltaY) / h;
     if (thirdAxis) {
-        angleAroundAxes.y += deltaAngleX * eyeRotationPerMouseDelta;
+        angleAroundAxes.setY(angleAroundAxes.y() + deltaAngleX * 
eyeRotationPerMouseDelta);
     } else {
-        angleAroundAxes.z += deltaAngleX * eyeRotationPerMouseDelta;
+        angleAroundAxes.setZ(angleAroundAxes.z() + deltaAngleX * 
eyeRotationPerMouseDelta);
     }
-    angleAroundAxes.x += deltaAngleY * eyeRotationPerMouseDelta;
+    angleAroundAxes.setX(angleAroundAxes.x() + deltaAngleY * 
eyeRotationPerMouseDelta);
 
 }
 
@@ -80,24 +86,52 @@
         return;
     }
 
-    auto rotationMatrixAroundZ = glm::rotate(glm::radians(-angleAroundAxes.z), 
axisZ);
-    auto rotationMatrixAroundY = glm::rotate(glm::radians(-angleAroundAxes.y), 
axisY);
-    auto rotationMatrixAroundX = glm::rotate(glm::radians(-angleAroundAxes.x), 
axisX);
-    auto rotationMatrix = rotationMatrixAroundZ * rotationMatrixAroundY * 
rotationMatrixAroundX;
+    QMatrix4x4 rotationMatrixAroundZ;
+    rotationMatrixAroundZ.rotate(-angleAroundAxes.z(), axisZ);
+    QMatrix4x4 rotationMatrixAroundY;
+    rotationMatrixAroundY.rotate(-angleAroundAxes.y(), axisY);
+    QMatrix4x4 rotationMatrixAroundX;
+    rotationMatrixAroundX.rotate(-angleAroundAxes.x(), axisX);
+    QMatrix4x4 rotationMatrix = rotationMatrixAroundZ * rotationMatrixAroundY 
* rotationMatrixAroundX;
 
-    glm::vec3 cameraRightDirection(rotationMatrix * glm::vec4(axisX, 1.0));
-    eyePosition += float(deltaX) * eyeMovementPerMouseDelta * 
cameraRightDirection * zoom;
+    QVector3D cameraRightDirection(rotationMatrix * axisX);
+    eyePosition -= static_cast<float>(deltaX) * eyeMovementPerMouseDelta * 
cameraRightDirection * verticalSpan;
 
-    glm::vec3 cameraUpDirection(rotationMatrix * glm::vec4(axisY, 1.0));
-    eyePosition -= float(deltaY) * eyeMovementPerMouseDelta * 
cameraUpDirection * zoom;
+    QVector3D cameraUpDirection(rotationMatrix * axisY);
+    eyePosition += static_cast<float>(deltaY) * eyeMovementPerMouseDelta * 
cameraUpDirection * verticalSpan;
 }
 
 void OrthographicCamera::processZoomRequest(const int &deltaWheelAngle) {
     float zoomFactor = 1 - zoomFactorMultiplier * float(deltaWheelAngle);
-    zoom = pow(zoom, zoomFactor);
-    if (zoom < zoomLowerBound) zoom = zoomLowerBound;
+    verticalSpan = pow(verticalSpan, zoomFactor);
+    if (verticalSpan < zoomLowerBound) verticalSpan = zoomLowerBound;
 }
 
+QMatrix4x4 OrthographicCamera::modelViewMatrixNoTranslate() const {
+    QMatrix4x4 rotationMatrixAroundX;
+    rotationMatrixAroundX.rotate(angleAroundAxes.x(), axisX);
+    QMatrix4x4 rotationMatrixAroundY;
+    rotationMatrixAroundY.rotate(angleAroundAxes.y(), axisY);
+    QMatrix4x4 rotationMatrixAroundZ;
+    rotationMatrixAroundZ.rotate(angleAroundAxes.z(), axisZ);
+    QMatrix4x4 rotationMatrix = rotationMatrixAroundX * rotationMatrixAroundY 
* rotationMatrixAroundZ;
+    return rotationMatrix;
+}
+
+
+void OrthographicCamera::setEyePosition(float x, float y, float z)
+{
+    eyePosition.setX(x);
+    eyePosition.setY(y);
+    eyePosition.setZ(z);
+}
+
+QVector3D OrthographicCamera::getEyePosition()
+{
+    return eyePosition;
+}
+
+
 #if defined(__GNUC__) && !defined(__clang__)
 #  pragma GCC diagnostic pop
 #endif

Modified: brlcad/trunk/src/qged/display/OrthographicCamera.h
===================================================================
--- brlcad/trunk/src/qged/display/OrthographicCamera.h  2020-09-19 01:20:09 UTC 
(rev 77178)
+++ brlcad/trunk/src/qged/display/OrthographicCamera.h  2020-09-19 02:00:53 UTC 
(rev 77179)
@@ -24,14 +24,13 @@
 #define RT3_OrthographicCAMERA_H
 
 
-#include <glm/detail/type_mat4x4.hpp>
 #include "Camera.h"
 
 
 class OrthographicCamera : public Camera {
 private:
-    const glm::vec3 initialEyePosition = glm::vec3(0.0f, 0.0f, 0.0f);
-    const glm::vec3 initialAngleAroundAxes = glm::vec3(295.0f, 0.0f, 235.0f);
+    const QVector3D initialEyePosition = QVector3D(0.0f, 0.0f, 0.0f);
+    const QVector3D initialAngleAroundAxes = QVector3D(295.0f, 0.0f, 235.0f);
 
     const float nearPlane = -2000000.0f;
     const float farPlane = 2000000.0f;
@@ -41,9 +40,9 @@
     const float zoomLowerBound = 0.00001;
     const int mouseMaxDrag = 500;
 
-    glm::vec3 angleAroundAxes = initialAngleAroundAxes; // Camera direction in 
degrees
-    float zoom = 600;
-    glm::vec3 eyePosition = initialEyePosition; // Camera coordinates
+    QVector3D angleAroundAxes = initialAngleAroundAxes; // Camera direction in 
degrees
+    float verticalSpan = 600;
+    QVector3D eyePosition = initialEyePosition; // Camera coordinates
     float w = 400, h = 400;         // Display width and height.
 
 public:
@@ -57,9 +56,13 @@
 
     void processZoomRequest(const int &deltaWheelAngle) override;
 
-    glm::mat4 modelViewMatrix() const override;
+    QMatrix4x4 modelViewMatrix() const ;
+    QMatrix4x4 modelViewMatrixNoTranslate() const ;
 
-    glm::mat4 projectionMatrix() const override;
+    QMatrix4x4 projectionMatrix() const ;
+
+    void setEyePosition(float x, float y, float z) ;
+    QVector3D getEyePosition();
 };
 
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to