Revision: 76415
http://sourceforge.net/p/brlcad/code/76415
Author: starseeker
Date: 2020-07-22 14:18:04 +0000 (Wed, 22 Jul 2020)
Log Message:
-----------
Work on fixing distcheck
Modified Paths:
--------------
brlcad/branches/gedplugins/src/libged/3ptarb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/adc/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/adjust/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/ae2dir/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/analyze/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/annotate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/arb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/arced/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/arot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/attr/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/autoview/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/bb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/bev/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/bigE/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/blast/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/bo/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/bot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/brep/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/cat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/cc/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/check/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/clone/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/coil/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/color/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/comb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/comb_color/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/comb_std/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/combmem/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/concat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/constraint/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/copy/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/copyeval/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/copymat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/cpi/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dag/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dbip/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/debug/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/debugbu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/debugdir/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/debuglib/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/debugnmg/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/decompose/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/delay/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dir2ae/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/draw/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dsp/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dump/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/dup/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/eac/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/echo/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/edarb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/edcodes/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/edcomb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/edit/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/editit/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/edmater/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/env/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/erase/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/exists/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/expand/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/eye_pos/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/facetize/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/fb2pix/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/fbclear/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/find/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/form/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/fracture/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/gdiff/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/get/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/get_autoview/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/get_comb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/get_eyemodel/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/get_type/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/glob/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/gqa/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/grid/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/grid2model_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/grid2view_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/group/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/heal/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/help/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/hide/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/how/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/human/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/illum/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/importFg4Section/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/inside/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/instance/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/isize/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/item/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/joint/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/joint2/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/keep/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/keypoint/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/kill/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/killall/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/killrefs/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/killtree/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/label/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/lc/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/lint/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/list/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/lod/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/log/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/lookat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/ls/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/lt/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/m2v_point/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/make/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/make_name/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/match/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/mater/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/mirror/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/model2grid_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/model2view/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/model2view_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/move/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/move_all/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/move_arb_edge/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/move_arb_face/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/mrot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/nirt/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/nmg/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/ocenter/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/open/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/orient/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/orotate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/oscale/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/otranslate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/overlay/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pathlist/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pathsum/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/perspective/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pix2fb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/plot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pmat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pmodel2view/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/png/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/png2fb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pnts/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/prcolor/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/prefix/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/process/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/protate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/ps/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pscale/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pset/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/ptranslate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/pull/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/push/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/put/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/put_comb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/putmat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/qray/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/qvrot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rcodes/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rect/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/red/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/regdef/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/region/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/remove/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rfarb/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rmap/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rmat/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rmater/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rot_point/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rrt/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rt/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rtabort/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rtcheck/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/rtwizard/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/savekey/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/saveview/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/scale/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/screengrab/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/search/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/select/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/set_output_script/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/set_transparency/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/set_uplotOutputMode/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/setview/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/shaded_mode/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/shader/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/shells/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/showmats/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/simulate/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/slew/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/solid_report/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/solids_on_ray/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/sphgroup/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/summary/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/sync/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tables/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tire/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/title/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tol/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tops/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tra/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/track/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/tree/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/typein/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/unhide/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/units/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/v2m_point/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/vdraw/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/version/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/view/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/view2grid_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/view2model/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/view2model_lu/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/view2model_vec/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/viewdir/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/voxelize/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/vrot/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/wcodes/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/whatid/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/which/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/which_shader/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/who/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/wmater/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/xpush/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/zap/CMakeLists.txt
brlcad/branches/gedplugins/src/libged/zoom/CMakeLists.txt
Added Paths:
-----------
brlcad/branches/gedplugins/src/libged/edbot.c
brlcad/branches/gedplugins/src/libged/edit_metaball.c
brlcad/branches/gedplugins/src/libged/edpipe.c
brlcad/branches/gedplugins/src/libged/facedef.c
Removed Paths:
-------------
brlcad/branches/gedplugins/src/libged/edbot/
brlcad/branches/gedplugins/src/libged/edit_metaball/
brlcad/branches/gedplugins/src/libged/edpipe/
brlcad/branches/gedplugins/src/libged/facedef/
Modified: brlcad/branches/gedplugins/src/libged/3ptarb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/3ptarb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/3ptarb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-3ptarb 3ptarb.c)
PLUGIN_SETUP(ged-3ptarb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ 3ptarb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -54,10 +54,10 @@
columns.c
display_list.c
draw_calc.cpp
- edbot/edbot.c
- edit_metaball/edit_metaball.c
- edpipe/edpipe.c
- facedef/facedef.c
+ edbot.c
+ edit_metaball.c
+ edpipe.c
+ facedef.c
ged.c
ged_util.c
get_obj_bounds.c
Modified: brlcad/branches/gedplugins/src/libged/adc/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/adc/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/adc/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-adc adc.c)
PLUGIN_SETUP(ged-adc ged)
+CMAKEFILES(
+ CMakeLists.txt
+ adc.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/adjust/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/adjust/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/adjust/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-adjust adjust.c)
PLUGIN_SETUP(ged-adjust ged)
+CMAKEFILES(
+ CMakeLists.txt
+ adjust.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/ae2dir/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/ae2dir/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/ae2dir/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-ae2dir ae2dir.c)
PLUGIN_SETUP(ged-ae2dir ged)
+CMAKEFILES(
+ CMakeLists.txt
+ ae2dir.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/analyze/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/analyze/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/analyze/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-analyze analyze.c)
PLUGIN_SETUP(ged-analyze ged)
+CMAKEFILES(
+ CMakeLists.txt
+ analyze.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/annotate/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/annotate/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/annotate/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-annotate annotate.c)
PLUGIN_SETUP(ged-annotate ged)
+CMAKEFILES(
+ CMakeLists.txt
+ annotate.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/arb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/arb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/arb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-arb arb.c)
PLUGIN_SETUP(ged-arb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ arb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/arced/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/arced/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/arced/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-arced arced.c)
PLUGIN_SETUP(ged-arced ged)
+CMAKEFILES(
+ CMakeLists.txt
+ arced.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/arot/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/arot/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/arot/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-arot arot.c)
PLUGIN_SETUP(ged-arot ged)
+CMAKEFILES(
+ CMakeLists.txt
+ arot.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/attr/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/attr/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/attr/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-attr attr.cpp)
PLUGIN_SETUP(ged-attr ged)
+CMAKEFILES(
+ CMakeLists.txt
+ attr.cpp
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/autoview/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/autoview/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/autoview/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-autoview autoview.c)
PLUGIN_SETUP(ged-autoview ged)
+CMAKEFILES(
+ CMakeLists.txt
+ autoview.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/bb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/bb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/bb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-bb bb.c)
PLUGIN_SETUP(ged-bb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ bb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/bev/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/bev/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/bev/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-bev bev.c)
PLUGIN_SETUP(ged-bev ged)
+CMAKEFILES(
+ CMakeLists.txt
+ bev.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/bigE/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/bigE/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/bigE/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-bigE bigE.c)
PLUGIN_SETUP(ged-bigE ged)
+CMAKEFILES(
+ CMakeLists.txt
+ bigE.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/blast/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/blast/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/blast/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-blast blast.c)
PLUGIN_SETUP(ged-blast ged)
+CMAKEFILES(
+ CMakeLists.txt
+ blast.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/bo/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/bo/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/bo/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-bo bo.c)
PLUGIN_SETUP(ged-bo ged)
+CMAKEFILES(
+ CMakeLists.txt
+ bo.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/bot/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/bot/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/bot/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -32,6 +32,11 @@
VALIDATE_STYLE(ged-bot ${BOT_SRCS})
PLUGIN_SETUP(ged-bot ged)
+CMAKEFILES(
+ CMakeLists.txt
+ ${BOT_SRCS}
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/brep/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/brep/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/brep/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -7,16 +7,16 @@
)
set(BREP_SRCS
- brep.cpp
- conversion.cpp
- csg.cpp
- info.cpp
- intersect.cpp
- pick.cpp
- plot.cpp
- tikz.cpp
- valid.cpp
- )
+ brep.cpp
+ conversion.cpp
+ csg.cpp
+ info.cpp
+ intersect.cpp
+ pick.cpp
+ plot.cpp
+ tikz.cpp
+ valid.cpp
+ )
add_definitions(-DGED_PLUGIN)
add_library(ged-brep SHARED ${BREP_SRCS})
@@ -25,6 +25,11 @@
VALIDATE_STYLE(ged-brep ${BREP_SRCS})
PLUGIN_SETUP(ged-brep ged)
+CMAKEFILES(
+ CMakeLists.txt
+ ${BREP_SRCS}
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/cat/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/cat/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/cat/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-cat cat.c)
PLUGIN_SETUP(ged-cat ged)
+CMAKEFILES(
+ CMakeLists.txt
+ cat.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/cc/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/cc/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/cc/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-cc cc.c)
PLUGIN_SETUP(ged-cc ged)
+CMAKEFILES(
+ CMakeLists.txt
+ cc.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/check/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/check/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/check/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -27,6 +27,11 @@
VALIDATE_STYLE(ged-check ${CHECK_SRCS})
PLUGIN_SETUP(ged-check ged)
+CMAKEFILES(
+ CMakeLists.txt
+ ${CHECK_SRCS}
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/clone/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/clone/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/clone/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-clone clone.c)
PLUGIN_SETUP(ged-clone ged)
+CMAKEFILES(
+ CMakeLists.txt
+ clone.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/coil/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/coil/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/coil/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-coil coil.c)
PLUGIN_SETUP(ged-coil ged)
+CMAKEFILES(
+ CMakeLists.txt
+ coil.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/color/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/color/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/color/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-color color.c)
PLUGIN_SETUP(ged-color ged)
+CMAKEFILES(
+ CMakeLists.txt
+ color.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/comb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/comb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/comb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-comb comb.c)
PLUGIN_SETUP(ged-comb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ comb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/comb_color/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/comb_color/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/comb_color/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-comb_color comb_color.c)
PLUGIN_SETUP(ged-comb_color ged)
+CMAKEFILES(
+ CMakeLists.txt
+ comb_color.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/comb_std/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/comb_std/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/comb_std/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-comb_std comb_std.c)
PLUGIN_SETUP(ged-comb_std ged)
+CMAKEFILES(
+ CMakeLists.txt
+ comb_std.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/combmem/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/combmem/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/combmem/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-combmem combmem.c)
PLUGIN_SETUP(ged-combmem ged)
+CMAKEFILES(
+ CMakeLists.txt
+ combmem.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/concat/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/concat/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/concat/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-concat concat.cpp)
PLUGIN_SETUP(ged-concat ged)
+CMAKEFILES(
+ CMakeLists.txt
+ concat.cpp
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/constraint/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/constraint/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/constraint/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-constraint constraint.c)
PLUGIN_SETUP(ged-constraint ged)
+CMAKEFILES(
+ CMakeLists.txt
+ constraint.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/copy/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/copy/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/copy/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-copy copy.c)
PLUGIN_SETUP(ged-copy ged)
+CMAKEFILES(
+ CMakeLists.txt
+ copy.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/copyeval/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/copyeval/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/copyeval/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-copyeval copyeval.c)
PLUGIN_SETUP(ged-copyeval ged)
+CMAKEFILES(
+ CMakeLists.txt
+ copyeval.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/copymat/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/copymat/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/copymat/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-copymat copymat.c)
PLUGIN_SETUP(ged-copymat ged)
+CMAKEFILES(
+ CMakeLists.txt
+ copymat.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/cpi/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/cpi/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/cpi/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-cpi cpi.c)
PLUGIN_SETUP(ged-cpi ged)
+CMAKEFILES(
+ CMakeLists.txt
+ cpi.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dag/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dag/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dag/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dag dag.cpp)
PLUGIN_SETUP(ged-dag ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dag.cpp
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dbip/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dbip/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dbip/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dbip dbip.c)
PLUGIN_SETUP(ged-dbip ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dbip.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/debug/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/debug/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/debug/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-debug debug.cpp)
PLUGIN_SETUP(ged-debug ged)
+CMAKEFILES(
+ CMakeLists.txt
+ debug.cpp
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/debugbu/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/debugbu/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/debugbu/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-debugbu debugbu.c)
PLUGIN_SETUP(ged-debugbu ged)
+CMAKEFILES(
+ CMakeLists.txt
+ debugbu.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/debugdir/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/debugdir/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/debugdir/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-debugdir debugdir.c)
PLUGIN_SETUP(ged-debugdir ged)
+CMAKEFILES(
+ CMakeLists.txt
+ debugdir.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/debuglib/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/debuglib/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/debuglib/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-debuglib debuglib.c)
PLUGIN_SETUP(ged-debuglib ged)
+CMAKEFILES(
+ CMakeLists.txt
+ debuglib.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/debugnmg/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/debugnmg/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/debugnmg/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-debugnmg debugnmg.c)
PLUGIN_SETUP(ged-debugnmg ged)
+CMAKEFILES(
+ CMakeLists.txt
+ debugnmg.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/decompose/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/decompose/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/decompose/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-decompose decompose.c)
PLUGIN_SETUP(ged-decompose ged)
+CMAKEFILES(
+ CMakeLists.txt
+ decompose.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/delay/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/delay/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/delay/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-delay delay.c)
PLUGIN_SETUP(ged-delay ged)
+CMAKEFILES(
+ CMakeLists.txt
+ delay.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dir2ae/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dir2ae/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dir2ae/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dir2ae dir2ae.c)
PLUGIN_SETUP(ged-dir2ae ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dir2ae.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/draw/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/draw/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/draw/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -19,6 +19,11 @@
VALIDATE_STYLE(ged-draw ${DRAW_SRCS})
PLUGIN_SETUP(ged-draw ged)
+CMAKEFILES(
+ CMakeLists.txt
+ ${DRAW_SRCS}
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dsp/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dsp/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dsp/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dsp dsp.c)
PLUGIN_SETUP(ged-dsp ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dsp.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dump/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dump/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dump/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dump dump.c)
PLUGIN_SETUP(ged-dump ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dump.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/dup/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/dup/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/dup/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-dup dup.c)
PLUGIN_SETUP(ged-dup ged)
+CMAKEFILES(
+ CMakeLists.txt
+ dup.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/eac/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/eac/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/eac/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-eac eac.c)
PLUGIN_SETUP(ged-eac ged)
+CMAKEFILES(
+ CMakeLists.txt
+ eac.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/echo/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/echo/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/echo/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-echo echo.c)
PLUGIN_SETUP(ged-echo ged)
+CMAKEFILES(
+ CMakeLists.txt
+ echo.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/edarb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/edarb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/edarb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-edarb edarb.c)
PLUGIN_SETUP(ged-edarb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ edarb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Copied: brlcad/branches/gedplugins/src/libged/edbot.c (from rev 76414,
brlcad/branches/gedplugins/src/libged/edbot/edbot.c)
===================================================================
--- brlcad/branches/gedplugins/src/libged/edbot.c
(rev 0)
+++ brlcad/branches/gedplugins/src/libged/edbot.c 2020-07-22 14:18:04 UTC
(rev 76415)
@@ -0,0 +1,769 @@
+/* E D B O T . C
+ * BRL-CAD
+ *
+ * Copyright (c) 1995-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/edbot.c
+ *
+ */
+
+#include "common.h"
+
+#include <math.h>
+#include <string.h>
+
+#include "vmath.h"
+#include "nmg.h"
+#include "rt/geom.h"
+#include "ged.h"
+#include "wdb.h"
+
+#include "./ged_private.h"
+
+int
+ged_bot_edge_split(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot edge";
+ struct directory *dp;
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ char *last;
+ size_t v1_i;
+ size_t v2_i;
+ size_t last_fi;
+ size_t last_vi;
+ size_t save_vi;
+ size_t i;
+ point_t new_pt;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%zu %zu", &v1_i, &v2_i) != 2) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot edge - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, last,
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+ last_fi = botip->num_faces;
+ last_vi = botip->num_vertices;
+
+ if (v1_i >= botip->num_vertices || v2_i >= botip->num_vertices) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot edge - %s", argv[0],
argv[2]);
+ rt_db_free_internal(&intern);
+ return GED_ERROR;
+ }
+
+ /*
+ * Create the new point, modify all faces (should only be two)
+ * that share the specified edge and hook in the two extra faces.
+ */
+
+ /* First, create some space */
+ botip->num_vertices++;
+ botip->num_faces += 2;
+ botip->vertices = (fastf_t *)bu_realloc((void *)botip->vertices,
botip->num_vertices*3*sizeof(fastf_t), "realloc bot vertices");
+ botip->faces = (int *)bu_realloc((void *)botip->faces,
botip->num_faces*3*sizeof(int), "realloc bot faces");
+
+ /* Create the new point. We're using the average of the edge's points */
+ VADD2(new_pt, &botip->vertices[v1_i*3], &botip->vertices[v2_i*3]);
+ VSCALE(new_pt, new_pt, 0.5);
+
+ /* Add the new point to the last position in the list of vertices. */
+ VMOVE(&botip->vertices[last_vi*3], new_pt);
+
+ /* Update faces associated with the specified edge */
+ for (i = 0; i < last_fi; ++i) {
+ if (((size_t)botip->faces[i*3] == v1_i && (size_t)botip->faces[i*3+1]
== v2_i) ||
+ ((size_t)botip->faces[i*3] == v2_i && (size_t)botip->faces[i*3+1]
== v1_i)) {
+
+ save_vi = botip->faces[i*3+1];
+ botip->faces[i*3+1] = last_vi;
+
+ /* Initialize a new face */
+ botip->faces[last_fi*3] = last_vi;
+ botip->faces[last_fi*3+1] = save_vi;
+ botip->faces[last_fi*3+2] = botip->faces[i*3+2];
+
+ ++last_fi;
+ } else if (((size_t)botip->faces[i*3] == v1_i &&
(size_t)botip->faces[i*3+2] == v2_i) ||
+ ((size_t)botip->faces[i*3] == v2_i &&
(size_t)botip->faces[i*3+2] == v1_i)) {
+ save_vi = botip->faces[i*3];
+ botip->faces[i*3] = last_vi;
+
+ /* Initialize a new face */
+ botip->faces[last_fi*3] = last_vi;
+ botip->faces[last_fi*3+1] = save_vi;
+ botip->faces[last_fi*3+2] = botip->faces[i*3+1];
+
+ ++last_fi;
+ } else if (((size_t)botip->faces[i*3+1] == v1_i &&
(size_t)botip->faces[i*3+2] == v2_i) ||
+ ((size_t)botip->faces[i*3+1] == v2_i &&
(size_t)botip->faces[i*3+2] == v1_i)) {
+ save_vi = botip->faces[i*3+2];
+ botip->faces[i*3+2] = last_vi;
+
+ /* Initialize a new face */
+ botip->faces[last_fi*3] = botip->faces[i*3];
+ botip->faces[last_fi*3+1] = last_vi;
+ botip->faces[last_fi*3+2] = save_vi;
+
+ ++last_fi;
+ }
+
+ if (last_fi >= botip->num_faces)
+ break;
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_bot_face_split(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot face";
+ struct directory *dp;
+ static fastf_t sf = 1.0 / 3.0;
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ char *last;
+ size_t face_i;
+ size_t last_vi;
+ size_t save_vi;
+ point_t new_pt;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%zu", &face_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot vertex index - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, last,
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+ last_vi = botip->num_vertices;
+
+ if (face_i >= botip->num_faces) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot face index - %s",
argv[0], argv[2]);
+ rt_db_free_internal(&intern);
+ return GED_ERROR;
+ }
+
+ /* Create the new point, modify face_i and hook in the two extra faces */
+ /* First, create some space */
+ botip->num_vertices++;
+ botip->num_faces += 2;
+ botip->vertices = (fastf_t *)bu_realloc((void *)botip->vertices,
botip->num_vertices*3*sizeof(fastf_t), "realloc bot vertices");
+ botip->faces = (int *)bu_realloc((void *)botip->faces,
botip->num_faces*3*sizeof(int), "realloc bot faces");
+
+ /* Create the new point. For the moment, we're using the average of the
face_i's points */
+ VADD3(new_pt,
+ &botip->vertices[botip->faces[face_i*3]*3],
+ &botip->vertices[botip->faces[face_i*3+1]*3],
+ &botip->vertices[botip->faces[face_i*3+2]*3]);
+ VSCALE(new_pt, new_pt, sf);
+
+ /* Add the new point to the last position in the list of vertices. */
+ VMOVE(&botip->vertices[last_vi*3], new_pt);
+
+ /* Update face_i */
+ save_vi = botip->faces[face_i*3+2];
+ botip->faces[face_i*3+2] = last_vi;
+
+ /* Initialize the two new faces */
+ botip->faces[(botip->num_faces-2)*3] = botip->faces[face_i*3+1];
+ botip->faces[(botip->num_faces-2)*3+1] = save_vi;
+ botip->faces[(botip->num_faces-2)*3+2] = last_vi;
+ botip->faces[(botip->num_faces-1)*3] = save_vi;
+ botip->faces[(botip->num_faces-1)*3+1] = botip->faces[face_i*3];
+ botip->faces[(botip->num_faces-1)*3+2] = last_vi;
+
+ bu_vls_printf(gedp->ged_result_str, "%zu", last_vi);
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_find_bot_edge_nearest_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot view_xyz";
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ int vi1, vi2;
+ vect_t view;
+
+ /* must be double for scanf */
+ double scan[ELEMENTS_PER_VECT];
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad view location - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+ VMOVE(view, scan); /* convert double to fastf_t */
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+ (void)rt_bot_find_e_nearest_pt2(&vi1, &vi2, botip, view,
gedp->ged_gvp->gv_model2view);
+ bu_vls_printf(gedp->ged_result_str, "%d %d", vi1, vi2);
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_find_bot_pnt_nearest_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot view_xyz";
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ int nearest_pt;
+ vect_t view;
+
+ /* must be double for scanf */
+ double scan[ELEMENTS_PER_VECT];
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad view location - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+ VMOVE(view, scan); /* convert double to fastf_t */
+
+ nearest_pt = rt_bot_find_v_nearest_pt2(botip, view,
gedp->ged_gvp->gv_model2view);
+ bu_vls_printf(gedp->ged_result_str, "%d", nearest_pt);
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_get_bot_edges(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot";
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ size_t edge_count;
+ size_t *edge_list;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 2) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+ if ((edge_count = rt_bot_get_edge_list(botip, &edge_list)) > 0) {
+ size_t i;
+
+ for (i = 0; i < edge_count; i++)
+ bu_vls_printf(gedp->ged_result_str, "{%zu %zu} ", edge_list[i*2],
edge_list[i*2+1]);
+
+ bu_free(edge_list, "bot edge list");
+ }
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_bot_move_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "[-r] bot vertex_i pt";
+ struct directory *dp;
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ size_t vertex_i;
+ int rflag = 0;
+ char *last;
+
+ /* must be double for scanf */
+ double pt[ELEMENTS_PER_POINT];
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc < 4 || 5 < argc) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (argc == 5) {
+ if (argv[1][0] != '-' || argv[1][1] != 'r' || argv[1][2] != '\0') {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ rflag = 1;
+ --argc;
+ ++argv;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%zu", &vertex_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot vertex index - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[3], "%lf %lf %lf", &pt[X], &pt[Y], &pt[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[3]);
+ return GED_ERROR;
+ }
+
+ VSCALE(pt, pt, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+
+ if (vertex_i >= botip->num_vertices) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot vertex index - %s",
argv[0], argv[2]);
+ rt_db_free_internal(&intern);
+ return GED_ERROR;
+ }
+
+ if (rflag) {
+ VADD2(&botip->vertices[vertex_i*3], pt, &botip->vertices[vertex_i*3]);
+ } else {
+ VMOVE(&botip->vertices[vertex_i*3], pt);
+ }
+
+ {
+ mat_t invmat;
+ point_t curr_pt;
+ size_t idx;
+
+ bn_mat_inv(invmat, mat);
+ for (idx = 0; idx < botip->num_vertices; idx++) {
+ MAT4X3PNT(curr_pt, invmat, &botip->vertices[idx*3]);
+ VMOVE(&botip->vertices[idx*3], curr_pt);
+ }
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ rt_db_free_internal(&intern);
+
+ return GED_OK;
+}
+
+
+int
+ged_bot_move_pnts(struct ged *gedp, int argc, const char *argv[])
+{
+ static const char *usage = "bot vec vertex_1 [vertex_2 ... vertex_n]";
+ struct directory *dp;
+ struct rt_db_internal intern;
+ struct rt_bot_internal *botip;
+ mat_t mat;
+ register int i;
+ size_t vertex_i;
+ char *last;
+
+ /* must be double for scanf */
+ double vec[ELEMENTS_PER_VECT];
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc < 4) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (bu_sscanf(argv[2], "%lf %lf %lf", &vec[X], &vec[Y], &vec[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad vector - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+
+ VSCALE(vec, vec, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_BOT) {
+ bu_vls_printf(gedp->ged_result_str, "Object is not a BOT");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ botip = (struct rt_bot_internal *)intern.idb_ptr;
+
+ for (i = 3; i < argc; ++i) {
+ if (bu_sscanf(argv[i], "%zu", &vertex_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot vertex index -
%s\n", argv[0], argv[i]);
+ continue;
+ }
+
+ if (vertex_i >= botip->num_vertices) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad bot vertex index -
%s\n", argv[0], argv[i]);
+ continue;
+ }
+
+ VADD2(&botip->vertices[vertex_i*3], vec, &botip->vertices[vertex_i*3]);
+ }
+
+ {
+ mat_t invmat;
+ point_t curr_pt;
+ size_t idx;
+
+ bn_mat_inv(invmat, mat);
+ for (idx = 0; idx < botip->num_vertices; idx++) {
+ MAT4X3PNT(curr_pt, invmat, &botip->vertices[idx*3]);
+ VMOVE(&botip->vertices[idx*3], curr_pt);
+ }
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ rt_db_free_internal(&intern);
+
+ return GED_OK;
+}
+
+
+int
+_ged_select_botpts(struct ged *gedp, struct rt_bot_internal *botip, double vx,
double vy, double vwidth, double vheight, double vminz, int rflag)
+{
+ size_t i;
+ fastf_t vr = 0.0;
+ fastf_t vmin_x = 0.0;
+ fastf_t vmin_y = 0.0;
+ fastf_t vmax_x = 0.0;
+ fastf_t vmax_y = 0.0;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+
+ if (rflag) {
+ vr = vwidth;
+ } else {
+ vmin_x = vx;
+ vmin_y = vy;
+
+ if (vwidth > 0)
+ vmax_x = vx + vwidth;
+ else {
+ vmin_x = vx + vwidth;
+ vmax_x = vx;
+ }
+
+ if (vheight > 0)
+ vmax_y = vy + vheight;
+ else {
+ vmin_y = vy + vheight;
+ vmax_y = vy;
+ }
+ }
+
+ if (rflag) {
+ for (i = 0; i < botip->num_vertices; i++) {
+ point_t vloc;
+ point_t vpt;
+ vect_t diff;
+ fastf_t mag;
+
+ MAT4X3PNT(vpt, gedp->ged_gvp->gv_model2view, &botip->vertices[i*3]);
+
+ if (vpt[Z] < vminz)
+ continue;
+
+ VSET(vloc, vx, vy, vpt[Z]);
+ VSUB2(diff, vpt, vloc);
+ mag = MAGNITUDE(diff);
+
+ if (mag > vr)
+ continue;
+
+ bu_vls_printf(gedp->ged_result_str, "%zu ", i);
+ }
+ } else {
+ for (i = 0; i < botip->num_vertices; i++) {
+ point_t vpt;
+
+ MAT4X3PNT(vpt, gedp->ged_gvp->gv_model2view, &botip->vertices[i*3]);
+
+ if (vpt[Z] < vminz)
+ continue;
+
+ if (vmin_x <= vpt[X] && vpt[X] <= vmax_x &&
+ vmin_y <= vpt[Y] && vpt[Y] <= vmax_y) {
+ bu_vls_printf(gedp->ged_result_str, "%zu ", i);
+ }
+ }
+ }
+
+ return GED_OK;
+}
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Modified: brlcad/branches/gedplugins/src/libged/edcodes/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/edcodes/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/edcodes/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-edcodes edcodes.c)
PLUGIN_SETUP(ged-edcodes ged)
+CMAKEFILES(
+ CMakeLists.txt
+ edcodes.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/edcomb/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/edcomb/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/edcomb/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-edcomb edcomb.c)
PLUGIN_SETUP(ged-edcomb ged)
+CMAKEFILES(
+ CMakeLists.txt
+ edcomb.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/edit/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/edit/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/edit/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-edit edit.c)
PLUGIN_SETUP(ged-edit ged)
+CMAKEFILES(
+ CMakeLists.txt
+ edit.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Copied: brlcad/branches/gedplugins/src/libged/edit_metaball.c (from rev 76414,
brlcad/branches/gedplugins/src/libged/edit_metaball/edit_metaball.c)
===================================================================
--- brlcad/branches/gedplugins/src/libged/edit_metaball.c
(rev 0)
+++ brlcad/branches/gedplugins/src/libged/edit_metaball.c 2020-07-22
14:18:04 UTC (rev 76415)
@@ -0,0 +1,662 @@
+/* E D I T _ M E T A B A L L . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2008-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/edit_metaball.c
+ *
+ * Functions -
+ *
+ *
+ */
+
+#include "common.h"
+
+#include <string.h>
+
+#include "bu/cmd.h"
+#include "rt/geom.h"
+#include "raytrace.h"
+#include "wdb.h"
+
+#include "./ged_private.h"
+
+
+#define GED_METABALL_SCALE(_d, _scale) \
+ if ((_scale) < 0.0) \
+ (_d) = -(_scale); \
+ else \
+ (_d) *= (_scale);
+
+
+/*
+ * Returns the index for the metaball point matching mbpp.
+ */
+int
+_ged_get_metaball_i_pnt(struct rt_metaball_internal *mbip, struct
wdb_metaball_pnt *mbpp)
+{
+ struct wdb_metaball_pnt *curr_mbpp;
+ int mbp_i = 0;
+
+ for (BU_LIST_FOR(curr_mbpp, wdb_metaball_pnt, &mbip->metaball_ctrl_head)) {
+ if (curr_mbpp == mbpp)
+ return mbp_i;
+
+ ++mbp_i;
+ }
+
+ return -1;
+}
+
+
+/*
+ * Returns point mbp_i.
+ */
+struct wdb_metaball_pnt *
+_ged_get_metaball_pt_i(struct rt_metaball_internal *mbip, int mbp_i)
+{
+ int i = 0;
+ struct wdb_metaball_pnt *curr_mbpp;
+
+ for (BU_LIST_FOR(curr_mbpp, wdb_metaball_pnt, &mbip->metaball_ctrl_head)) {
+ if (i == mbp_i)
+ return curr_mbpp;
+
+ ++i;
+ }
+
+ return (struct wdb_metaball_pnt *)NULL;
+}
+
+
+int
+_ged_set_metaball(struct ged *gedp, struct rt_metaball_internal *mbip, const
char *attribute, fastf_t sf)
+{
+ RT_METABALL_CK_MAGIC(mbip);
+
+ switch (attribute[0]) {
+ case 'm':
+ case 'M':
+ if (sf <= METABALL_METABALL)
+ mbip->method = METABALL_METABALL;
+ else if (sf >= METABALL_BLOB)
+ mbip->method = METABALL_BLOB;
+ else
+ mbip->method = (int)sf;
+
+ break;
+ case 't':
+ case 'T':
+ if (sf < 0)
+ mbip->threshold = -sf;
+ else
+ mbip->threshold = sf;
+
+ break;
+ default:
+ bu_vls_printf(gedp->ged_result_str, "bad metaball attribute - %s",
attribute);
+ return GED_ERROR;
+ }
+
+ return GED_OK;
+}
+
+
+int
+_ged_scale_metaball(struct ged *gedp, struct rt_metaball_internal *mbip, const
char *attribute, fastf_t sf, int rflag)
+{
+ int mbp_i;
+ struct wdb_metaball_pnt *mbpp;
+
+ RT_METABALL_CK_MAGIC(mbip);
+
+ if (!rflag && sf > 0)
+ sf = -sf;
+
+ switch (attribute[0]) {
+ case 'f':
+ case 'F':
+ if (sscanf(attribute+1, "%d", &mbp_i) != 1)
+ mbp_i = 0;
+
+ if ((mbpp = _ged_get_metaball_pt_i(mbip, mbp_i)) == (struct
wdb_metaball_pnt *)NULL)
+ return GED_ERROR;
+
+ BU_CKMAG(mbpp, WDB_METABALLPT_MAGIC, "wdb_metaball_pnt");
+ GED_METABALL_SCALE(mbpp->fldstr, sf);
+
+ break;
+ case 's':
+ case 'S':
+ if (sscanf(attribute+1, "%d", &mbp_i) != 1)
+ mbp_i = 0;
+
+ if ((mbpp = _ged_get_metaball_pt_i(mbip, mbp_i)) == (struct
wdb_metaball_pnt *)NULL)
+ return GED_ERROR;
+
+ BU_CKMAG(mbpp, WDB_METABALLPT_MAGIC, "wdb_metaball_pnt");
+ GED_METABALL_SCALE(mbpp->sweat, sf);
+
+ break;
+ default:
+ bu_vls_printf(gedp->ged_result_str, "bad metaball attribute - %s",
attribute);
+ return GED_ERROR;
+ }
+
+ return GED_OK;
+}
+
+
+struct wdb_metaball_pnt *
+find_metaball_pnt_nearest_pnt(const struct bu_list *metaball_hd, const point_t
model_pt, matp_t view2model)
+{
+ struct wdb_metaball_pnt *mbpp;
+ struct wdb_metaball_pnt *nearest=(struct wdb_metaball_pnt *)NULL;
+ struct bn_tol tmp_tol;
+ fastf_t min_dist = MAX_FASTF;
+ vect_t dir, work;
+
+ tmp_tol.magic = BN_TOL_MAGIC;
+ tmp_tol.dist = 0.0;
+ tmp_tol.dist_sq = tmp_tol.dist * tmp_tol.dist;
+ tmp_tol.perp = 0.0;
+ tmp_tol.para = 1.0 - tmp_tol.perp;
+
+ /* get a direction vector in model space corresponding to z-direction in
view */
+ VSET(work, 0.0, 0.0, 1.0);
+ MAT4X3VEC(dir, view2model, work);
+
+ for (BU_LIST_FOR(mbpp, wdb_metaball_pnt, metaball_hd)) {
+ fastf_t dist;
+
+ dist = bn_dist_line3_pnt3(model_pt, dir, mbpp->coord);
+ if (dist < min_dist) {
+ min_dist = dist;
+ nearest = mbpp;
+ }
+ }
+
+ return nearest;
+}
+
+
+int
+ged_find_metaball_pnt_nearest_pnt(struct ged *gedp, int argc, const char
*argv[])
+{
+ struct directory *dp;
+ static const char *usage = "metaball x y z";
+ struct rt_db_internal intern;
+ struct wdb_metaball_pnt *nearest;
+ point_t model_pt;
+ double scan[3];
+ mat_t mat;
+ int pt_i;
+ const char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3 && argc != 5) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (argc == 3) {
+ if (sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+ } else if (sscanf(argv[2], "%lf", &scan[X]) != 1 ||
+ sscanf(argv[3], "%lf", &scan[Y]) != 1 ||
+ sscanf(argv[4], "%lf", &scan[Z]) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad X, Y or Z", argv[0]);
+ return GED_ERROR;
+ }
+ /* convert from double to fastf_t */
+ VMOVE(model_pt, scan);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ nearest = find_metaball_pnt_nearest_pnt(&((struct rt_metaball_internal
*)intern.idb_ptr)->metaball_ctrl_head,
+ model_pt,
gedp->ged_gvp->gv_view2model);
+ pt_i = _ged_get_metaball_i_pnt((struct rt_metaball_internal
*)intern.idb_ptr, nearest);
+ rt_db_free_internal(&intern);
+
+ if (pt_i < 0) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find point for %s",
argv[0], argv[1]);
+ return GED_ERROR;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "%d", pt_i);
+ return GED_OK;
+}
+
+
+struct wdb_metaball_pnt *
+_ged_metaball_add_pnt(struct rt_metaball_internal *mbip, struct
wdb_metaball_pnt *mbp, const point_t new_pt)
+{
+ struct wdb_metaball_pnt *last;
+ struct wdb_metaball_pnt *newmbp;
+
+ RT_METABALL_CK_MAGIC(mbip);
+
+ if (mbp) {
+ BU_CKMAG(mbp, WDB_METABALLPT_MAGIC, "metaball point");
+ last = mbp;
+ } else {
+ /* add new point to end of metaball solid */
+ last = BU_LIST_LAST(wdb_metaball_pnt, &mbip->metaball_ctrl_head);
+
+ if (last->l.magic == BU_LIST_HEAD_MAGIC) {
+ BU_GET(newmbp, struct wdb_metaball_pnt);
+ newmbp->l.magic = WDB_METABALLPT_MAGIC;
+ newmbp->fldstr = 1.0;
+ newmbp->sweat = 1.0;
+ VMOVE(newmbp->coord, new_pt);
+ BU_LIST_INSERT(&mbip->metaball_ctrl_head, &newmbp->l);
+ return newmbp;
+ }
+ }
+
+ /* build new point */
+ BU_GET(newmbp, struct wdb_metaball_pnt);
+ newmbp->l.magic = WDB_METABALLPT_MAGIC;
+ newmbp->fldstr = 1.0;
+ newmbp->sweat = 1.0;
+ VMOVE(newmbp->coord, new_pt);
+
+ if (mbp) {
+ /* append after current point */
+ BU_LIST_APPEND(&mbp->l, &newmbp->l);
+ } else {
+ /* add to end of metaball solid */
+ BU_LIST_INSERT(&mbip->metaball_ctrl_head, &newmbp->l);
+ }
+
+ return newmbp;
+}
+
+
+int
+ged_metaball_add_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "metaball pt";
+ struct rt_db_internal intern;
+ struct rt_metaball_internal *mbip;
+ mat_t mat;
+ point_t view_mb_pt;
+ point_t view_coord;
+ point_t mb_pt;
+ struct wdb_metaball_pnt *lastmbp;
+ double scan[3];
+ const char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+ /* convert from double to fastf_t */
+ VMOVE(view_mb_pt, scan);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_METABALL) {
+ bu_vls_printf(gedp->ged_result_str, "Object not a METABALL");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ mbip = (struct rt_metaball_internal *)intern.idb_ptr;
+
+ /* use the view z from the last metaball point */
+ lastmbp = BU_LIST_LAST(wdb_metaball_pnt, &mbip->metaball_ctrl_head);
+
+ MAT4X3PNT(view_coord, gedp->ged_gvp->gv_model2view, lastmbp->coord);
+ view_mb_pt[Z] = view_coord[Z];
+ MAT4X3PNT(mb_pt, gedp->ged_gvp->gv_view2model, view_mb_pt);
+
+ if (_ged_metaball_add_pnt(mbip, (struct wdb_metaball_pnt *)NULL, mb_pt) ==
(struct wdb_metaball_pnt *)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: cannot move point there",
argv[0]);
+ return GED_ERROR;
+ }
+
+ {
+ mat_t invmat;
+ struct wdb_metaball_pnt *curr_mbp;
+ point_t curr_pt;
+
+ bn_mat_inv(invmat, mat);
+ for (BU_LIST_FOR(curr_mbp, wdb_metaball_pnt,
&mbip->metaball_ctrl_head)) {
+ MAT4X3PNT(curr_pt, invmat, curr_mbp->coord);
+ VMOVE(curr_mbp->coord, curr_pt);
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ }
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+struct wdb_metaball_pnt *
+_ged_metaball_delete_pnt(struct wdb_metaball_pnt *mbp)
+{
+ struct wdb_metaball_pnt *next;
+ struct wdb_metaball_pnt *prev;
+ struct wdb_metaball_pnt *head;
+
+ BU_CKMAG(mbp, WDB_METABALLPT_MAGIC, "metaball point");
+
+ /* Find the head */
+ head = mbp;
+ while (head->l.magic != BU_LIST_HEAD_MAGIC)
+ head = BU_LIST_NEXT(wdb_metaball_pnt, &head->l);
+
+ next = BU_LIST_NEXT(wdb_metaball_pnt, &mbp->l);
+ if (next->l.magic == BU_LIST_HEAD_MAGIC)
+ next = (struct wdb_metaball_pnt *)NULL;
+
+ prev = BU_LIST_PREV(wdb_metaball_pnt, &mbp->l);
+ if (prev->l.magic == BU_LIST_HEAD_MAGIC)
+ prev = (struct wdb_metaball_pnt *)NULL;
+
+ if (!prev && !next) {
+ return mbp;
+ }
+
+ BU_LIST_DEQUEUE(&mbp->l);
+
+ BU_PUT(mbp, struct wdb_metaball_pnt);
+
+ if (prev)
+ return prev;
+ else
+ return next;
+
+}
+
+
+int
+ged_metaball_delete_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "metaball pt_i";
+ struct rt_db_internal intern;
+ struct wdb_metaball_pnt *mbp;
+ struct rt_metaball_internal *mbip;
+ int pt_i;
+ const char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%d", &pt_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad metaball point index -
%s", argv[0], argv[3]);
+ return GED_ERROR;
+ }
+
+ if (rt_db_get_internal(&intern, dp, gedp->ged_wdbp->dbip, (fastf_t *)NULL,
&rt_uniresource) < 0) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to get internal for
%s", argv[0], argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_METABALL) {
+ bu_vls_printf(gedp->ged_result_str, "%s is not a METABALL", argv[1]);
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ mbip = (struct rt_metaball_internal *)intern.idb_ptr;
+ if ((mbp = _ged_get_metaball_pt_i(mbip, pt_i)) == (struct wdb_metaball_pnt
*)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: bad metaball point index -
%s", argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (_ged_metaball_delete_pnt(mbp) == mbp) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: cannot delete last metaball
point %d", argv[0], pt_i);
+ return GED_ERROR;
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_metaball_move_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "[-r] metaball seg_i pt";
+ struct rt_db_internal intern;
+ struct wdb_metaball_pnt *mbp;
+ struct rt_metaball_internal *mbip;
+ mat_t mat;
+ point_t mb_pt;
+ double scan[3];
+ int seg_i;
+ int rflag = 0;
+ const char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc < 4 || 5 < argc) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (argc == 5) {
+ if (argv[1][0] != '-' || argv[1][1] != 'r' || argv[1][2] != '\0') {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ rflag = 1;
+ --argc;
+ ++argv;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%d", &seg_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad metaball point index -
%s", argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[3], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[3]);
+ return GED_ERROR;
+ }
+ VSCALE(mb_pt, scan, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_METABALL) {
+ bu_vls_printf(gedp->ged_result_str, "Object not a METABALL");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ mbip = (struct rt_metaball_internal *)intern.idb_ptr;
+ if ((mbp = _ged_get_metaball_pt_i(mbip, seg_i)) == (struct
wdb_metaball_pnt *)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: bad metaball point index -
%s", argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (rflag) {
+ VADD2(mb_pt, mb_pt, mbp->coord);
+ }
+
+ VMOVE(mbp->coord, mb_pt);
+
+ {
+ mat_t invmat;
+ struct wdb_metaball_pnt *curr_mbp;
+ point_t curr_pt;
+
+ bn_mat_inv(invmat, mat);
+ for (BU_LIST_FOR(curr_mbp, wdb_metaball_pnt,
&mbip->metaball_ctrl_head)) {
+ MAT4X3PNT(curr_pt, invmat, curr_mbp->coord);
+ VMOVE(curr_mbp->coord, curr_pt);
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ }
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Modified: brlcad/branches/gedplugins/src/libged/editit/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/editit/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/editit/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-editit editit.c)
PLUGIN_SETUP(ged-editit ged)
+CMAKEFILES(
+ CMakeLists.txt
+ editit.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/edmater/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/edmater/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/edmater/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-edmater edmater.c)
PLUGIN_SETUP(ged-edmater ged)
+CMAKEFILES(
+ CMakeLists.txt
+ edmater.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Copied: brlcad/branches/gedplugins/src/libged/edpipe.c (from rev 76414,
brlcad/branches/gedplugins/src/libged/edpipe/edpipe.c)
===================================================================
--- brlcad/branches/gedplugins/src/libged/edpipe.c
(rev 0)
+++ brlcad/branches/gedplugins/src/libged/edpipe.c 2020-07-22 14:18:04 UTC
(rev 76415)
@@ -0,0 +1,978 @@
+/* E D P I P E . C
+ * BRL-CAD
+ *
+ * Copyright (c) 1995-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/edpipe.c
+ *
+ * Functions -
+ *
+ * pipe_split_pnt - split a pipe segment at a given point
+ *
+ * find_pipe_pnt_nearest_pnt - find which segment of a pipe is nearest
+ * the ray from "pt" in the viewing direction (for segment selection
+ * in MGED)
+ */
+
+#include "common.h"
+
+#include <math.h>
+#include <string.h>
+
+#include "vmath.h"
+#include "nmg.h"
+#include "rt/geom.h"
+#include "ged.h"
+#include "wdb.h"
+
+#include "./ged_private.h"
+
+/*
+ * Returns the index for the pipe segment matching ps.
+ */
+int
+_ged_get_pipe_i_seg(struct rt_pipe_internal *pipeip, struct wdb_pipe_pnt *ps)
+{
+ struct wdb_pipe_pnt *curr_ps;
+ int seg_i = 0;
+
+ for (BU_LIST_FOR(curr_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ if (curr_ps == ps)
+ return seg_i;
+
+ ++seg_i;
+ }
+
+ return -1;
+}
+
+
+/*
+ * Returns segment seg_i.
+ */
+struct wdb_pipe_pnt *
+_ged_get_pipe_seg_i(struct rt_pipe_internal *pipeip, int seg_i)
+{
+ int i = 0;
+ struct wdb_pipe_pnt *curr_ps;
+
+ for (BU_LIST_FOR(curr_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ if (i == seg_i)
+ return curr_ps;
+
+ ++i;
+ }
+
+ return (struct wdb_pipe_pnt *)NULL;
+}
+
+
+void
+pipe_split_pnt(struct bu_list *UNUSED(pipe_hd), struct wdb_pipe_pnt
*UNUSED(ps), fastf_t *UNUSED(new_pt))
+{
+ bu_log("WARNING: pipe splitting unimplemented\n");
+}
+
+
+static fastf_t
+edpipe_scale(fastf_t d, fastf_t scale)
+{
+ if (scale < 0.0) {
+ /* negative value sets the scale */
+ return (-scale);
+ }
+
+ /* positive value gets multiplied */
+ return (d * scale);
+}
+
+
+void
+pipe_scale_od(struct rt_pipe_internal *pipeip, fastf_t scale)
+{
+ struct wdb_pipe_pnt *ps;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ /* check that this can be done */
+ for (BU_LIST_FOR(ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ fastf_t tmp_od;
+
+ tmp_od = edpipe_scale(ps->pp_od, scale);
+
+ if (ps->pp_id > tmp_od) {
+ /* Silently ignore */
+ return;
+ }
+ if (tmp_od > 2.0*ps->pp_bendradius) {
+ /* Silently ignore */
+ return;
+ }
+ }
+
+ for (BU_LIST_FOR(ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ ps->pp_od = edpipe_scale(ps->pp_od, scale);
+ }
+}
+
+
+void
+pipe_scale_id(struct rt_pipe_internal *pipeip, fastf_t scale)
+{
+ struct wdb_pipe_pnt *ps;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ /* check that this can be done */
+ for (BU_LIST_FOR(ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ fastf_t tmp_id;
+
+ tmp_id = edpipe_scale(ps->pp_id, scale);
+
+ if (ps->pp_od < tmp_id) {
+ /* Silently ignore */
+ return;
+ }
+ if (tmp_id > 2.0*ps->pp_bendradius) {
+ /* Silently ignore */
+ return;
+ }
+ }
+
+ for (BU_LIST_FOR(ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ ps->pp_id = edpipe_scale(ps->pp_id, scale);
+ }
+}
+
+
+void
+pipe_seg_scale_od(struct wdb_pipe_pnt *ps, fastf_t scale)
+{
+ fastf_t tmp_od;
+
+ BU_CKMAG(ps, WDB_PIPESEG_MAGIC, "pipe segment");
+
+ tmp_od = edpipe_scale(ps->pp_od, scale);
+
+ /* need to check that the new OD is not less than ID
+ * of any affected segment.
+ */
+ if (ps->pp_id > tmp_od) {
+ bu_log("Cannot make OD smaller than ID\n");
+ return;
+ }
+ if (tmp_od > 2.0*ps->pp_bendradius) {
+ bu_log("Cannot make outer radius greater than bend radius\n");
+ return;
+ }
+
+ ps->pp_od = edpipe_scale(ps->pp_od, scale);
+}
+
+
+void
+pipe_seg_scale_id(struct wdb_pipe_pnt *ps, fastf_t scale)
+{
+ fastf_t tmp_id;
+
+ BU_CKMAG(ps, WDB_PIPESEG_MAGIC, "pipe segment");
+
+ tmp_id = edpipe_scale(ps->pp_id, scale);
+
+ /* need to check that the new ID is not greater than OD */
+ if (ps->pp_od < tmp_id) {
+ bu_log( "Cannot make ID greater than OD\n");
+ return;
+ }
+ if (tmp_id > 2.0*ps->pp_bendradius) {
+ bu_log("Cannot make inner radius greater than bend radius\n");
+ return;
+ }
+
+ ps->pp_id = edpipe_scale(ps->pp_id, scale);
+}
+
+
+void
+pipe_seg_scale_radius(struct wdb_pipe_pnt *ps, fastf_t scale)
+{
+ fastf_t old_radius;
+ struct wdb_pipe_pnt *head;
+
+ BU_CKMAG(ps, WDB_PIPESEG_MAGIC, "pipe point");
+
+ head = ps;
+ while (head->l.magic != BU_LIST_HEAD_MAGIC)
+ head = BU_LIST_NEXT(wdb_pipe_pnt, &head->l);
+
+ /* make sure we can make this change */
+ old_radius = ps->pp_bendradius;
+
+ ps->pp_bendradius = edpipe_scale(ps->pp_bendradius, scale);
+
+ if (ps->pp_bendradius < ps->pp_od * 0.5) {
+ bu_log("Cannot make bend radius less than pipe outer radius\n");
+ ps->pp_bendradius = old_radius;
+ return;
+ }
+
+ if (rt_pipe_ck(&head->l)) {
+ /* won't work, go back to original radius */
+ ps->pp_bendradius = old_radius;
+ return;
+ }
+}
+
+
+void
+pipe_scale_radius(struct rt_pipe_internal *pipeip, fastf_t scale)
+{
+ struct bu_list head;
+ struct wdb_pipe_pnt *old_ps, *new_ps;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ /* make a quick check for minimum bend radius */
+ for (BU_LIST_FOR(old_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ if (scale < 0.0) {
+ if ((-scale) < old_ps->pp_od * 0.5) {
+ bu_log("Cannot make bend radius less than pipe outer radius\n");
+ return;
+ }
+ } else {
+ if (old_ps->pp_bendradius * scale < old_ps->pp_od * 0.5) {
+ bu_log("Cannot make bend radius less than pipe outer radius\n");
+ return;
+ }
+ }
+ }
+
+ /* make temporary copy of this pipe solid */
+ BU_LIST_INIT(&head);
+ for (BU_LIST_FOR(old_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ BU_GET(new_ps, struct wdb_pipe_pnt);
+ *new_ps = (*old_ps);
+ BU_LIST_APPEND(&head, &new_ps->l);
+ }
+
+ /* make the desired editing changes to the copy */
+ for (BU_LIST_FOR(new_ps, wdb_pipe_pnt, &head)) {
+ new_ps->pp_bendradius = edpipe_scale(new_ps->pp_bendradius, scale);
+ }
+
+ /* check if the copy is O.K. */
+ if (rt_pipe_ck(&head)) {
+ /* won't work, go back to original */
+ while (BU_LIST_NON_EMPTY(&head)) {
+ new_ps = BU_LIST_FIRST(wdb_pipe_pnt, &head);
+ BU_LIST_DEQUEUE(&new_ps->l);
+ BU_PUT(new_ps, struct wdb_pipe_pnt);
+ }
+ return;
+ }
+
+ /* free temporary pipe solid */
+ while (BU_LIST_NON_EMPTY(&head)) {
+ new_ps = BU_LIST_FIRST(wdb_pipe_pnt, &head);
+ BU_LIST_DEQUEUE(&new_ps->l);
+ BU_PUT(new_ps, struct wdb_pipe_pnt);
+ }
+
+ /* make changes to the original */
+ for (BU_LIST_FOR(old_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ old_ps->pp_bendradius = edpipe_scale(old_ps->pp_bendradius, scale);
+ }
+}
+
+
+struct wdb_pipe_pnt *
+find_pipe_pnt_nearest_pnt(const struct bu_list *pipe_hd, const point_t
model_pt, matp_t view2model)
+{
+ struct wdb_pipe_pnt *ps;
+ struct wdb_pipe_pnt *nearest=(struct wdb_pipe_pnt *)NULL;
+ struct bn_tol tmp_tol;
+ fastf_t min_dist = MAX_FASTF;
+ vect_t dir, work;
+
+ tmp_tol.magic = BN_TOL_MAGIC;
+ tmp_tol.dist = 0.0;
+ tmp_tol.dist_sq = tmp_tol.dist * tmp_tol.dist;
+ tmp_tol.perp = 0.0;
+ tmp_tol.para = 1.0 - tmp_tol.perp;
+
+ /* get a direction vector in model space corresponding to z-direction in
view */
+ VSET(work, 0.0, 0.0, 1.0);
+ MAT4X3VEC(dir, view2model, work);
+
+ for (BU_LIST_FOR(ps, wdb_pipe_pnt, pipe_hd)) {
+ fastf_t dist;
+
+ dist = bn_dist_line3_pnt3(model_pt, dir, ps->pp_coord);
+ if (dist < min_dist) {
+ min_dist = dist;
+ nearest = ps;
+ }
+ }
+
+ return nearest;
+}
+
+
+struct wdb_pipe_pnt *
+_ged_pipe_add_pnt(struct rt_pipe_internal *pipeip, struct wdb_pipe_pnt *pp,
const point_t new_pt)
+{
+ struct wdb_pipe_pnt *last;
+ struct wdb_pipe_pnt *newpp;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ if (pp) {
+ BU_CKMAG(pp, WDB_PIPESEG_MAGIC, "pipe point");
+ last = pp;
+ } else {
+ /* add new point to end of pipe solid */
+ last = BU_LIST_LAST(wdb_pipe_pnt, &pipeip->pipe_segs_head);
+
+ if (last->l.magic == BU_LIST_HEAD_MAGIC) {
+ BU_GET(newpp, struct wdb_pipe_pnt);
+ newpp->l.magic = WDB_PIPESEG_MAGIC;
+ newpp->pp_od = 30.0;
+ newpp->pp_id = 0.0;
+ newpp->pp_bendradius = 40.0;
+ VMOVE(newpp->pp_coord, new_pt);
+ BU_LIST_INSERT(&pipeip->pipe_segs_head, &newpp->l);
+ return newpp;
+ }
+ }
+
+ /* build new point */
+ BU_GET(newpp, struct wdb_pipe_pnt);
+ newpp->l.magic = WDB_PIPESEG_MAGIC;
+ newpp->pp_od = last->pp_od;
+ newpp->pp_id = last->pp_id;
+ newpp->pp_bendradius = last->pp_bendradius;
+ VMOVE(newpp->pp_coord, new_pt);
+
+ if (pp) {
+ /* append after current point */
+ BU_LIST_APPEND(&pp->l, &newpp->l);
+ } else {
+ /* add to end of pipe solid */
+ BU_LIST_INSERT(&pipeip->pipe_segs_head, &newpp->l);
+ }
+
+ if (rt_pipe_ck(&pipeip->pipe_segs_head)) {
+ /* won't work here, so refuse to do it */
+ BU_LIST_DEQUEUE(&newpp->l);
+ BU_PUT(newpp, struct wdb_pipe_pnt);
+ return pp;
+ }
+
+ return newpp;
+}
+
+
+struct wdb_pipe_pnt *
+_ged_pipe_ins_pnt(struct rt_pipe_internal *pipeip, struct wdb_pipe_pnt *pp,
const point_t new_pt)
+{
+ struct wdb_pipe_pnt *first;
+ struct wdb_pipe_pnt *newpp;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ if (pp) {
+ BU_CKMAG(pp, WDB_PIPESEG_MAGIC, "pipe point");
+ first = pp;
+ } else {
+ /* insert new point at start of pipe solid */
+ first = BU_LIST_FIRST(wdb_pipe_pnt, &pipeip->pipe_segs_head);
+
+ if (first->l.magic == BU_LIST_HEAD_MAGIC) {
+ BU_GET(newpp, struct wdb_pipe_pnt);
+ newpp->l.magic = WDB_PIPESEG_MAGIC;
+ newpp->pp_od = 30.0;
+ newpp->pp_id = 0.0;
+ newpp->pp_bendradius = 40.0;
+ VMOVE(newpp->pp_coord, new_pt);
+ BU_LIST_APPEND(&pipeip->pipe_segs_head, &newpp->l);
+ return newpp;
+ }
+ }
+
+ /* build new point */
+ BU_GET(newpp, struct wdb_pipe_pnt);
+ newpp->l.magic = WDB_PIPESEG_MAGIC;
+ newpp->pp_od = first->pp_od;
+ newpp->pp_id = first->pp_id;
+ newpp->pp_bendradius = first->pp_bendradius;
+ VMOVE(newpp->pp_coord, new_pt);
+
+ if (pp) {
+ /* insert before current point */
+ BU_LIST_INSERT(&pp->l, &newpp->l);
+ } else {
+ /* add to start of pipe */
+ BU_LIST_APPEND(&pipeip->pipe_segs_head, &newpp->l);
+ }
+
+ if (rt_pipe_ck(&pipeip->pipe_segs_head)) {
+ /* won't work here, so refuse to do it */
+ BU_LIST_DEQUEUE(&newpp->l);
+ BU_PUT(newpp, struct wdb_pipe_pnt);
+ return pp;
+ }
+
+ return newpp;
+}
+
+
+struct wdb_pipe_pnt *
+_ged_pipe_delete_pnt(struct wdb_pipe_pnt *ps)
+{
+ struct wdb_pipe_pnt *next;
+ struct wdb_pipe_pnt *prev;
+ struct wdb_pipe_pnt *head;
+
+ BU_CKMAG(ps, WDB_PIPESEG_MAGIC, "pipe segment");
+
+ head = ps;
+ while (head->l.magic != BU_LIST_HEAD_MAGIC)
+ head = BU_LIST_NEXT(wdb_pipe_pnt, &head->l);
+
+ next = BU_LIST_NEXT(wdb_pipe_pnt, &ps->l);
+ if (next->l.magic == BU_LIST_HEAD_MAGIC)
+ next = (struct wdb_pipe_pnt *)NULL;
+
+ prev = BU_LIST_PREV(wdb_pipe_pnt, &ps->l);
+ if (prev->l.magic == BU_LIST_HEAD_MAGIC)
+ prev = (struct wdb_pipe_pnt *)NULL;
+
+ if (!prev && !next) {
+ bu_log("Cannot delete last point in pipe\n");
+ return ps;
+ }
+
+ BU_LIST_DEQUEUE(&ps->l);
+
+ if (rt_pipe_ck(&head->l)) {
+ bu_log("Cannot delete this point, it will result in an illegal pipe\n");
+ if (next) {
+ BU_LIST_INSERT(&next->l, &ps->l);
+ } else if (prev) {
+ BU_LIST_APPEND(&prev->l, &ps->l);
+ } else {
+ BU_LIST_INSERT(&head->l, &ps->l);
+ }
+
+ return ps;
+ } else {
+ BU_PUT(ps, struct wdb_pipe_pnt);
+ }
+
+ if (prev)
+ return prev;
+ else
+ return next;
+
+}
+
+
+int
+_ged_pipe_move_pnt(struct rt_pipe_internal *pipeip, struct wdb_pipe_pnt *ps,
const point_t new_pt)
+{
+ point_t old_pt;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+ BU_CKMAG(ps, WDB_PIPESEG_MAGIC, "pipe segment");
+
+ VMOVE(old_pt, ps->pp_coord);
+
+ VMOVE(ps->pp_coord, new_pt);
+ if (rt_pipe_ck(&pipeip->pipe_segs_head)) {
+ bu_log("Cannot move point there\n");
+ VMOVE(ps->pp_coord, old_pt);
+ return 1;
+ }
+
+ return 0;
+}
+
+
+int
+_ged_scale_pipe(struct ged *gedp, struct rt_pipe_internal *pipeip, const char
*attribute, fastf_t sf, int rflag)
+{
+ int seg_i;
+ struct wdb_pipe_pnt *ps;
+
+ RT_PIPE_CK_MAGIC(pipeip);
+
+ /* encode rflag as a negative scale so we don't have to pass it */
+ if (!rflag && sf > 0)
+ sf = -sf;
+
+ switch (attribute[0]) {
+ case 'b':
+ case 'r':
+ if (sscanf(attribute+1, "%d", &seg_i) != 1)
+ seg_i = 0;
+
+ if ((ps = _ged_get_pipe_seg_i(pipeip, seg_i)) == (struct
wdb_pipe_pnt *)NULL)
+ return GED_ERROR;
+
+ pipe_seg_scale_radius(ps, sf);
+ break;
+ case 'B':
+ case 'R':
+ pipe_scale_radius(pipeip, sf);
+ break;
+ case 'i':
+ if (sscanf(attribute+1, "%d", &seg_i) != 1)
+ seg_i = 0;
+
+ if ((ps = _ged_get_pipe_seg_i(pipeip, seg_i)) == (struct
wdb_pipe_pnt *)NULL)
+ return GED_ERROR;
+
+ pipe_seg_scale_id(ps, sf);
+ break;
+ case 'I':
+ pipe_scale_id(pipeip, sf);
+ break;
+ case 'o':
+ if (sscanf(attribute+1, "%d", &seg_i) != 1)
+ seg_i = 0;
+
+ if ((ps = _ged_get_pipe_seg_i(pipeip, seg_i)) == (struct
wdb_pipe_pnt *)NULL)
+ return GED_ERROR;
+
+ pipe_seg_scale_od(ps, sf);
+ break;
+ case 'O':
+ pipe_scale_od(pipeip, sf);
+ break;
+ default:
+ bu_vls_printf(gedp->ged_result_str, "bad pipe attribute - %s",
attribute);
+ return GED_ERROR;
+ }
+
+ return GED_OK;
+}
+
+
+int
+_ged_pipe_append_pnt_common(struct ged *gedp, int argc, const char *argv[],
struct wdb_pipe_pnt *(*func)(struct rt_pipe_internal *, struct wdb_pipe_pnt *,
const point_t))
+{
+ struct directory *dp;
+ static const char *usage = "pipe pt";
+ struct rt_db_internal intern;
+ struct rt_pipe_internal *pipeip;
+ mat_t mat;
+ point_t view_ps_pt;
+ point_t view_pp_coord;
+ point_t ps_pt;
+ struct wdb_pipe_pnt *prevpp;
+ double scan[3];
+ char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+ /* convert from double to fastf_t */
+ VMOVE(view_ps_pt, scan);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_PIPE) {
+ bu_vls_printf(gedp->ged_result_str, "Object not a PIPE");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ pipeip = (struct rt_pipe_internal *)intern.idb_ptr;
+
+ /* use the view z from the first or last pipe point, depending on whether
we're appending or prepending */
+ if (func == _ged_pipe_add_pnt)
+ prevpp = BU_LIST_LAST(wdb_pipe_pnt, &pipeip->pipe_segs_head);
+ else
+ prevpp = BU_LIST_FIRST(wdb_pipe_pnt, &pipeip->pipe_segs_head);
+
+ MAT4X3PNT(view_pp_coord, gedp->ged_gvp->gv_model2view, prevpp->pp_coord);
+ view_ps_pt[Z] = view_pp_coord[Z];
+ MAT4X3PNT(ps_pt, gedp->ged_gvp->gv_view2model, view_ps_pt);
+
+ if ((*func)(pipeip, (struct wdb_pipe_pnt *)NULL, ps_pt) == (struct
wdb_pipe_pnt *)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: cannot move point there",
argv[0]);
+ return GED_ERROR;
+ }
+
+ {
+ mat_t invmat;
+ struct wdb_pipe_pnt *curr_ps;
+ point_t curr_pt;
+
+ bn_mat_inv(invmat, mat);
+ for (BU_LIST_FOR(curr_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ MAT4X3PNT(curr_pt, invmat, curr_ps->pp_coord);
+ VMOVE(curr_ps->pp_coord, curr_pt);
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ }
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_pipe_append_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ return _ged_pipe_append_pnt_common(gedp, argc, argv, _ged_pipe_add_pnt);
+}
+
+
+int
+ged_pipe_delete_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "pipe seg_i";
+ struct rt_db_internal intern;
+ struct wdb_pipe_pnt *ps;
+ struct rt_pipe_internal *pipeip;
+ int seg_i;
+ char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%d", &seg_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad pipe segment index - %s",
argv[0], argv[3]);
+ return GED_ERROR;
+ }
+
+ if (rt_db_get_internal(&intern, dp, gedp->ged_wdbp->dbip, (fastf_t *)NULL,
&rt_uniresource) < 0) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to get internal for
%s", argv[0], argv[1]);
+ return GED_ERROR;
+ }
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_PIPE) {
+ bu_vls_printf(gedp->ged_result_str, "%s is not a PIPE", argv[1]);
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ pipeip = (struct rt_pipe_internal *)intern.idb_ptr;
+ if ((ps = _ged_get_pipe_seg_i(pipeip, seg_i)) == (struct wdb_pipe_pnt
*)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: bad pipe segment index - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (_ged_pipe_delete_pnt(ps) == ps) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: cannot delete pipe segment
%d", argv[0], seg_i);
+ return GED_ERROR;
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_find_pipe_pnt_nearest_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "pipe x y z";
+ struct rt_db_internal intern;
+ struct wdb_pipe_pnt *nearest;
+ point_t model_pt;
+ double scan[3];
+ mat_t mat;
+ int seg_i;
+ char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3 && argc != 5) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (argc == 3) {
+ if (sscanf(argv[2], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[2]);
+ return GED_ERROR;
+ }
+ } else if (sscanf(argv[2], "%lf", &scan[X]) != 1 ||
+ sscanf(argv[3], "%lf", &scan[Y]) != 1 ||
+ sscanf(argv[4], "%lf", &scan[Z]) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad X, Y or Z", argv[0]);
+ return GED_ERROR;
+ }
+ /* convert from double to fastf_t */
+ VMOVE(model_pt, scan);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ nearest = find_pipe_pnt_nearest_pnt(&((struct rt_pipe_internal
*)intern.idb_ptr)->pipe_segs_head,
+ model_pt, gedp->ged_gvp->gv_view2model);
+ seg_i = _ged_get_pipe_i_seg((struct rt_pipe_internal *)intern.idb_ptr,
nearest);
+ rt_db_free_internal(&intern);
+
+ if (seg_i < 0) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find segment for
%s", argv[0], argv[1]);
+ return GED_ERROR;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "%d", seg_i);
+ return GED_OK;
+}
+
+
+int
+ged_pipe_move_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ struct directory *dp;
+ static const char *usage = "[-r] pipe seg_i pt";
+ struct rt_db_internal intern;
+ struct wdb_pipe_pnt *ps;
+ struct rt_pipe_internal *pipeip;
+ mat_t mat;
+ point_t ps_pt;
+ double scan[3];
+ int seg_i;
+ int rflag = 0;
+ char *last;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc < 4 || 5 < argc) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (argc == 5) {
+ if (argv[1][0] != '-' || argv[1][1] != 'r' || argv[1][2] != '\0') {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ rflag = 1;
+ --argc;
+ ++argv;
+ }
+
+ if ((last = strrchr(argv[1], '/')) == NULL)
+ last = (char *)argv[1];
+ else
+ ++last;
+
+ if (last[0] == '\0') {
+ bu_vls_printf(gedp->ged_result_str, "%s: illegal input - %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ dp = db_lookup(gedp->ged_wdbp->dbip, last, LOOKUP_QUIET);
+ if (dp == RT_DIR_NULL) {
+ bu_vls_printf(gedp->ged_result_str, "%s: failed to find %s", argv[0],
argv[1]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[2], "%d", &seg_i) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad pipe segment index - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[3], "%lf %lf %lf", &scan[X], &scan[Y], &scan[Z]) != 3) {
+ bu_vls_printf(gedp->ged_result_str, "%s: bad point - %s", argv[0],
argv[3]);
+ return GED_ERROR;
+ }
+ VSCALE(ps_pt, scan, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (wdb_import_from_path2(gedp->ged_result_str, &intern, argv[1],
gedp->ged_wdbp, mat) == GED_ERROR)
+ return GED_ERROR;
+
+ if (intern.idb_major_type != DB5_MAJORTYPE_BRLCAD ||
+ intern.idb_minor_type != DB5_MINORTYPE_BRLCAD_PIPE) {
+ bu_vls_printf(gedp->ged_result_str, "Object not a PIPE");
+ rt_db_free_internal(&intern);
+
+ return GED_ERROR;
+ }
+
+ pipeip = (struct rt_pipe_internal *)intern.idb_ptr;
+ if ((ps = _ged_get_pipe_seg_i(pipeip, seg_i)) == (struct wdb_pipe_pnt
*)NULL) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: bad pipe segment index - %s",
argv[0], argv[2]);
+ return GED_ERROR;
+ }
+
+ if (rflag) {
+ VADD2(ps_pt, ps_pt, ps->pp_coord);
+ }
+
+ if (_ged_pipe_move_pnt(pipeip, ps, ps_pt)) {
+ rt_db_free_internal(&intern);
+ bu_vls_printf(gedp->ged_result_str, "%s: cannot move point there",
argv[0]);
+ return GED_ERROR;
+ }
+
+ {
+ mat_t invmat;
+ struct wdb_pipe_pnt *curr_ps;
+ point_t curr_pt;
+
+ bn_mat_inv(invmat, mat);
+ for (BU_LIST_FOR(curr_ps, wdb_pipe_pnt, &pipeip->pipe_segs_head)) {
+ MAT4X3PNT(curr_pt, invmat, curr_ps->pp_coord);
+ VMOVE(curr_ps->pp_coord, curr_pt);
+ }
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &intern, &rt_uniresource, GED_ERROR);
+ }
+
+ rt_db_free_internal(&intern);
+ return GED_OK;
+}
+
+
+int
+ged_pipe_prepend_pnt(struct ged *gedp, int argc, const char *argv[])
+{
+ return _ged_pipe_append_pnt_common(gedp, argc, argv, _ged_pipe_ins_pnt);
+}
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Modified: brlcad/branches/gedplugins/src/libged/env/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/env/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/env/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-env env.c)
PLUGIN_SETUP(ged-env ged)
+CMAKEFILES(
+ CMakeLists.txt
+ env.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/erase/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/erase/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/erase/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-erase erase.c)
PLUGIN_SETUP(ged-erase ged)
+CMAKEFILES(
+ CMakeLists.txt
+ erase.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/exists/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/exists/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/exists/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-exists exists.c)
PLUGIN_SETUP(ged-exists ged)
+CMAKEFILES(
+ CMakeLists.txt
+ exists.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/expand/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/expand/CMakeLists.txt 2020-07-22
13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/expand/CMakeLists.txt 2020-07-22
14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-expand expand.c)
PLUGIN_SETUP(ged-expand ged)
+CMAKEFILES(
+ CMakeLists.txt
+ expand.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/gedplugins/src/libged/eye_pos/CMakeLists.txt
===================================================================
--- brlcad/branches/gedplugins/src/libged/eye_pos/CMakeLists.txt
2020-07-22 13:13:48 UTC (rev 76414)
+++ brlcad/branches/gedplugins/src/libged/eye_pos/CMakeLists.txt
2020-07-22 14:18:04 UTC (rev 76415)
@@ -13,6 +13,11 @@
VALIDATE_STYLE(ged-eye_pos eye_pos.c)
PLUGIN_SETUP(ged-eye_pos ged)
+CMAKEFILES(
+ CMakeLists.txt
+ eye_pos.c
+ )
+
# Local Variables:
# tab-width: 8
# mode: cmake
Copied: brlcad/branches/gedplugins/src/libged/facedef.c (from rev 76414,
brlcad/branches/gedplugins/src/libged/facedef/facedef.c)
===================================================================
--- brlcad/branches/gedplugins/src/libged/facedef.c
(rev 0)
+++ brlcad/branches/gedplugins/src/libged/facedef.c 2020-07-22 14:18:04 UTC
(rev 76415)
@@ -0,0 +1,387 @@
+/* F A C E D E F . C
+ * BRL-CAD
+ *
+ * Copyright (c) 1986-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/facedef.c
+ *
+ */
+
+#include "common.h"
+
+#include <stdlib.h>
+#include <math.h>
+#include <signal.h>
+
+
+#include "vmath.h"
+#include "rt/geom.h"
+#include "raytrace.h"
+#include "./ged_private.h"
+
+
+char *p_rotfb[] = {
+ "Enter rot, fb angles: ",
+ "Enter fb angle: ",
+ "Enter fixed vertex(v#) or point(X Y Z): ",
+ "Enter Y, Z of point: ",
+ "Enter Z of point: "
+};
+
+
+char *p_3pts[] = {
+ "Enter X, Y, Z of point",
+ "Enter Y, Z of point",
+ "Enter Z of point"
+};
+
+
+char *p_pleqn[] = {
+ "Enter A, B, C, D of plane equation: ",
+ "Enter B, C, D of plane equation: ",
+ "Enter C, D of plane equation: ",
+ "Enter D of plane equation: "
+};
+
+
+char *p_nupnt[] = {
+ "Enter X, Y, Z of fixed point: ",
+ "Enter Y, Z of fixed point: ",
+ "Enter Z of fixed point: "
+};
+
+
+/*
+ * Gets the planar equation from the array argv[] and puts the result
+ * into 'plane'.
+ */
+static void
+get_pleqn(struct ged *gedp, fastf_t *plane, const char *argv[])
+{
+ int i;
+
+ for (i=0; i<4; i++)
+ plane[i]= atof(argv[i]);
+ VUNITIZE(&plane[0]);
+ plane[W] *= gedp->ged_wdbp->dbip->dbi_local2base;
+ return;
+}
+
+
+/*
+ * Gets three definite points from the array argv[] and finds the
+ * planar equation from these points. The resulting plane equation is
+ * stored in 'plane'.
+ *
+ * Returns -
+ * 0 success
+ * -1 failure
+ */
+static int
+get_3pts(struct ged *gedp, fastf_t *plane, const char *argv[], const struct
bn_tol *tol)
+{
+ int i;
+ point_t a, b, c;
+
+ for (i=0; i<3; i++)
+ a[i] = atof(argv[0+i]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ for (i=0; i<3; i++)
+ b[i] = atof(argv[3+i]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ for (i=0; i<3; i++)
+ c[i] = atof(argv[6+i]) * gedp->ged_wdbp->dbip->dbi_local2base;
+
+ if (bn_make_plane_3pnts(plane, a, b, c, tol) < 0) {
+ bu_vls_printf(gedp->ged_result_str, "facedef: not a plane\n");
+ return -1; /* failure */
+ }
+ return 0; /* success */
+}
+
+
+/*
+ * Gets information from the array argv[]. Finds the planar equation
+ * given rotation and fallback angles, plus a fixed point. Result is
@@ 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