Revision: 77067
http://sourceforge.net/p/brlcad/code/77067
Author: starseeker
Date: 2020-09-04 21:05:55 +0000 (Fri, 04 Sep 2020)
Log Message:
-----------
Merge from trunk: r77032 through r77066
Modified Paths:
--------------
brlcad/branches/RELEASE/CMakeLists.txt
brlcad/branches/RELEASE/TODO
brlcad/branches/RELEASE/doc/README.Windows
brlcad/branches/RELEASE/include/bn/anim.h
brlcad/branches/RELEASE/include/bn/complex.h
brlcad/branches/RELEASE/include/bn/dvec.h
brlcad/branches/RELEASE/include/bn/noise.h
brlcad/branches/RELEASE/include/bn/plane.h
brlcad/branches/RELEASE/include/bn/poly.h
brlcad/branches/RELEASE/include/bn/rand.h
brlcad/branches/RELEASE/include/bu/app.h
brlcad/branches/RELEASE/include/bu/color.h
brlcad/branches/RELEASE/include/bu/column.h
brlcad/branches/RELEASE/include/bu/defines.h
brlcad/branches/RELEASE/include/bu/endian.h
brlcad/branches/RELEASE/include/bu/glob.h
brlcad/branches/RELEASE/include/bu/tbl.h
brlcad/branches/RELEASE/include/common.h
brlcad/branches/RELEASE/include/gcv/api.h
brlcad/branches/RELEASE/misc/CMake/CMakeLists.txt
brlcad/branches/RELEASE/misc/tools/CMakeLists.txt
brlcad/branches/RELEASE/misc/wix/brlcad_banner.bmp
brlcad/branches/RELEASE/misc/wix/brlcad_dialog.bmp
brlcad/branches/RELEASE/src/archer/CMakeLists.txt
brlcad/branches/RELEASE/src/libbu/realpath_bsd.c
brlcad/branches/RELEASE/src/libbu/whereami.c
brlcad/branches/RELEASE/src/libgcv/CMakeLists.txt
brlcad/branches/RELEASE/src/libged/put_comb/put_comb.c
brlcad/branches/RELEASE/src/libtclcad/CMakeLists.txt
brlcad/branches/RELEASE/src/libtclcad/auto_path.c
brlcad/branches/RELEASE/src/libtclcad/bn.c
brlcad/branches/RELEASE/src/libtclcad/bu.c
brlcad/branches/RELEASE/src/libtclcad/cmdhist.c
brlcad/branches/RELEASE/src/libtclcad/dm.c
brlcad/branches/RELEASE/src/libtclcad/fb.c
brlcad/branches/RELEASE/src/libtclcad/fbserv.c
brlcad/branches/RELEASE/src/libtclcad/rt.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_private.h
brlcad/branches/RELEASE/src/libtclcad/view/faceplate.c
brlcad/branches/RELEASE/src/mged/CMakeLists.txt
brlcad/branches/RELEASE/src/rtwizard/CMakeLists.txt
Added Paths:
-----------
brlcad/branches/RELEASE/misc/CMake/FindNSIS.cmake
brlcad/branches/RELEASE/misc/CMake/FindWix.cmake
brlcad/branches/RELEASE/misc/tools/inactvhdrs/
brlcad/branches/RELEASE/src/archer/archer.ico
brlcad/branches/RELEASE/src/archer/archer.rc
brlcad/branches/RELEASE/src/libgcv/tests/
brlcad/branches/RELEASE/src/libtclcad/commands.c
brlcad/branches/RELEASE/src/libtclcad/eval.c
brlcad/branches/RELEASE/src/libtclcad/global.c
brlcad/branches/RELEASE/src/libtclcad/init.c
brlcad/branches/RELEASE/src/libtclcad/mouse.c
brlcad/branches/RELEASE/src/libtclcad/polygons.c
brlcad/branches/RELEASE/src/libtclcad/wrapper.c
brlcad/branches/RELEASE/src/mged/mged.ico
brlcad/branches/RELEASE/src/mged/mged.rc
brlcad/branches/RELEASE/src/rtwizard/rtwizard.ico
brlcad/branches/RELEASE/src/rtwizard/rtwizard.rc
Removed Paths:
-------------
brlcad/branches/RELEASE/src/libgcv/test_bottess.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_eval.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_global.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_init.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_mouse.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_obj.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_obj_wrapper.c
brlcad/branches/RELEASE/src/libtclcad/tclcad_polygons.c
Property Changed:
----------------
brlcad/branches/RELEASE/
brlcad/branches/RELEASE/doc/
brlcad/branches/RELEASE/include/
brlcad/branches/RELEASE/src/libbu/
Index: brlcad/branches/RELEASE
===================================================================
--- brlcad/branches/RELEASE 2020-09-04 20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE 2020-09-04 21:05:55 UTC (rev 77067)
Property changes on: brlcad/branches/RELEASE
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
/brlcad/branches/opencl:65867-66137
/brlcad/branches/osg:62110-62113
/brlcad/branches/prep-cache:68236-68933
-/brlcad/trunk:36844-37285,37571-38764,38777-38845,41559-43155,43159-43908,44241-44324,44326-44385,44710-45373,45377,45379-47342,47370-68122,68125-75207,75325,75375,75377-75378,75387,75470-75472,75477,75492,75495,75549,75565-75566,75656-75661,75672,75675,75678,75729,75811,76641-76768,76771-76954,76963-76967,76975-76991,76994-77031
\ No newline at end of property
+/brlcad/trunk:36844-37285,37571-38764,38777-38845,41559-43155,43159-43908,44241-44324,44326-44385,44710-45373,45377,45379-47342,47370-68122,68125-75207,75325,75375,75377-75378,75387,75470-75472,75477,75492,75495,75549,75565-75566,75656-75661,75672,75675,75678,75729,75811,76641-76768,76771-76954,76963-76967,76975-76991,76994-77066
\ No newline at end of property
Modified: brlcad/branches/RELEASE/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/CMakeLists.txt 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/CMakeLists.txt 2020-09-04 21:05:55 UTC (rev
77067)
@@ -2936,17 +2936,11 @@
endif(HAVE__SNPRINTF)
endif(NOT HAVE_SNPRINTF)
-# So far I haven't been able to come up with a reliable self contained
-# test for this, but libbu's #2 realpath test triggers a stack smash
-# on some linux systems. For the moment, fall back on OpenBSD's
-# userspace implementation, which does seem to work. Once we can
-# get a self-contained reproduction of this failure, put it below
-# and we can use the system realpath again.
if(HAVE_REALPATH)
- #check_c_source_runs("#include<limits.h>\n#include <stdlib.h>\nint main() {
char dir[512]; const char *d = \"/tmp/REALPATH_TEST_PATH\"; d = (const char
*)realpath(d, dir); return 0; }" HAVE_WORKING_REALPATH)
- #if(HAVE_WORKING_REALPATH)
- # CONFIG_H_APPEND(BRLCAD "#define HAVE_WORKING_REALPATH 1\n")
- #endif(HAVE_WORKING_REALPATH)
+ check_c_source_runs("#include<limits.h>\n#include <stdlib.h>\nint main() {
char dir[PATH_MAX]; const char *d = \"/tmp/REALPATH_TEST_PATH\"; d = (const
char *)realpath(d, dir); return 0; }" HAVE_WORKING_REALPATH)
+ if(HAVE_WORKING_REALPATH)
+ CONFIG_H_APPEND(BRLCAD "#define HAVE_WORKING_REALPATH 1\n")
+ endif(HAVE_WORKING_REALPATH)
endif(HAVE_REALPATH)
# GetFullPathName
@@ -3570,26 +3564,45 @@
endif(CPACK_RPM_PACKAGE_RELEASE)
if(WIN32)
- set(CPACK_GENERATOR NSIS)
- set(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
- set(CPACK_NSIS_INSTALL_DIRECTORY "BRL-CAD ${BRLCAD_VERSION}")
- set(CPACK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
- set(CPACK_DATA_DIR "${DATA_DIR}")
- set(CPACK_DOC_DIR "${DOC_DIR}")
- # There is a bug in NSI that does not handle full unix paths properly. Make
- # sure there is at least one set of four (4) backslashes.
- set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
- set(CPACK_NSIS_MUI_UNIICON
"${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
- set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
- set(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
- set(CPACK_NSIS_MODIFY_PATH ON)
- if(BRLCAD_ENABLE_WIX)
+ find_package(NSIS)
+ if (NSIS_FOUND)
+ set(CPACK_GENERATOR ${CPACK_GENERATOR} NSIS)
+ set(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
+ set(CPACK_NSIS_INSTALL_DIRECTORY "BRL-CAD ${BRLCAD_VERSION}")
+ set(CPACK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
+ set(CPACK_DATA_DIR "${DATA_DIR}")
+ set(CPACK_DOC_DIR "${DOC_DIR}")
+ # There is a bug in NSIS that does not handle full unix paths properly.
Make
+ # sure there is at least one set of four (4) backslashes.
+ set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
+ set(CPACK_NSIS_MUI_UNIICON
"${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
+ set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
+ set(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
+ set(CPACK_NSIS_MODIFY_PATH ON)
+ endif (NSIS_FOUND)
+ find_package(Wix)
+ if (Wix_FOUND)
+ # User report that this version of the installer also supports
+ # non-graphical installation with the /passive option.
+ #
+ # Note: for WiX, start menu shortcuts and desktop icons are handled with
+ # properties set on targets. (At the moment, this is not true for NSIS -
+ # it uses entries in the misc/CMake/NSIS.template.in file.)
+ #
+ # If we need to get fancier about this, look at the following:
+ #
https://github.com/Kitware/CMake/blob/master/CMakeCPackOptions.cmake.in#L216
+ # https://github.com/Kitware/CMake/tree/master/Utilities/Release/WiX
set(CPACK_GENERATOR ${CPACK_GENERATOR} WIX)
set(CPACK_WIX_LICENSE_RTF "${CMAKE_SOURCE_DIR}/misc/wix/License.rtf")
set(CPACK_WIX_PRODUCT_ICON
"${CMAKE_SOURCE_DIR}/misc/wix/brlcad_product.ico")
+ set(CPACK_WIX_PROGRAM_MENU_FOLDER "BRL-CAD ${BRLCAD_VERSION}")
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_banner.bmp")
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_dialog.bmp")
- endif(BRLCAD_ENABLE_WIX)
+ endif (Wix_FOUND)
+ if (NOT CPACK_GENERATOR)
+ # If nothing else, make a zip file
+ set(CPACK_GENERATOR ZIP)
+ endif (NOT CPACK_GENERATOR)
if(CMAKE_CL_64)
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win64")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "BRL-CAD ${BRLCAD_VERSION} win64")
Modified: brlcad/branches/RELEASE/TODO
===================================================================
--- brlcad/branches/RELEASE/TODO 2020-09-04 20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/TODO 2020-09-04 21:05:55 UTC (rev 77067)
@@ -170,7 +170,12 @@
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
+* rtwizard's reopening of the database is causing db_dircheck
+ "Duplicate of..." errors when opening read-only .g files.
+* procedural studio box generation allowing for specification of size,
+ shape, material, and lighting characteristics
+
* verify all of the src/util utilities behave correctly on Windows
with respect to mode (i.e. correctly using setmode/O_BINARY when
performing file I/O.)
@@ -2439,6 +2444,18 @@
* write and use kdtree - make traversal cache coherent
+GEOMETRY MODELS
+---------------
+
+* CSG shaderball
+
+* solid teapot
+
+* studio box
+
+* CSG lightcycle
+
+
DOCUMENTATION
-------------
Index: brlcad/branches/RELEASE/doc
===================================================================
--- brlcad/branches/RELEASE/doc 2020-09-04 20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/doc 2020-09-04 21:05:55 UTC (rev 77067)
Property changes on: brlcad/branches/RELEASE/doc
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
/brlcad/branches/osg/doc:62110-62113
/brlcad/branches/prep-cache/doc:68236-68933
/brlcad/branches/tcltk86/doc:68300-75257
-/brlcad/trunk/doc:76645-76726,76795-76858,76862-76954,76980-76991
\ No newline at end of property
+/brlcad/trunk/doc:76645-76726,76795-76858,76862-76954,76980-76991,77032-77065
\ No newline at end of property
Modified: brlcad/branches/RELEASE/doc/README.Windows
===================================================================
--- brlcad/branches/RELEASE/doc/README.Windows 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/doc/README.Windows 2020-09-04 21:05:55 UTC (rev
77067)
@@ -3,18 +3,23 @@
The usual way to build BRL-CAD for Windows is to use the CMake build
system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
-Recent versions of both (as of this writing, MSVC 2013 and CMake
-2.8.12+) are recommended. If generating an installer, the Nullsoft
-Scriptable Install System (NSIS) tool is also required.
+Recent versions of both are recommended. If generating an installer,
+the following options are available and supported:
-In principle, BRL-CAD can be built using CMake and environments like
-Cygwin and/or Mingw/Msys, but the latter is largely untested and
+Nullsoft Scriptable Install System (NSIS) - generates a. .exe installer
+
+WiX Toolset - generates an MSI installer.
+
+These tools must be installed separately - they are not included with
+CMake or Visual Studio.
+
+Note: In principle BRL-CAD can be built using CMake and environments
+like Cygwin and/or Mingw/Msys, but they are largely untested and
infrequently supported. Enhancements or bug reports are welcome.
Visual Studio
-------------
-
To build with CMake and Visual Studio, the first step is to obtain the
BRL-CAD sources and create a build directory. In principle, it is not
*required* to have a separate build directory, but with Windows and
@@ -54,6 +59,18 @@
named PACKAGE and run it. The end result should be an .exe file
capable of installing BRL-CAD.
+Working with MSI files
+----------------------
+
+The WiX Toolset's MSI file, in addition to the standard interactive
+graphical install, also supports a command line based silent
+install. (See, for example, https://stackoverflow.com/a/25230485)
+
+msiexec.exe /i c:\BRL-CAD-7.32.0_win64.msi /QN /L*V
"C:\Temp\brlcad_install.log"
+
+The logging step is not required but is recommended to allow for
+easier understanding of any issues that might arise.
+
===========================================
=== Setting a specific SDK version ===
Index: brlcad/branches/RELEASE/include
===================================================================
--- brlcad/branches/RELEASE/include 2020-09-04 20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/include 2020-09-04 21:05:55 UTC (rev 77067)
Property changes on: brlcad/branches/RELEASE/include
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
/brlcad/branches/opencl/include:65867-66137
/brlcad/branches/osg/include:62110-62113
/brlcad/branches/prep-cache/include:68236-68933
-/brlcad/trunk/include:36844-37285,37571-38764,38777-38845,41559-43155,43159-43908,44241-44324,44326-44385,44710-45373,45377,45379-47342,47370-68122,68125-75207,75325,75375,75377-75378,75387,75470-75472,75477,75492,75495,75549,75565-75566,75656-75661,75672,75675,75678,75729,75811,76641-76726,76729-76730,76748-76764,76771-76858,76862-76954,76994-77031
\ No newline at end of property
+/brlcad/trunk/include:36844-37285,37571-38764,38777-38845,41559-43155,43159-43908,44241-44324,44326-44385,44710-45373,45377,45379-47342,47370-68122,68125-75207,75325,75375,75377-75378,75387,75470-75472,75477,75492,75495,75549,75565-75566,75656-75661,75672,75675,75678,75729,75811,76641-76726,76729-76730,76748-76764,76771-76858,76862-76954,76994-77065
\ No newline at end of property
Modified: brlcad/branches/RELEASE/include/bn/anim.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/anim.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/anim.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -127,13 +127,13 @@
(o)[7] = (i)[9];\
(o)[8] = (i)[10];}
-/* tilde matrix: [M]a = v X a */
+/** tilde matrix: [M]a = v X a */
#define MAKE_TILDE(m, v) {\
MAT3ZERO(m);\
m[1]= -v[2]; m[2]=v[1]; m[3]= v[2];\
m[5]= -v[0]; m[6]= -v[1]; m[7]= v[0];}
-/* a = Ix Iy Iz b = Ixy Ixz Iyz*/
+/** a = Ix Iy Iz b = Ixy Ixz Iyz*/
#define INERTIAL_MAT3(m, a, b) {\
(m)[0] = (a)[0]; (m)[1] = -(b)[0]; (m)[2] = -(b)[1];\
(m)[3] = -(b)[0]; (m)[4] = (a)[1]; (m)[5] = -(b)[2];\
Modified: brlcad/branches/RELEASE/include/bn/complex.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/complex.h 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/include/bn/complex.h 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -34,7 +34,7 @@
__BEGIN_DECLS
-/* "complex number" data type: */
+/** "complex number" data type */
typedef struct bn_complex {
double re; /**< @brief real part */
double im; /**< @brief imaginary part */
Modified: brlcad/branches/RELEASE/include/bn/dvec.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/dvec.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/dvec.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -26,10 +26,10 @@
#include <math.h>
extern "C++" {
/* Hide iostream from Doxygen with cond */
-/* @cond */
+/** @cond */
#include <iostream>
#include <ostream>
-/* @endcond */
+/** @endcond */
}
/* Needed for fastf_t definition */
@@ -131,7 +131,7 @@
#define VEC_ALIGN
/* Doxygen doesn't like these includes... */
-/* @cond */
+/** @cond */
/*#undef __SSE2__*/ // Test FPU version
#if defined(__SSE2__) && defined(__GNUC__) && defined(HAVE_EMMINTRIN_H) &&
defined(HAVE_EMMINTRIN)
# define __x86_vector__
@@ -741,7 +741,7 @@
}
#endif
-/* @endcond */
+/** @endcond */
inline bool vequals(const vec2d& a, const vec2d& b) {
return
@@ -753,12 +753,12 @@
typedef fastf_t mat2d_t[4] VEC_ALIGN;
/* Hide from Doxygen with cond */
-/* @cond */
+/** @cond */
// 2d point
typedef fastf_t pt2d_t[2] VEC_ALIGN;
-/* @endcond */
+/** @endcond */
//--------------------------------------------------------------------------------
// MATH / VECTOR ops
Modified: brlcad/branches/RELEASE/include/bn/noise.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/noise.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/noise.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -18,9 +18,9 @@
* information.
*/
-/*----------------------------------------------------------------------*/
-/** @addtogroup noise
+/**
+ * @addtogroup noise
*
* @brief
* These noise functions provide mostly random noise at the integer
@@ -137,7 +137,6 @@
double octaves);
/**
- *
* From "Texturing and Modeling, A Procedural Approach" 2nd ed
*/
BN_EXPORT extern double bn_noise_mf(point_t point,
Modified: brlcad/branches/RELEASE/include/bn/plane.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/plane.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/plane.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -43,51 +43,51 @@
__BEGIN_DECLS
-#define MAXPTS 4 /* All we need are 4 points */
-#define pl_A pl_points[0] /* Synonym for A point */
+#define MAXPTS 4 /**< All we need are 4 points */
+#define pl_A pl_points[0] /**< Synonym for A point */
struct plane_specific {
- size_t pl_npts; /* number of points on plane */
- point_t pl_points[MAXPTS]; /* Actual points on plane */
- vect_t pl_Xbasis; /* X (B-A) vector (for 2d coords) */
- vect_t pl_Ybasis; /* Y (C-A) vector (for 2d coords) */
- vect_t pl_N; /* Unit-length Normal (outward) */
- fastf_t pl_NdotA; /* Normal dot A */
- fastf_t pl_2d_x[MAXPTS]; /* X 2d-projection of points */
- fastf_t pl_2d_y[MAXPTS]; /* Y 2d-projection of points */
- fastf_t pl_2d_com[MAXPTS]; /* pre-computed common-term */
- struct plane_specific *pl_forw; /* Forward link */
- char pl_code[MAXPTS+1]; /* Face code string. Decorative. */
+ size_t pl_npts; /**< number of points on plane */
+ point_t pl_points[MAXPTS]; /**< Actual points on plane */
+ vect_t pl_Xbasis; /**< X (B-A) vector (for 2d coords) */
+ vect_t pl_Ybasis; /**< Y (C-A) vector (for 2d coords) */
+ vect_t pl_N; /**< Unit-length Normal (outward) */
+ fastf_t pl_NdotA; /**< Normal dot A */
+ fastf_t pl_2d_x[MAXPTS]; /**< X 2d-projection of points */
+ fastf_t pl_2d_y[MAXPTS]; /**< Y 2d-projection of points */
+ fastf_t pl_2d_com[MAXPTS]; /**< pre-computed common-term */
+ struct plane_specific *pl_forw; /**< Forward link */
+ char pl_code[MAXPTS+1]; /**< Face code string. Decorative. */
};
-/*
+/**
* Describe the tri_specific structure.
*/
struct tri_specific {
- point_t tri_A; /* triangle vertex (A) */
- vect_t tri_BA; /* B - A (second point) */
- vect_t tri_CA; /* C - A (third point) */
- vect_t tri_wn; /* facet normal (non-unit) */
- vect_t tri_N; /* unit normal vector */
- fastf_t *tri_normals; /* unit vertex normals A, B, C (this
is malloced storage) */
- int tri_surfno; /* solid specific surface number */
- struct tri_specific *tri_forw; /* Next facet */
+ point_t tri_A; /**< triangle vertex (A) */
+ vect_t tri_BA; /**< B - A (second point) */
+ vect_t tri_CA; /**< C - A (third point) */
+ vect_t tri_wn; /**< facet normal (non-unit) */
+ vect_t tri_N; /**< unit normal vector */
+ fastf_t *tri_normals; /**< unit vertex normals A, B, C (this
is malloced storage) */
+ int tri_surfno; /**< solid specific surface number */
+ struct tri_specific *tri_forw; /**< Next facet */
};
typedef struct tri_specific tri_specific_double;
-/*
+/**
* A more memory conservative version
*/
struct tri_float_specific {
- float tri_A[3]; /* triangle vertex (A) */
- float tri_BA[3]; /* B - A (second point) */
- float tri_CA[3]; /* C - A (third point) */
- float tri_wn[3]; /* facet normal (non-unit) */
- float tri_N[3]; /* unit normal vector */
- signed char *tri_normals; /* unit vertex normals A, B, C (this
is malloced storage) */
- int tri_surfno; /* solid specific surface number */
- struct tri_float_specific *tri_forw;/* Next facet */
+ float tri_A[3]; /**< triangle vertex (A) */
+ float tri_BA[3]; /**< B - A (second point) */
+ float tri_CA[3]; /**< C - A (third point) */
+ float tri_wn[3]; /**< facet normal (non-unit) */
+ float tri_N[3]; /**< unit normal vector */
+ signed char *tri_normals; /**< unit vertex normals A, B, C (this
is malloced storage) */
+ int tri_surfno; /**< solid specific surface number */
+ struct tri_float_specific *tri_forw;/**< Next facet */
};
typedef struct tri_float_specific tri_specific_float;
Modified: brlcad/branches/RELEASE/include/bn/poly.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/poly.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/poly.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -41,7 +41,7 @@
__BEGIN_DECLS
/* This could be larger, or even dynamic... */
-#define BN_MAX_POLY_DEGREE 6 /* Maximum Poly Order */
+#define BN_MAX_POLY_DEGREE 6 /**< Maximum Poly Order */
/**
* Polynomial data type
Modified: brlcad/branches/RELEASE/include/bn/rand.h
===================================================================
--- brlcad/branches/RELEASE/include/bn/rand.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bn/rand.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -76,7 +76,7 @@
#define BN_RANDHALF(_i) (bn_rand_table[ _i = (_i+1) % BN_RAND_TABSIZE ]-0.5)
#define BN_RANDHALF_INIT(_p) _p = bn_rand_table
-#define BN_RANDHALFTABSIZE 16535 /* Powers of two give streaking */
+#define BN_RANDHALFTABSIZE 16535 /**< Powers of two give streaking */
BN_EXPORT extern int bn_randhalftabsize;
/**
Modified: brlcad/branches/RELEASE/include/bu/app.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/app.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/app.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -228,22 +228,22 @@
typedef enum {
- BU_DIR_CURR=1, /* (unknown) current working directory */
- BU_DIR_INIT, /* (unknown) initial working directory */
- BU_DIR_BIN, /* (read-only) user executables (bin) */
- BU_DIR_LIB, /* (read-only) object libraries (lib) */
- BU_DIR_LIBEXEC, /* (read-only) object libraries (libexec) */
- BU_DIR_INCLUDE, /* (read-only) C/C++ header files (include) */
- BU_DIR_DATA, /* (read-only) data files (share) */
- BU_DIR_DOC, /* (read-only) documentation, (DATA/doc) */
- BU_DIR_MAN, /* (read-only) manual pages, (DATA/man) */
- BU_DIR_TEMP, /* (read/write) temporary files (TEMP) */
- BU_DIR_HOME, /* (read/write) user home directory (HOME) */
- BU_DIR_CACHE, /* (read/write) user cache directory (BU_CACHE_DIR) */
- BU_DIR_CONFIG, /* (read/write) user config directory (HOME/.app) */
- BU_DIR_EXT, /* (n/a) optional executable extension */
- BU_DIR_LIBEXT, /* (n/a) optional library extension */
- BU_DIR_END
+ BU_DIR_CURR=1, /**< (unknown) current working directory */
+ BU_DIR_INIT, /**< (unknown) initial working directory */
+ BU_DIR_BIN, /**< (read-only) user executables (bin) */
+ BU_DIR_LIB, /**< (read-only) object libraries (lib) */
+ BU_DIR_LIBEXEC, /**< (read-only) object libraries (libexec) */
+ BU_DIR_INCLUDE, /**< (read-only) C/C++ header files (include) */
+ BU_DIR_DATA, /**< (read-only) data files (share) */
+ BU_DIR_DOC, /**< (read-only) documentation, (DATA/doc) */
+ BU_DIR_MAN, /**< (read-only) manual pages, (DATA/man) */
+ BU_DIR_TEMP, /**< (read/write) temporary files (TEMP) */
+ BU_DIR_HOME, /**< (read/write) user home directory (HOME) */
+ BU_DIR_CACHE, /**< (read/write) user cache directory (BU_CACHE_DIR) */
+ BU_DIR_CONFIG, /**< (read/write) user config directory (HOME/.app) */
+ BU_DIR_EXT, /**< (n/a) optional executable extension */
+ BU_DIR_LIBEXT, /**< (n/a) optional library extension */
+ BU_DIR_END /**< always the last entry, for iterators */
} bu_dir_t;
Modified: brlcad/branches/RELEASE/include/bu/color.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/color.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/color.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -30,8 +30,6 @@
__BEGIN_DECLS
-/*----------------------------------------------------------------------*/
-
/** @addtogroup bu_color
* @brief
* Support for storing and manipulating color data.
@@ -74,7 +72,7 @@
-/* random color generating methods */
+/** random color generating methods */
typedef enum {
BU_COLOR_RANDOM = 0,
BU_COLOR_RANDOM_LIGHTENED
@@ -94,7 +92,7 @@
#if 0
-/*
+/**
* Refactoring points:
* color command (set specified color)
* src/libged/color.c
Modified: brlcad/branches/RELEASE/include/bu/column.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/column.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/column.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -53,7 +53,8 @@
#define BU_COLUMN_ALL -1
-/* Generate an output string based on the specified layout and contents in the
+/**
+ * Generate an output string based on the specified layout and contents in the
* bu_column_state s. Return the number of items printed, or -1 if there is
* an error.
*
@@ -74,7 +75,8 @@
* Row suffix: none
* Fill order: column first
*
- * */
+ *
+ */
BU_EXPORT extern int bu_column_print(struct bu_vls *o, struct bu_column_state
*s);
/**
Modified: brlcad/branches/RELEASE/include/bu/defines.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/defines.h 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/include/bu/defines.h 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -69,22 +69,6 @@
#endif /* DIR_SEPARATOR */
/**
- * Maximum length of a filesystem path. Typically defined in a system
- * file but if it isn't set, we create it.
- */
-#ifndef MAXPATHLEN
-# ifdef PATH_MAX
-# define MAXPATHLEN PATH_MAX
-# else
-# ifdef _MAX_PATH
-# define MAXPATHLEN _MAX_PATH
-# else
-# define MAXPATHLEN 1024
-# endif
-# endif
-#endif
-
-/**
* set to the path list separator character
*/
#if defined(PATH_SEPARATOR)
Modified: brlcad/branches/RELEASE/include/bu/endian.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/endian.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/endian.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -36,9 +36,9 @@
typedef enum {
- BU_LITTLE_ENDIAN = 1234, /* LSB first: i386, VAX order */
- BU_BIG_ENDIAN = 4321, /* MSB first: 68000, IBM, network order */
- BU_PDP_ENDIAN = 3412 /* LSB first in word, MSW first in long */
+ BU_LITTLE_ENDIAN = 1234, /**< LSB first: i386, VAX order */
+ BU_BIG_ENDIAN = 4321, /**< MSB first: 68000, IBM, network order */
+ BU_PDP_ENDIAN = 3412 /**< LSB first in word, MSW first in long */
} bu_endian_t;
Modified: brlcad/branches/RELEASE/include/bu/glob.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/glob.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/glob.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -67,10 +67,10 @@
*/
struct bu_glob_context {
-#define BU_GLOB_APPEND 0x0001 /* Append to output from previous call. */
-#define BU_GLOB_NOSORT 0x0020 /* Don't sort. */
-#define BU_GLOB_NOESCAPE 0x2000 /* Disable backslash escaping. */
-#define BU_GLOB_ALTDIRFUNC 0x0040 /* use alternate functions. */
+#define BU_GLOB_APPEND 0x0001 /**< Append to output from previous call. */
+#define BU_GLOB_NOSORT 0x0020 /**< Don't sort. */
+#define BU_GLOB_NOESCAPE 0x2000 /**< Disable backslash escaping. */
+#define BU_GLOB_ALTDIRFUNC 0x0040 /**< use alternate functions. */
int gl_flags; /**< flags customizing globbing behavior */
/* Return values */
@@ -88,8 +88,8 @@
int (*gl_lstat)(const char *, struct bu_stat *, struct bu_glob_context *);
int (*gl_stat)(const char *, struct bu_stat *, struct bu_glob_context *);
-#define BU_GLOB_NOMATCH (-1) /* No match. */
-#define BU_GLOB_ABORTED (-2) /* Unignored error. */
+#define BU_GLOB_NOMATCH (-1) /**< No match. */
+#define BU_GLOB_ABORTED (-2) /**< Unignored error. */
int (*gl_errfunc)(const char *, int, struct bu_glob_context *);
/* For caller use */
Modified: brlcad/branches/RELEASE/include/bu/tbl.h
===================================================================
--- brlcad/branches/RELEASE/include/bu/tbl.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/bu/tbl.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -38,7 +38,7 @@
/** @{ */
/** @file bu/tbl.h */
-/*
+/**
* this is pulled from num.c where the guts to the table printer
* currently resides, moved here for easy reference.
*
Modified: brlcad/branches/RELEASE/include/common.h
===================================================================
--- brlcad/branches/RELEASE/include/common.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/common.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -227,6 +227,23 @@
#endif
/**
+ * Maximum length of a filesystem path. Typically defined in a system
+ * file but if it isn't set, we create it.
+ */
+#ifndef MAXPATHLEN
+# include <limits.h> // Consistently define (or not) PATH_MAX
+# ifdef PATH_MAX
+# define MAXPATHLEN PATH_MAX
+# elif defined(MAX_PATH)
+# define MAXPATHLEN MAX_PATH
+# elif defined(_MAX_PATH)
+# define MAXPATHLEN _MAX_PATH
+# else
+# define MAXPATHLEN 2048
+# endif
+#endif
+
+/**
* Provide a means to conveniently test the version of the GNU
* compiler. Use it like this:
*
@@ -466,8 +483,10 @@
/**
* Provide canonical preprocessor stringification.
*
+ @code
* #define abc 123
* CPP_STR(abc) => "abc"
+ @endcode
*/
#ifndef CPP_STR
# define CPP_STR(x) # x
@@ -476,8 +495,10 @@
/**
* Provide canonical preprocessor expanded stringification.
*
+ @code
* #define abc 123
* CPP_XSTR(abc) => "123"
+ @endcode
*/
#ifndef CPP_XSTR
# define CPP_XSTR(x) CPP_STR(x)
@@ -486,6 +507,7 @@
/**
* Provide canonical preprocessor concatenation.
*
+ @code
* #define abc 123
* CPP_GLUE(abc, 123) => abc123
* CPP_STR(CPP_GLUE(abc, 123)) => "CPP_GLUE(abc, 123)"
@@ -492,6 +514,7 @@
* CPP_XSTR(CPP_GLUE(abc, 123)) => "abc123"
* #define abc123 "xyz"
* CPP_GLUE(abc, 123) => abc123 => "xyz"
+ @endcode
*/
#ifndef CPP_GLUE
# define CPP_GLUE(a, b) a ## b
@@ -500,10 +523,12 @@
/**
* Provide canonical preprocessor expanded concatenation.
*
+ @code
* #define abc 123
* CPP_XGLUE(abc, 123) => 123123
* CPP_STR(CPP_XGLUE(abc, 123)) => "CPP_XGLUE(abc, 123)"
* CPP_XSTR(CPP_XGLUE(abc, 123)) => "123123"
+ @endcode
*/
#ifndef CPP_XGLUE
# define CPP_XGLUE(a, b) CPP_GLUE(a, b)
@@ -512,9 +537,11 @@
/**
* Provide format specifier string tied to a size (e.g., "%123s")
*
+ @code
* #define STR_LEN 10+1
* char str[STR_LEN] = {0};
* scanf(CPP_SCANSIZE(STR_LEN) "\n", str);
+ @endcode
*/
#ifndef CPP_SCAN
# define CPP_SCAN(sz) "%" CPP_XSTR(sz) "s"
Modified: brlcad/branches/RELEASE/include/gcv/api.h
===================================================================
--- brlcad/branches/RELEASE/include/gcv/api.h 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/include/gcv/api.h 2020-09-04 21:05:55 UTC (rev
77067)
@@ -139,10 +139,14 @@
/* operation type */
const enum gcv_filter_type filter_type;
- /* If we have a definite type this converter is known to handle, call
- * it out here.
- * MIME_MODEL_UNKNOWN if 'filter_type' is GCV_FILTER_FILTER or
- * if the plugin is a multi-format I/O plugin */
+ /* If we have a specific model type this converter is known to
+ * handle, call it out here. Use BU_MIME_MODEL_UNKNOWN if
+ * 'filter_type' is GCV_FILTER_FILTER or if the plugin is a
+ * multi-format I/O plugin.
+ *
+ * FIXME: input/output plugins conceivably could be something
+ * other than geometry (e.g., png input or csv output).
+ */
const bu_mime_model_t mime_type;
/* For plugins supporting multiple file types, call this to
Modified: brlcad/branches/RELEASE/misc/CMake/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/misc/CMake/CMakeLists.txt 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/misc/CMake/CMakeLists.txt 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -28,6 +28,7 @@
FindIlmBase.cmake
FindLEMON.cmake
FindNETPBM.cmake
+ FindNSIS.cmake
FindOPENNURBS.cmake
FindOSL.cmake
FindOpenCL.cmake
@@ -46,6 +47,7 @@
FindUTAHRLE.cmake
FindUUID.cmake
FindVDS.cmake
+ FindWix.cmake
FindX11.cmake
FindXMLLINT.cmake
FindXSLTPROC.cmake
Copied: brlcad/branches/RELEASE/misc/CMake/FindNSIS.cmake (from rev 77065,
brlcad/trunk/misc/CMake/FindNSIS.cmake)
===================================================================
--- brlcad/branches/RELEASE/misc/CMake/FindNSIS.cmake
(rev 0)
+++ brlcad/branches/RELEASE/misc/CMake/FindNSIS.cmake 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -0,0 +1,32 @@
+#-------------------------------------------------------------------
+# This file is based on the Wix module from the CMake build system
+# for OGRE (Object-oriented Graphics Rendering Engine)
+# For the latest info, see http://www.ogre3d.org/
+#
+# The contents of this file are placed in the public domain. Feel
+# free to make use of it in any way you like.
+#-------------------------------------------------------------------
+
+# - Try to find Nullsoft Scriptable Install System (NSIS)
+# You can help this by defining NSIS_HOME in the environment / CMake
+# Once done, this will define
+#
+# NSIS_FOUND - system has NSIS
+# NSIS_BINARY_DIR - location of the NSIS binaries
+
+include(FindPkgMacros)
+
+# Get path, convert backslashes as ${ENV_${var}}
+getenv_path(NSIS_HOME)
+
+# construct search paths
+set(NSIS_PREFIX_PATH ${NSIS_HOME} ${ENV_NSIS_HOME}
+ "C:/Program Files (x86)/NSIS"
+)
+find_path(NSIS_BINARY_DIR NAMES makensis.exe HINTS ${NSIS_PREFIX_PATH}
PATH_SUFFIXES bin)
+
+if(NSIS_BINARY_DIR)
+ set (NSIS_FOUND TRUE)
+endif()
+
+mark_as_advanced(NSIS_BINARY_DIR NSIS_FOUND)
Copied: brlcad/branches/RELEASE/misc/CMake/FindWix.cmake (from rev 77065,
brlcad/trunk/misc/CMake/FindWix.cmake)
===================================================================
--- brlcad/branches/RELEASE/misc/CMake/FindWix.cmake
(rev 0)
+++ brlcad/branches/RELEASE/misc/CMake/FindWix.cmake 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -0,0 +1,34 @@
+#-------------------------------------------------------------------
+# This file is part of the CMake build system for OGRE
+# (Object-oriented Graphics Rendering Engine)
+# For the latest info, see http://www.ogre3d.org/
+#
+# The contents of this file are placed in the public domain. Feel
+# free to make use of it in any way you like.
+#-------------------------------------------------------------------
+
+# - Try to find Wix
+# You can help this by defining WIX_HOME in the environment / CMake
+# Once done, this will define
+#
+# Wix_FOUND - system has Wix
+# Wix_BINARY_DIR - location of the Wix binaries
+
+include(FindPkgMacros)
+
+# Get path, convert backslashes as ${ENV_${var}}
+getenv_path(WIX_HOME)
+
+# Find version specific paths
+file(GLOB WIX_PATHS LIST_DIRECTORIES TRUE "C:/Program Files*/WiX Toolset*")
+
+# construct search paths
+set(WIX_PREFIX_PATH ${WIX_HOME} ${ENV_WIX_HOME} ${WIX_PATHS})
+
+find_path(Wix_BINARY_DIR NAMES candle.exe HINTS ${WIX_PREFIX_PATH}
PATH_SUFFIXES bin)
+
+if(Wix_BINARY_DIR)
+ set (Wix_FOUND TRUE)
+endif()
+
+mark_as_advanced(Wix_BINARY_DIR Wix_FOUND)
Modified: brlcad/branches/RELEASE/misc/tools/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/misc/tools/CMakeLists.txt 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/misc/tools/CMakeLists.txt 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -192,6 +192,10 @@
SetTargetFolder(debug2c "Compilation Utilities")
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/debug2c/Makefile)
+# inactvhdrs - utility that tries to find local headers unused by other
+# source code in a file hierarchy
+CMAKEFILES(inactvhdrs/inactvhdrs.cpp)
+
CMAKEFILES(README)
CMAKEFILES(CMakeLists.txt)
Modified: brlcad/branches/RELEASE/misc/wix/brlcad_banner.bmp
===================================================================
(Binary files differ)
Modified: brlcad/branches/RELEASE/misc/wix/brlcad_dialog.bmp
===================================================================
(Binary files differ)
Modified: brlcad/branches/RELEASE/src/archer/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/src/archer/CMakeLists.txt 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/archer/CMakeLists.txt 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -16,7 +16,14 @@
# If/when we add MGED's ability to work in "classic" mode, Archer will have
# to be built as a non-GUI application (or we'll have to build two executables)
if(BRLCAD_ENABLE_TK)
- BRLCAD_ADDEXEC(archer archer.c "${archer_libs}" GUI)
+ set(archer_srcs archer.c)
+ if (HAVE_WINDOWS_H)
+ # To associate an icon with the application for Windows (needed
+ # for the WiX installer) we must use an rc file.
+ enable_language(RC)
+ set(archer_srcs ${archer_srcs} archer.rc)
+ endif (HAVE_WINDOWS_H)
+ BRLCAD_ADDEXEC(archer "${archer_srcs}" "${archer_libs}" GUI)
add_dependencies(archer archer_launch_tcl_cp)
add_dependencies(archer rtwizard)
ADD_TARGET_DEPS(archer Tkhtml Tktable itcl_pkgIndex itk_pkgIndex dm_plugins)
@@ -24,6 +31,14 @@
foreach(item ${tclindex_target_list})
add_dependencies(archer ${item})
endforeach(item ${tclindex_target_list})
+
+ # Archer is one of the programs that gets a start menu entry
+ set_property(INSTALL "${BIN_DIR}/$<TARGET_FILE_NAME:archer>"
+ PROPERTY CPACK_START_MENU_SHORTCUTS "Archer ${BRLCAD_VERSION}"
+ )
+ set_property(INSTALL "${BIN_DIR}/$<TARGET_FILE_NAME:archer>"
+ PROPERTY CPACK_DESKTOP_SHORTCUTS "Archer ${BRLCAD_VERSION}"
+ )
endif(BRLCAD_ENABLE_TK)
@@ -65,6 +80,8 @@
CMakeLists.txt
TODO
archer.c
+ archer.rc
+ archer.ico
)
CMAKEFILES(${archer_ignore_files})
Copied: brlcad/branches/RELEASE/src/archer/archer.ico (from rev 77065,
brlcad/trunk/src/archer/archer.ico)
===================================================================
(Binary files differ)
Copied: brlcad/branches/RELEASE/src/archer/archer.rc (from rev 77065,
brlcad/trunk/src/archer/archer.rc)
===================================================================
--- brlcad/branches/RELEASE/src/archer/archer.rc
(rev 0)
+++ brlcad/branches/RELEASE/src/archer/archer.rc 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -0,0 +1,11 @@
+#include <windows.h>
+
+//
+// Icon
+//
+// The icon whose name or resource ID is lexigraphically first, is used
+// as the application's icon.
+//
+
+app ICON DISCARDABLE "archer.ico"
+
Index: brlcad/branches/RELEASE/src/libbu
===================================================================
--- brlcad/branches/RELEASE/src/libbu 2020-09-04 20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/src/libbu 2020-09-04 21:05:55 UTC (rev 77067)
Property changes on: brlcad/branches/RELEASE/src/libbu
___________________________________________________________________
Modified: svn:mergeinfo
## -1,2 +1,2 ##
/brlcad/branches/bioh/src/libbu:75720-75728
-/brlcad/trunk/src/libbu:72518-74373,74376-75207,75729,76645-76726,76771-76788,76795-76858,76862-76954
\ No newline at end of property
+/brlcad/trunk/src/libbu:72518-74373,74376-75207,75729,76645-76726,76771-76788,76795-76858,76862-76954,77032-77065
\ No newline at end of property
Modified: brlcad/branches/RELEASE/src/libbu/realpath_bsd.c
===================================================================
--- brlcad/branches/RELEASE/src/libbu/realpath_bsd.c 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libbu/realpath_bsd.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -60,7 +60,7 @@
unsigned symlinks;
int serrno, mem_allocated;
ssize_t slen;
- char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX];
+ char left[MAXPATHLEN], next_token[MAXPATHLEN], symlink[MAXPATHLEN];
if (path == NULL) {
errno = EINVAL;
@@ -75,7 +75,7 @@
serrno = errno;
if (resolved == NULL) {
- resolved = (char *)bu_malloc(PATH_MAX, "alloc PATH_MAX");
+ resolved = (char *)bu_malloc(MAXPATHLEN, "alloc MAXPATHLEN");
if (resolved == NULL)
return (NULL);
mem_allocated = 1;
@@ -91,11 +91,11 @@
resolved_len = 1;
left_len = bu_strlcpy(left, path + 1, sizeof(left));
} else {
- if (getcwd(resolved, PATH_MAX) == NULL) {
+ if (getcwd(resolved, MAXPATHLEN) == NULL) {
if (mem_allocated)
free(resolved);
else
- bu_strlcpy(resolved, ".", PATH_MAX);
+ bu_strlcpy(resolved, ".", MAXPATHLEN);
return (NULL);
}
resolved_len = strlen(resolved);
@@ -129,7 +129,7 @@
}
if (resolved[resolved_len - 1] != '/') {
- if (resolved_len + 1 >= PATH_MAX) {
+ if (resolved_len + 1 >= MAXPATHLEN) {
errno = ENAMETOOLONG;
goto err;
}
@@ -160,8 +160,8 @@
* it exists but isn't a symlink, or if there are no more
* path components left.
*/
- resolved_len = bu_strlcat(resolved, next_token, PATH_MAX);
- if (resolved_len >= PATH_MAX) {
+ resolved_len = bu_strlcat(resolved, next_token, MAXPATHLEN);
+ if (resolved_len >= MAXPATHLEN) {
errno = ENAMETOOLONG;
goto err;
}
Modified: brlcad/branches/RELEASE/src/libbu/whereami.c
===================================================================
--- brlcad/branches/RELEASE/src/libbu/whereami.c 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libbu/whereami.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -275,13 +275,13 @@
WAI_FUNCSPEC
int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length)
{
- char buffer[PATH_MAX];
+ char buffer[MAXPATHLEN];
char* resolved = NULL;
int length = -1;
for (;;)
{
- resolved = realpath(WAI_PROC_SELF_EXE, buffer);
+ resolved = bu_file_realpath(WAI_PROC_SELF_EXE, buffer);
if (!resolved)
break;
@@ -347,12 +347,12 @@
for (;;)
{
- char buffer[PATH_MAX < 1024 ? 1024 : PATH_MAX];
+ char buffer[MAXPATHLEN < 1024 ? 1024 : MAXPATHLEN];
uint64_t low, high;
char perms[5];
uint64_t offset;
uint32_t major, minor;
- char path[PATH_MAX];
+ char path[MAXPATHLEN];
uint32_t inode;
if (!bu_fgets(buffer, sizeof(buffer), maps))
@@ -366,7 +366,7 @@
{
char* resolved;
- resolved = realpath(path, buffer);
+ resolved = bu_file_realpath(path, buffer);
if (!resolved)
break;
@@ -458,8 +458,8 @@
WAI_FUNCSPEC
int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length)
{
- char buffer1[PATH_MAX];
- char buffer2[PATH_MAX];
+ char buffer1[MAXPATHLEN];
+ char buffer2[MAXPATHLEN];
char* path = buffer1;
char* resolved = NULL;
int length = -1;
@@ -474,7 +474,7 @@
break;
}
- resolved = realpath(path, buffer2);
+ resolved = bu_file_realpath(path, buffer2);
if (!resolved)
break;
@@ -514,7 +514,7 @@
WAI_NOINLINE WAI_FUNCSPEC
int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length)
{
- char buffer[PATH_MAX];
+ char buffer[MAXPATHLEN];
char* resolved = NULL;
int length = -1;
@@ -524,7 +524,7 @@
if (dladdr(WAI_RETURN_ADDRESS(), &info))
{
- resolved = realpath(info.dli_fname, buffer);
+ resolved = bu_file_realpath(info.dli_fname, buffer);
if (!resolved)
break;
@@ -570,8 +570,8 @@
WAI_FUNCSPEC
int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length)
{
- char buffer1[PATH_MAX];
- char buffer2[PATH_MAX];
+ char buffer1[MAXPATHLEN];
+ char buffer2[MAXPATHLEN];
char* resolved = NULL;
FILE* self_exe = NULL;
int length = -1;
@@ -585,7 +585,7 @@
if (!bu_fgets(buffer1, sizeof(buffer1), self_exe))
break;
- resolved = realpath(buffer1, buffer2);
+ resolved = bu_file_realpath(buffer1, buffer2);
if (!resolved)
break;
@@ -624,7 +624,7 @@
WAI_FUNCSPEC
int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length)
{
- char buffer[PATH_MAX];
+ char buffer[MAXPATHLEN];
char* resolved = NULL;
int length = -1;
@@ -634,7 +634,7 @@
if (dladdr(WAI_RETURN_ADDRESS(), &info))
{
- resolved = realpath(info.dli_fname, buffer);
+ resolved = bu_file_realpath(info.dli_fname, buffer);
if (!resolved)
break;
@@ -678,8 +678,8 @@
WAI_FUNCSPEC
int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length)
{
- char buffer1[PATH_MAX];
- char buffer2[PATH_MAX];
+ char buffer1[MAXPATHLEN];
+ char buffer2[MAXPATHLEN];
char* path = buffer1;
char* resolved = NULL;
int length = -1;
@@ -696,7 +696,7 @@
if (sysctl(mib, (u_int)(sizeof(mib) / sizeof(mib[0])), path, &size, NULL,
0) != 0)
break;
- resolved = realpath(path, buffer2);
+ resolved = bu_file_realpath(path, buffer2);
if (!resolved)
break;
@@ -736,7 +736,7 @@
WAI_NOINLINE WAI_FUNCSPEC
int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length)
{
- char buffer[PATH_MAX];
+ char buffer[MAXPATHLEN];
char* resolved = NULL;
int length = -1;
@@ -746,7 +746,7 @@
if (dladdr(WAI_RETURN_ADDRESS(), &info))
{
- resolved = realpath(info.dli_fname, buffer);
+ resolved = bu_file_realpath(info.dli_fname, buffer);
if (!resolved)
break;
Modified: brlcad/branches/RELEASE/src/libgcv/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/src/libgcv/CMakeLists.txt 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libgcv/CMakeLists.txt 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -33,14 +33,8 @@
set_property(SOURCE gcv.c APPEND PROPERTY COMPILE_DEFINITIONS
"LIBGCV_PLUGINS_PATH=\"${LIBGCV_PLUGINS_PATH}\"")
set_property(SOURCE gcv.c APPEND PROPERTY COMPILE_DEFINITIONS
"LIBGCV_PLUGIN_SUFFIX=\"${CMAKE_SHARED_LIBRARY_SUFFIX}\"")
-enable_testing()
-BRLCAD_ADDEXEC(test_bottess test_bottess.c libgcv NO_INSTALL)
-if(HIDE_INTERNAL_SYMBOLS)
- set_property(TARGET test_bottess APPEND PROPERTY COMPILE_DEFINITIONS
"BOTTESS_DLL_IMPORTS")
-endif(HIDE_INTERNAL_SYMBOLS)
-add_test(NAME bottess_test COMMAND test_bottess)
+add_subdirectory(tests)
-
set(GCV_IGNORE_FILES
CMakeLists.txt
NOTES
Deleted: brlcad/branches/RELEASE/src/libgcv/test_bottess.c
===================================================================
--- brlcad/branches/RELEASE/src/libgcv/test_bottess.c 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libgcv/test_bottess.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -1,343 +0,0 @@
-/* T E S T _ B O T T E S S . C
- * BRL-CAD
- *
- * Copyright (c) 2011-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 libgcv/bottess_tester.c
- *
- * Test things in the bottess routines...
- */
-
-#include "common.h"
-
-#include "vmath.h"
-#include "bu/app.h"
-#include "bn.h"
-#include "raytrace.h"
-#include "nmg.h"
-#include "gcv.h"
-
-#include "./soup.h"
-#include "./tri_intersect.h"
-
-int
-test_intersection(int should, point_t *t1, point_t *t2, point_t p1, point_t p2)
-{
- int coplanar = 0;
- point_t i[2] = {VINIT_ZERO, VINIT_ZERO};
- vect_t tmp[2] = {VINIT_ZERO, VINIT_ZERO};
- struct face_s f[2];
- struct bn_tol tol;
-
- BN_TOL_INIT(&tol);
- tol.dist = 0.005;
- tol.dist_sq = tol.dist*tol.dist;
-
- VMOVE(f[0].vert[0], t1[0]);
- VMOVE(f[0].vert[1], t1[1]);
- VMOVE(f[0].vert[2], t1[2]);
- VSUB2(tmp[0], t1[1], t1[0]);
- VSUB2(tmp[1], t1[2], t1[0]);
- VCROSS(f[0].plane, tmp[0], tmp[1]);
- f[0].foo = 0;
-
- VMOVE(f[1].vert[0], t2[0]);
- VMOVE(f[1].vert[1], t2[1]);
- VMOVE(f[1].vert[2], t2[2]);
- VSUB2(tmp[0], t2[1], t2[0]);
- VSUB2(tmp[1], t2[2], t2[0]);
- VCROSS(f[1].plane, tmp[0], tmp[1]);
- f[1].foo = 0;
-
- if (gcv_tri_tri_intersect_with_isectline(NULL, NULL, f, f+1, &coplanar, i,
&tol) == 0 && should == 0)
- return 0;
- return !(VNEAR_EQUAL(i[0], p1, tol.dist) && VNEAR_EQUAL(i[1], p2,
tol.dist));
-}
-
-
-int
-test_tri_intersections()
-{
- int count = 0;
-#define TRY(suc, t00x, t00y, t00z, t01x, t01y, t01z, t02x, t02y, t02z, t10x,
t10y, t10z, t11x, t11y, t11z, t12x, t12y, t12z, p0x, p0y, p0z, p1x, p1y, p1z) {
\
- point_t t0[3], t1[3], p0, p1; \
- VSET(t0[0], t00x, t00y, t00z); VSET(t0[1], t01x, t01y, t01z);
VSET(t0[2], t02x, t02y, t02z); \
- VSET(t1[0], t10x, t10y, t10z); VSET(t1[1], t11x, t11y, t11z);
VSET(t1[2], t12x, t12y, t12z); \
- VSET(p0, p0x, p0y, p0z); VSET(p1, p1x, p1y, p1z); \
- count += test_intersection(suc, t0, t1, p0, p1); }
-
- TRY(1, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0.5, 0, 1, 0.5, 1, 0, 0.5, 0, 0,
.5, 0, .5, .5); /* ep ef */
- TRY(0, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 2, 0.5, 0, 3, 0.5, 1, 2, 0.5, 0, 0,
.5, 0, .5, .5); /* no intersect */
-
-#undef TRY
- return count;
-}
-
-
-static int
-find_tri(struct soup_s *s, struct face_s *f, struct bn_tol *t) {
- unsigned int i, j, k;
- for (i=0;i<s->nfaces;i++) {
- int found[3] = {0, 0, 0};
- struct face_s *wf = s->faces+i;
-
- for (j=0;j<3;j++) for (k=0;k<3;k++) if (VNEAR_EQUAL(wf->vert[j],
f->vert[k], t->dist)) found[j] = 1;
- if (found[0] == 1 && found[1] == 1 && found[2] == 1) return i;
- }
- return -1;
-}
-
-
-int
-test_face_split_single()
-{
- unsigned long int i, tcount = 0, count = 0, nsplt;
- struct soup_s s;
- struct face_s f;
- struct bn_tol t;
-
- BN_TOL_INIT(&t);
- t.dist = 0.005;
- t.dist_sq = t.dist * t.dist;
-
- /* evil macros to do a lot of scaffolding, setup, execution, etc... */
- /* prep take: the triangle to split (9 fastf_t), the intersection line (6
- * fastf_t), and the number of expected resulting triangles. */
-
- /* NOTE THE "PREP" AND "POST" MACROS MUST BE USED IN PAIRS DUE TO THE
SPLIT ENCLOSING CURLY BRACES */
-#define PREP(t00, t01, t02, t10, t11, t12, t20, t21, t22,
\
- ispt00, ispt01, ispt02, ispt10, ispt11, ispt12, _nsplt) \
- { \
- point_t isectpt[2]; \
- int urf[_nsplt+1]; \
- unsigned long int failure = 0, numsplit = _nsplt; \
- for (i = 0; i < _nsplt + 1; ++i) urf[i] = 0; \
- tcount++; \
- VSET(isectpt[0], ispt00, ispt01, ispt02); \
- VSET(isectpt[1], ispt10, ispt11, ispt12); \
- s.magic = SOUP_MAGIC; \
- s.faces = NULL; \
- s.maxfaces = 0; \
- s.nfaces = 0; \
- VSET(f.vert[0], t00, t01, t02); \
- VSET(f.vert[1], t10, t11, t12); \
- VSET(f.vert[2], t20, t21, t22); \
- soup_add_face(&s, V3ARGS(f.vert), &t); \
- VSET(f.plane, 0, 0, 1); \
- nsplt = split_face_single(&s, 0, isectpt, &f, &t); \
- if (nsplt != s.nfaces) { \
- printf("Error, nsplit %lu != s.nfaces %lu ?\n", numsplit,
s.nfaces); \
- }
-
- /* the _splits is an array of expected triangles, as 9 fastf_t tuples */
- /* fastf_t _splits[nsplt][9] = {{...}, {...}} */
- /* post tests to see if the resulting triangles match and cleans up */
-#define POST(name) \
- for (i = 0; i < numsplit; i++) { \
- VSET(f.vert[0], _splits[i][0], _splits[i][1], _splits[i][2]); \
- VSET(f.vert[1], _splits[i][3], _splits[i][4], _splits[i][5]); \
- VSET(f.vert[2], _splits[i][6], _splits[i][7], _splits[i][8]); \
- urf[i] = find_tri(&s, &f, &t); \
- if (urf[i] == -1) failure++; \
- } \
- if (nsplt != 2 && urf[0] == -1 && urf[1] == -1) { \
- printf("\033[1;31mFAILURE "name"\033[m\n"); \
- printf("%lu faces now\n", s.nfaces); \
- for (i = 0; i < s.nfaces; i++) \
- printf("%03lu: % 2g, % 2g, % 2g | % 2g, % 2g, % 2g | % 2g, % 2g, %
2g\n", \
- i, V3ARGS(s.faces[i].vert[0]), V3ARGS(s.faces[i].vert[1]),
V3ARGS(s.faces[i].vert[2])); \
- count++; \
- } \
- free(s.faces); \
-} /* NOTE THIS IS THE CLOSING BRACE FROM THE OPENING BRACE IN THE PREVIOUS
MACRO!! */
-
-
- /* VERT/VERT */
- PREP(0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1); {fastf_t
_splits[1][9] = {{0, 0, 0, 0, 1, 0, 1, 0, 0}}; POST("VERT/VERT");}
-
- /* VERT/EDGE */
- PREP(-1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 2); {fastf_t
_splits[2][9] = {{0, 0, 0, 0, 1, 0, -1, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0}};
POST("VERT/EDGE");}
-
-#if 0 /* known to be broken right now. */
- /* EDGE/EDGE */
- PREP(-2, 0, 0, 0, 2, 0, 2, 0, 0, 1, 1, 0, -1, 1, 0, 3); {fastf_t
_splits[3][9] = { { 1, 1, 0, 0, 2, 0, -1, 1, 0}, { 1, 1, 0, -2, 0, 0, 2, 0,
0}, {-1, 1, 0, 1, 1, 0, -2, 0, 0}}; POST("EDGE/EDGE");}
-#endif
-
- /* VERT/FACE */
- PREP(-2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 1, 0, 3); {fastf_t
_splits[4][9]={ {-2, 0, 0, 2, 0, 0, 0, 1, 0}, {-2, 0, 0, 0, 2, 0, 0, 1, 0}, {2,
0, 0, 0, 2, 0, 0, 1, 0}}; POST("VERT/FACE");}
-
- /* EDGE/FACE */
- PREP(-2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 4); {fastf_t
_splits[4][9]={{0, 0, 0, -2, 0, 0, 0, 1, 0}, {0, 0, 0, 2, 0, 0, 0, 1, 0}, {-2,
0, 0, 0, 2, 0, 0, 1, 0}, {2, 0, 0, 0, 2, 0, 0, 1, 0}}; POST("EDGE/FACE");}
-
-#if 0 /* known to be broken right now */
- /* FACE/FACE */
- PREP(-2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 4); fastf_t
_splits[4][9]={{0, 0, 0, -2, 0, 0, 0, 1, 0}, {0, 0, 0, 2, 0, 0, 0, 1, 0}, {-2,
0, 0, 0, 2, 0, 0, 1, 0}, {2, 0, 0, 0, 2, 0, 0, 1, 0}}; POST("EDGE/FACE");
-#endif
-
-#undef PREP
-#undef POST
-
- return count;
-}
-
-
-int
-test_face_splits()
-{
- int count = 0;
-
- int rval;
- struct soup_s l, r;
- struct bn_tol t;
- point_t p[3];
-
-
- BN_TOL_INIT(&t);
- t.dist = 0.005;
- t.dist_sq = t.dist * t.dist;
-
- l.magic = r.magic = SOUP_MAGIC;
- l.faces = r.faces = NULL;
- l.maxfaces = l.nfaces = r.maxfaces = r.nfaces = 0;
- VSET(p[0], -1, 0, 0); VSET(p[1], 0, 1, 0); VSET(p[2], 1, 0, 0);
soup_add_face(&l, p[0], p[1], p[2], &t);
- VSET(p[0], 0, 0, -1); VSET(p[1], 0, 1, 0); VSET(p[2], 0, 0, 1);
soup_add_face(&r, p[0], p[1], p[2], &t);
-
- rval = split_face(&l, 0, &r, 0, &t);
- if (rval != 3 || l.nfaces != 2 || r.nfaces != 2) {
- printf("\033[1;31mFAILURE\033[m\n");
- count++;
- }
- {
- struct face_s f;
- int tri;
-#define ZORF(XVAL, ZVAL, LR, FU) VSET(f.vert[0], 0, 0, 0); VSET(f.vert[1], 0,
1, 0); VSET(f.vert[2], XVAL, 0, ZVAL); tri = find_tri(&LR, &f, &t); if (tri==-1
|| l.faces[tri].foo != FU) { count++; printf("\033[1;31mFAILURE\033[m\n"); }
- ZORF(1, 0, l, INSIDE);
- ZORF(-1, 0, l, OUTSIDE);
- ZORF(0, -1, r, OUTSIDE);
- ZORF(0, 1, r, INSIDE);
-#undef ZORF
- }
-
- /* TODO: add more cases */
-
- return count;
-}
-
-
-int test_invert()
-{
- return -1;
-}
-
-
-int test_compose()
-{
- int rval = 0;
- unsigned int i;
- union tree l, *r;
- struct soup_s ls, *rs;
- struct model lm, rm;
- struct nmgregion lnr, rnr;
- struct bn_tol t;
- point_t p[3];
-
- BN_TOL_INIT(&t);
- t.dist = 0.005;
- t.dist_sq = t.dist * t.dist;
-
- /* assembly tree linkages */
-#define PREP l.magic = RT_TREE_MAGIC; ls.magic = SOUP_MAGIC; lm.magic =
NMG_MODEL_MAGIC; lnr.m_p = &lm; ls.faces = NULL; ls.nfaces = ls.maxfaces = 0;
l.tr_d.td_r = &lnr; l.tr_d.td_r->m_p = (struct model *)&ls; BU_ALLOC(r, union
tree); BU_ALLOC(rs, struct soup_s); r->magic = RT_TREE_MAGIC; rs->magic =
SOUP_MAGIC; rm.magic = NMG_MODEL_MAGIC; rnr.m_p = &rm; rs->faces = NULL;
rs->nfaces = rs->maxfaces = 0; r->tr_d.td_r = &rnr; r->tr_d.td_r->m_p = (struct
model *)rs;
-
- /* test empty tree */
- PREP;
- compose(&l, r, 0, 0, 0); /* r is destroyed */
- if (ls.nfaces != 0) { printf("Erm, 0+0=%lu?\n", ls.nfaces); rval++; }
-
- /* test no moves, all deleted */
- PREP;
- VSET(p[0], 0, 0, 0); VSET(p[1], 0, 1, 0); VSET(p[0], 0, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 1, 0, 0); VSET(p[1], 1, 1, 0); VSET(p[0], 1, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 2, 0, 0); VSET(p[1], 2, 1, 0); VSET(p[0], 2, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- for (i=0;i<rs->nfaces;i++) rs->faces[i].foo = OUTSIDE;
- compose(&l, r, INSIDE, OUTSIDE, INSIDE);
- if (ls.nfaces != 0) { rval++; printf("Missing faces\n"); }
-
- /* test all moves, all kept */
- PREP;
- VSET(p[0], 0, 0, 0); VSET(p[1], 0, 1, 0); VSET(p[0], 0, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 1, 0, 0); VSET(p[1], 1, 1, 0); VSET(p[0], 1, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 2, 0, 0); VSET(p[1], 2, 1, 0); VSET(p[0], 2, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- for (i=0;i<rs->nfaces;i++) rs->faces[i].foo = OUTSIDE;
- compose(&l, r, INSIDE, OUTSIDE, OUTSIDE);
- if (ls.nfaces != 3) { rval++; printf("Missing faces\n"); }
-
- /* test partial moves */
- PREP;
- VSET(p[0], 0, 0, 0); VSET(p[1], 0, 1, 0); VSET(p[0], 0, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 1, 0, 0); VSET(p[1], 1, 1, 0); VSET(p[0], 1, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 2, 0, 0); VSET(p[1], 2, 1, 0); VSET(p[0], 2, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- rs->faces[0].foo = OUTSIDE;
- rs->faces[1].foo = INSIDE;
- rs->faces[2].foo = OUTSIDE;
- compose(&l, r, INSIDE, OUTSIDE, OUTSIDE);
- if (ls.nfaces != 2) { rval++; printf("Missing faces\n"); }
-
- PREP;
- VSET(p[0], 0, 0, 0); VSET(p[1], 0, 1, 0); VSET(p[0], 0, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 1, 0, 0); VSET(p[1], 1, 1, 0); VSET(p[0], 1, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- VSET(p[0], 2, 0, 0); VSET(p[1], 2, 1, 0); VSET(p[0], 2, 0, 1);
soup_add_face(rs, V3ARGS(p), &t);
- rs->faces[0].foo = OUTSIDE;
- rs->faces[1].foo = INSIDE;
- rs->faces[2].foo = OUTSIDE;
- compose(&l, r, INSIDE, OUTSIDE, INSIDE);
- if (ls.nfaces != 1) { rval++; printf("Missing faces\n"); }
-#undef PREP
- return rval;
-}
-
-
-int test_evaluate()
-{
- return -1;
-}
-
-
-int
-main(int UNUSED(argc), const char **argv)
-{
- bu_setprogname(argv[0]);
-#define TRY(STR, FNC) { int rval = FNC(); printf("RESULT:%18s: \033[1;", STR);
if (rval) printf("31m%d\033[m failures\n", rval); else
printf("32mOK\033[m\n"); }
- TRY("tri intersection", test_tri_intersections);
- TRY("single face split", test_face_split_single);
- TRY("face splitting", test_face_splits);
- TRY("invert", test_invert);
- TRY("compose", test_compose);
- TRY("evaluate", test_evaluate);
-#undef TRY
- return 0;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */
Modified: brlcad/branches/RELEASE/src/libged/put_comb/put_comb.c
===================================================================
--- brlcad/branches/RELEASE/src/libged/put_comb/put_comb.c 2020-09-04
20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/src/libged/put_comb/put_comb.c 2020-09-04
21:05:55 UTC (rev 77067)
@@ -472,7 +472,6 @@
ged_put_comb_core(struct ged *gedp, int argc, const char *argv[])
{
static const char *usage = "comb_name color shader inherit boolean_expr
is_region [ regionID airID materialID los% ]";
- static const char *noregionusage = "comb_name color shader inherit
boolean_expr n";
static const char *regionusage = "comb_name color shader inherit
boolean_expr y regionID airID materialID los%";
const char *cmd_name = argv[0];
@@ -561,12 +560,6 @@
comb->GIFTmater = atoi(argv[9]);
comb->los = atoi(argv[10]);
} else {
- if (argc != 7) {
- bu_vls_printf(gedp->ged_result_str, "region_flag not set, incorrect
number of arguments supplied.\n");
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", cmd_name,
noregionusage);
- return GED_ERROR;
- }
-
comb->region_flag = 0;
}
Modified: brlcad/branches/RELEASE/src/libtclcad/CMakeLists.txt
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/CMakeLists.txt 2020-09-04
20:52:45 UTC (rev 77066)
+++ brlcad/branches/RELEASE/src/libtclcad/CMakeLists.txt 2020-09-04
21:05:55 UTC (rev 77067)
@@ -2,18 +2,18 @@
auto_path.c
bn.c
bu.c
+ commands.c
cmdhist.c
dm.c
+ eval.c
fb.c
fbserv.c
+ global.c
+ init.c
+ mouse.c
+ polygons.c
rt.c
- tclcad_eval.c
- tclcad_global.c
- tclcad_init.c
- tclcad_mouse.c
- tclcad_obj.c
- tclcad_obj_wrapper.c
- tclcad_polygons.c
+ tkImgFmtPIX.c
view/arrows.c
view/autoview.c
view/axes.c
@@ -23,7 +23,7 @@
view/lines.c
view/refresh.c
view/util.c
- tkImgFmtPIX.c
+ wrapper.c
)
if (BRLCAD_ENABLE_TCL)
Modified: brlcad/branches/RELEASE/src/libtclcad/auto_path.c
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/auto_path.c 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libtclcad/auto_path.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -1,4 +1,4 @@
-/* T C L C A D A U T O P A T H . C
+/* A U T O _ P A T H . C
* BRL-CAD
*
* Copyright (c) 2004-2020 United States Government as represented by
@@ -18,7 +18,7 @@
* information.
*
*/
-/** @file libtclcad/tclcadAutoPath.c
+/**
*
* Locate the BRL-CAD tclscripts
*
Modified: brlcad/branches/RELEASE/src/libtclcad/bn.c
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/bn.c 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/src/libtclcad/bn.c 2020-09-04 21:05:55 UTC (rev
77067)
@@ -1,4 +1,4 @@
-/* B N _ F U N C S . C
+/* B N . C
* BRL-CAD
*
* Copyright (c) 2004-2020 United States Government as represented by
@@ -18,7 +18,7 @@
* information.
*
*/
-/** @file libtclcad/bn_funcs.c
+/**
*
* BRL-CAD's Tcl wrappers for libbn.
*
@@ -42,8 +42,9 @@
/* Private headers */
#include "brlcad_version.h"
-#include "tclcad_private.h"
+#include "./tclcad_private.h"
+
void
bn_quat_distance_wrapper(double *dp, mat_t q1, mat_t q2)
{
Modified: brlcad/branches/RELEASE/src/libtclcad/bu.c
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/bu.c 2020-09-04 20:52:45 UTC (rev
77066)
+++ brlcad/branches/RELEASE/src/libtclcad/bu.c 2020-09-04 21:05:55 UTC (rev
77067)
@@ -1,4 +1,4 @@
-/* B U _ F U N C S . C
+/* B U . C
* BRL-CAD
*
* Copyright (c) 2004-2020 United States Government as represented by
@@ -18,7 +18,7 @@
* information.
*
*/
-/** @file libtclcad/bu_funcs.c
+/**
*
* BRL-CAD's Tcl wrappers for libbu.
*
@@ -42,8 +42,9 @@
/* Private headers */
#include "brlcad_version.h"
-#include "tclcad_private.h"
+#include "./tclcad_private.h"
+
static int
lwrapper_func(ClientData data, Tcl_Interp *interp, int argc, const char
*argv[])
{
Modified: brlcad/branches/RELEASE/src/libtclcad/cmdhist.c
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/cmdhist.c 2020-09-04 20:52:45 UTC
(rev 77066)
+++ brlcad/branches/RELEASE/src/libtclcad/cmdhist.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -1,4 +1,4 @@
-/* C M D H I S T _ O B J . C
+/* C M D H I S T . C
* BRL-CAD
*
* Copyright (c) 1998-2020 United States Government as represented by
@@ -30,9 +30,10 @@
#include "bu/malloc.h"
#include "bu/str.h"
#include "tclcad.h"
-#include "tclcad_private.h"
+#include "./tclcad_private.h"
+
/* FIXME: this is apparently used by src/tclscripts/lib/Command.tcl so
* it needs to migrate elsewhere if mged/archer is to continue using
* it as it doesn't belong in libbu. if it can be fully decoupled
Copied: brlcad/branches/RELEASE/src/libtclcad/commands.c (from rev 77065,
brlcad/trunk/src/libtclcad/commands.c)
===================================================================
--- brlcad/branches/RELEASE/src/libtclcad/commands.c
(rev 0)
+++ brlcad/branches/RELEASE/src/libtclcad/commands.c 2020-09-04 21:05:55 UTC
(rev 77067)
@@ -0,0 +1,6540 @@
+/* T C L C A D _ O B J . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2000-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.
+ */
+/** @addtogroup libtclcad */
+/** @{ */
+/** @file libtclcad/tclcad_obj.c
+ *
+ * A quasi-object-oriented database interface.
+ *
+ * A GED object contains the attributes and methods for controlling a
+ * BRL-CAD geometry edit object.
+ *
+ */
+/** @} */
+
+#include "common.h"
+
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <math.h>
+#include <errno.h>
+#include <assert.h>
+
+#include "png.h"
+
+#include "tcl.h"
+#ifdef HAVE_TK
+# include "tk.h"
+#endif
+
+#include "bio.h"
+
+#include "bn.h"
+#include "bu/cmd.h"
+#include "bu/path.h"
+#include "bu/process.h"
+#include "bu/units.h"
+#include "vmath.h"
+#include "rt/db4.h"
+#include "rt/geom.h"
+#include "wdb.h"
+#include "raytrace.h"
+#include "ged.h"
+#include "tclcad.h"
+
+#include "rt/solid.h"
+#include "dm.h"
+#include "dm/bview_util.h"
+
+#include "icv/io.h"
+#include "icv/ops.h"
+#include "icv/crop.h"
+#include "dm.h"
+
+#if defined(HAVE_WINDOWS_H)
+# include <tkwinport.h>
+#endif
+#ifdef HAVE_GL_GL_H
+# include <GL/gl.h>
+#endif
+
+/* For the moment call internal libged functions - a cleaner
+ * solution will be needed eventually */
+#include "../libged/ged_private.h"
+
+/* Private headers */
+#include "brlcad_version.h"
+#include "./tclcad_private.h"
+#include "./view/view.h"
+
+
+HIDDEN int to_base2local(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bg(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bounds(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_configure(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_constrain_rmode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_constrain_tmode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_copy(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_data_move(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_data_move_func(struct ged *gedp,
+ struct bview *gdvp,
+ int argc,
+ const char *argv[],
+ const char *usage);
+HIDDEN int to_data_move_object_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_data_move_object_mode_func(struct ged *gedp,
+ struct bview *gdvp,
+ int argc,
+ const char *argv[],
+ const char *usage);
+HIDDEN int to_data_move_point_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_data_move_point_mode_func(struct ged *gedp,
+ struct bview *gdvp,
+ int argc,
+ const char *argv[],
+ const char *usage);
+HIDDEN int to_data_pick(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int
+to_data_pick_func(struct ged *gedp,
+ struct bview *gdvp,
+ int argc,
+ const char *argv[],
+ const char *usage);
+HIDDEN int to_data_vZ(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_dlist_on(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_edge_split(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_face_split(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_fontsize(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_fit_png_image(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_init_view_bindings(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_delete_view(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_handle_expose(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_hide_view(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_idle_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_light(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_list_views(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_local2base(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_lod(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_make(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_mirror(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_edit_motion_delta_callback(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_more_args_callback(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_move_arb_edge_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_move_arb_face_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_move_pnt(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_move_pnts(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_move_pnt_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_bot_move_pnts_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_metaball_move_pnt_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_pipe_move_pnt_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_move_pnt_common(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_new_view(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_orotate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_oscale_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_otranslate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_paint_rect_area(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+#ifdef HAVE_GL_GL_H
+HIDDEN int to_pix(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_png(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+#endif
+HIDDEN int to_rect_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_rotate_arb_face_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_rotate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_rt_end_callback(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_rt_gettrees(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_protate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_pscale_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_ptranslate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_data_scale_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_scale_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_screen2model(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_screen2view(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_set_coord(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_snap_view(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_translate_mode(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_transparency(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_view_callback(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_view_win_size(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_view2screen(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_vmake(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_vslew(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_zbuffer(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int to_zclip(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+
+/* Utility Functions */
+
+HIDDEN void to_create_vlist_callback_solid(struct solid *gdlp);
+HIDDEN void to_create_vlist_callback(struct display_list *gdlp);
+HIDDEN void to_destroy_vlist_callback(unsigned int dlist, int range);
+HIDDEN void to_rt_end_callback_internal(int aborted);
+
+HIDDEN void to_output_handler(struct ged *gedp, char *line);
+
+typedef int (*to_wrapper_func_ptr)(struct ged *, int, const char *[],
ged_func_ptr, const char *, int);
+#define TO_WRAPPER_FUNC_PTR_NULL (to_wrapper_func_ptr)0
+
+
+struct to_cmdtab {
+ char *to_name;
+ char *to_usage;
+ int to_maxargs;
+ to_wrapper_func_ptr to_wrapper_func;
+ ged_func_ptr to_func;
+};
+
+
+static struct to_cmdtab ged_cmds[] = {
+ {"3ptarb", (char *)0, TO_UNLIMITED, to_more_args_func, ged_3ptarb},
+ {"adc", "args", 7, to_view_func, ged_adc},
+ {"adjust", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_adjust},
+ {"ae2dir", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_ae2dir},
+ {"aet", "[[-i] az el [tw]]", 6, to_view_func_plus, ged_aet},
+ {"analyze", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_analyze},
+ {"annotate", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_annotate},
+ {"pipe_append_pnt", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_pipe_append_pnt},
+ {"arb", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_arb},
+ {"arced", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_arced},
+ {"arot", "x y z angle", 6, to_view_func_plus, ged_arot},
+ {"attr", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_attr},
+ {"bb", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_bb},
+ {"bev", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_bev},
+ {"bo", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_bo},
+ {"bot", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_bot},
+ {"bot_condense", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_condense},
+ {"bot_decimate", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_decimate},
+ {"bot_dump", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_dump},
+ {"bot_face_fuse", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_face_fuse},
+ {"bot_face_sort", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_face_sort},
+ {"bot_flip", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_flip},
+ {"bot_fuse", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_fuse},
+ {"bot_merge", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_merge},
+ {"bot_smooth", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_smooth},
+ {"bot_split", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_split},
+ {"bot_sync", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_sync},
+ {"bot_vertex_fuse", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_bot_vertex_fuse},
+ {"brep", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_brep},
+ {"c", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_comb_std},
+ {"cat", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_cat},
+ {"center", "[x y z]", 5, to_view_func_plus, ged_center},
+ {"check", (char *)0, TO_UNLIMITED, to_view_func, ged_check},
+ {"clear", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_zap},
+ {"clone", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_clone},
+ {"coil", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_coil},
+ {"color", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_color},
+ {"comb", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_comb},
+ {"comb_color", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_comb_color},
+ {"combmem", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_combmem},
+ {"constraint", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_constraint},
+ {"copyeval", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_copyeval},
+ {"copymat", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_copymat},
+ {"cpi", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_cpi},
+ {"d", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_erase},
+ {"dbconcat", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_concat},
+ {"dbfind", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_find},
+ {"dbip", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_dbip},
+ {"dbot_dump", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_dbot_dump},
+ {"debug", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_debug},
+ {"debugbu", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_debugbu},
+ {"debugdir", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_debugdir},
+ {"debuglib", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_debuglib},
+ {"debugnmg", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_debugnmg},
+ {"decompose", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_decompose},
+ {"delay", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_delay},
+ {"metaball_delete_pnt", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_metaball_delete_pnt},
+ {"pipe_delete_pnt", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_pipe_delete_pnt},
+ {"dir2ae", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_dir2ae},
+ {"draw", (char *)0, TO_UNLIMITED, to_autoview_func, ged_draw},
+ {"dump", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_dump},
+ {"dup", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_dup},
+ {"E", (char *)0, TO_UNLIMITED, to_autoview_func, ged_E},
+ {"e", (char *)0, TO_UNLIMITED, to_autoview_func, ged_draw},
+ {"eac", (char *)0, TO_UNLIMITED, to_autoview_func, ged_eac},
+ {"echo", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_echo},
+ {"edarb", (char *)0, TO_UNLIMITED, to_more_args_func, ged_edarb},
+ {"edcodes", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_edcodes},
+ {"edcolor", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_edcolor},
+ {"edcomb", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_edcomb},
+ {"edit", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_edit},
+ {"edmater", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_edmater},
+ {"env", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_env},
+ {"erase", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_erase},
+ {"ev", (char *)0, TO_UNLIMITED, to_autoview_func, ged_ev},
+ {"expand", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_expand},
+ {"eye", "[x y z]", 5, to_view_func_plus, ged_eye},
+ {"eye_pos", "[x y z]", 5, to_view_func_plus, ged_eye_pos},
+ {"eye_pt", "[x y z]", 5, to_view_func_plus, ged_eye},
+ {"exists", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_exists},
+ {"facetize", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_facetize},
+ {"voxelize", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_voxelize},
+ {"fb2pix", "[-h -i -c] [-s squaresize] [-w width] [-n height]
[file.pix]", TO_UNLIMITED, to_view_func, ged_fb2pix},
+ {"fbclear", "[r g b]", TO_UNLIMITED, to_view_func, ged_fbclear},
+ {"find_arb_edge", "arb vx vy ptol", 5, to_view_func,
ged_find_arb_edge_nearest_pnt},
+ {"find_bot_edge", "bot vx vy", 5, to_view_func,
ged_find_bot_edge_nearest_pnt},
+ {"find_bot_pnt", "bot vx vy", 5, to_view_func,
ged_find_bot_pnt_nearest_pnt},
+ {"find_pipe_pnt", "pipe x y z", 6, to_view_func,
ged_find_pipe_pnt_nearest_pnt},
+ {"form", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_form},
+ {"fracture", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_fracture},
+ {"g", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_group},
+ {"gdiff", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_gdiff},
+ {"get", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_get},
+ {"get_autoview", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_get_autoview},
+ {"get_bot_edges", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_get_bot_edges},
+ {"get_comb", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_get_comb},
+ {"get_eyemodel", "vname", 2, to_view_func, ged_get_eyemodel},
+ {"get_type", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_get_type},
+ {"glob", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_glob},
+ {"gqa", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_gqa},
+ {"graph", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_graph},
+ {"grid", "args", 6, to_view_func, ged_grid},
+ {"grid2model_lu", "x y", 4, to_view_func_less, ged_grid2model_lu},
+ {"grid2view_lu", "x y", 4, to_view_func_less, ged_grid2view_lu},
+ {"heal", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_heal},
+ {"hide", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_hide},
+ {"how", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_how},
+ {"human", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_human},
+ {"i", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_instance},
+ {"idents", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tables},
+ {"illum", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_illum},
+ {"importFg4Section", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_importFg4Section},
+ {"in", (char *)0, TO_UNLIMITED, to_more_args_func, ged_in},
+ {"inside", (char *)0, TO_UNLIMITED, to_more_args_func, ged_inside},
+ {"isize", "vname", 2, to_view_func, ged_isize},
+ {"item", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_item},
+ {"joint", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_joint},
+ {"joint2", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_joint2},
+ {"keep", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_keep},
+ {"keypoint", "[x y z]", 5, to_view_func, ged_keypoint},
+ {"kill", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_kill},
+ {"killall", (char *)0, TO_UNLIMITED,
to_pass_through_and_refresh_func, ged_killall},
+ {"killrefs", (char *)0, TO_UNLIMITED,
to_pass_through_and_refresh_func, ged_killrefs},
+ {"killtree", (char *)0, TO_UNLIMITED,
to_pass_through_and_refresh_func, ged_killtree},
+ {"l", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_list},
+ {"lc", "[-d|-s|-r] [-z] [-0|-1|-2|-3|-4|-5] [-f {FileName}]
{GroupName}", TO_UNLIMITED, to_pass_through_func, ged_lc},
+ {"listeval", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_pathsum},
+ {"loadview", "filename", 3, to_view_func, ged_loadview},
+ {"lod", (char *)0, TO_UNLIMITED, to_lod, ged_lod},
+ {"log", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_log},
+ {"lookat", "x y z", 5, to_view_func_plus, ged_lookat},
+ {"ls", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_ls},
+ {"lt", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_lt},
+ {"m2v_point", "x y z", 5, to_view_func, ged_m2v_point},
+ {"make_name", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_make_name},
+ {"make_pnts", (char *)0, TO_UNLIMITED, to_more_args_func,
ged_make_pnts},
+ {"mat4x3pnt", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_mat4x3pnt},
+ {"match", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_match},
+ {"mater", (char *)0, TO_UNLIMITED, to_more_args_func, ged_mater},
+ {"model2grid_lu", "x y z", 5, to_view_func_less, ged_model2grid_lu},
+ {"model2view", "vname", 2, to_view_func, ged_model2view},
+ {"model2view_lu", "x y z", 5, to_view_func_less, ged_model2view_lu},
+ {"move_arb_edge", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_move_arb_edge},
+ {"move_arb_face", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_move_arb_face},
+ {"metaball_move_pnt", (char *)0, TO_UNLIMITED, to_move_pnt_common,
ged_metaball_move_pnt},
+ {"pipe_move_pnt", (char *)0, TO_UNLIMITED, to_move_pnt_common,
ged_pipe_move_pnt},
+ {"mouse_add_metaball_pnt", "obj mx my", TO_UNLIMITED,
to_mouse_append_pnt_common, ged_metaball_add_pnt},
+ {"mouse_append_pipe_pnt", "obj mx my", TO_UNLIMITED,
to_mouse_append_pnt_common, ged_pipe_append_pnt},
+ {"mouse_move_metaball_pnt", "obj i mx my", TO_UNLIMITED,
to_mouse_move_pnt_common, ged_metaball_move_pnt},
+ {"mouse_move_pipe_pnt", "obj i mx my", TO_UNLIMITED,
to_mouse_move_pnt_common, ged_pipe_move_pnt},
+ {"mouse_prepend_pipe_pnt", "obj mx my", TO_UNLIMITED,
to_mouse_append_pnt_common, ged_pipe_prepend_pnt},
+ {"mv", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_move},
+ {"mvall", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_move_all},
+ {"nirt", "[args]", TO_UNLIMITED, to_view_func, ged_nirt},
+ {"nmg_collapse", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_nmg_collapse},
+ {"nmg_fix_normals", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_nmg_fix_normals},
+ {"nmg_simplify", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_nmg_simplify},
+ {"ocenter", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_ocenter},
+ {"open", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_reopen},
+ {"orient", "quat", 6, to_view_func_plus, ged_orient},
+ {"orientation", "quat", 6, to_view_func_plus, ged_orient},
+ {"orotate", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_orotate},
+ {"oscale", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_oscale},
+ {"otranslate", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_otranslate},
+ {"overlay", (char *)0, TO_UNLIMITED, to_autoview_func, ged_overlay},
+ {"pathlist", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_pathlist},
+ {"paths", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_pathsum},
+ {"perspective", "[angle]", 3, to_view_func_plus, ged_perspective},
+ {"pix2fb", "[options] [file.pix]", TO_UNLIMITED, to_view_func,
ged_pix2fb},
+ {"plot", "[options] file.pl", 16, to_view_func, ged_plot},
+ {"pmat", "[mat]", 3, to_view_func, ged_pmat},
+ {"pmodel2view", "vname", 2, to_view_func, ged_pmodel2view},
+ {"png2fb", "[options] [file.png]", TO_UNLIMITED, to_view_func,
ged_png2fb},
+ {"pngwf", "[options] file.png", 16, to_view_func, ged_png},
+ {"prcolor", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_prcolor},
+ {"prefix", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_prefix},
+ {"pipe_prepend_pnt", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_pipe_prepend_pnt},
+ {"preview", "[options] script", TO_UNLIMITED, to_dm_func,
ged_preview},
+ {"protate", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_protate},
+ {"postscript", "[options] file.ps", 16, to_view_func, ged_ps},
+ {"pscale", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_pscale},
+ {"pset", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_pset},
+ {"ptranslate", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_ptranslate},
+ {"push", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_push},
+ {"put", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_put},
+ {"put_comb", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_put_comb},
+ {"putmat", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_putmat},
+ {"qray", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_qray},
+ {"quat", "a b c d", 6, to_view_func_plus, ged_quat},
+ {"qvrot", "x y z angle", 6, to_view_func_plus, ged_qvrot},
+ {"r", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_region},
+ {"rcodes", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_rcodes},
+ {"rect", "args", 6, to_view_func, ged_rect},
+ {"red", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_red},
+ {"regdef", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_regdef},
+ {"regions", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_tables},
+ {"solid_report", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_solid_report},
+ {"rfarb", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_rfarb},
+ {"rm", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_remove},
+ {"rmap", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_rmap},
+ {"rmat", "[mat]", 3, to_view_func, ged_rmat},
+ {"rmater", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_rmater},
+ {"rot", "[-m|-v] x y z", 6, to_view_func_plus, ged_rot},
+ {"rot_about", "[e|k|m|v]", 3, to_view_func, ged_rotate_about},
+ {"rot_point", "x y z", 5, to_view_func, ged_rot_point},
+ {"rotate_arb_face", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_rotate_arb_face},
+ {"rrt", "[args]", TO_UNLIMITED, to_view_func, ged_rrt},
+ {"rselect", (char *)0, TO_UNLIMITED, to_view_func,
ged_rselect},
+ {"rt", "[args]", TO_UNLIMITED, to_view_func, ged_rt},
+ {"rtabort", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_rtabort},
+ {"rtarea", "[args]", TO_UNLIMITED, to_view_func, ged_rt},
+ {"rtcheck", "[args]", TO_UNLIMITED, to_view_func, ged_rtcheck},
+ {"rtedge", "[args]", TO_UNLIMITED, to_view_func, ged_rt},
+ {"rtweight", "[args]", TO_UNLIMITED, to_view_func, ged_rt},
+ {"rtwizard", "[args]", TO_UNLIMITED, to_view_func, ged_rtwizard},
+ {"savekey", "filename", 3, to_view_func, ged_savekey},
+ {"saveview", (char *)0, TO_UNLIMITED, to_view_func, ged_saveview},
+ {"sca", "sf", 3, to_view_func_plus, ged_scale},
+ {"screengrab", "imagename.ext", TO_UNLIMITED, to_dm_func,
ged_screen_grab},
+ {"search", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_search},
+ {"select", (char *)0, TO_UNLIMITED, to_view_func, ged_select},
+ {"set_output_script", "[script]", TO_UNLIMITED, to_pass_through_func,
ged_set_output_script},
+ {"set_transparency", (char *)0, TO_UNLIMITED,
to_pass_through_and_refresh_func, ged_set_transparency},
+ {"set_uplotOutputMode", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_set_uplotOutputMode},
+ {"setview", "x y z", 5, to_view_func_plus, ged_setview},
+ {"shaded_mode", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_shaded_mode},
+ {"shader", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_shader},
+ {"shells", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_shells},
+ {"showmats", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_showmats},
+ {"size", "[size]", 3, to_view_func_plus, ged_size},
+ {"slew", "x y [z]", 5, to_view_func_plus, ged_slew},
+ {"solids", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tables},
+ {"solids_on_ray", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_solids_on_ray},
+ {"summary", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_summary},
+ {"sv", "x y [z]", 5, to_view_func_plus, ged_slew},
+ {"sync", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_sync},
+ {"t", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_ls},
+ {"tire", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tire},
+ {"title", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_title},
+ {"tol", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tol},
+ {"tops", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tops},
+ {"tra", "[-m|-v] x y z", 6, to_view_func_plus, ged_tra},
+ {"track", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_track},
+ {"tree", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_tree},
+ {"unhide", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_unhide},
+ {"units", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_units},
+ {"v2m_point", "x y z", 5, to_view_func, ged_v2m_point},
+ {"vdraw", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_vdraw},
+ {"version", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_version},
+ {"view", "quat|ypr|aet|center|eye|size [args]", 7, to_view_func_plus,
ged_view_func},
+ {"view2grid_lu", "x y z", 5, to_view_func_less, ged_view2grid_lu},
+ {"view2model", "", 2, to_view_func_less, ged_view2model},
+ {"view2model_lu", "x y z", 5, to_view_func_less, ged_view2model_lu},
+ {"view2model_vec", "x y z", 5, to_view_func_less, ged_view2model_vec},
+ {"viewdir", "[-i]", 3, to_view_func_less, ged_viewdir},
+ {"vnirt", "[args]", TO_UNLIMITED, to_view_func, ged_vnirt},
+ {"wcodes", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_wcodes},
+ {"whatid", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_whatid},
+ {"which_shader", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_which_shader},
+ {"whichair", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_which},
+ {"whichid", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_which},
+ {"who", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_who},
+ {"wmater", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_wmater},
+ {"x", (char *)0, TO_UNLIMITED, to_pass_through_func,
ged_solid_report},
+ {"xpush", (char *)0, TO_UNLIMITED, to_pass_through_func, ged_xpush},
+ {"ypr", "yaw pitch roll", 5, to_view_func_plus, ged_ypr},
+ {"zap", (char *)0, TO_UNLIMITED, to_pass_through_and_refresh_func,
ged_zap},
+ {"zoom", "sf", 3, to_view_func_plus, ged_zoom},
+ {(char *)0, (char *)0, 0, TO_WRAPPER_FUNC_PTR_NULL,
GED_FUNC_PTR_NULL}
+};
+
+
+static struct to_cmdtab to_cmds[] = {
+ {"autoview", "vname", TO_UNLIMITED, to_autoview, GED_FUNC_PTR_NULL},
+ {"base2local", (char *)0, TO_UNLIMITED, to_base2local,
GED_FUNC_PTR_NULL},
+ {"bg", "[r g b]", TO_UNLIMITED, to_bg, GED_FUNC_PTR_NULL},
+ {"blast", (char *)0, TO_UNLIMITED, to_blast, GED_FUNC_PTR_NULL},
+ {"bot_edge_split", "bot face", TO_UNLIMITED, to_bot_edge_split,
GED_FUNC_PTR_NULL},
+ {"bot_face_split", "bot face", TO_UNLIMITED, to_bot_face_split,
GED_FUNC_PTR_NULL},
+ {"bounds", "[\"minX maxX minY maxY minZ maxZ\"]", TO_UNLIMITED, to_bounds,
GED_FUNC_PTR_NULL},
+ {"configure", "vname", TO_UNLIMITED, to_configure, GED_FUNC_PTR_NULL},
+ {"constrain_rmode", "x|y|z x y", TO_UNLIMITED, to_constrain_rmode,
GED_FUNC_PTR_NULL},
+ {"constrain_tmode", "x|y|z x y", TO_UNLIMITED, to_constrain_tmode,
GED_FUNC_PTR_NULL},
+ {"cp", "[-f] from to", TO_UNLIMITED, to_copy, GED_FUNC_PTR_NULL},
+ {"data_arrows", "???", TO_UNLIMITED, to_data_arrows, GED_FUNC_PTR_NULL},
+ {"data_axes", "???", TO_UNLIMITED, to_data_axes, GED_FUNC_PTR_NULL},
+ {"data_labels", "???", TO_UNLIMITED, to_data_labels, GED_FUNC_PTR_NULL},
+ {"data_lines", "???", TO_UNLIMITED, to_data_lines, GED_FUNC_PTR_NULL},
+ {"data_polygons", "???", TO_UNLIMITED, to_data_polygons,
GED_FUNC_PTR_NULL},
+ {"data_move", "???", TO_UNLIMITED, to_data_move, GED_FUNC_PTR_NULL},
+ {"data_move_object_mode", "x y", TO_UNLIMITED, to_data_move_object_mode,
GED_FUNC_PTR_NULL},
+ {"data_move_point_mode", "x y", TO_UNLIMITED, to_data_move_point_mode,
GED_FUNC_PTR_NULL},
+ {"data_pick", "???", TO_UNLIMITED, to_data_pick, GED_FUNC_PTR_NULL},
+ {"data_scale_mode", "x y", TO_UNLIMITED, to_data_scale_mode,
GED_FUNC_PTR_NULL},
+ {"data_vZ", "[z]", TO_UNLIMITED, to_data_vZ, GED_FUNC_PTR_NULL},
+ {"delete_view", "vname", TO_UNLIMITED, to_delete_view,
GED_FUNC_PTR_NULL},
+ {"dlist_on", "[0|1]", TO_UNLIMITED, to_dlist_on, GED_FUNC_PTR_NULL},
+ {"faceplate", "center_dot|prim_labels|view_params|view_scale
color|draw [val(s)]", TO_UNLIMITED, to_faceplate, GED_FUNC_PTR_NULL},
+ {"fit_png_image", "image_file_in req_width req_height scale
image_file_out", 6, to_fit_png_image, GED_FUNC_PTR_NULL},
+ {"fontsize", "[fontsize]", 3, to_fontsize, GED_FUNC_PTR_NULL},
+ {"get_prev_mouse", "vname", TO_UNLIMITED, to_get_prev_mouse,
GED_FUNC_PTR_NULL},
+ {"handle_expose", "vname count", TO_UNLIMITED, to_handle_expose,
GED_FUNC_PTR_NULL},
+ {"hide_view", "vname [0|1]", 3, to_hide_view, GED_FUNC_PTR_NULL},
+ {"idle_mode", "vname", TO_UNLIMITED, to_idle_mode, GED_FUNC_PTR_NULL},
+ {"init_view_bindings", "vname", TO_UNLIMITED, to_init_view_bindings,
GED_FUNC_PTR_NULL},
+ {"light", "[0|1]", TO_UNLIMITED, to_light, GED_FUNC_PTR_NULL},
+ {"list_views", (char *)0, TO_UNLIMITED, to_list_views,
GED_FUNC_PTR_NULL},
+ {"listen", "[port]", TO_UNLIMITED, to_listen, GED_FUNC_PTR_NULL},
+ {"local2base", (char *)0, TO_UNLIMITED, to_local2base,
GED_FUNC_PTR_NULL},
+ {"make", (char *)0, TO_UNLIMITED, to_make, GED_FUNC_PTR_NULL},
+ {"mirror", (char *)0, TO_UNLIMITED, to_mirror, GED_FUNC_PTR_NULL},
@@ 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