Revision: 76366
          http://sourceforge.net/p/brlcad/code/76366
Author:   starseeker
Date:     2020-07-17 17:59:33 +0000 (Fri, 17 Jul 2020)
Log Message:
-----------
Merge file moves and distcheck updates from bioh through r76365

Modified Paths:
--------------
    brlcad/trunk/doc/legal/embedded/CMakeLists.txt
    brlcad/trunk/regress/CMakeLists.txt
    brlcad/trunk/src/libged/CMakeLists.txt
    brlcad/trunk/src/libtclcad/CMakeLists.txt
    brlcad/trunk/src/qged/CMakeLists.txt
    brlcad/trunk/src/qged/display/glm/glm/common.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_features.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_fixes.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_noise.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_swizzle.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_swizzle_func.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/_vectorize.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/compute_common.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/compute_vector_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/glm.cpp
    brlcad/trunk/src/qged/display/glm/glm/detail/qualifier.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/setup.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_float.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_half.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_mat4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_quat.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_vec1.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_vec2.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_vec3.hpp
    brlcad/trunk/src/qged/display/glm/glm/detail/type_vec4.hpp
    brlcad/trunk/src/qged/display/glm/glm/exponential.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_clip_space.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_common.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double2x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double3x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_double4x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float2x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float3x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_float4x4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int2x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int3x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_int4x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_projection.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_transform.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint2x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint3x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/matrix_uint4x4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_common.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_double.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_double_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_exponential.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_float.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_float_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_geometric.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_transform.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/quaternion_trigonometric.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_common.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_constants.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_int_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_packing.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_uint_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/scalar_ulp.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool1.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool1_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_bool4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_common.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double1.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double1_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_double4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float1.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float1_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float2_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float3_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_float4_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int1.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int1_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_int4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_packing.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint1.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint1_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint2.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint2_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint3.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint3_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint4.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_uint4_sized.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext/vector_ulp.hpp
    brlcad/trunk/src/qged/display/glm/glm/ext.hpp
    brlcad/trunk/src/qged/display/glm/glm/fwd.hpp
    brlcad/trunk/src/qged/display/glm/glm/geometric.hpp
    brlcad/trunk/src/qged/display/glm/glm/glm.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/bitfield.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/color_space.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/constants.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/epsilon.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/matrix_access.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/matrix_integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/matrix_inverse.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/matrix_transform.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/noise.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/packing.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/quaternion.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/random.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/reciprocal.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/round.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/type_aligned.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/type_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/type_ptr.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/ulp.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtc/vec1.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/associated_min_max.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/bit.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/closest_point.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/color_encoding.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/color_space.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/color_space_YCoCg.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/common.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/compatibility.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/component_wise.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/dual_quaternion.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/easing.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/euler_angles.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/extend.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/extended_min_max.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/exterior_product.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/fast_exponential.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/fast_square_root.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/fast_trigonometry.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/functions.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/gradient_paint.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/handed_coordinate_space.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/hash.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/intersect.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/io.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/log_base.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_cross_product.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_decompose.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_factorisation.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_interpolation.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_major_storage.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_operation.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_query.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/matrix_transform_2d.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/mixed_product.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/norm.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/normal.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/normalize_dot.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/number_precision.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/optimum_pow.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/orthonormalize.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/perpendicular.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/polar_coordinates.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/projection.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/quaternion.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/range.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/raw_data.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/rotate_normalized_axis.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/rotate_vector.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/scalar_multiplication.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/scalar_relational.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/spline.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/std_based_type.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/string_cast.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/texture.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/transform.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/transform2.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/type_aligned.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/type_trait.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/vec_swizzle.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/vector_angle.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/vector_query.hpp
    brlcad/trunk/src/qged/display/glm/glm/gtx/wrap.hpp
    brlcad/trunk/src/qged/display/glm/glm/integer.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat2x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat2x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat2x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat3x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat3x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat3x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat4x2.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat4x3.hpp
    brlcad/trunk/src/qged/display/glm/glm/mat4x4.hpp
    brlcad/trunk/src/qged/display/glm/glm/matrix.hpp
    brlcad/trunk/src/qged/display/glm/glm/packing.hpp
    brlcad/trunk/src/qged/display/glm/glm/simd/common.h
    brlcad/trunk/src/qged/display/glm/glm/simd/exponential.h
    brlcad/trunk/src/qged/display/glm/glm/simd/geometric.h
    brlcad/trunk/src/qged/display/glm/glm/simd/integer.h
    brlcad/trunk/src/qged/display/glm/glm/simd/matrix.h
    brlcad/trunk/src/qged/display/glm/glm/simd/neon.h
    brlcad/trunk/src/qged/display/glm/glm/simd/packing.h
    brlcad/trunk/src/qged/display/glm/glm/simd/platform.h
    brlcad/trunk/src/qged/display/glm/glm/simd/trigonometric.h
    brlcad/trunk/src/qged/display/glm/glm/simd/vector_relational.h
    brlcad/trunk/src/qged/display/glm/glm/trigonometric.hpp
    brlcad/trunk/src/qged/display/glm/glm/vec2.hpp
    brlcad/trunk/src/qged/display/glm/glm/vec3.hpp
    brlcad/trunk/src/qged/display/glm/glm/vec4.hpp
    brlcad/trunk/src/qged/display/glm/glm/vector_relational.hpp

Added Paths:
-----------
    brlcad/trunk/doc/legal/embedded/glm.txt
    brlcad/trunk/src/libged/3ptarb/
    brlcad/trunk/src/libged/adc/
    brlcad/trunk/src/libged/adjust/
    brlcad/trunk/src/libged/ae2dir/
    brlcad/trunk/src/libged/analyze/
    brlcad/trunk/src/libged/annotate/
    brlcad/trunk/src/libged/arb/
    brlcad/trunk/src/libged/arced/
    brlcad/trunk/src/libged/arot/
    brlcad/trunk/src/libged/attr/
    brlcad/trunk/src/libged/autoview/
    brlcad/trunk/src/libged/bb/
    brlcad/trunk/src/libged/bev/
    brlcad/trunk/src/libged/bigE/
    brlcad/trunk/src/libged/blast/
    brlcad/trunk/src/libged/bo/
    brlcad/trunk/src/libged/bot_condense/
    brlcad/trunk/src/libged/bot_decimate/
    brlcad/trunk/src/libged/bot_dump/
    brlcad/trunk/src/libged/bot_face_fuse/
    brlcad/trunk/src/libged/bot_face_sort/
    brlcad/trunk/src/libged/bot_flip/
    brlcad/trunk/src/libged/bot_fuse/
    brlcad/trunk/src/libged/bot_merge/
    brlcad/trunk/src/libged/bot_smooth/
    brlcad/trunk/src/libged/bot_split/
    brlcad/trunk/src/libged/bot_sync/
    brlcad/trunk/src/libged/bot_vertex_fuse/
    brlcad/trunk/src/libged/cat/
    brlcad/trunk/src/libged/cc/
    brlcad/trunk/src/libged/clone/
    brlcad/trunk/src/libged/coil/
    brlcad/trunk/src/libged/color/
    brlcad/trunk/src/libged/columns/
    brlcad/trunk/src/libged/comb/
    brlcad/trunk/src/libged/comb_color/
    brlcad/trunk/src/libged/comb_std/
    brlcad/trunk/src/libged/combmem/
    brlcad/trunk/src/libged/concat/
    brlcad/trunk/src/libged/copy/
    brlcad/trunk/src/libged/copyeval/
    brlcad/trunk/src/libged/copymat/
    brlcad/trunk/src/libged/cpi/
    brlcad/trunk/src/libged/dag/
    brlcad/trunk/src/libged/dbip/
    brlcad/trunk/src/libged/debug/
    brlcad/trunk/src/libged/debugbu/
    brlcad/trunk/src/libged/debugdir/
    brlcad/trunk/src/libged/debuglib/
    brlcad/trunk/src/libged/debugnmg/
    brlcad/trunk/src/libged/decompose/
    brlcad/trunk/src/libged/delay/
    brlcad/trunk/src/libged/dir2ae/
    brlcad/trunk/src/libged/display_list/
    brlcad/trunk/src/libged/draw/
    brlcad/trunk/src/libged/draw_calc/
    brlcad/trunk/src/libged/dsp/
    brlcad/trunk/src/libged/dump/
    brlcad/trunk/src/libged/dup/
    brlcad/trunk/src/libged/eac/
    brlcad/trunk/src/libged/echo/
    brlcad/trunk/src/libged/edarb/
    brlcad/trunk/src/libged/edbot/
    brlcad/trunk/src/libged/edcodes/
    brlcad/trunk/src/libged/edcomb/
    brlcad/trunk/src/libged/edit/
    brlcad/trunk/src/libged/edit_metaball/
    brlcad/trunk/src/libged/editit/
    brlcad/trunk/src/libged/edmater/
    brlcad/trunk/src/libged/edpipe/
    brlcad/trunk/src/libged/env/
    brlcad/trunk/src/libged/erase/
    brlcad/trunk/src/libged/exists/
    brlcad/trunk/src/libged/expand/
    brlcad/trunk/src/libged/eye_pos/
    brlcad/trunk/src/libged/facedef/
    brlcad/trunk/src/libged/facetize/
    brlcad/trunk/src/libged/facetize_log/
    brlcad/trunk/src/libged/fb2pix/
    brlcad/trunk/src/libged/fbclear/
    brlcad/trunk/src/libged/find/
    brlcad/trunk/src/libged/form/
    brlcad/trunk/src/libged/fracture/
    brlcad/trunk/src/libged/gdiff/
    brlcad/trunk/src/libged/ged_util/
    brlcad/trunk/src/libged/get/
    brlcad/trunk/src/libged/get_autoview/
    brlcad/trunk/src/libged/get_comb/
    brlcad/trunk/src/libged/get_eyemodel/
    brlcad/trunk/src/libged/get_obj_bounds/
    brlcad/trunk/src/libged/get_solid_kp/
    brlcad/trunk/src/libged/get_type/
    brlcad/trunk/src/libged/glob/
    brlcad/trunk/src/libged/gqa/
    brlcad/trunk/src/libged/grid/
    brlcad/trunk/src/libged/grid2model_lu/
    brlcad/trunk/src/libged/grid2view_lu/
    brlcad/trunk/src/libged/group/
    brlcad/trunk/src/libged/heal/
    brlcad/trunk/src/libged/hide/
    brlcad/trunk/src/libged/how/
    brlcad/trunk/src/libged/human/
    brlcad/trunk/src/libged/illum/
    brlcad/trunk/src/libged/importFg4Section/
    brlcad/trunk/src/libged/inside/
    brlcad/trunk/src/libged/instance/
    brlcad/trunk/src/libged/isize/
    brlcad/trunk/src/libged/item/
    brlcad/trunk/src/libged/joint/
    brlcad/trunk/src/libged/joint2/
    brlcad/trunk/src/libged/keep/
    brlcad/trunk/src/libged/keypoint/
    brlcad/trunk/src/libged/kill/
    brlcad/trunk/src/libged/killall/
    brlcad/trunk/src/libged/killrefs/
    brlcad/trunk/src/libged/killtree/
    brlcad/trunk/src/libged/label/
    brlcad/trunk/src/libged/lc/
    brlcad/trunk/src/libged/libfuncs/
    brlcad/trunk/src/libged/lint/
    brlcad/trunk/src/libged/list/
    brlcad/trunk/src/libged/loadview/
    brlcad/trunk/src/libged/lod/
    brlcad/trunk/src/libged/log/
    brlcad/trunk/src/libged/lookat/
    brlcad/trunk/src/libged/ls/
    brlcad/trunk/src/libged/lt/
    brlcad/trunk/src/libged/m2v_point/
    brlcad/trunk/src/libged/make/
    brlcad/trunk/src/libged/make_name/
    brlcad/trunk/src/libged/match/
    brlcad/trunk/src/libged/mater/
    brlcad/trunk/src/libged/mirror/
    brlcad/trunk/src/libged/model2grid_lu/
    brlcad/trunk/src/libged/model2view/
    brlcad/trunk/src/libged/model2view_lu/
    brlcad/trunk/src/libged/move/
    brlcad/trunk/src/libged/move_all/
    brlcad/trunk/src/libged/move_arb_edge/
    brlcad/trunk/src/libged/move_arb_face/
    brlcad/trunk/src/libged/mrot/
    brlcad/trunk/src/libged/nirt/
    brlcad/trunk/src/libged/nmg/
    brlcad/trunk/src/libged/nmg_cmface/
    brlcad/trunk/src/libged/nmg_collapse/
    brlcad/trunk/src/libged/nmg_fix_normals/
    brlcad/trunk/src/libged/nmg_kill_f/
    brlcad/trunk/src/libged/nmg_kill_v/
    brlcad/trunk/src/libged/nmg_make_v/
    brlcad/trunk/src/libged/nmg_mm/
    brlcad/trunk/src/libged/nmg_move_v/
    brlcad/trunk/src/libged/nmg_simplify/
    brlcad/trunk/src/libged/ocenter/
    brlcad/trunk/src/libged/open/
    brlcad/trunk/src/libged/orient/
    brlcad/trunk/src/libged/orotate/
    brlcad/trunk/src/libged/oscale/
    brlcad/trunk/src/libged/otranslate/
    brlcad/trunk/src/libged/overlay/
    brlcad/trunk/src/libged/path/
    brlcad/trunk/src/libged/pathlist/
    brlcad/trunk/src/libged/pathsum/
    brlcad/trunk/src/libged/perspective/
    brlcad/trunk/src/libged/pix2fb/
    brlcad/trunk/src/libged/plot/
    brlcad/trunk/src/libged/pmat/
    brlcad/trunk/src/libged/pmodel2view/
    brlcad/trunk/src/libged/png/
    brlcad/trunk/src/libged/png2fb/
    brlcad/trunk/src/libged/pnts/
    brlcad/trunk/src/libged/polyclip/
    brlcad/trunk/src/libged/prcolor/
    brlcad/trunk/src/libged/prefix/
    brlcad/trunk/src/libged/preview/
    brlcad/trunk/src/libged/process/
    brlcad/trunk/src/libged/protate/
    brlcad/trunk/src/libged/ps/
    brlcad/trunk/src/libged/pscale/
    brlcad/trunk/src/libged/pset/
    brlcad/trunk/src/libged/ptranslate/
    brlcad/trunk/src/libged/pull/
    brlcad/trunk/src/libged/push/
    brlcad/trunk/src/libged/put/
    brlcad/trunk/src/libged/put_comb/
    brlcad/trunk/src/libged/putmat/
    brlcad/trunk/src/libged/qray/
    brlcad/trunk/src/libged/qvrot/
    brlcad/trunk/src/libged/rcodes/
    brlcad/trunk/src/libged/rect/
    brlcad/trunk/src/libged/red/
    brlcad/trunk/src/libged/regdef/
    brlcad/trunk/src/libged/region/
    brlcad/trunk/src/libged/remove/
    brlcad/trunk/src/libged/rfarb/
    brlcad/trunk/src/libged/rmap/
    brlcad/trunk/src/libged/rmat/
    brlcad/trunk/src/libged/rmater/
    brlcad/trunk/src/libged/rot/
    brlcad/trunk/src/libged/rot_point/
    brlcad/trunk/src/libged/rotate_about/
    brlcad/trunk/src/libged/rotate_arb_face/
    brlcad/trunk/src/libged/rotate_eto/
    brlcad/trunk/src/libged/rotate_extrude/
    brlcad/trunk/src/libged/rotate_hyp/
    brlcad/trunk/src/libged/rotate_tgc/
    brlcad/trunk/src/libged/rrt/
    brlcad/trunk/src/libged/rt/
    brlcad/trunk/src/libged/rtabort/
    brlcad/trunk/src/libged/rtcheck/
    brlcad/trunk/src/libged/rtwizard/
    brlcad/trunk/src/libged/savekey/
    brlcad/trunk/src/libged/saveview/
    brlcad/trunk/src/libged/scale/
    brlcad/trunk/src/libged/scale_ehy/
    brlcad/trunk/src/libged/scale_ell/
    brlcad/trunk/src/libged/scale_epa/
    brlcad/trunk/src/libged/scale_eto/
    brlcad/trunk/src/libged/scale_extrude/
    brlcad/trunk/src/libged/scale_hyp/
    brlcad/trunk/src/libged/scale_part/
    brlcad/trunk/src/libged/scale_rhc/
    brlcad/trunk/src/libged/scale_rpc/
    brlcad/trunk/src/libged/scale_superell/
    brlcad/trunk/src/libged/scale_tgc/
    brlcad/trunk/src/libged/scale_tor/
    brlcad/trunk/src/libged/screengrab/
    brlcad/trunk/src/libged/search/
    brlcad/trunk/src/libged/select/
    brlcad/trunk/src/libged/set_output_script/
    brlcad/trunk/src/libged/set_transparency/
    brlcad/trunk/src/libged/set_uplotOutputMode/
    brlcad/trunk/src/libged/setview/
    brlcad/trunk/src/libged/shaded_mode/
    brlcad/trunk/src/libged/shader/
    brlcad/trunk/src/libged/shells/
    brlcad/trunk/src/libged/showmats/
    brlcad/trunk/src/libged/slew/
    brlcad/trunk/src/libged/solid_report/
    brlcad/trunk/src/libged/solids_on_ray/
    brlcad/trunk/src/libged/sphgroup/
    brlcad/trunk/src/libged/summary/
    brlcad/trunk/src/libged/sync/
    brlcad/trunk/src/libged/tables/
    brlcad/trunk/src/libged/tire/
    brlcad/trunk/src/libged/title/
    brlcad/trunk/src/libged/tol/
    brlcad/trunk/src/libged/tops/
    brlcad/trunk/src/libged/tra/
    brlcad/trunk/src/libged/trace/
    brlcad/trunk/src/libged/track/
    brlcad/trunk/src/libged/translate_extrude/
    brlcad/trunk/src/libged/translate_tgc/
    brlcad/trunk/src/libged/tree/
    brlcad/trunk/src/libged/typein/
    brlcad/trunk/src/libged/unhide/
    brlcad/trunk/src/libged/units/
    brlcad/trunk/src/libged/v2m_point/
    brlcad/trunk/src/libged/vdraw/
    brlcad/trunk/src/libged/version/
    brlcad/trunk/src/libged/view2grid_lu/
    brlcad/trunk/src/libged/view2model/
    brlcad/trunk/src/libged/view2model_lu/
    brlcad/trunk/src/libged/view2model_vec/
    brlcad/trunk/src/libged/viewdir/
    brlcad/trunk/src/libged/voxelize/
    brlcad/trunk/src/libged/vrot/
    brlcad/trunk/src/libged/vutil/
    brlcad/trunk/src/libged/wcodes/
    brlcad/trunk/src/libged/wdb_importFg4Section/
    brlcad/trunk/src/libged/whatid/
    brlcad/trunk/src/libged/which/
    brlcad/trunk/src/libged/which_shader/
    brlcad/trunk/src/libged/who/
    brlcad/trunk/src/libged/wmater/
    brlcad/trunk/src/libged/xpush/
    brlcad/trunk/src/libged/zap/

Removed Paths:
-------------
    brlcad/trunk/src/libged/3ptarb.c
    brlcad/trunk/src/libged/adc.c
    brlcad/trunk/src/libged/adjust.c
    brlcad/trunk/src/libged/ae2dir.c
    brlcad/trunk/src/libged/analyze.c
    brlcad/trunk/src/libged/annotate.c
    brlcad/trunk/src/libged/arb.c
    brlcad/trunk/src/libged/arced.c
    brlcad/trunk/src/libged/arot.c
    brlcad/trunk/src/libged/attr.cpp
    brlcad/trunk/src/libged/autoview.c
    brlcad/trunk/src/libged/bb.c
    brlcad/trunk/src/libged/bev.c
    brlcad/trunk/src/libged/bigE.c
    brlcad/trunk/src/libged/blast.c
    brlcad/trunk/src/libged/bo.c
    brlcad/trunk/src/libged/bot_condense.c
    brlcad/trunk/src/libged/bot_decimate.c
    brlcad/trunk/src/libged/bot_dump.c
    brlcad/trunk/src/libged/bot_face_fuse.c
    brlcad/trunk/src/libged/bot_face_sort.c
    brlcad/trunk/src/libged/bot_flip.c
    brlcad/trunk/src/libged/bot_fuse.c
    brlcad/trunk/src/libged/bot_merge.c
    brlcad/trunk/src/libged/bot_smooth.c
    brlcad/trunk/src/libged/bot_split.c
    brlcad/trunk/src/libged/bot_sync.c
    brlcad/trunk/src/libged/bot_vertex_fuse.c
    brlcad/trunk/src/libged/cat.c
    brlcad/trunk/src/libged/cc.c
    brlcad/trunk/src/libged/clone.c
    brlcad/trunk/src/libged/coil.c
    brlcad/trunk/src/libged/color.c
    brlcad/trunk/src/libged/columns.c
    brlcad/trunk/src/libged/comb.c
    brlcad/trunk/src/libged/comb_color.c
    brlcad/trunk/src/libged/comb_std.c
    brlcad/trunk/src/libged/combmem.c
    brlcad/trunk/src/libged/concat.cpp
    brlcad/trunk/src/libged/copy.c
    brlcad/trunk/src/libged/copyeval.c
    brlcad/trunk/src/libged/copymat.c
    brlcad/trunk/src/libged/cpi.c
    brlcad/trunk/src/libged/dag.cpp
    brlcad/trunk/src/libged/dbip.c
    brlcad/trunk/src/libged/debug.cpp
    brlcad/trunk/src/libged/debugbu.c
    brlcad/trunk/src/libged/debugdir.c
    brlcad/trunk/src/libged/debuglib.c
    brlcad/trunk/src/libged/debugnmg.c
    brlcad/trunk/src/libged/decompose.c
    brlcad/trunk/src/libged/delay.c
    brlcad/trunk/src/libged/dir2ae.c
    brlcad/trunk/src/libged/display_list.c
    brlcad/trunk/src/libged/draw.c
    brlcad/trunk/src/libged/draw_calc.cpp
    brlcad/trunk/src/libged/dsp.c
    brlcad/trunk/src/libged/dump.c
    brlcad/trunk/src/libged/dup.c
    brlcad/trunk/src/libged/eac.c
    brlcad/trunk/src/libged/echo.c
    brlcad/trunk/src/libged/edarb.c
    brlcad/trunk/src/libged/edbot.c
    brlcad/trunk/src/libged/edcodes.c
    brlcad/trunk/src/libged/edcomb.c
    brlcad/trunk/src/libged/edit.c
    brlcad/trunk/src/libged/edit_metaball.c
    brlcad/trunk/src/libged/editit.c
    brlcad/trunk/src/libged/edmater.c
    brlcad/trunk/src/libged/edpipe.c
    brlcad/trunk/src/libged/env.c
    brlcad/trunk/src/libged/erase.c
    brlcad/trunk/src/libged/exists.c
    brlcad/trunk/src/libged/expand.c
    brlcad/trunk/src/libged/eye_pos.c
    brlcad/trunk/src/libged/facedef.c
    brlcad/trunk/src/libged/facetize.cpp
    brlcad/trunk/src/libged/facetize_log.c
    brlcad/trunk/src/libged/fb2pix.c
    brlcad/trunk/src/libged/fbclear.c
    brlcad/trunk/src/libged/find.c
    brlcad/trunk/src/libged/form.c
    brlcad/trunk/src/libged/fracture.c
    brlcad/trunk/src/libged/gdiff.c
    brlcad/trunk/src/libged/ged_util.c
    brlcad/trunk/src/libged/get.c
    brlcad/trunk/src/libged/get_autoview.c
    brlcad/trunk/src/libged/get_comb.c
    brlcad/trunk/src/libged/get_eyemodel.c
    brlcad/trunk/src/libged/get_obj_bounds.c
    brlcad/trunk/src/libged/get_solid_kp.c
    brlcad/trunk/src/libged/get_type.c
    brlcad/trunk/src/libged/glob.c
    brlcad/trunk/src/libged/gqa.c
    brlcad/trunk/src/libged/grid.c
    brlcad/trunk/src/libged/grid2model_lu.c
    brlcad/trunk/src/libged/grid2view_lu.c
    brlcad/trunk/src/libged/group.c
    brlcad/trunk/src/libged/heal.c
    brlcad/trunk/src/libged/hide.c
    brlcad/trunk/src/libged/how.c
    brlcad/trunk/src/libged/human.c
    brlcad/trunk/src/libged/illum.c
    brlcad/trunk/src/libged/importFg4Section.c
    brlcad/trunk/src/libged/inside.c
    brlcad/trunk/src/libged/instance.c
    brlcad/trunk/src/libged/isize.c
    brlcad/trunk/src/libged/item.c
    brlcad/trunk/src/libged/joint.c
    brlcad/trunk/src/libged/joint.h
    brlcad/trunk/src/libged/joint2.c
    brlcad/trunk/src/libged/keep.c
    brlcad/trunk/src/libged/keypoint.c
    brlcad/trunk/src/libged/kill.c
    brlcad/trunk/src/libged/killall.c
    brlcad/trunk/src/libged/killrefs.c
    brlcad/trunk/src/libged/killtree.c
    brlcad/trunk/src/libged/label.c
    brlcad/trunk/src/libged/lc.c
    brlcad/trunk/src/libged/libfuncs.c
    brlcad/trunk/src/libged/lint.cpp
    brlcad/trunk/src/libged/list.c
    brlcad/trunk/src/libged/loadview.c
    brlcad/trunk/src/libged/lod.c
    brlcad/trunk/src/libged/log.c
    brlcad/trunk/src/libged/lookat.c
    brlcad/trunk/src/libged/ls.c
    brlcad/trunk/src/libged/lt.c
    brlcad/trunk/src/libged/m2v_point.c
    brlcad/trunk/src/libged/make.c
    brlcad/trunk/src/libged/make_name.c
    brlcad/trunk/src/libged/match.c
    brlcad/trunk/src/libged/mater.cpp
    brlcad/trunk/src/libged/mirror.c
    brlcad/trunk/src/libged/model2grid_lu.c
    brlcad/trunk/src/libged/model2view.c
    brlcad/trunk/src/libged/model2view_lu.c
    brlcad/trunk/src/libged/move.c
    brlcad/trunk/src/libged/move_all.c
    brlcad/trunk/src/libged/move_arb_edge.c
    brlcad/trunk/src/libged/move_arb_face.c
    brlcad/trunk/src/libged/mrot.c
    brlcad/trunk/src/libged/nirt.c
    brlcad/trunk/src/libged/nmg.c
    brlcad/trunk/src/libged/nmg_cmface.c
    brlcad/trunk/src/libged/nmg_collapse.c
    brlcad/trunk/src/libged/nmg_fix_normals.c
    brlcad/trunk/src/libged/nmg_kill_f.c
    brlcad/trunk/src/libged/nmg_kill_v.c
    brlcad/trunk/src/libged/nmg_make_v.c
    brlcad/trunk/src/libged/nmg_mm.c
    brlcad/trunk/src/libged/nmg_move_v.c
    brlcad/trunk/src/libged/nmg_simplify.c
    brlcad/trunk/src/libged/ocenter.c
    brlcad/trunk/src/libged/open.c
    brlcad/trunk/src/libged/orient.c
    brlcad/trunk/src/libged/orotate.c
    brlcad/trunk/src/libged/oscale.c
    brlcad/trunk/src/libged/otranslate.c
    brlcad/trunk/src/libged/overlay.c
    brlcad/trunk/src/libged/path.c
    brlcad/trunk/src/libged/pathlist.c
    brlcad/trunk/src/libged/pathsum.c
    brlcad/trunk/src/libged/perspective.c
    brlcad/trunk/src/libged/pix2fb.c
    brlcad/trunk/src/libged/plot.c
    brlcad/trunk/src/libged/pmat.c
    brlcad/trunk/src/libged/pmodel2view.c
    brlcad/trunk/src/libged/png.c
    brlcad/trunk/src/libged/png2fb.c
    brlcad/trunk/src/libged/pnts.cpp
    brlcad/trunk/src/libged/polyclip.cpp
    brlcad/trunk/src/libged/prcolor.c
    brlcad/trunk/src/libged/prefix.c
    brlcad/trunk/src/libged/preview.c
    brlcad/trunk/src/libged/process.c
    brlcad/trunk/src/libged/protate.c
    brlcad/trunk/src/libged/ps.c
    brlcad/trunk/src/libged/pscale.c
    brlcad/trunk/src/libged/pset.c
    brlcad/trunk/src/libged/ptranslate.c
    brlcad/trunk/src/libged/pull.c
    brlcad/trunk/src/libged/push.c
    brlcad/trunk/src/libged/put.c
    brlcad/trunk/src/libged/put_comb.c
    brlcad/trunk/src/libged/putmat.c
    brlcad/trunk/src/libged/qray.c
    brlcad/trunk/src/libged/qvrot.c
    brlcad/trunk/src/libged/rcodes.c
    brlcad/trunk/src/libged/rect.c
    brlcad/trunk/src/libged/red.c
    brlcad/trunk/src/libged/regdef.c
    brlcad/trunk/src/libged/region.c
    brlcad/trunk/src/libged/remove.c
    brlcad/trunk/src/libged/rfarb.c
    brlcad/trunk/src/libged/rmap.c
    brlcad/trunk/src/libged/rmat.c
    brlcad/trunk/src/libged/rmater.c
    brlcad/trunk/src/libged/rot.c
    brlcad/trunk/src/libged/rot_point.c
    brlcad/trunk/src/libged/rotate_about.c
    brlcad/trunk/src/libged/rotate_arb_face.c
    brlcad/trunk/src/libged/rotate_eto.c
    brlcad/trunk/src/libged/rotate_extrude.c
    brlcad/trunk/src/libged/rotate_hyp.c
    brlcad/trunk/src/libged/rotate_tgc.c
    brlcad/trunk/src/libged/rrt.c
    brlcad/trunk/src/libged/rt.c
    brlcad/trunk/src/libged/rtabort.c
    brlcad/trunk/src/libged/rtcheck.c
    brlcad/trunk/src/libged/rtwizard.c
    brlcad/trunk/src/libged/savekey.c
    brlcad/trunk/src/libged/saveview.c
    brlcad/trunk/src/libged/scale.c
    brlcad/trunk/src/libged/scale_ehy.c
    brlcad/trunk/src/libged/scale_ell.c
    brlcad/trunk/src/libged/scale_epa.c
    brlcad/trunk/src/libged/scale_eto.c
    brlcad/trunk/src/libged/scale_extrude.c
    brlcad/trunk/src/libged/scale_hyp.c
    brlcad/trunk/src/libged/scale_part.c
    brlcad/trunk/src/libged/scale_rhc.c
    brlcad/trunk/src/libged/scale_rpc.c
    brlcad/trunk/src/libged/scale_superell.c
    brlcad/trunk/src/libged/scale_tgc.c
    brlcad/trunk/src/libged/scale_tor.c
    brlcad/trunk/src/libged/screengrab.c
    brlcad/trunk/src/libged/search.c
    brlcad/trunk/src/libged/select.c
    brlcad/trunk/src/libged/set_output_script.c
    brlcad/trunk/src/libged/set_transparency.c
    brlcad/trunk/src/libged/set_uplotOutputMode.c
    brlcad/trunk/src/libged/setview.c
    brlcad/trunk/src/libged/shaded_mode.c
    brlcad/trunk/src/libged/shader.c
    brlcad/trunk/src/libged/shells.c
    brlcad/trunk/src/libged/showmats.c
    brlcad/trunk/src/libged/slew.c
    brlcad/trunk/src/libged/solid_report.c
    brlcad/trunk/src/libged/solids_on_ray.c
    brlcad/trunk/src/libged/sphgroup.c
    brlcad/trunk/src/libged/summary.c
    brlcad/trunk/src/libged/sync.c
    brlcad/trunk/src/libged/tables.c
    brlcad/trunk/src/libged/tire.c
    brlcad/trunk/src/libged/title.c
    brlcad/trunk/src/libged/tol.c
    brlcad/trunk/src/libged/tops.c
    brlcad/trunk/src/libged/tra.c
    brlcad/trunk/src/libged/trace.c
    brlcad/trunk/src/libged/track.c
    brlcad/trunk/src/libged/translate_extrude.c
    brlcad/trunk/src/libged/translate_tgc.c
    brlcad/trunk/src/libged/tree.c
    brlcad/trunk/src/libged/typein.c
    brlcad/trunk/src/libged/unhide.c
    brlcad/trunk/src/libged/units.c
    brlcad/trunk/src/libged/v2m_point.c
    brlcad/trunk/src/libged/vdraw.c
    brlcad/trunk/src/libged/version.c
    brlcad/trunk/src/libged/view2grid_lu.c
    brlcad/trunk/src/libged/view2model.c
    brlcad/trunk/src/libged/view2model_lu.c
    brlcad/trunk/src/libged/view2model_vec.c
    brlcad/trunk/src/libged/viewdir.c
    brlcad/trunk/src/libged/voxelize.c
    brlcad/trunk/src/libged/vrot.c
    brlcad/trunk/src/libged/vutil.c
    brlcad/trunk/src/libged/wcodes.c
    brlcad/trunk/src/libged/wdb_importFg4Section.c
    brlcad/trunk/src/libged/whatid.c
    brlcad/trunk/src/libged/which.cpp
    brlcad/trunk/src/libged/which_shader.c
    brlcad/trunk/src/libged/who.c
    brlcad/trunk/src/libged/wmater.c
    brlcad/trunk/src/libged/xpush.c
    brlcad/trunk/src/libged/zap.c

Property Changed:
----------------
    brlcad/trunk/
    brlcad/trunk/doc/
    brlcad/trunk/regress/
    brlcad/trunk/src/libged/polyclip/polyclip.cpp

Index: brlcad/trunk
===================================================================
--- brlcad/trunk        2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk        2020-07-17 17:59:33 UTC (rev 76366)

Property changes on: brlcad/trunk
___________________________________________________________________
Modified: svn:mergeinfo
## -1,5 +1,5 ##
 
/brlcad/branches/RELEASE:57439,57447-57860,69901-69913,70323-70333,71915-72242,72525-72534,72826-72858,74376-74454,74964-75140,75372-75685
-/brlcad/branches/bioh:75720-75736,75740-75742,75860-75891,75894-75986,76088-76153
+/brlcad/branches/bioh:75720-75736,75740-75742,75860-75891,75894-75986,76088-76153,76355-76365
 
/brlcad/branches/brep-debug:61373,61375,61404,61427,61429,61470,61544,61567,61576,61999,62018,62094,62098,62107,62117,62406,62416-62519,62521-62584,62593-62614,62623,62658,62660-62674,62681-62771,62876,62901,62907,62910,62925,62928,62931-63025,63027,63051,63054-63056,63069,63071-63073,63122,63160-63161,63165,63171,63184,63187,63189-63190,63193-63196,63200,63202,63205-63210,63213,63219-63225,63232-63233,63236,63238,63338,63350-63353,63481,63618,63669,64173-64174,64176-64177,64229-64233,64242,64244,64360-64362,65165,65245,65249,65334,65833-65834,66370-66375,66931-66932,66934,67012-67015,67018-67019,67021-67022,67406,67740,67746-67748,67950,67952,68144-68145,68636,68640-68643,68820,69081,69109,69168,69206,69289,69346,69460-69461,69582-69583,69719-69721,69857-69859,69927,69995-69996,70148-70149,70347-70349,70377,70526-70527,71006-71007,71009-71022,71046-71047,71049,71096-71100
 /brlcad/branches/bullet:62518
 /brlcad/branches/cmake:43219
Index: brlcad/trunk/doc
===================================================================
--- brlcad/trunk/doc    2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/doc    2020-07-17 17:59:33 UTC (rev 76366)

Property changes on: brlcad/trunk/doc
___________________________________________________________________
Modified: svn:mergeinfo
## -1,5 +1,5 ##
 
/brlcad/branches/RELEASE/doc:57439,57447-57860,69901-69913,71917-72242,72525-72534,72826-72858,74376-74454,74964-75140
-/brlcad/branches/bioh/doc:75894-75986,76088-76153
+/brlcad/branches/bioh/doc:75894-75986,76088-76153,76355-76365
 
/brlcad/branches/brep-debug/doc:61373,61375,61404,61427,61429,61470,61544,61567,61576,61999,62018,62094,62098,62107,62117,62406,62416-62519,62521-62584,62593-62614,62623,62658,62660-62674,62681-62771,62876,62901,62907,62910,62925,62928,62931-63025,63027,63051,63054-63056,63069,63071-63073,63122,63160-63161,63165,63171,63184,63187,63189-63190,63193-63196,63200,63202,63205-63210,63213,63219-63225,63232-63233,63236,63238,63338,63350-63353,63481,63618,63669,64173-64174,64176-64177,64229-64233,64242,64244,64360-64362,65165,65245,65249,65334,65833-65834,66370-66375,66931-66932,66934,67012-67015,67018-67019,67021-67022,67406,67740,67746-67748,67950,67952,68144-68145,68636,68640-68643,68820,69081,69109,69206,69289,69346,69460-69461,69582-69583,69719-69721,69857-69859,69927
 /brlcad/branches/bullet/doc:62518
 /brlcad/branches/cmake/doc:43219
Modified: brlcad/trunk/doc/legal/embedded/CMakeLists.txt
===================================================================
--- brlcad/trunk/doc/legal/embedded/CMakeLists.txt      2020-07-17 17:40:32 UTC 
(rev 76365)
+++ brlcad/trunk/doc/legal/embedded/CMakeLists.txt      2020-07-17 17:59:33 UTC 
(rev 76366)
@@ -21,6 +21,7 @@
   gecode.txt
   gdal_gcv_plugin1.txt
   gdal_gcv_plugin2.txt
+  glm.txt
   halfedge.txt
   humanize.txt
   hv3.txt

Copied: brlcad/trunk/doc/legal/embedded/glm.txt (from rev 76365, 
brlcad/branches/bioh/doc/legal/embedded/glm.txt)
===================================================================
--- brlcad/trunk/doc/legal/embedded/glm.txt                             (rev 0)
+++ brlcad/trunk/doc/legal/embedded/glm.txt     2020-07-17 17:59:33 UTC (rev 
76366)
@@ -0,0 +1,314 @@
+================================================================================
+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
+

Index: brlcad/trunk/regress
===================================================================
--- brlcad/trunk/regress        2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/regress        2020-07-17 17:59:33 UTC (rev 76366)

Property changes on: brlcad/trunk/regress
___________________________________________________________________
Modified: svn:mergeinfo
## -1,5 +1,5 ##
 
/brlcad/branches/RELEASE/regress:57439,57447-57860,69901-69913,71917-72242,72525-72534,72826-72858,74376-74454,75372-75681
-/brlcad/branches/bioh/regress:75860-75891,75894-75986,76088-76153
+/brlcad/branches/bioh/regress:75860-75891,75894-75986,76088-76153,76355-76365
 
/brlcad/branches/brep-debug/regress:61373,61375,61404,61427,61429,61470,61544,61567,61576,61999,62018,62094,62098,62107,62117,62406,62416-62519,62521-62584,62593-62614,62623,62658,62660-62674,62681-62771,62876,62901,62907,62910,62925,62928,62931-63025,63027,63051,63054-63056,63069,63071-63073,63122,63160-63161,63165,63171,63184,63187,63189-63190,63193-63196,63200,63202,63205-63210,63213,63219-63225,63232-63233,63236,63238,63338,63350-63353,63481,63618,63669,64173-64174,64176-64177,64229-64233,64242,64244,64360-64362,65165,65245,65249,65334,65833-65834,66370-66375,66931-66932,66934,67012-67015,67018-67019,67021-67022,67406,67740,67746-67748,67950,67952,68144-68145,68636,68640-68643,68820,69081,69109,69206,69289,69346,69460-69461,69582-69583,69719-69721,69857-69859,69927
 /brlcad/branches/bullet/regress:62518
 /brlcad/branches/cmake/regress:43219
Modified: brlcad/trunk/regress/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/CMakeLists.txt 2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/regress/CMakeLists.txt 2020-07-17 17:59:33 UTC (rev 76366)
@@ -125,6 +125,7 @@
 
 CMAKEFILES(
   analyze.asc
+  asc.sh
   asc/v4.g
   asc2dsp.sh
   bots.sh

Deleted: brlcad/trunk/src/libged/3ptarb.c
===================================================================
--- brlcad/trunk/src/libged/3ptarb.c    2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/src/libged/3ptarb.c    2020-07-17 17:59:33 UTC (rev 76366)
@@ -1,267 +0,0 @@
-/*                         3 P T A R B . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/3ptarb.c
- *
- * The 3ptarb command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "rt/geom.h"
-#include "ged/objects.h"
-
-#include "./ged_private.h"
-
-
-static char *p_arb3pt[] = {
-    "Enter X, Y, Z for point 1: ",
-    "Enter Y, Z: ",
-    "Enter Z: ",
-    "Enter X, Y, Z for point 2: ",
-    "Enter Y, Z: ",
-    "Enter Z: ",
-    "Enter X, Y, Z for point 3: ",
-    "Enter Y, Z: ",
-    "Enter Z: "
-};
-
-
-int
-ged_3ptarb(struct ged *gedp, int argc, const char *argv[])
-{
-    int i, solve;
-    vect_t vec1;
-    vect_t vec2;
-    fastf_t pt4[2], length, thick;
-    vect_t norm;
-    fastf_t ndotv;
-    char **prompts;
-    struct directory *dp;
-    struct rt_db_internal internal;
-    struct rt_arb_internal *aip;
-    static const char *usage = "name x1 y1 z1 x2 y2 z2 x3 y3 z3 coord c1 c2 
th";
-
-    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_READ_ONLY(gedp, GED_ERROR);
-    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
-    /* initialize result */
-    bu_vls_trunc(gedp->ged_result_str, 0);
-
-    if (argc > 15) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_ERROR;
-    }
-
-    if (argc < 2) {
-       bu_vls_printf(gedp->ged_result_str, "Enter name for this arb: ");
-       return GED_MORE;
-    }
-
-    GED_CHECK_EXISTS(gedp, argv[1], LOOKUP_QUIET, GED_ERROR);
-
-    /* read the three points */
-    prompts = &p_arb3pt[0];
-    if (argc < 11) {
-       bu_vls_printf(gedp->ged_result_str, "%s", prompts[argc-2]);
-       return GED_MORE;
-    }
-
-    /* preliminary calculations to check input so far */
-    for (i = 0; i < 3; i++) {
-       vec1[i] = atof(argv[i+2]) - atof(argv[i+5]);
-       vec2[i] = atof(argv[i+2]) - atof(argv[i+8]);
-    }
-    VCROSS(norm, vec1, vec2);
-    length = MAGNITUDE(norm);
-    if (ZERO(length)) {
-       bu_vls_printf(gedp->ged_result_str, "%s: points are collinear\n", 
argv[0]);
-       return GED_ERROR;
-    }
-    VSCALE(norm, norm, 1.0/length);
-
-    if (argc < 12) {
-       bu_vls_printf(gedp->ged_result_str, "Enter coordinate to solve for (x, 
y, or z): ");
-       return GED_MORE;
-    }
-
-    switch (argv[11][0]) {
-       case 'x':
-           if (ZERO(norm[0])) {
-               bu_vls_printf(gedp->ged_result_str, "%s: X not unique in this 
face\n", argv[0]);
-               return GED_ERROR;
-           }
-           solve = X;
-
-           if (argc < 13) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the Y, Z coordinate 
values: ");
-               return GED_MORE;
-           }
-           if (argc < 14) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate 
value: ");
-               return GED_MORE;
-           }
-
-           pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           break;
-
-       case 'y':
-           if (ZERO(norm[1])) {
-               bu_vls_printf(gedp->ged_result_str, "%s: Y not unique in this 
face\n", argv[0]);
-               return GED_ERROR;
-           }
-           solve = Y;
-
-           if (argc < 13) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the X, Z coordinate 
values: ");
-               return GED_MORE;
-           }
-           if (argc < 14) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate 
value: ");
-               return GED_MORE;
-           }
-
-           pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           break;
-
-       case 'z':
-           if (ZERO(norm[2])) {
-               bu_vls_printf(gedp->ged_result_str, "%s: Z not unique in this 
face\n", argv[0]);
-               return GED_ERROR;
-           }
-           solve = Z;
-
-           if (argc < 13) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the X, Y coordinate 
values: ");
-               return GED_MORE;
-           }
-           if (argc < 14) {
-               bu_vls_printf(gedp->ged_result_str, "Enter the Y coordinate 
value: ");
-               return GED_MORE;
-           }
-
-           pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
-           break;
-
-       default:
-           bu_vls_printf(gedp->ged_result_str, "%s: coordinate must be x, y, 
or z\n", argv[0]);
-           return GED_ERROR;
-    }
-
-    if (argc < 15) {
-       bu_vls_printf(gedp->ged_result_str, "Enter thickness for this arb: ");
-       return GED_MORE;
-    }
-
-    thick = atof(argv[14]);
-    if (ZERO(thick)) {
-       bu_vls_printf(gedp->ged_result_str, "%s: thickness = 0.0\n", argv[0]);
-       return GED_ERROR;
-    }
-
-    RT_DB_INTERNAL_INIT(&internal);
-    internal.idb_major_type = DB5_MAJORTYPE_BRLCAD;
-    internal.idb_type = ID_ARB8;
-    internal.idb_meth = &OBJ[ID_ARB8];
-    BU_ALLOC(internal.idb_ptr, struct rt_arb_internal);
-    aip = (struct rt_arb_internal *)internal.idb_ptr;
-    aip->magic = RT_ARB_INTERNAL_MAGIC;
-
-    for (i = 0; i < 8; i++) {
-       VSET(aip->pt[i], 0.0, 0.0, 0.0);
-    }
-
-    for (i = 0; i < 3; i++) {
-       /* the three given vertices */
-       VSET(aip->pt[i], 
atof(argv[i*3+2])*gedp->ged_wdbp->dbip->dbi_local2base, 
atof(argv[i*3+3])*gedp->ged_wdbp->dbip->dbi_local2base, 
atof(argv[i*3+4])*gedp->ged_wdbp->dbip->dbi_local2base);
-    }
-
-    thick *= gedp->ged_wdbp->dbip->dbi_local2base;
-
-    ndotv = VDOT(aip->pt[0], norm);
-
-    switch (solve) {
-
-       case X:
-           /* solve for x-coord of 4th point */
-           aip->pt[3][Y] = pt4[0]; /* y-coord */
-           aip->pt[3][Z] = pt4[1]; /* z-coord */
-           aip->pt[3][X] =  (ndotv
-                             - norm[Y] * aip->pt[3][Y]
-                             - norm[Z] * aip->pt[3][Z])
-               / norm[X];      /* x-coord */
-           break;
-
-       case Y:
-           /* solve for y-coord of 4th point */
-           aip->pt[3][X] = pt4[0]; /* x-coord */
-           aip->pt[3][Z] = pt4[1]; /* z-coord */
-           aip->pt[3][Y] =  (ndotv
-                             - norm[X] * aip->pt[3][X]
-                             - norm[Z] * aip->pt[3][Z])
-               / norm[Y];      /* y-coord */
-           break;
-
-       case Z:
-           /* solve for z-coord of 4th point */
-           aip->pt[3][X] = pt4[0]; /* x-coord */
-           aip->pt[3][Y] = pt4[1]; /* y-coord */
-           aip->pt[3][Z] =  (ndotv
-                             - norm[X] * aip->pt[3][X]
-                             - norm[Y] * aip->pt[3][Y])
-               / norm[Z];      /* z-coord */
-           break;
-
-       default:
-           bu_free((void *)internal.idb_ptr, "rt_arb_internal");
-           bu_vls_printf(gedp->ged_result_str, "%s: bad coordinate to solve 
for\n", argv[0]);
-           return GED_ERROR;
-    }
-
-    /* calculate the remaining 4 vertices */
-    for (i = 0; i < 4; i++) {
-       VJOIN1(aip->pt[i+4], aip->pt[i], thick, norm);
-    }
-
-    GED_DB_DIRADD(gedp, dp, argv[1], RT_DIR_PHONY_ADDR, 0, RT_DIR_SOLID, (void 
*)&internal.idb_type, GED_ERROR);
-
-    GED_DB_PUT_INTERNAL(gedp, dp, &internal, &rt_uniresource, GED_ERROR);
-
-    return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */

Modified: brlcad/trunk/src/libged/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/libged/CMakeLists.txt      2020-07-17 17:40:32 UTC (rev 
76365)
+++ brlcad/trunk/src/libged/CMakeLists.txt      2020-07-17 17:59:33 UTC (rev 
76366)
@@ -23,6 +23,7 @@
   set(LIBGED_CMD_INCLUDE_DIRS ${LIBGED_CMD_INCLUDE_DIRS} ${AVOID_INCLUDE_DIR})
 endif(ADAPTAGRAMS_FOUND)
 
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/debug")
 set(DEBUG_CMD_CPP "${CMAKE_CURRENT_BINARY_DIR}/debug_cmd.cpp")
 
 add_custom_command(OUTPUT ${DEBUG_CMD_CPP}
@@ -30,9 +31,10 @@
   DEPENDS debug2c
   COMMENT "[DEBUG2C] Scanning for debugging variables"
   )
-set_source_files_properties(debug.cpp PROPERTIES OBJECT_DEPENDS 
${DEBUG_CMD_CPP})
 DISTCLEAN(${DEBUG_CMD_CPP})
+set_source_files_properties(debug/debug.cpp PROPERTIES OBJECT_DEPENDS 
${DEBUG_CMD_CPP})
 
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/env")
 set(ENV_CMD_C "${CMAKE_CURRENT_BINARY_DIR}/env_cmd.c")
 
 add_custom_command(OUTPUT ${ENV_CMD_C}
@@ -40,43 +42,43 @@
   DEPENDS env2c
   COMMENT "[ENV2C] Scanning for environment variable usage"
   )
-set_source_files_properties(env.c PROPERTIES OBJECT_DEPENDS ${ENV_CMD_C})
 DISTCLEAN(${ENV_CMD_C})
+set_source_files_properties(env/env.c PROPERTIES OBJECT_DEPENDS ${ENV_CMD_C})
 
 set(LIBGED_SOURCES
   ${LIBGED_SOURCES}
-  3ptarb.c
-  adc.c
-  adjust.c
-  ae2dir.c
-  analyze.c
-  annotate.c
-  arb.c
-  arced.c
-  arot.c
-  attr.cpp
-  autoview.c
-  bb.c
-  bev.c
-  bigE.c
-  blast.c
-  bo.c
+  3ptarb/3ptarb.c
+  adc/adc.c
+  adjust/adjust.c
+  ae2dir/ae2dir.c
+  analyze/analyze.c
+  annotate/annotate.c
+  arb/arb.c
+  arced/arced.c
+  arot/arot.c
+  attr/attr.cpp
+  autoview/autoview.c
+  bb/bb.c
+  bev/bev.c
+  bigE/bigE.c
+  blast/blast.c
+  bo/bo.c
   bot/bot.cpp
   bot/check.cpp
   bot/extrude.cpp
   bot/remesh.cpp
-  bot_condense.c
-  bot_decimate.c
-  bot_dump.c
-  bot_face_fuse.c
-  bot_face_sort.c
-  bot_flip.c
-  bot_fuse.c
-  bot_merge.c
-  bot_smooth.c
-  bot_split.c
-  bot_sync.c
-  bot_vertex_fuse.c
+  bot_condense/bot_condense.c
+  bot_decimate/bot_decimate.c
+  bot_dump/bot_dump.c
+  bot_face_fuse/bot_face_fuse.c
+  bot_face_sort/bot_face_sort.c
+  bot_flip/bot_flip.c
+  bot_fuse/bot_fuse.c
+  bot_merge/bot_merge.c
+  bot_smooth/bot_smooth.c
+  bot_split/bot_split.c
+  bot_sync/bot_sync.c
+  bot_vertex_fuse/bot_vertex_fuse.c
   brep/brep.cpp
   brep/conversion.cpp
   brep/csg.cpp
@@ -86,8 +88,8 @@
   brep/plot.cpp
   brep/tikz.cpp
   brep/valid.cpp
-  cat.c
-  cc.c
+  cat/cat.c
+  cc/cc.c
   check/check.c
   check/check_adj_air.c
   check/check_centroid.c
@@ -99,217 +101,217 @@
   check/check_surf_area.c
   check/check_unconf_air.c
   check/check_volume.c
-  clone.c
-  coil.c
-  color.c
-  columns.c
-  comb.c
-  comb_color.c
-  comb_std.c
-  combmem.c
-  concat.cpp
   constraint/constraint.c
-  copy.c
-  copyeval.c
-  copymat.c
-  cpi.c
-  dag.cpp
-  dbip.c
-  debug.cpp
-  debugbu.c
-  debugdir.c
-  debuglib.c
-  debugnmg.c
-  decompose.c
-  delay.c
-  dir2ae.c
-  display_list.c
-  draw.c
-  draw_calc.cpp
-  dsp.c
-  dump.c
-  dup.c
-  eac.c
-  echo.c
-  edarb.c
-  edbot.c
-  edcodes.c
-  edcomb.c
-  edit.c
-  edit_metaball.c
-  editit.c
-  edmater.c
-  edpipe.c
-  env.c
-  erase.c
-  exists.c
-  expand.c
-  eye_pos.c
-  facedef.c
-  facetize.cpp
-  facetize_log.c
-  fb2pix.c
-  fbclear.c
-  find.c
-  form.c
-  fracture.c
-  gdiff.c
-  gdiff.c
+  clone/clone.c
+  coil/coil.c
+  color/color.c
+  columns/columns.c
+  comb/comb.c
+  comb_color/comb_color.c
+  comb_std/comb_std.c
+  combmem/combmem.c
+  concat/concat.cpp
+  copy/copy.c
+  copyeval/copyeval.c
+  copymat/copymat.c
+  cpi/cpi.c
+  dag/dag.cpp
+  dbip/dbip.c
+  debug/debug.cpp
+  debugbu/debugbu.c
+  debugdir/debugdir.c
+  debuglib/debuglib.c
+  debugnmg/debugnmg.c
+  decompose/decompose.c
+  delay/delay.c
+  dir2ae/dir2ae.c
+  display_list/display_list.c
+  draw/draw.c
+  draw_calc/draw_calc.cpp
+  dsp/dsp.c
+  dump/dump.c
+  dup/dup.c
+  eac/eac.c
+  echo/echo.c
+  edarb/edarb.c
+  edbot/edbot.c
+  edcodes/edcodes.c
+  edcomb/edcomb.c
+  edit/edit.c
+  edit_metaball/edit_metaball.c
+  editit/editit.c
+  edmater/edmater.c
+  edpipe/edpipe.c
+  env/env.c
+  erase/erase.c
+  exists/exists.c
+  expand/expand.c
+  eye_pos/eye_pos.c
+  facedef/facedef.c
+  facetize/facetize.cpp
+  facetize_log/facetize_log.c
+  fb2pix/fb2pix.c
+  fbclear/fbclear.c
+  find/find.c
+  form/form.c
+  fracture/fracture.c
+  gdiff/gdiff.c
+  gdiff/gdiff.c
   ged.c
-  ged_util.c
-  get.c
-  get_autoview.c
-  get_comb.c
-  get_eyemodel.c
-  get_obj_bounds.c
-  get_solid_kp.c
-  get_type.c
-  glob.c
-  gqa.c
-  grid.c
-  grid2model_lu.c
-  grid2view_lu.c
-  group.c
-  heal.c
+  ged_util/ged_util.c
+  get/get.c
+  get_autoview/get_autoview.c
+  get_comb/get_comb.c
+  get_eyemodel/get_eyemodel.c
+  get_obj_bounds/get_obj_bounds.c
+  get_solid_kp/get_solid_kp.c
+  get_type/get_type.c
+  glob/glob.c
+  gqa/gqa.c
+  grid/grid.c
+  grid2model_lu/grid2model_lu.c
+  grid2view_lu/grid2view_lu.c
+  group/group.c
+  heal/heal.c
   help/help.cpp
-  hide.c
-  how.c
-  human.c
-  illum.c
-  importFg4Section.c
-  inside.c
-  instance.c
-  isize.c
-  item.c
-  joint.c
-  joint2.c
-  keep.c
-  keypoint.c
-  kill.c
-  killall.c
-  killrefs.c
-  killtree.c
-  label.c
-  lc.c
-  libfuncs.c
-  lint.cpp
-  list.c
-  loadview.c
-  lod.c
-  log.c
-  lookat.c
-  ls.c
-  lt.c
-  m2v_point.c
-  make.c
-  make_name.c
-  match.c
-  mater.cpp
-  mirror.c
-  model2grid_lu.c
-  model2view.c
-  model2view_lu.c
-  move.c
-  move_all.c
-  move_arb_edge.c
-  move_arb_face.c
-  mrot.c
-  nirt.c
-  nmg.c
-  nmg_cmface.c
-  nmg_collapse.c
-  nmg_fix_normals.c
-  nmg_kill_f.c
-  nmg_kill_v.c
-  nmg_make_v.c
-  nmg_mm.c
-  nmg_move_v.c
-  nmg_simplify.c
-  ocenter.c
-  open.c
-  orient.c
-  orotate.c
-  oscale.c
-  otranslate.c
-  overlay.c
-  path.c
-  pathlist.c
-  pathsum.c
-  perspective.c
-  pix2fb.c
-  plot.c
-  pmat.c
-  pmodel2view.c
-  png.c
-  png2fb.c
-  pnts.cpp
+  hide/hide.c
+  how/how.c
+  human/human.c
+  illum/illum.c
+  importFg4Section/importFg4Section.c
+  inside/inside.c
+  instance/instance.c
+  isize/isize.c
+  item/item.c
+  joint/joint.c
+  joint2/joint2.c
+  keep/keep.c
+  keypoint/keypoint.c
+  kill/kill.c
+  killall/killall.c
+  killrefs/killrefs.c
+  killtree/killtree.c
+  label/label.c
+  lc/lc.c
+  libfuncs/libfuncs.c
+  lint/lint.cpp
+  list/list.c
+  loadview/loadview.c
+  lod/lod.c
+  log/log.c
+  lookat/lookat.c
+  ls/ls.c
+  lt/lt.c
+  m2v_point/m2v_point.c
+  make/make.c
+  make_name/make_name.c
+  match/match.c
+  mater/mater.cpp
+  mirror/mirror.c
+  model2grid_lu/model2grid_lu.c
+  model2view/model2view.c
+  model2view_lu/model2view_lu.c
+  move/move.c
+  move_all/move_all.c
+  move_arb_edge/move_arb_edge.c
+  move_arb_face/move_arb_face.c
+  mrot/mrot.c
+  nirt/nirt.c
+  nmg/nmg.c
+  nmg_cmface/nmg_cmface.c
+  nmg_collapse/nmg_collapse.c
+  nmg_fix_normals/nmg_fix_normals.c
+  nmg_kill_f/nmg_kill_f.c
+  nmg_kill_v/nmg_kill_v.c
+  nmg_make_v/nmg_make_v.c
+  nmg_mm/nmg_mm.c
+  nmg_move_v/nmg_move_v.c
+  nmg_simplify/nmg_simplify.c
+  ocenter/ocenter.c
+  open/open.c
+  orient/orient.c
+  orotate/orotate.c
+  oscale/oscale.c
+  otranslate/otranslate.c
+  overlay/overlay.c
+  path/path.c
+  pathlist/pathlist.c
+  pathsum/pathsum.c
+  perspective/perspective.c
+  pix2fb/pix2fb.c
+  plot/plot.c
+  pmat/pmat.c
+  pmodel2view/pmodel2view.c
+  png/png.c
+  png2fb/png2fb.c
+  pnts/pnts.cpp
   pnts_util.c
-  polyclip.cpp
-  prcolor.c
-  prefix.c
-  preview.c
-  process.c
-  protate.c
-  ps.c
-  pscale.c
-  pset.c
-  ptranslate.c
-  pull.c
-  push.c
-  put.c
-  put_comb.c
-  putmat.c
-  qray.c
-  qvrot.c
-  rcodes.c
-  rect.c
-  red.c
-  regdef.c
-  region.c
-  remove.c
-  rfarb.c
-  rmap.c
-  rmat.c
-  rmater.c
-  rot.c
-  rot_point.c
-  rotate_about.c
-  rotate_arb_face.c
-  rotate_eto.c
-  rotate_extrude.c
-  rotate_hyp.c
-  rotate_tgc.c
-  rrt.c
-  rt.c
-  rtabort.c
-  rtcheck.c
-  rtwizard.c
-  savekey.c
-  saveview.c
-  scale.c
-  scale_ehy.c
-  scale_ell.c
-  scale_epa.c
-  scale_eto.c
-  scale_extrude.c
-  scale_hyp.c
-  scale_part.c
-  scale_rhc.c
-  scale_rpc.c
-  scale_superell.c
-  scale_tgc.c
-  scale_tor.c
-  screengrab.c
-  search.c
-  select.c
-  set_output_script.c
-  set_transparency.c
-  set_uplotOutputMode.c
-  setview.c
-  shaded_mode.c
-  shader.c
-  shells.c
-  showmats.c
+  polyclip/polyclip.cpp
+  prcolor/prcolor.c
+  prefix/prefix.c
+  preview/preview.c
+  process/process.c
+  protate/protate.c
+  ps/ps.c
+  pscale/pscale.c
+  pset/pset.c
+  ptranslate/ptranslate.c
+  pull/pull.c
+  push/push.c
+  put/put.c
+  put_comb/put_comb.c
+  putmat/putmat.c
+  qray/qray.c
+  qvrot/qvrot.c
+  rcodes/rcodes.c
+  rect/rect.c
+  red/red.c
+  regdef/regdef.c
+  region/region.c
+  remove/remove.c
+  rfarb/rfarb.c
+  rmap/rmap.c
+  rmat/rmat.c
+  rmater/rmater.c
+  rot/rot.c
+  rot_point/rot_point.c
+  rotate_about/rotate_about.c
+  rotate_arb_face/rotate_arb_face.c
+  rotate_eto/rotate_eto.c
+  rotate_extrude/rotate_extrude.c
+  rotate_hyp/rotate_hyp.c
+  rotate_tgc/rotate_tgc.c
+  rrt/rrt.c
+  rt/rt.c
+  rtabort/rtabort.c
+  rtcheck/rtcheck.c
+  rtwizard/rtwizard.c
+  savekey/savekey.c
+  saveview/saveview.c
+  scale/scale.c
+  scale_ehy/scale_ehy.c
+  scale_ell/scale_ell.c
+  scale_epa/scale_epa.c
+  scale_eto/scale_eto.c
+  scale_extrude/scale_extrude.c
+  scale_hyp/scale_hyp.c
+  scale_part/scale_part.c
+  scale_rhc/scale_rhc.c
+  scale_rpc/scale_rpc.c
+  scale_superell/scale_superell.c
+  scale_tgc/scale_tgc.c
+  scale_tor/scale_tor.c
+  screengrab/screengrab.c
+  search/search.c
+  select/select.c
+  set_output_script/set_output_script.c
+  set_transparency/set_transparency.c
+  set_uplotOutputMode/set_uplotOutputMode.c
+  setview/setview.c
+  shaded_mode/shaded_mode.c
+  shader/shader.c
+  shells/shells.c
+  showmats/showmats.c
   simulate/ged_command.cpp
   simulate/rt_collision_algorithm.cpp
   simulate/rt_collision_shape.cpp
@@ -318,29 +320,29 @@
   simulate/rt_motion_state.cpp
   simulate/simulation.cpp
   simulate/utility.cpp
-  slew.c
-  solid_report.c
-  solids_on_ray.c
-  sphgroup.c
-  summary.c
-  sync.c
-  tables.c
-  tire.c
-  title.c
-  tol.c
-  tops.c
-  tra.c
-  trace.c
-  track.c
-  translate_extrude.c
-  translate_tgc.c
-  tree.c
-  typein.c
-  unhide.c
-  units.c
-  v2m_point.c
-  vdraw.c
-  version.c
+  slew/slew.c
+  solid_report/solid_report.c
+  solids_on_ray/solids_on_ray.c
+  sphgroup/sphgroup.c
+  summary/summary.c
+  sync/sync.c
+  tables/tables.c
+  tire/tire.c
+  title/title.c
+  tol/tol.c
+  tops/tops.c
+  tra/tra.c
+  trace/trace.c
+  track/track.c
+  translate_extrude/translate_extrude.c
+  translate_tgc/translate_tgc.c
+  tree/tree.c
+  typein/typein.c
+  unhide/unhide.c
+  units/units.c
+  v2m_point/v2m_point.c
+  vdraw/vdraw.c
+  version/version.c
   view/aet.c
   view/center.cpp
   view/data_lines.c
@@ -350,23 +352,23 @@
   view/snap.c
   view/ypr.c
   view/view.c
-  view2grid_lu.c
-  view2model.c
-  view2model_lu.c
-  view2model_vec.c
-  viewdir.c
-  voxelize.c
-  vrot.c
-  vutil.c
-  wcodes.c
-  wdb_importFg4Section.c
-  whatid.c
-  which.cpp
-  which_shader.c
-  who.c
-  wmater.c
-  xpush.c
-  zap.c
+  view2grid_lu/view2grid_lu.c
+  view2model/view2model.c
+  view2model_lu/view2model_lu.c
+  view2model_vec/view2model_vec.c
+  viewdir/viewdir.c
+  voxelize/voxelize.c
+  vrot/vrot.c
+  vutil/vutil.c
+  wcodes/wcodes.c
+  wdb_importFg4Section/wdb_importFg4Section.c
+  whatid/whatid.c
+  which/which.cpp
+  which_shader/which_shader.c
+  who/who.c
+  wmater/wmater.c
+  xpush/xpush.c
+  zap/zap.c
   zoom/zoom.c
   ${LIBGED_CMD_SRCS}
   )
@@ -427,7 +429,7 @@
   brep/ged_brep.h
   check/check_private.h
   ged_private.h
-  joint.h
+  joint/joint.h
   osg.cpp
   pnts_util.h
   qray.h

Deleted: brlcad/trunk/src/libged/adc.c
===================================================================
--- brlcad/trunk/src/libged/adc.c       2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/src/libged/adc.c       2020-07-17 17:59:33 UTC (rev 76366)
@@ -1,710 +0,0 @@
-/*                           A D C . C
- * BRL-CAD
- *
- * Copyright (c) 1985-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/adc.c
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-
-
-#include "vmath.h"
-#include "ged.h"
-
-static void
-adc_vls_print(struct bview *gvp, fastf_t base2local, struct bu_vls *out_vp)
-{
-    bu_vls_printf(out_vp, "draw = %d\n", gvp->gv_adc.draw);
-    bu_vls_printf(out_vp, "a1 = %.15e\n", gvp->gv_adc.a1);
-    bu_vls_printf(out_vp, "a2 = %.15e\n", gvp->gv_adc.a2);
-    bu_vls_printf(out_vp, "dst = %.15e\n", gvp->gv_adc.dst * gvp->gv_scale * 
base2local);
-    bu_vls_printf(out_vp, "odst = %d\n", gvp->gv_adc.dv_dist);
-    bu_vls_printf(out_vp, "hv = %.15e %.15e\n",
-                 gvp->gv_adc.pos_grid[X] * gvp->gv_scale * base2local,
-                 gvp->gv_adc.pos_grid[Y] * gvp->gv_scale * base2local);
-    bu_vls_printf(out_vp, "xyz = %.15e %.15e %.15e\n",
-                 gvp->gv_adc.pos_model[X] * base2local,
-                 gvp->gv_adc.pos_model[Y] * base2local,
-                 gvp->gv_adc.pos_model[Z] * base2local);
-    bu_vls_printf(out_vp, "x = %d\n", gvp->gv_adc.dv_x);
-    bu_vls_printf(out_vp, "y = %d\n", gvp->gv_adc.dv_y);
-    bu_vls_printf(out_vp, "anchor_pos = %d\n", gvp->gv_adc.anchor_pos);
-    bu_vls_printf(out_vp, "anchor_a1 = %d\n", gvp->gv_adc.anchor_a1);
-    bu_vls_printf(out_vp, "anchor_a2 = %d\n", gvp->gv_adc.anchor_a2);
-    bu_vls_printf(out_vp, "anchor_dst = %d\n", gvp->gv_adc.anchor_dst);
-    bu_vls_printf(out_vp, "anchorpoint_a1 = %.15e %.15e %.15e\n",
-                 gvp->gv_adc.anchor_pt_a1[X] * base2local,
-                 gvp->gv_adc.anchor_pt_a1[Y] * base2local,
-                 gvp->gv_adc.anchor_pt_a1[Z] * base2local);
-    bu_vls_printf(out_vp, "anchorpoint_a2 = %.15e %.15e %.15e\n",
-                 gvp->gv_adc.anchor_pt_a2[X] * base2local,
-                 gvp->gv_adc.anchor_pt_a2[Y] * base2local,
-                 gvp->gv_adc.anchor_pt_a2[Z] * base2local);
-    bu_vls_printf(out_vp, "anchorpoint_dst = %.15e %.15e %.15e\n",
-                 gvp->gv_adc.anchor_pt_dst[X] * base2local,
-                 gvp->gv_adc.anchor_pt_dst[Y] * base2local,
-                 gvp->gv_adc.anchor_pt_dst[Z] * base2local);
-}
-
-
-HIDDEN void
-adc_usage(struct bu_vls *vp, const char *name)
-{
-    bu_vls_printf(vp, "Usage: %s \n", name);
-    bu_vls_printf(vp, "%s", " adc vname                           toggle 
display of angle/distance cursor\n");
-    bu_vls_printf(vp, "%s", " adc vname vars                      print a list 
of all variables (i.e. var = val)\n");
-    bu_vls_printf(vp, "%s", " adc vname draw [0|1]                set or get 
the draw parameter\n");
-    bu_vls_printf(vp, "%s", " adc vname a1   [#]                  set or get 
angle1\n");
-    bu_vls_printf(vp, "%s", " adc vname a2   [#]                  set or get 
angle2\n");
-    bu_vls_printf(vp, "%s", " adc vname dst  [#]                  set or get 
radius (distance) of tick\n");
-    bu_vls_printf(vp, "%s", " adc vname odst [#]                  set or get 
radius (distance) of tick (+-2047)\n");
-    bu_vls_printf(vp, "%s", " adc vname hv   [# #]                set or get 
position (grid coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname xyz  [# # #]              set or get 
position (model coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname x [#]                     set or get 
horizontal position (+-2047)\n");
-    bu_vls_printf(vp, "%s", " adc vname y [#]                     set or get 
vertical position (+-2047)\n");
-    bu_vls_printf(vp, "%s", " adc vname dh #                      add to 
horizontal position (grid coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname dv #                      add to 
vertical position (grid coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname dx #                      add to X 
position (model coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname dy #                      add to Y 
position (model coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname dz #                      add to Z 
position (model coordinates)\n");
-    bu_vls_printf(vp, "%s", " adc vname anchor_pos [0|1]          anchor ADC 
to current position in model coordinates\n");
-    bu_vls_printf(vp, "%s", " adc vname anchor_a1  [0|1]          anchor 
angle1 to go through anchorpoint_a1\n");
-    bu_vls_printf(vp, "%s", " adc vname anchor_a2  [0|1]          anchor 
angle2 to go through anchorpoint_a2\n");
-    bu_vls_printf(vp, "%s", " adc vname anchor_dst [0|1]          anchor tick 
distance to go through anchorpoint_dst\n");
-    bu_vls_printf(vp, "%s", " adc vname anchorpoint_a1  [# # #]   set or get 
anchor point for angle1\n");
-    bu_vls_printf(vp, "%s", " adc vname anchorpoint_a2  [# # #]   set or get 
anchor point for angle2\n");
-    bu_vls_printf(vp, "%s", " adc vname anchorpoint_dst [# # #]   set or get 
anchor point for tick distance\n");
-    bu_vls_printf(vp, "%s", " adc vname -i                        any of the 
above appropriate commands will interpret parameters as increments\n");
-    bu_vls_printf(vp, "%s", " adc vname reset                     reset 
angles, location, and tick distance\n");
-    bu_vls_printf(vp, "%s", " adc vname help                      prints this 
help message\n");
-}
-
-
-/*
- * Note - this needs to be rewritten to accept keyword/value pairs so
- * that multiple attributes can be set with a single command call.
- */
-int
-ged_adc(struct ged *gedp,
-       int argc,
-       const char *argv[])
-{
-    char *command;
-    char *parameter;
-    char **argp = (char **)argv;
-    double scanval;
-    point_t user_pt;           /* Value(s) provided by user */
-    point_t scaled_pos;
-    int incr_flag;
-    int i;
-
-    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_VIEW(gedp, GED_ERROR);
-    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
-    /* initialize result */
-    bu_vls_trunc(gedp->ged_result_str, 0);
-
-    if (argc < 2 || 6 < argc) {
-       adc_usage(gedp->ged_result_str, argv[0]);
-       return GED_ERROR;
-    }
-
-    command = (char *)argv[0];
-
-    if (BU_STR_EQUAL(argv[1], "-i")) {
-       if (argc < 5) {
-           bu_vls_printf(gedp->ged_result_str, "%s: -i option specified 
without an op-val pair", command);
-           return GED_ERROR;
-       }
-
-       incr_flag = 1;
-       parameter = (char *)argv[2];
-       argc -= 3;
-       argp += 3;
-    } else {
-       incr_flag = 0;
-       parameter = (char *)argv[1];
-       argc -= 2;
-       argp += 2;
-    }
-
-    for (i = 0; i < argc; ++i) {
-       if (sscanf(argp[i], "%lf", &scanval) != 1) {
-           adc_usage(gedp->ged_result_str, command);
-           return GED_ERROR;
-       }
-       user_pt[i] = scanval;
-    }
-
-    if (BU_STR_EQUAL(parameter, "draw")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.draw);
-           return GED_OK;
-       } else if (argc == 1) {
-           i = (int)user_pt[X];
-
-           if (i)
-               gedp->ged_gvp->gv_adc.draw = 1;
-           else
-               gedp->ged_gvp->gv_adc.draw = 0;
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s draw' command accepts 0 or 
1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "a1")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a1);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_a1) {
-               if (incr_flag)
-                   gedp->ged_gvp->gv_adc.a1 += user_pt[0];
-               else
-                   gedp->ged_gvp->gv_adc.a1 = user_pt[0];
-
-               gedp->ged_gvp->gv_adc.dv_a1 = (1.0 - (gedp->ged_gvp->gv_adc.a1 
/ 45.0)) * GED_MAX;
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s a1' command accepts only 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "a2")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a2);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_a2) {
-               if (incr_flag)
-                   gedp->ged_gvp->gv_adc.a2 += user_pt[0];
-               else
-                   gedp->ged_gvp->gv_adc.a2 = user_pt[0];
-
-               gedp->ged_gvp->gv_adc.dv_a2 = (1.0 - (gedp->ged_gvp->gv_adc.a2 
/ 45.0)) * GED_MAX;
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s a2' command accepts only 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dst")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.dst 
* gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_dst) {
-               if (incr_flag)
-                   gedp->ged_gvp->gv_adc.dst += user_pt[0] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-               else
-                   gedp->ged_gvp->gv_adc.dst = user_pt[0] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-
-               gedp->ged_gvp->gv_adc.dv_dist = (gedp->ged_gvp->gv_adc.dst / 
M_SQRT1_2 - 1.0) * GED_MAX;
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dst' command accepts 0 or 
1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "odst")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.dv_dist);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_dst) {
-               if (incr_flag)
-                   gedp->ged_gvp->gv_adc.dv_dist += user_pt[0];
-               else
-                   gedp->ged_gvp->gv_adc.dv_dist = user_pt[0];
-
-               gedp->ged_gvp->gv_adc.dst = (gedp->ged_gvp->gv_adc.dv_dist * 
INV_GED + 1.0) * M_SQRT1_2;
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s odst' command accepts 0 or 
1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dh")) {
-       if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[0] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-               adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_view2model, GED_MAX);
-               MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dh' command requires 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dv")) {
-       if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[0] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-               adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_view2model, GED_MAX);
-               MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dv' command requires 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "hv")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%g %g",
-                         gedp->ged_gvp->gv_adc.pos_grid[X] * 
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local,
-                         gedp->ged_gvp->gv_adc.pos_grid[Y] * 
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-           return GED_OK;
-       } else if (argc == 2) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               if (incr_flag) {
-                   gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[X] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-                   gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[Y] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-               } else {
-                   gedp->ged_gvp->gv_adc.pos_grid[X] = user_pt[X] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-                   gedp->ged_gvp->gv_adc.pos_grid[Y] = user_pt[Y] / 
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-               }
-
-               gedp->ged_gvp->gv_adc.pos_grid[Z] = 0.0;
-               adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_view2model, GED_MAX);
-               MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_model);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s hv' command requires 0 or 
2 arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dx")) {
-       if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               gedp->ged_gvp->gv_adc.pos_model[X] += user_pt[0] * 
gedp->ged_wdbp->dbip->dbi_local2base;
-               adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view, GED_MAX);
-               adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dx' command requires 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dy")) {
-       if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               gedp->ged_gvp->gv_adc.pos_model[Y] += user_pt[0] * 
gedp->ged_wdbp->dbip->dbi_local2base;
-               adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view, GED_MAX);
-               adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dy' command requires 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "dz")) {
-       if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               gedp->ged_gvp->gv_adc.pos_model[Z] += user_pt[0] * 
gedp->ged_wdbp->dbip->dbi_local2base;
-               adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view, GED_MAX);
-               adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s dz' command requires 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "xyz")) {
-       if (argc == 0) {
-           VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_wdbp->dbip->dbi_base2local);
-           bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-           return GED_OK;
-       } else if (argc == 3) {
-           VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
-           if (incr_flag) {
-               VADD2(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_adc.pos_model, user_pt);
-           } else {
-               VMOVE(gedp->ged_gvp->gv_adc.pos_model, user_pt);
-           }
-
-           adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view, GED_MAX);
-           adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s xyz' command requires 0 or 
3 arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "x")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.dv_x);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               if (incr_flag) {
-                   gedp->ged_gvp->gv_adc.dv_x += user_pt[0];
-               } else {
-                   gedp->ged_gvp->gv_adc.dv_x = user_pt[0];
-               }
-
-               gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x 
* INV_GED;
-               gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y 
* INV_GED;
-               adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-               MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s x' command requires 0 or 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "y")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.dv_y);
-           return GED_OK;
-       } else if (argc == 1) {
-           if (!gedp->ged_gvp->gv_adc.anchor_pos) {
-               if (incr_flag) {
-                   gedp->ged_gvp->gv_adc.dv_y += user_pt[0];
-               } else {
-                   gedp->ged_gvp->gv_adc.dv_y = user_pt[0];
-               }
-
-               gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x 
* INV_GED;
-               gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y 
* INV_GED;
-               adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc), 
gedp->ged_gvp->gv_model2view);
-               MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model, 
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
-           }
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s y' command requires 0 or 1 
argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchor_pos")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.anchor_pos);
-           return GED_OK;
-       } else if (argc == 1) {
-           i = (int)user_pt[X];
-
-           if (i < 0 || 2 < i) {
-               bu_vls_printf(gedp->ged_result_str, "The '%d anchor_pos' 
parameter accepts values of 0, 1, or 2.", i);
-               return GED_ERROR;
-           }
-
-           gedp->ged_gvp->gv_adc.anchor_pos = i;
-           ged_calc_adc_pos(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchor_pos' command 
accepts 0 or 1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchor_a1")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.anchor_a1);
-           return GED_OK;
-       } else if (argc == 1) {
-           i = (int)user_pt[X];
-
-           if (i)
-               gedp->ged_gvp->gv_adc.anchor_a1 = 1;
-           else
-               gedp->ged_gvp->gv_adc.anchor_a1 = 0;
-
-           ged_calc_adc_a1(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a1' command accepts 
0 or 1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchorpoint_a1")) {
-       if (argc == 0) {
-           VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a1, 
gedp->ged_wdbp->dbip->dbi_base2local);
-           bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
-           return GED_OK;
-       } else if (argc == 3) {
-           VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
-           if (incr_flag) {
-               VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a1, 
gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
-           } else {
-               VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
-           }
-
-           ged_calc_adc_a1(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a1' command 
accepts 0 or 3 arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchor_a2")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.anchor_a2);
-
-           return GED_OK;
-       } else if (argc == 1) {
-           i = (int)user_pt[X];
-
-           if (i)
-               gedp->ged_gvp->gv_adc.anchor_a2 = 1;
-           else
-               gedp->ged_gvp->gv_adc.anchor_a2 = 0;
-
-           ged_calc_adc_a2(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a2' command accepts 
0 or 1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchorpoint_a2")) {
-       if (argc == 0) {
-           VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a2, 
gedp->ged_wdbp->dbip->dbi_base2local);
-
-           bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
-           return GED_OK;
-       } else if (argc == 3) {
-           VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
-           if (incr_flag) {
-               VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a2, 
gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
-           } else {
-               VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
-           }
-
-           ged_calc_adc_a2(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a2' command 
accepts 0 or 3 arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchor_dst")) {
-       if (argc == 0) {
-           bu_vls_printf(gedp->ged_result_str, "%d", 
gedp->ged_gvp->gv_adc.anchor_dst);
-
-           return GED_OK;
-       } else if (argc == 1) {
-           i = (int)user_pt[X];
-
-           if (i) {
-               gedp->ged_gvp->gv_adc.anchor_dst = 1;
-           } else
-               gedp->ged_gvp->gv_adc.anchor_dst = 0;
-
-           ged_calc_adc_dst(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchor_dst' command 
accepts 0 or 1 argument\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "anchorpoint_dst")) {
-       if (argc == 0) {
-           VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_dst, 
gedp->ged_wdbp->dbip->dbi_base2local);
-           bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
-           return GED_OK;
-       } else if (argc == 3) {
-           VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
-           if (incr_flag) {
-               VADD2(gedp->ged_gvp->gv_adc.anchor_pt_dst, 
gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
-           } else {
-               VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
-           }
-
-           ged_calc_adc_dst(gedp->ged_gvp);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_dst' command 
accepts 0 or 3 arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "reset")) {
-       if (argc == 0) {
-           adc_reset(&(gedp->ged_gvp->gv_adc), gedp->ged_gvp->gv_view2model, 
gedp->ged_gvp->gv_model2view);
-
-           return GED_OK;
-       }
-
-       bu_vls_printf(gedp->ged_result_str, "The '%s reset' command accepts no 
arguments\n", command);
-       return GED_ERROR;
-    }
-
-    if (BU_STR_EQUAL(parameter, "vars")) {
-       adc_vls_print(gedp->ged_gvp, gedp->ged_wdbp->dbip->dbi_base2local, 
gedp->ged_result_str);
-       return GED_OK;
-    }
-
-    if (BU_STR_EQUAL(parameter, "help")) {
-       adc_usage(gedp->ged_result_str, command);
-       return GED_HELP;
-    }
-
-    bu_vls_printf(gedp->ged_result_str, "%s: unrecognized command '%s'\n", 
command, parameter);
-    adc_usage(gedp->ged_result_str, command);
-
-    return GED_ERROR;
-}
-
-
-void
-ged_calc_adc_pos(struct bview *gvp)
-{
-    if (gvp->gv_adc.anchor_pos == 1) {
-       adc_model_to_adc_view(&(gvp->gv_adc), gvp->gv_model2view, GED_MAX);
-       adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
-    } else if (gvp->gv_adc.anchor_pos == 2) {
-       adc_grid_to_adc_view(&(gvp->gv_adc), gvp->gv_view2model, GED_MAX);
-       MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model, 
gvp->gv_adc.pos_view);
-    } else {
-       adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
-       MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model, 
gvp->gv_adc.pos_view);
-    }
-}
-
-
-void
-ged_calc_adc_a1(struct bview *gvp)
-{
-    if (gvp->gv_adc.anchor_a1) {
-       fastf_t dx, dy;
-       point_t view_pt;
-
-       MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a1);
-       dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
-       dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
-
-       if (!ZERO(dx) || !ZERO(dy)) {
-           gvp->gv_adc.a1 = RAD2DEG*atan2(dy, dx);
-           gvp->gv_adc.dv_a1 = (1.0 - (gvp->gv_adc.a1 / 45.0)) * GED_MAX;
-       }
-    }
-}
-
-
-void
-ged_calc_adc_a2(struct bview *gvp)
-{
-    if (gvp->gv_adc.anchor_a2) {
-       fastf_t dx, dy;
-       point_t view_pt;
-
-       MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a2);
-       dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
-       dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
-
-       if (!ZERO(dx) || !ZERO(dy)) {
-           gvp->gv_adc.a2 = RAD2DEG*atan2(dy, dx);
-           gvp->gv_adc.dv_a2 = (1.0 - (gvp->gv_adc.a2 / 45.0)) * GED_MAX;
-       }
-    }
-}
-
-
-void
-ged_calc_adc_dst(struct bview *gvp)
-{
-    if (gvp->gv_adc.anchor_dst) {
-       fastf_t dist;
-       fastf_t dx, dy;
-       point_t view_pt;
-
-       MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_dst);
-
-       dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
-       dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
-       dist = sqrt(dx * dx + dy * dy);
-       gvp->gv_adc.dst = dist * INV_GED;
-       gvp->gv_adc.dv_dist = (dist / M_SQRT1_2) - GED_MAX;
-    } else
-       gvp->gv_adc.dst = (gvp->gv_adc.dv_dist * INV_GED + 1.0) * M_SQRT1_2;
-}
-
-
-/*
- * Local Variables:
- * mode: C
- * tab-width: 8
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */

Deleted: brlcad/trunk/src/libged/adjust.c
===================================================================
--- brlcad/trunk/src/libged/adjust.c    2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/src/libged/adjust.c    2020-07-17 17:59:33 UTC (rev 76366)
@@ -1,96 +0,0 @@
-/*                         A D J U S T . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/adjust.c
- *
- * The adjust command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "ged.h"
-
-
-int
-ged_adjust(struct ged *gedp, int argc, const char *argv[])
-{
-    int status;
-    struct directory *dp;
-    char *name;
-    struct rt_db_internal intern;
-    static const char *usage = "object attr value ?attr value?";
-
-    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_READ_ONLY(gedp, GED_ERROR);
-    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
-    /* initialize result */
-    bu_vls_trunc(gedp->ged_result_str, 0);
-
-    /* must be wanting help */
-    if (argc == 1) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_HELP;
-    }
-
-    if (argc < 4) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_ERROR;
-    }
-
-    name = (char *)argv[1];
-
-    GED_DB_LOOKUP(gedp, dp, name, LOOKUP_QUIET, GED_ERROR);
-
-    GED_DB_GET_INTERNAL(gedp, &intern, dp, (matp_t)NULL, &rt_uniresource, 
GED_ERROR);
-    RT_CK_DB_INTERNAL(&intern);
-
-    /* Find out what type of object we are dealing with and tweak it. */
-    RT_CK_FUNCTAB(intern.idb_meth);
-
-    if (!intern.idb_meth->ft_adjust) {
-       bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) adjust failure", 
name);
-       return GED_ERROR;
-    }
-
-    status = intern.idb_meth->ft_adjust(gedp->ged_result_str, &intern, argc-2, 
argv+2);
-    if (status == GED_OK && wdb_put_internal(gedp->ged_wdbp, name, &intern, 
1.0) < 0) {
-       bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) failure", name);
-       rt_db_free_internal(&intern);
-       return GED_ERROR;
-    }
-
-    return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */

Deleted: brlcad/trunk/src/libged/ae2dir.c
===================================================================
--- brlcad/trunk/src/libged/ae2dir.c    2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/src/libged/ae2dir.c    2020-07-17 17:59:33 UTC (rev 76366)
@@ -1,94 +0,0 @@
-/*                         A E 2 D I R . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/ae2dir.c
- *
- * The ae2dir command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "./ged_private.h"
-
-
-int
-ged_ae2dir(struct ged *gedp, int argc, const char *argv[])
-{
-    double az, el;
-    vect_t dir;
-    int iflag;
-    static const char *usage = "[-i] az el";
-
-    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
-    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
-    /* initialize result */
-    bu_vls_trunc(gedp->ged_result_str, 0);
-
-    /* must be wanting help */
-    if (argc == 1) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_HELP;
-    }
-
-    if (argv[1][0] == '-' && argv[1][1] == 'i' && argv[1][2] == '\0') {
-       iflag = 1;
-       --argc;
-       ++argv;
-    } else
-       iflag = 0;
-
-    if (argc != 3) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_ERROR;
-    }
-
-    if (sscanf(argv[1], "%lf", &az) != 1 ||
-       sscanf(argv[2], "%lf", &el) != 1) {
-       bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
-       return GED_ERROR;
-    }
-
-    az *= DEG2RAD;
-    el *= DEG2RAD;
-    V3DIR_FROM_AZEL(dir, az, el);
-
-    if (iflag)
-       VSCALE(dir, dir, -1);
-
-    bn_encode_vect(gedp->ged_result_str, dir, 1);
-
-    return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */

Deleted: brlcad/trunk/src/libged/analyze.c
===================================================================
--- brlcad/trunk/src/libged/analyze.c   2020-07-17 17:40:32 UTC (rev 76365)
+++ brlcad/trunk/src/libged/analyze.c   2020-07-17 17:59:33 UTC (rev 76366)
@@ -1,1324 +0,0 @@
-/*                          A N A L Y Z E . C
- * BRL-CAD
- *
- * Copyright (c) 1985-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/analyze.c
- *
- * The analyze command.
- *
- */
-
-#include "common.h"
-
-#include <math.h>
-#include <string.h>
-#include <assert.h>
-
-
-
-#include "vmath.h"
-#include "bn.h"
-#include "bg/polygon.h"
-#include "rt/arb_edit.h"
-#include "raytrace.h"
-#include "rt/geom.h"
-
-#include "./ged_private.h"
-
-/**
- * TODO: primitives that still need implementing
- * ehy
- * metaball
- * nmg
- */
-
-/* Conversion factor for Gallons to cubic millimeters */
-#define GALLONS_TO_MM3 3785411.784
-
-
-/* ARB face printout array */
-static const int prface[5][6] = {
-    {123, 124, 234, 134, -111, -111},          /* ARB4 */
-    {1234, 125, 235, 345, 145, -111},          /* ARB5 */
-    {1234, 2365, 1564, 512, 634, -111},                /* ARB6 */
-    {1234, 567, 145, 2376, 1265, 4375},                /* ARB7 */
-    {1234, 5678, 1584, 2376, 1265, 4378},      /* ARB8 */
-};
-
-
-/* edge definition array */
-static const int nedge[5][24] = {
-    {0, 1, 1, 2, 2, 0, 0, 3, 3, 2, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1},   /* ARB4 */
-    {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 1, 4, 2, 4, 3, 4, -1, -1, -1, -1, -1, -1, 
-1, -1},       /* ARB5 */
-    {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 1, 4, 2, 5, 3, 5, 4, 5, -1, -1, -1, -1, -1, 
-1},         /* ARB6 */
-    {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 3, 4, 1, 5, 2, 6, 4, 5, 5, 6, 4, 6, -1, 
-1},             /* ARB7 */
-    {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 4, 5, 1, 5, 5, 6, 6, 7, 4, 7, 3, 7, 2, 6},  
             /* ARB8 */
-};
-
-
-/* contains information used to analyze a polygonal face */
-struct poly_face
-{
-    char label[5];
-    size_t npts;
-    point_t *pts;
-    plane_t plane_eqn;
-    fastf_t area;
-};
-
-
-#define POLY_FACE_INIT_ZERO { { 0, 0, 0, 0, 0 }, 0, NULL, HINIT_ZERO, 0.0 }
-
-#define ADD_PT(face, pt) do { VMOVE((face).pts[(face).npts], (pt)); 
(face).npts++; } while (0)
-
-/* structures and subroutines for analyze pretty printing */
-
-#define FBUFSIZ 100
-#define NFIELDS 9
-#define NOT_A_PLANE -1
-typedef struct row_field
-{
-    int nchars;
-    char buf[FBUFSIZ];
-} field_t;
-
-typedef struct table_row
-{
-    int nfields;
-    field_t fields[NFIELDS];
-} row_t;
-
-typedef struct table
-{
-    int nrows;
-    row_t *rows;
-} table_t;
-
-void get_dashes(field_t *f, const int ndashes)
-{
-    int i;
-    f->buf[0] = '\0';
-    for (i = 0; i < ndashes; ++i) {
-       bu_strlcat(f->buf, "-", FBUFSIZ);
-    }
-    f->nchars = ndashes;
-}
-
-
-void print_volume_table(struct ged *gedp
-                       , const fastf_t tot_vol
-                       , const fastf_t tot_area
-                       , const fastf_t tot_gallons
-    )
-{
-
-/* table format
-
-   +------------------------------------+
-   | Volume       = 7999999999.99999905 |
-   | Surface Area =   24000000.00000000 |
-   | Gallons      =       2113.37641887 |
-   +------------------------------------+
-
-*/
-    /* track actual table column widths */
-    /* this table has 1 column (plus a name column) */
-    int maxwidth[2] = {0, 0};
-    field_t dashes;
-    char* fnames[3] = {"Volume",
-                      "Surface Area",
-                      "Gallons"};
-    int indent = 4; /* number spaces to indent the table */
-    int table_width_chars;
-    table_t table;
-    int i, nd, field;
-
-    table.nrows = 3;
-    table.rows = (row_t *)bu_calloc(3, sizeof(row_t), "print_volume_table: 
rows");
-    for (i = 0; i < table.nrows; ++i) {
-       fastf_t val = 0.0;
-
-       /* field 0 */
-       field = 0;
-       table.rows[i].fields[0].nchars = 
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "%s",
-                                                 fnames[i]);
-       if (maxwidth[field] < table.rows[i].fields[field].nchars)
-           maxwidth[field] = table.rows[i].fields[field].nchars;
-
-       if (i == 0) {
-           val = tot_vol;
-       } else if (i == 1) {
-           val = tot_area;
-       } else if (i == 2) {
-           val = tot_gallons;
-       }
-
-       /* field 1 */
-       field = 1;
-       if (val < 0) {
-           table.rows[i].fields[1].nchars = 
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "COULD NOT DETERMINE");
-       } else {
-           table.rows[i].fields[1].nchars = 
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "%10.8f", val);
-       }
-       if (maxwidth[field] < table.rows[i].fields[field].nchars)
-           maxwidth[field] = table.rows[i].fields[field].nchars;
-    }
-
-    /* get total table width */
-    table_width_chars  = maxwidth[0] + maxwidth[1];
-    table_width_chars += 2 + 2; /* 2 chars at each end of a row */
-    table_width_chars += 3; /* ' = ' between the two fields of a row */
-
-    /* newline following previous table */
-    bu_vls_printf(gedp->ged_result_str, "\n");
-
-    /* header row 1 */
-    nd = table_width_chars - 4;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s+-%-*.*s-+\n",
-                 indent, indent, " ",
-                 nd, nd, dashes.buf);
-
-    /* the three data rows */
-    for (i = 0; i < table.nrows; ++i) {
-       bu_vls_printf(gedp->ged_result_str, "%-*.*s| %-*.*s = %*.*s |\n",
-                     indent, indent, " ",
-                     maxwidth[0], maxwidth[0], table.rows[i].fields[0].buf,
-                     maxwidth[1], maxwidth[1], table.rows[i].fields[1].buf);
-    }
-
-    /* closing table row */
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s+-%-*.*s-+\n",
-                 indent, indent, " ",
-                 nd, nd, dashes.buf);
-    bu_free((char *)table.rows, "print_volume_table: rows");
-}
-
-
-void print_edges_table(struct ged *gedp, table_t *table)
-{
-
-/* table header
-
-   
+--------------------+--------------------+--------------------+--------------------+
-   | EDGE          LEN  | EDGE          LEN  | EDGE          LEN  | EDGE       
   LEN  |
-   
+--------------------+--------------------+--------------------+--------------------+
-
-*/
-
-    int i;
-    int tcol, nd, nrow, nrows;
-    int maxwidth[] = {0, 0, 0,
-                     0, 0, 0,
-                     0, 0};
-    int indent = 2;
-    field_t dashes;
-    char EDGE[] = {"EDGE"};
-    int elen    = strlen(EDGE);
-    char LEN[]  = {"LENGTH"};
-    int llen    = strlen(LEN);
-    char buf[FBUFSIZ];
-
-    /* put four edges per row making 8 columns */
-    /* this table has 8 columns per row: 2 columns per edge; 4 edges per row */
-
-    /* collect max table column widths */
-    tcol = 0;
-    for (i = 0; i < table->nrows; ++i) {
-       /* field 0 */
-       int field = 0;
-       if (maxwidth[tcol] < table->rows[i].fields[field].nchars)
-           maxwidth[tcol] = table->rows[i].fields[field].nchars;
-       if (maxwidth[tcol] < elen)
-           maxwidth[tcol] = elen;
-
-       /* field 1 */
-       field = 1;
-       if (maxwidth[tcol+1] < table->rows[i].fields[field].nchars)
-           maxwidth[tcol+1] = table->rows[i].fields[field].nchars;
-       if (maxwidth[tcol] < llen)
-           maxwidth[tcol] = llen;
-
-       /* iterate on columns */
-       tcol += 2;
-       tcol = tcol > 6 ? 0 : tcol;
-    }
-
-    /* header row 1 */
-    /* print dashes in 4 sets */
-    nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
-                 indent, indent, " ",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
-                 nd, nd, dashes.buf);
-
-    /* header row 2 */
-    /* print titles in 4 sets */
-
-    /* bu_vls_printf can't handle this at the moment */
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s| %-*.*s %*.*s ",
-                 indent, indent, " ",
-                 maxwidth[0], maxwidth[0], EDGE,
-                 maxwidth[1], maxwidth[1], LEN);
-    bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s ",
-                 maxwidth[2], maxwidth[2], EDGE,
-                 maxwidth[3], maxwidth[3], LEN);
-    bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s ",
-                 maxwidth[4], maxwidth[4], EDGE,
-                 maxwidth[5], maxwidth[5], LEN);
-    bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s |\n",
-                 maxwidth[6], maxwidth[6], EDGE,
-                 maxwidth[7], maxwidth[7], LEN);
-
-    /* header row 3 */
-    /* print dashes in 4 sets */
-    nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
-                 indent, indent, " ",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
-                 nd, nd, dashes.buf);
-
-    /* print the data lines */
-    /* collect max table column widths */
-    tcol = 0;
-    nrow = 0;
-    for (i = 0; i < table->nrows; ++i) {
-       int field;
-
-       if (tcol == 0) {
-           /* need to start a row */
-           snprintf(buf, FBUFSIZ, "%-*.*s|",
-                    indent, indent, " ");
-           bu_vls_printf(gedp->ged_result_str, "%s", buf);
-       }
-
-       /* data in sets of two */
-       /* field 0 */
-       field = 0;
-       /* FIXME: using snprintf because bu_vls_printf is broken for complex 
formats */
-       snprintf(buf, FBUFSIZ, " %-*.*s",
-                maxwidth[tcol], maxwidth[tcol], 
table->rows[i].fields[field].buf);
-       bu_vls_printf(gedp->ged_result_str, "%s", buf);
-
-       /* field 1 */
-       field = 1;
-       /* FIXME: using snprintf because bu_vls_printf is broken for complex 
formats */
-       snprintf(buf, FBUFSIZ, " %-*.*s |",
-                maxwidth[tcol+1], maxwidth[tcol+1], 
table->rows[i].fields[field].buf);
-       bu_vls_printf(gedp->ged_result_str, "%s", buf);
-
-       /* iterate on columns */
-       tcol += 2;
-
-       if (tcol > 6) {
-           /* time for a newline to end the row */
-           bu_vls_printf(gedp->ged_result_str, "\n");
-           tcol = 0;
-           ++nrow;
-       }
-    }
-
-    /* we may have a row to finish */
-    nrows = table->nrows % 4;
-    if (nrows) {
-       assert(tcol < 8);
-
-       /* write blanks */
-       while (tcol < 7) {
-
-           /* data in sets of two */
-           /* this is field 0 */
-           /* FIXME: using snprintf because bu_vls_printf is broken for 
complex formats */
-           snprintf(buf, FBUFSIZ, " %-*.*s",
-                    maxwidth[tcol], maxwidth[tcol], " ");
-           bu_vls_printf(gedp->ged_result_str, "%s", buf);
-
-           /* this is field 1 */
-           /* FIXME: using snprintf because bu_vls_printf is broken for 
complex formats */
-           snprintf(buf, FBUFSIZ, " %-*.*s |",
-                    maxwidth[tcol+1], maxwidth[tcol+1], " ");
-           bu_vls_printf(gedp->ged_result_str, "%s", buf);
-
-           /* iterate on columns */
-           tcol += 2;
-
-           if (tcol > 6) {
-               /* time for a newline to end the row */
-               bu_vls_printf(gedp->ged_result_str, "\n");
-           }
-       }
-    }
-
-    /* close the table */
-    /* print dashes in 4 sets */
-    nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
-                 indent, indent, " ",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
-                 nd, nd, dashes.buf);
-    nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at 
each end */
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
-                 nd, nd, dashes.buf);
-}
-
-
-void print_faces_table(struct ged *gedp, table_t *table)
-{
-
-/* table header
-
-   
+------+-----------------------------+--------------------------------------------------+-----------------+
-   | FACE |      ROT           FB       |                  PLANE EQUATION      
            |   SURFACE AREA  |
-   
+------+-----------------------------+--------------------------------------------------+-----------------+
-
-*/
-
-    /* track actual table column widths */
-    /* this table has 8 columns */
-    int maxwidth[8] = {0, 0, 0,
-                      0, 0, 0,
-                      0, 0};
-    int i, j;
-    int c0, h1a, h1b, h1c;
-    int h2a, h2b, h2c;
-    int c2, c2a, c2b, c2c;
-    int f7, f7a, f7b, f7c;
-    int nd, tnd;
-    field_t dashes;
-    char ROT[] = {"ROT"};
-    char FB[]  = {"FB"};
-    char PA[]  = {"PLANE EQUATION"};
-    char SA[]  = {"SURFACE AREA"};
-
-    /* get max fields widths */
-    for (i = 0; i < table->nrows; ++i) {
-       for (j = 0; j < table->rows[i].nfields; ++j) {
-           if (table->rows[i].fields[j].nchars > maxwidth[j])
-               maxwidth[j] = table->rows[i].fields[j].nchars;
-       }
-    }
-
-    /* blank line following previous table */
-    bu_vls_printf(gedp->ged_result_str, "\n");
-
-    /* get max width of header columns (not counting single space on either 
side) */
-    c0 = maxwidth[0] > 4 ? maxwidth[0] : 4;
-
-    /* print "ROT" in center of field 1 space */
-    h1b = strlen(ROT);
-    h1a = (maxwidth[1] - h1b)/2;
-    h1c = (maxwidth[1] - h1b - h1a);
-
-    /* print "FB" in center of field 2 space */
-    h2b = strlen(FB);
-    h2a = (maxwidth[2] - h2b)/2;
-    h2c = (maxwidth[2] - h2b - h2a);
-
-    /* get width of subcolumns of header column 2 */
-    /* print "PLANE EQUATION" in center of columns 2 space */
-    c2 = maxwidth[3] + maxwidth[4] + maxwidth[5] + maxwidth[6] + 3; /* 3 
spaces between fields */
-    c2b = strlen(PA);
-    c2a = (c2 - c2b)/2;
-    c2c = (c2 - c2b - c2a);
-
-    /* print "SURFACE AREA" in center of field 7 space */
-    f7b = strlen(SA);
-    f7  = maxwidth[7] > f7b ? maxwidth[7] : f7b;
-    f7a = (f7 - f7b)/2;
-    f7c = (f7 - f7b - f7a);
-
-    /* print the pieces */
-
-    /* header row 1 */
-    bu_vls_printf(gedp->ged_result_str, "+-");
-    nd = c0; tnd = nd;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = h1a + h1b + h1c + 1 + h2a + h2b + h2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = c2a + c2b + c2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = f7a + f7b + f7c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+\n");
-
-    /* header row 2 */
-    bu_vls_printf(gedp->ged_result_str, "| ");
-
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s", c0, c0, "FACE");
-
-    bu_vls_printf(gedp->ged_result_str, " | ");
-
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", h1a, h1a, " ");
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", h1b, h1b, ROT);
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", h1c+h2a, h1c+h2a, " ");
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", h2b, h2b, FB);
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s ", h2c, h2c, " ");
-
-
-    bu_vls_printf(gedp->ged_result_str, " | ");
-
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", c2a, c2a, " ");
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", c2b, c2b, PA);
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", c2c, c2c, " ");
-
-
-    bu_vls_printf(gedp->ged_result_str, " | ");
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", f7a, f7a, " ");
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", f7b, f7b, SA);
-
-    bu_vls_printf(gedp->ged_result_str, "%*.*s", f7c, f7c, " ");
-
-    bu_vls_printf(gedp->ged_result_str, " |\n");
-
-    /* header row 3 */
-    bu_vls_printf(gedp->ged_result_str, "+-");
-    nd = c0; tnd = nd;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = h1a + h1b + h1c + 1 + h2a + h2b + h2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = c2a + c2b + c2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = f7a + f7b + f7c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+\n");
-
-    /* output table data rows */
-    for (i = 0; i < table->nrows; ++i) {
-       /* may not have a row with data */
-       if (table->rows[i].nfields == 0)
-           continue;
-       if (table->rows[i].nfields == NOT_A_PLANE)
-           bu_vls_printf(gedp->ged_result_str, "***NOT A PLANE ***");
-
-       bu_vls_printf(gedp->ged_result_str, "|");
-       for (j = 0; j < table->rows[i].nfields; ++j) {
-           assert(table->rows[i].fields[j].buf);
-           bu_vls_printf(gedp->ged_result_str, " %*.*s",
-                         maxwidth[j], maxwidth[j],
-                         table->rows[i].fields[j].buf);
-           /* do we need a separator? */
-           if (j == 0 || j == 2 || j == 6 || j == 7)
-               bu_vls_printf(gedp->ged_result_str, " |");
-       }
-       /* close the row */
-       bu_vls_printf(gedp->ged_result_str, "\n");
-    }
-
-    /* close the table with the ender row */
-    bu_vls_printf(gedp->ged_result_str, "+-");
-    nd = c0; tnd = nd;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%-*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = h1a + h1b + h1c + 1 + h2a + h2b + h2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = c2a + c2b + c2c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+-");
-    nd = f7a + f7b + f7c; tnd += nd + 3;
-    get_dashes(&dashes, nd);
-    bu_vls_printf(gedp->ged_result_str, "%*.*s",
-                 nd, nd, dashes.buf);
-    bu_vls_printf(gedp->ged_result_str, "-+\n");
-}
-
-
-/**
- * general analyze function for primitives that can be analyzed using volume
- * and surface area functions from the rt_functab.
- * Currently used for:
- * - ell
- * - tor
- * - tgc
- * - rpc
- * - eto
- * - epa
- * - part
- * - rhc
- */
-HIDDEN void
-analyze_general(struct ged *gedp, const struct rt_db_internal *ip)
-{
-    fastf_t vol, area;
-    point_t centroid;
-
-    vol = area = -1.0;
-
-    if (OBJ[ip->idb_minor_type].ft_volume) {
-       OBJ[ip->idb_minor_type].ft_volume(&vol, ip);
-    }
-    if (OBJ[ip->idb_minor_type].ft_surf_area) {
-       OBJ[ip->idb_minor_type].ft_surf_area(&area, ip);
-    }
-
-    if (OBJ[ip->idb_minor_type].ft_centroid) {
-       OBJ[ip->idb_minor_type].ft_centroid(&centroid, ip);
-       bu_vls_printf(gedp->ged_result_str, "\n    Centroid: (%g, %g, %g)\n",
-                     centroid[X] * gedp->ged_wdbp->dbip->dbi_base2local,
-                     centroid[Y] * gedp->ged_wdbp->dbip->dbi_base2local,
-                     centroid[Z] * gedp->ged_wdbp->dbip->dbi_base2local);
-    }
-
-    print_volume_table(gedp,
-                      vol
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local,
-                      area
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local,
-                      vol/GALLONS_TO_MM3
-       );
-}
-
-
-/**
- * finds direction cosines and rotation, fallback angles of a unit vector
- * angles = pointer to 5 fastf_t's to store angles
- * unitv = pointer to the unit vector (previously computed)
- */
-HIDDEN void
-findang(fastf_t *angles, fastf_t *unitv)
-{
-    int i;
-    fastf_t f;
-
-    /* convert direction cosines into axis angles */
-    for (i = X; i <= Z; i++) {
-       if (unitv[i] <= -1.0)
-           angles[i] = -90.0;
-       else if (unitv[i] >= 1.0)
-           angles[i] = 90.0;
-       else
-           angles[i] = acos(unitv[i]) * RAD2DEG;
-    }
-
-    /* fallback angle */
-    if (unitv[Z] <= -1.0)
-       unitv[Z] = -1.0;
-    else if (unitv[Z] >= 1.0)
-       unitv[Z] = 1.0;
-    angles[4] = asin(unitv[Z]);
-
-    /* rotation angle */
-    /* For the tolerance below, on an SGI 4D/70, cos(asin(1.0)) != 0.0
-     * with an epsilon of +/- 1.0e-17, so the tolerance below was
-     * substituted for the original +/- 1.0e-20.
-     */
-    if ((f = cos(angles[4])) > 1.0e-16 || f < -1.0e-16) {
-       f = unitv[X]/f;
-       if (f <= -1.0)
-           angles[3] = 180.0;
-       else if (f >= 1.0)
-           angles[3] = 0.0;
-       else
-           angles[3] = RAD2DEG * acos(f);
-    } else
-       angles[3] = 0.0;
-
-    if (unitv[Y] < 0)
-       angles[3] = 360.0 - angles[3];
-
-    angles[4] *= RAD2DEG;
-}
-
-
-/**
- * general analyze function for polygonal faces.
- * Currently used for:
- * - arb8
- * - arbn
- * - ars
- *
- * returns:
- * - area in face->area
- * - print_faces_table() information in row
- * - sorts vertices in face->pts into ccw order
- */
-HIDDEN void
-analyze_poly_face(struct ged *gedp, struct poly_face *face, row_t *row)
-{
-    fastf_t angles[5];
-
-    findang(angles, face->plane_eqn);
-
-    /* sort points */
-    bg_3d_polygon_sort_ccw(face->npts, face->pts, face->plane_eqn);
-    bg_3d_polygon_area(&face->area, face->npts, (const point_t *)face->pts);
-
-    /* store face information for pretty printing */
-    row->nfields = 8;
-    row->fields[0].nchars = sprintf(row->fields[0].buf, "%4s", face->label);
-    row->fields[1].nchars = sprintf(row->fields[1].buf, "%10.8f", angles[3]);
-    row->fields[2].nchars = sprintf(row->fields[2].buf, "%10.8f", angles[4]);
-    row->fields[3].nchars = sprintf(row->fields[3].buf, "%10.8f", 
face->plane_eqn[X]);
-    row->fields[4].nchars = sprintf(row->fields[4].buf, "%10.8f", 
face->plane_eqn[Y]);
-    row->fields[5].nchars = sprintf(row->fields[5].buf, "%10.8f", 
face->plane_eqn[Z]);
-    row->fields[6].nchars = sprintf(row->fields[6].buf, "%10.8f",
-                                   
face->plane_eqn[W]*gedp->ged_wdbp->dbip->dbi_base2local);
-    row->fields[7].nchars = sprintf(row->fields[7].buf, "%10.8f",
-                                   
face->area*gedp->ged_wdbp->dbip->dbi_base2local*gedp->ged_wdbp->dbip->dbi_base2local);
-}
-
-
-HIDDEN void
-analyze_edge(struct ged *gedp, const int edge, const struct rt_arb_internal 
*arb,
-            const int type, row_t *row)
-{
-    int a = nedge[type][edge*2];
-    int b = nedge[type][edge*2+1];
-
-    if (b == -1) {
-       row->nfields = 0;
-       return;
-    }
-
-    row->nfields = 2;
-    row->fields[0].nchars = sprintf(row->fields[0].buf, "%d%d", a + 1, b + 1);
-    row->fields[1].nchars = sprintf(row->fields[1].buf, "%10.8f",
-                                   DIST_PNT_PNT(arb->pt[a], 
arb->pt[b])*gedp->ged_wdbp->dbip->dbi_base2local);
-}
-
-
-HIDDEN void
-analyze_arb8(struct ged *gedp, const struct rt_db_internal *ip)
-{
-    int i, type;
-    int cgtype;     /* COMGEOM arb type: # of vertices */
-    table_t table;  /* holds table data from child functions */
-    fastf_t tot_vol = 0.0, tot_area = 0.0;
-    point_t center_pt = VINIT_ZERO;
-    struct poly_face face = POLY_FACE_INIT_ZERO;
-    struct rt_arb_internal earb;
-    struct rt_arb_internal *arb = (struct rt_arb_internal *)ip->idb_ptr;
-    const int arb_faces[5][24] = rt_arb_faces;
-    RT_ARB_CK_MAGIC(arb);
-
-    /* find the specific arb type, in GIFT order. */
-    if ((cgtype = rt_arb_std_type(ip, &gedp->ged_wdbp->wdb_tol)) == 0) {
-       bu_vls_printf(gedp->ged_result_str, "analyze_arb: bad ARB\n");
-       return;
-    }
-
-    type = cgtype - 4;
-
-    /* to get formatting correct, we need to collect the actual string
-     * lengths for each field BEFORE we start printing a table (fields
-     * are allowed to overflow the stated printf field width) */
-
-    /* TABLE 1 =========================================== */
-    /* analyze each face, use center point of arb for reference */
-    rt_arb_centroid(&center_pt, ip);
-
-    /* allocate pts array, maximum 4 verts per arb8 face */
-    face.pts = (point_t *)bu_calloc(4, sizeof(point_t), "analyze_arb8: pts");
-    /* allocate table rows, 12 rows needed for arb8 edges */
-    table.rows = (row_t *)bu_calloc(12, sizeof(row_t), "analyze_arb8: rows");
-
-    table.nrows = 0;
-    for (face.npts = 0, i = 0; i < 6; face.npts = 0, i++) {
-       int a, b, c, d; /* 4 indices to face vertices */
-
-       a = arb_faces[type][i*4+0];
-       b = arb_faces[type][i*4+1];
-       c = arb_faces[type][i*4+2];
-       d = arb_faces[type][i*4+3];
-
-       if (a == -1) {
-           table.rows[i].nfields = 0;
-           continue;
-       }
-
-       /* find plane eqn for this face */
-       if (bn_make_plane_3pnts(face.plane_eqn, arb->pt[a], arb->pt[b], 
arb->pt[c], &gedp->ged_wdbp->wdb_tol) < 0) {
-           bu_vls_printf(gedp->ged_result_str, "| %d%d%d%d |         ***NOT A 
PLANE***                                          |\n",
-                         a+1, b+1, c+1, d+1);
-           /* this row has 1 special fields */
-           table.rows[i].nfields = NOT_A_PLANE;
-           continue;
-       }
-
-       ADD_PT(face, arb->pt[a]);
-       ADD_PT(face, arb->pt[b]);
-       ADD_PT(face, arb->pt[c]);
-       ADD_PT(face, arb->pt[d]);
-
-       /* The plane equations returned by bn_make_plane_3pnts above do
-        * not necessarily point outward. Use the reference center
-        * point for the arb and reverse direction for any errant planes.
-        * This corrects the output rotation, fallback angles so that
-        * they always give the outward pointing normal vector. */
-       if (DIST_PNT_PLANE(center_pt, face.plane_eqn) > 0.0) {
-           HREVERSE(face.plane_eqn, face.plane_eqn);
-       }
-
-       snprintf(face.label, sizeof(face.label), "%d", prface[type][i]);
-
-       analyze_poly_face(gedp, &face, &(table.rows[i]));
-       tot_area += face.area;
-       table.nrows++;
-    }
-
-    /* and print it */
-    print_faces_table(gedp, &table);
-
-    /* TABLE 2 =========================================== */
-    /* analyze each edge */
-
-    /* blank line following previous table */
-    bu_vls_printf(gedp->ged_result_str, "\n");
-
-    /* set up the records for arb4's and arb6's */
-    earb = *arb; /* struct copy */
-    if (cgtype == 4) {
-       VMOVE(earb.pt[3], earb.pt[4]);
-    } else if (cgtype == 6) {
-       VMOVE(earb.pt[5], earb.pt[6]);
-    }
-
-    table.nrows = 0;
-    for (i = 0; i < 12; i++) {
-       analyze_edge(gedp, i, &earb, type, &(table.rows[i]));
-       if (nedge[type][i*2] == -1) {
-           break;
-       }
-       table.nrows += 1;
-    }
-
-    print_edges_table(gedp, &table);
-
-    /* TABLE 3 =========================================== */
-    /* find the volume - break arb8 into 6 arb4s */
-
-    if (OBJ[ID_ARB8].ft_volume)
-       OBJ[ID_ARB8].ft_volume(&tot_vol, ip);
-
-    print_volume_table(gedp,
-                      tot_vol
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local,
-                      tot_area
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local,
-                      tot_vol/GALLONS_TO_MM3
-       );
-
-    bu_free((char *)face.pts, "analyze_arb8: pts");
-    bu_free((char *)table.rows, "analyze_arb8: rows");
-}
-
-
-HIDDEN void
-analyze_arbn(struct ged *gedp, const struct rt_db_internal *ip)
-{
-    size_t i;
-    fastf_t tot_vol = 0.0, tot_area = 0.0;
-    table_t table;
-    struct poly_face *faces;
-    struct bu_vls tmpstr = BU_VLS_INIT_ZERO;
-    struct rt_arbn_internal *aip = (struct rt_arbn_internal *)ip->idb_ptr;
-    size_t *npts = (size_t *)bu_calloc(aip->neqn, sizeof(size_t), 
"analyze_arbn: npts");
-    point_t **tmp_pts = (point_t **)bu_calloc(aip->neqn, sizeof(point_t *), 
"analyze_arbn: tmp_pts");
-    plane_t *eqs= (plane_t *)bu_calloc(aip->neqn, sizeof(plane_t), 
"analyze_arbn: eqs");
-
-    /* allocate array of face structs */
-    faces = (struct poly_face *)bu_calloc(aip->neqn, sizeof(struct poly_face), 
"analyze_arbn: faces");
-    for (i = 0; i < aip->neqn; i++) {
-       HMOVE(faces[i].plane_eqn, aip->eqn[i]);
-       VUNITIZE(faces[i].plane_eqn);
-       /* allocate array of pt structs, max number of verts per faces = (# of 
faces) - 1 */
-       faces[i].pts = (point_t *)bu_calloc(aip->neqn - 1, sizeof(point_t), 
"analyze_arbn: pts");
-       tmp_pts[i] = faces[i].pts;
-       HMOVE(eqs[i], faces[i].plane_eqn);
-    }
-    /* allocate table rows, 1 row per plane eqn */
-    table.rows = (row_t *)bu_calloc(aip->neqn, sizeof(row_t), "analyze_arbn: 
rows");
-    table.nrows = aip->neqn;
-
-    bg_3d_polygon_make_pnts_planes(npts, tmp_pts, aip->neqn, (const plane_t 
*)eqs);
-
-    for (i = 0; i < aip->neqn; i++) {
-       vect_t tmp;
-       bu_vls_sprintf(&tmpstr, "%4zu", i);
-       snprintf(faces[i].label, sizeof(faces[i].label), "%s", 
bu_vls_addr(&tmpstr));
-
-       faces[i].npts = npts[i];
-
-       /* calculate surface area */
-       analyze_poly_face(gedp, &faces[i], &table.rows[i]);
-       tot_area += faces[i].area;
-
-       /* calculate volume */
-       VSCALE(tmp, faces[i].plane_eqn, faces[i].area);
-       tot_vol += VDOT(faces[i].pts[0], tmp);
-    }
-    tot_vol /= 3.0;
-
-    print_faces_table(gedp, &table);
-    print_volume_table(gedp,
-                      tot_vol
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local
-                      * gedp->ged_wdbp->dbip->dbi_base2local,
-                      tot_area
-                      * gedp->ged_wdbp->dbip->dbi_base2local

@@ Diff output truncated at 100000 characters. @@
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