Revision: 76360
http://sourceforge.net/p/brlcad/code/76360
Author: starseeker
Date: 2020-07-17 16:44:16 +0000 (Fri, 17 Jul 2020)
Log Message:
-----------
Move GED command files into subdirectories, to match zoom pattern. (This will
be disruptive to the build, so doing the work in a branch)
Modified Paths:
--------------
brlcad/branches/bioh/src/libged/CMakeLists.txt
Added Paths:
-----------
brlcad/branches/bioh/src/libged/3ptarb/
brlcad/branches/bioh/src/libged/3ptarb/3ptarb.c
brlcad/branches/bioh/src/libged/adc/
brlcad/branches/bioh/src/libged/adc/adc.c
brlcad/branches/bioh/src/libged/adjust/
brlcad/branches/bioh/src/libged/adjust/adjust.c
brlcad/branches/bioh/src/libged/ae2dir/
brlcad/branches/bioh/src/libged/ae2dir/ae2dir.c
brlcad/branches/bioh/src/libged/analyze/
brlcad/branches/bioh/src/libged/analyze/analyze.c
brlcad/branches/bioh/src/libged/annotate/
brlcad/branches/bioh/src/libged/annotate/annotate.c
brlcad/branches/bioh/src/libged/arb/
brlcad/branches/bioh/src/libged/arb/arb.c
brlcad/branches/bioh/src/libged/arced/
brlcad/branches/bioh/src/libged/arced/arced.c
brlcad/branches/bioh/src/libged/arot/
brlcad/branches/bioh/src/libged/arot/arot.c
brlcad/branches/bioh/src/libged/attr/
brlcad/branches/bioh/src/libged/attr/attr.cpp
brlcad/branches/bioh/src/libged/autoview/
brlcad/branches/bioh/src/libged/autoview/autoview.c
brlcad/branches/bioh/src/libged/bb/
brlcad/branches/bioh/src/libged/bb/bb.c
brlcad/branches/bioh/src/libged/bev/
brlcad/branches/bioh/src/libged/bev/bev.c
brlcad/branches/bioh/src/libged/bigE/
brlcad/branches/bioh/src/libged/bigE/bigE.c
brlcad/branches/bioh/src/libged/blast/
brlcad/branches/bioh/src/libged/blast/blast.c
brlcad/branches/bioh/src/libged/bo/
brlcad/branches/bioh/src/libged/bo/bo.c
brlcad/branches/bioh/src/libged/bot_condense/
brlcad/branches/bioh/src/libged/bot_condense/bot_condense.c
brlcad/branches/bioh/src/libged/bot_decimate/
brlcad/branches/bioh/src/libged/bot_decimate/bot_decimate.c
brlcad/branches/bioh/src/libged/bot_dump/
brlcad/branches/bioh/src/libged/bot_dump/bot_dump.c
brlcad/branches/bioh/src/libged/bot_face_fuse/
brlcad/branches/bioh/src/libged/bot_face_fuse/bot_face_fuse.c
brlcad/branches/bioh/src/libged/bot_face_sort/
brlcad/branches/bioh/src/libged/bot_face_sort/bot_face_sort.c
brlcad/branches/bioh/src/libged/bot_flip/
brlcad/branches/bioh/src/libged/bot_flip/bot_flip.c
brlcad/branches/bioh/src/libged/bot_fuse/
brlcad/branches/bioh/src/libged/bot_fuse/bot_fuse.c
brlcad/branches/bioh/src/libged/bot_merge/
brlcad/branches/bioh/src/libged/bot_merge/bot_merge.c
brlcad/branches/bioh/src/libged/bot_smooth/
brlcad/branches/bioh/src/libged/bot_smooth/bot_smooth.c
brlcad/branches/bioh/src/libged/bot_split/
brlcad/branches/bioh/src/libged/bot_split/bot_split.c
brlcad/branches/bioh/src/libged/bot_sync/
brlcad/branches/bioh/src/libged/bot_sync/bot_sync.c
brlcad/branches/bioh/src/libged/bot_vertex_fuse/
brlcad/branches/bioh/src/libged/bot_vertex_fuse/bot_vertex_fuse.c
brlcad/branches/bioh/src/libged/cat/
brlcad/branches/bioh/src/libged/cat/cat.c
brlcad/branches/bioh/src/libged/cc/
brlcad/branches/bioh/src/libged/cc/cc.c
brlcad/branches/bioh/src/libged/clone/
brlcad/branches/bioh/src/libged/clone/clone.c
brlcad/branches/bioh/src/libged/coil/
brlcad/branches/bioh/src/libged/coil/coil.c
brlcad/branches/bioh/src/libged/color/
brlcad/branches/bioh/src/libged/color/color.c
brlcad/branches/bioh/src/libged/columns/
brlcad/branches/bioh/src/libged/columns/columns.c
brlcad/branches/bioh/src/libged/comb/
brlcad/branches/bioh/src/libged/comb/comb.c
brlcad/branches/bioh/src/libged/comb_color/
brlcad/branches/bioh/src/libged/comb_color/comb_color.c
brlcad/branches/bioh/src/libged/comb_std/
brlcad/branches/bioh/src/libged/comb_std/comb_std.c
brlcad/branches/bioh/src/libged/combmem/
brlcad/branches/bioh/src/libged/combmem/combmem.c
brlcad/branches/bioh/src/libged/concat/
brlcad/branches/bioh/src/libged/concat/concat.cpp
brlcad/branches/bioh/src/libged/copy/
brlcad/branches/bioh/src/libged/copy/copy.c
brlcad/branches/bioh/src/libged/copyeval/
brlcad/branches/bioh/src/libged/copyeval/copyeval.c
brlcad/branches/bioh/src/libged/copymat/
brlcad/branches/bioh/src/libged/copymat/copymat.c
brlcad/branches/bioh/src/libged/cpi/
brlcad/branches/bioh/src/libged/cpi/cpi.c
brlcad/branches/bioh/src/libged/dag/
brlcad/branches/bioh/src/libged/dag/dag.cpp
brlcad/branches/bioh/src/libged/dbip/
brlcad/branches/bioh/src/libged/dbip/dbip.c
brlcad/branches/bioh/src/libged/debug/
brlcad/branches/bioh/src/libged/debug/debug.cpp
brlcad/branches/bioh/src/libged/debugbu/
brlcad/branches/bioh/src/libged/debugbu/debugbu.c
brlcad/branches/bioh/src/libged/debugdir/
brlcad/branches/bioh/src/libged/debugdir/debugdir.c
brlcad/branches/bioh/src/libged/debuglib/
brlcad/branches/bioh/src/libged/debuglib/debuglib.c
brlcad/branches/bioh/src/libged/debugnmg/
brlcad/branches/bioh/src/libged/debugnmg/debugnmg.c
brlcad/branches/bioh/src/libged/decompose/
brlcad/branches/bioh/src/libged/decompose/decompose.c
brlcad/branches/bioh/src/libged/delay/
brlcad/branches/bioh/src/libged/delay/delay.c
brlcad/branches/bioh/src/libged/dir2ae/
brlcad/branches/bioh/src/libged/dir2ae/dir2ae.c
brlcad/branches/bioh/src/libged/display_list/
brlcad/branches/bioh/src/libged/display_list/display_list.c
brlcad/branches/bioh/src/libged/draw/
brlcad/branches/bioh/src/libged/draw/draw.c
brlcad/branches/bioh/src/libged/draw_calc/
brlcad/branches/bioh/src/libged/draw_calc/draw_calc.cpp
brlcad/branches/bioh/src/libged/dsp/
brlcad/branches/bioh/src/libged/dsp/dsp.c
brlcad/branches/bioh/src/libged/dump/
brlcad/branches/bioh/src/libged/dump/dump.c
brlcad/branches/bioh/src/libged/dup/
brlcad/branches/bioh/src/libged/dup/dup.c
brlcad/branches/bioh/src/libged/eac/
brlcad/branches/bioh/src/libged/eac/eac.c
brlcad/branches/bioh/src/libged/echo/
brlcad/branches/bioh/src/libged/echo/echo.c
brlcad/branches/bioh/src/libged/edarb/
brlcad/branches/bioh/src/libged/edarb/edarb.c
brlcad/branches/bioh/src/libged/edbot/
brlcad/branches/bioh/src/libged/edbot/edbot.c
brlcad/branches/bioh/src/libged/edcodes/
brlcad/branches/bioh/src/libged/edcodes/edcodes.c
brlcad/branches/bioh/src/libged/edcomb/
brlcad/branches/bioh/src/libged/edcomb/edcomb.c
brlcad/branches/bioh/src/libged/edit/
brlcad/branches/bioh/src/libged/edit/edit.c
brlcad/branches/bioh/src/libged/edit_metaball/
brlcad/branches/bioh/src/libged/edit_metaball/edit_metaball.c
brlcad/branches/bioh/src/libged/editit/
brlcad/branches/bioh/src/libged/editit/editit.c
brlcad/branches/bioh/src/libged/edmater/
brlcad/branches/bioh/src/libged/edmater/edmater.c
brlcad/branches/bioh/src/libged/edpipe/
brlcad/branches/bioh/src/libged/edpipe/edpipe.c
brlcad/branches/bioh/src/libged/env/
brlcad/branches/bioh/src/libged/env/env.c
brlcad/branches/bioh/src/libged/erase/
brlcad/branches/bioh/src/libged/erase/erase.c
brlcad/branches/bioh/src/libged/exists/
brlcad/branches/bioh/src/libged/exists/exists.c
brlcad/branches/bioh/src/libged/expand/
brlcad/branches/bioh/src/libged/expand/expand.c
brlcad/branches/bioh/src/libged/eye_pos/
brlcad/branches/bioh/src/libged/eye_pos/eye_pos.c
brlcad/branches/bioh/src/libged/facedef/
brlcad/branches/bioh/src/libged/facedef/facedef.c
brlcad/branches/bioh/src/libged/facetize/
brlcad/branches/bioh/src/libged/facetize/facetize.cpp
brlcad/branches/bioh/src/libged/facetize_log/
brlcad/branches/bioh/src/libged/facetize_log/facetize_log.c
brlcad/branches/bioh/src/libged/fb2pix/
brlcad/branches/bioh/src/libged/fb2pix/fb2pix.c
brlcad/branches/bioh/src/libged/fbclear/
brlcad/branches/bioh/src/libged/fbclear/fbclear.c
brlcad/branches/bioh/src/libged/find/
brlcad/branches/bioh/src/libged/find/find.c
brlcad/branches/bioh/src/libged/form/
brlcad/branches/bioh/src/libged/form/form.c
brlcad/branches/bioh/src/libged/fracture/
brlcad/branches/bioh/src/libged/fracture/fracture.c
brlcad/branches/bioh/src/libged/gdiff/
brlcad/branches/bioh/src/libged/gdiff/gdiff.c
brlcad/branches/bioh/src/libged/ged/
brlcad/branches/bioh/src/libged/ged/ged.c
brlcad/branches/bioh/src/libged/ged_util/
brlcad/branches/bioh/src/libged/ged_util/ged_util.c
brlcad/branches/bioh/src/libged/get/
brlcad/branches/bioh/src/libged/get/get.c
brlcad/branches/bioh/src/libged/get_autoview/
brlcad/branches/bioh/src/libged/get_autoview/get_autoview.c
brlcad/branches/bioh/src/libged/get_comb/
brlcad/branches/bioh/src/libged/get_comb/get_comb.c
brlcad/branches/bioh/src/libged/get_eyemodel/
brlcad/branches/bioh/src/libged/get_eyemodel/get_eyemodel.c
brlcad/branches/bioh/src/libged/get_obj_bounds/
brlcad/branches/bioh/src/libged/get_obj_bounds/get_obj_bounds.c
brlcad/branches/bioh/src/libged/get_solid_kp/
brlcad/branches/bioh/src/libged/get_solid_kp/get_solid_kp.c
brlcad/branches/bioh/src/libged/get_type/
brlcad/branches/bioh/src/libged/get_type/get_type.c
brlcad/branches/bioh/src/libged/glob/
brlcad/branches/bioh/src/libged/glob/glob.c
brlcad/branches/bioh/src/libged/gqa/
brlcad/branches/bioh/src/libged/gqa/gqa.c
brlcad/branches/bioh/src/libged/grid/
brlcad/branches/bioh/src/libged/grid/grid.c
brlcad/branches/bioh/src/libged/grid2model_lu/
brlcad/branches/bioh/src/libged/grid2model_lu/grid2model_lu.c
brlcad/branches/bioh/src/libged/grid2view_lu/
brlcad/branches/bioh/src/libged/grid2view_lu/grid2view_lu.c
brlcad/branches/bioh/src/libged/group/
brlcad/branches/bioh/src/libged/group/group.c
brlcad/branches/bioh/src/libged/heal/
brlcad/branches/bioh/src/libged/heal/heal.c
brlcad/branches/bioh/src/libged/hide/
brlcad/branches/bioh/src/libged/hide/hide.c
brlcad/branches/bioh/src/libged/how/
brlcad/branches/bioh/src/libged/how/how.c
brlcad/branches/bioh/src/libged/human/
brlcad/branches/bioh/src/libged/human/human.c
brlcad/branches/bioh/src/libged/illum/
brlcad/branches/bioh/src/libged/illum/illum.c
brlcad/branches/bioh/src/libged/importFg4Section/
brlcad/branches/bioh/src/libged/importFg4Section/importFg4Section.c
brlcad/branches/bioh/src/libged/inside/
brlcad/branches/bioh/src/libged/inside/inside.c
brlcad/branches/bioh/src/libged/instance/
brlcad/branches/bioh/src/libged/instance/instance.c
brlcad/branches/bioh/src/libged/isize/
brlcad/branches/bioh/src/libged/isize/isize.c
brlcad/branches/bioh/src/libged/item/
brlcad/branches/bioh/src/libged/item/item.c
brlcad/branches/bioh/src/libged/joint/
brlcad/branches/bioh/src/libged/joint/joint.c
brlcad/branches/bioh/src/libged/joint2/
brlcad/branches/bioh/src/libged/joint2/joint2.c
brlcad/branches/bioh/src/libged/keep/
brlcad/branches/bioh/src/libged/keep/keep.c
brlcad/branches/bioh/src/libged/keypoint/
brlcad/branches/bioh/src/libged/keypoint/keypoint.c
brlcad/branches/bioh/src/libged/kill/
brlcad/branches/bioh/src/libged/kill/kill.c
brlcad/branches/bioh/src/libged/killall/
brlcad/branches/bioh/src/libged/killall/killall.c
brlcad/branches/bioh/src/libged/killrefs/
brlcad/branches/bioh/src/libged/killrefs/killrefs.c
brlcad/branches/bioh/src/libged/killtree/
brlcad/branches/bioh/src/libged/killtree/killtree.c
brlcad/branches/bioh/src/libged/label/
brlcad/branches/bioh/src/libged/label/label.c
brlcad/branches/bioh/src/libged/lc/
brlcad/branches/bioh/src/libged/lc/lc.c
brlcad/branches/bioh/src/libged/libfuncs/
brlcad/branches/bioh/src/libged/libfuncs/libfuncs.c
brlcad/branches/bioh/src/libged/lint/
brlcad/branches/bioh/src/libged/lint/lint.cpp
brlcad/branches/bioh/src/libged/list/
brlcad/branches/bioh/src/libged/list/list.c
brlcad/branches/bioh/src/libged/loadview/
brlcad/branches/bioh/src/libged/loadview/loadview.c
brlcad/branches/bioh/src/libged/lod/
brlcad/branches/bioh/src/libged/lod/lod.c
brlcad/branches/bioh/src/libged/log/
brlcad/branches/bioh/src/libged/log/log.c
brlcad/branches/bioh/src/libged/lookat/
brlcad/branches/bioh/src/libged/lookat/lookat.c
brlcad/branches/bioh/src/libged/ls/
brlcad/branches/bioh/src/libged/ls/ls.c
brlcad/branches/bioh/src/libged/lt/
brlcad/branches/bioh/src/libged/lt/lt.c
brlcad/branches/bioh/src/libged/m2v_point/
brlcad/branches/bioh/src/libged/m2v_point/m2v_point.c
brlcad/branches/bioh/src/libged/make/
brlcad/branches/bioh/src/libged/make/make.c
brlcad/branches/bioh/src/libged/make_name/
brlcad/branches/bioh/src/libged/make_name/make_name.c
brlcad/branches/bioh/src/libged/match/
brlcad/branches/bioh/src/libged/match/match.c
brlcad/branches/bioh/src/libged/mater/
brlcad/branches/bioh/src/libged/mater/mater.cpp
brlcad/branches/bioh/src/libged/mirror/
brlcad/branches/bioh/src/libged/mirror/mirror.c
brlcad/branches/bioh/src/libged/model2grid_lu/
brlcad/branches/bioh/src/libged/model2grid_lu/model2grid_lu.c
brlcad/branches/bioh/src/libged/model2view/
brlcad/branches/bioh/src/libged/model2view/model2view.c
brlcad/branches/bioh/src/libged/model2view_lu/
brlcad/branches/bioh/src/libged/model2view_lu/model2view_lu.c
brlcad/branches/bioh/src/libged/move/
brlcad/branches/bioh/src/libged/move/move.c
brlcad/branches/bioh/src/libged/move_all/
brlcad/branches/bioh/src/libged/move_all/move_all.c
brlcad/branches/bioh/src/libged/move_arb_edge/
brlcad/branches/bioh/src/libged/move_arb_edge/move_arb_edge.c
brlcad/branches/bioh/src/libged/move_arb_face/
brlcad/branches/bioh/src/libged/move_arb_face/move_arb_face.c
brlcad/branches/bioh/src/libged/mrot/
brlcad/branches/bioh/src/libged/mrot/mrot.c
brlcad/branches/bioh/src/libged/nirt/
brlcad/branches/bioh/src/libged/nirt/nirt.c
brlcad/branches/bioh/src/libged/nmg/
brlcad/branches/bioh/src/libged/nmg/nmg.c
brlcad/branches/bioh/src/libged/nmg_cmface/
brlcad/branches/bioh/src/libged/nmg_cmface/nmg_cmface.c
brlcad/branches/bioh/src/libged/nmg_collapse/
brlcad/branches/bioh/src/libged/nmg_collapse/nmg_collapse.c
brlcad/branches/bioh/src/libged/nmg_fix_normals/
brlcad/branches/bioh/src/libged/nmg_fix_normals/nmg_fix_normals.c
brlcad/branches/bioh/src/libged/nmg_kill_f/
brlcad/branches/bioh/src/libged/nmg_kill_f/nmg_kill_f.c
brlcad/branches/bioh/src/libged/nmg_kill_v/
brlcad/branches/bioh/src/libged/nmg_kill_v/nmg_kill_v.c
brlcad/branches/bioh/src/libged/nmg_make_v/
brlcad/branches/bioh/src/libged/nmg_make_v/nmg_make_v.c
brlcad/branches/bioh/src/libged/nmg_mm/
brlcad/branches/bioh/src/libged/nmg_mm/nmg_mm.c
brlcad/branches/bioh/src/libged/nmg_move_v/
brlcad/branches/bioh/src/libged/nmg_move_v/nmg_move_v.c
brlcad/branches/bioh/src/libged/nmg_simplify/
brlcad/branches/bioh/src/libged/nmg_simplify/nmg_simplify.c
brlcad/branches/bioh/src/libged/ocenter/
brlcad/branches/bioh/src/libged/ocenter/ocenter.c
brlcad/branches/bioh/src/libged/open/
brlcad/branches/bioh/src/libged/open/open.c
brlcad/branches/bioh/src/libged/orient/
brlcad/branches/bioh/src/libged/orient/orient.c
brlcad/branches/bioh/src/libged/orotate/
brlcad/branches/bioh/src/libged/orotate/orotate.c
brlcad/branches/bioh/src/libged/oscale/
brlcad/branches/bioh/src/libged/oscale/oscale.c
brlcad/branches/bioh/src/libged/otranslate/
brlcad/branches/bioh/src/libged/otranslate/otranslate.c
brlcad/branches/bioh/src/libged/overlay/
brlcad/branches/bioh/src/libged/overlay/overlay.c
brlcad/branches/bioh/src/libged/path/
brlcad/branches/bioh/src/libged/path/path.c
brlcad/branches/bioh/src/libged/pathlist/
brlcad/branches/bioh/src/libged/pathlist/pathlist.c
brlcad/branches/bioh/src/libged/pathsum/
brlcad/branches/bioh/src/libged/pathsum/pathsum.c
brlcad/branches/bioh/src/libged/perspective/
brlcad/branches/bioh/src/libged/perspective/perspective.c
brlcad/branches/bioh/src/libged/pix2fb/
brlcad/branches/bioh/src/libged/pix2fb/pix2fb.c
brlcad/branches/bioh/src/libged/plot/
brlcad/branches/bioh/src/libged/plot/plot.c
brlcad/branches/bioh/src/libged/pmat/
brlcad/branches/bioh/src/libged/pmat/pmat.c
brlcad/branches/bioh/src/libged/pmodel2view/
brlcad/branches/bioh/src/libged/pmodel2view/pmodel2view.c
brlcad/branches/bioh/src/libged/png/
brlcad/branches/bioh/src/libged/png/png.c
brlcad/branches/bioh/src/libged/png2fb/
brlcad/branches/bioh/src/libged/png2fb/png2fb.c
brlcad/branches/bioh/src/libged/pnts/
brlcad/branches/bioh/src/libged/pnts/pnts.cpp
brlcad/branches/bioh/src/libged/pnts_util/
brlcad/branches/bioh/src/libged/pnts_util/pnts_util.c
brlcad/branches/bioh/src/libged/polyclip/
brlcad/branches/bioh/src/libged/polyclip/polyclip.cpp
brlcad/branches/bioh/src/libged/prcolor/
brlcad/branches/bioh/src/libged/prcolor/prcolor.c
brlcad/branches/bioh/src/libged/prefix/
brlcad/branches/bioh/src/libged/prefix/prefix.c
brlcad/branches/bioh/src/libged/preview/
brlcad/branches/bioh/src/libged/preview/preview.c
brlcad/branches/bioh/src/libged/process/
brlcad/branches/bioh/src/libged/process/process.c
brlcad/branches/bioh/src/libged/protate/
brlcad/branches/bioh/src/libged/protate/protate.c
brlcad/branches/bioh/src/libged/ps/
brlcad/branches/bioh/src/libged/ps/ps.c
brlcad/branches/bioh/src/libged/pscale/
brlcad/branches/bioh/src/libged/pscale/pscale.c
brlcad/branches/bioh/src/libged/pset/
brlcad/branches/bioh/src/libged/pset/pset.c
brlcad/branches/bioh/src/libged/ptranslate/
brlcad/branches/bioh/src/libged/ptranslate/ptranslate.c
brlcad/branches/bioh/src/libged/pull/
brlcad/branches/bioh/src/libged/pull/pull.c
brlcad/branches/bioh/src/libged/push/
brlcad/branches/bioh/src/libged/push/push.c
brlcad/branches/bioh/src/libged/put/
brlcad/branches/bioh/src/libged/put/put.c
brlcad/branches/bioh/src/libged/put_comb/
brlcad/branches/bioh/src/libged/put_comb/put_comb.c
brlcad/branches/bioh/src/libged/putmat/
brlcad/branches/bioh/src/libged/putmat/putmat.c
brlcad/branches/bioh/src/libged/qray/
brlcad/branches/bioh/src/libged/qray/qray.c
brlcad/branches/bioh/src/libged/qvrot/
brlcad/branches/bioh/src/libged/qvrot/qvrot.c
brlcad/branches/bioh/src/libged/rcodes/
brlcad/branches/bioh/src/libged/rcodes/rcodes.c
brlcad/branches/bioh/src/libged/rect/
brlcad/branches/bioh/src/libged/rect/rect.c
brlcad/branches/bioh/src/libged/red/
brlcad/branches/bioh/src/libged/red/red.c
brlcad/branches/bioh/src/libged/regdef/
brlcad/branches/bioh/src/libged/regdef/regdef.c
brlcad/branches/bioh/src/libged/region/
brlcad/branches/bioh/src/libged/region/region.c
brlcad/branches/bioh/src/libged/remove/
brlcad/branches/bioh/src/libged/remove/remove.c
brlcad/branches/bioh/src/libged/rfarb/
brlcad/branches/bioh/src/libged/rfarb/rfarb.c
brlcad/branches/bioh/src/libged/rmap/
brlcad/branches/bioh/src/libged/rmap/rmap.c
brlcad/branches/bioh/src/libged/rmat/
brlcad/branches/bioh/src/libged/rmat/rmat.c
brlcad/branches/bioh/src/libged/rmater/
brlcad/branches/bioh/src/libged/rmater/rmater.c
brlcad/branches/bioh/src/libged/rot/
brlcad/branches/bioh/src/libged/rot/rot.c
brlcad/branches/bioh/src/libged/rot_point/
brlcad/branches/bioh/src/libged/rot_point/rot_point.c
brlcad/branches/bioh/src/libged/rotate_about/
brlcad/branches/bioh/src/libged/rotate_about/rotate_about.c
brlcad/branches/bioh/src/libged/rotate_arb_face/
brlcad/branches/bioh/src/libged/rotate_arb_face/rotate_arb_face.c
brlcad/branches/bioh/src/libged/rotate_eto/
brlcad/branches/bioh/src/libged/rotate_eto/rotate_eto.c
brlcad/branches/bioh/src/libged/rotate_extrude/
brlcad/branches/bioh/src/libged/rotate_extrude/rotate_extrude.c
brlcad/branches/bioh/src/libged/rotate_hyp/
brlcad/branches/bioh/src/libged/rotate_hyp/rotate_hyp.c
brlcad/branches/bioh/src/libged/rotate_tgc/
brlcad/branches/bioh/src/libged/rotate_tgc/rotate_tgc.c
brlcad/branches/bioh/src/libged/rrt/
brlcad/branches/bioh/src/libged/rrt/rrt.c
brlcad/branches/bioh/src/libged/rt/
brlcad/branches/bioh/src/libged/rt/rt.c
brlcad/branches/bioh/src/libged/rtabort/
brlcad/branches/bioh/src/libged/rtabort/rtabort.c
brlcad/branches/bioh/src/libged/rtcheck/
brlcad/branches/bioh/src/libged/rtcheck/rtcheck.c
brlcad/branches/bioh/src/libged/rtwizard/
brlcad/branches/bioh/src/libged/rtwizard/rtwizard.c
brlcad/branches/bioh/src/libged/savekey/
brlcad/branches/bioh/src/libged/savekey/savekey.c
brlcad/branches/bioh/src/libged/saveview/
brlcad/branches/bioh/src/libged/saveview/saveview.c
brlcad/branches/bioh/src/libged/scale/
brlcad/branches/bioh/src/libged/scale/scale.c
brlcad/branches/bioh/src/libged/scale_ehy/
brlcad/branches/bioh/src/libged/scale_ehy/scale_ehy.c
brlcad/branches/bioh/src/libged/scale_ell/
brlcad/branches/bioh/src/libged/scale_ell/scale_ell.c
brlcad/branches/bioh/src/libged/scale_epa/
brlcad/branches/bioh/src/libged/scale_epa/scale_epa.c
brlcad/branches/bioh/src/libged/scale_eto/
brlcad/branches/bioh/src/libged/scale_eto/scale_eto.c
brlcad/branches/bioh/src/libged/scale_extrude/
brlcad/branches/bioh/src/libged/scale_extrude/scale_extrude.c
brlcad/branches/bioh/src/libged/scale_hyp/
brlcad/branches/bioh/src/libged/scale_hyp/scale_hyp.c
brlcad/branches/bioh/src/libged/scale_part/
brlcad/branches/bioh/src/libged/scale_part/scale_part.c
brlcad/branches/bioh/src/libged/scale_rhc/
brlcad/branches/bioh/src/libged/scale_rhc/scale_rhc.c
brlcad/branches/bioh/src/libged/scale_rpc/
brlcad/branches/bioh/src/libged/scale_rpc/scale_rpc.c
brlcad/branches/bioh/src/libged/scale_superell/
brlcad/branches/bioh/src/libged/scale_superell/scale_superell.c
brlcad/branches/bioh/src/libged/scale_tgc/
brlcad/branches/bioh/src/libged/scale_tgc/scale_tgc.c
brlcad/branches/bioh/src/libged/scale_tor/
brlcad/branches/bioh/src/libged/scale_tor/scale_tor.c
brlcad/branches/bioh/src/libged/screengrab/
brlcad/branches/bioh/src/libged/screengrab/screengrab.c
brlcad/branches/bioh/src/libged/search/
brlcad/branches/bioh/src/libged/search/search.c
brlcad/branches/bioh/src/libged/select/
brlcad/branches/bioh/src/libged/select/select.c
brlcad/branches/bioh/src/libged/set_output_script/
brlcad/branches/bioh/src/libged/set_output_script/set_output_script.c
brlcad/branches/bioh/src/libged/set_transparency/
brlcad/branches/bioh/src/libged/set_transparency/set_transparency.c
brlcad/branches/bioh/src/libged/set_uplotOutputMode/
brlcad/branches/bioh/src/libged/set_uplotOutputMode/set_uplotOutputMode.c
brlcad/branches/bioh/src/libged/setview/
brlcad/branches/bioh/src/libged/setview/setview.c
brlcad/branches/bioh/src/libged/shaded_mode/
brlcad/branches/bioh/src/libged/shaded_mode/shaded_mode.c
brlcad/branches/bioh/src/libged/shader/
brlcad/branches/bioh/src/libged/shader/shader.c
brlcad/branches/bioh/src/libged/shells/
brlcad/branches/bioh/src/libged/shells/shells.c
brlcad/branches/bioh/src/libged/showmats/
brlcad/branches/bioh/src/libged/showmats/showmats.c
brlcad/branches/bioh/src/libged/slew/
brlcad/branches/bioh/src/libged/slew/slew.c
brlcad/branches/bioh/src/libged/solid_report/
brlcad/branches/bioh/src/libged/solid_report/solid_report.c
brlcad/branches/bioh/src/libged/solids_on_ray/
brlcad/branches/bioh/src/libged/solids_on_ray/solids_on_ray.c
brlcad/branches/bioh/src/libged/sphgroup/
brlcad/branches/bioh/src/libged/sphgroup/sphgroup.c
brlcad/branches/bioh/src/libged/summary/
brlcad/branches/bioh/src/libged/summary/summary.c
brlcad/branches/bioh/src/libged/sync/
brlcad/branches/bioh/src/libged/sync/sync.c
brlcad/branches/bioh/src/libged/tables/
brlcad/branches/bioh/src/libged/tables/tables.c
brlcad/branches/bioh/src/libged/tire/
brlcad/branches/bioh/src/libged/tire/tire.c
brlcad/branches/bioh/src/libged/title/
brlcad/branches/bioh/src/libged/title/title.c
brlcad/branches/bioh/src/libged/tol/
brlcad/branches/bioh/src/libged/tol/tol.c
brlcad/branches/bioh/src/libged/tops/
brlcad/branches/bioh/src/libged/tops/tops.c
brlcad/branches/bioh/src/libged/tra/
brlcad/branches/bioh/src/libged/tra/tra.c
brlcad/branches/bioh/src/libged/trace/
brlcad/branches/bioh/src/libged/trace/trace.c
brlcad/branches/bioh/src/libged/track/
brlcad/branches/bioh/src/libged/track/track.c
brlcad/branches/bioh/src/libged/translate_extrude/
brlcad/branches/bioh/src/libged/translate_extrude/translate_extrude.c
brlcad/branches/bioh/src/libged/translate_tgc/
brlcad/branches/bioh/src/libged/translate_tgc/translate_tgc.c
brlcad/branches/bioh/src/libged/tree/
brlcad/branches/bioh/src/libged/tree/tree.c
brlcad/branches/bioh/src/libged/typein/
brlcad/branches/bioh/src/libged/typein/typein.c
brlcad/branches/bioh/src/libged/unhide/
brlcad/branches/bioh/src/libged/unhide/unhide.c
brlcad/branches/bioh/src/libged/units/
brlcad/branches/bioh/src/libged/units/units.c
brlcad/branches/bioh/src/libged/v2m_point/
brlcad/branches/bioh/src/libged/v2m_point/v2m_point.c
brlcad/branches/bioh/src/libged/vdraw/
brlcad/branches/bioh/src/libged/vdraw/vdraw.c
brlcad/branches/bioh/src/libged/version/
brlcad/branches/bioh/src/libged/version/version.c
brlcad/branches/bioh/src/libged/view2grid_lu/
brlcad/branches/bioh/src/libged/view2grid_lu/view2grid_lu.c
brlcad/branches/bioh/src/libged/view2model/
brlcad/branches/bioh/src/libged/view2model/view2model.c
brlcad/branches/bioh/src/libged/view2model_lu/
brlcad/branches/bioh/src/libged/view2model_lu/view2model_lu.c
brlcad/branches/bioh/src/libged/view2model_vec/
brlcad/branches/bioh/src/libged/view2model_vec/view2model_vec.c
brlcad/branches/bioh/src/libged/viewdir/
brlcad/branches/bioh/src/libged/viewdir/viewdir.c
brlcad/branches/bioh/src/libged/voxelize/
brlcad/branches/bioh/src/libged/voxelize/voxelize.c
brlcad/branches/bioh/src/libged/vrot/
brlcad/branches/bioh/src/libged/vrot/vrot.c
brlcad/branches/bioh/src/libged/vutil/
brlcad/branches/bioh/src/libged/vutil/vutil.c
brlcad/branches/bioh/src/libged/wcodes/
brlcad/branches/bioh/src/libged/wcodes/wcodes.c
brlcad/branches/bioh/src/libged/wdb_importFg4Section/
brlcad/branches/bioh/src/libged/wdb_importFg4Section/wdb_importFg4Section.c
brlcad/branches/bioh/src/libged/whatid/
brlcad/branches/bioh/src/libged/whatid/whatid.c
brlcad/branches/bioh/src/libged/which/
brlcad/branches/bioh/src/libged/which/which.cpp
brlcad/branches/bioh/src/libged/which_shader/
brlcad/branches/bioh/src/libged/which_shader/which_shader.c
brlcad/branches/bioh/src/libged/who/
brlcad/branches/bioh/src/libged/who/who.c
brlcad/branches/bioh/src/libged/wmater/
brlcad/branches/bioh/src/libged/wmater/wmater.c
brlcad/branches/bioh/src/libged/xpush/
brlcad/branches/bioh/src/libged/xpush/xpush.c
brlcad/branches/bioh/src/libged/zap/
brlcad/branches/bioh/src/libged/zap/zap.c
Removed Paths:
-------------
brlcad/branches/bioh/src/libged/3ptarb.c
brlcad/branches/bioh/src/libged/adc.c
brlcad/branches/bioh/src/libged/adjust.c
brlcad/branches/bioh/src/libged/ae2dir.c
brlcad/branches/bioh/src/libged/analyze.c
brlcad/branches/bioh/src/libged/annotate.c
brlcad/branches/bioh/src/libged/arb.c
brlcad/branches/bioh/src/libged/arced.c
brlcad/branches/bioh/src/libged/arot.c
brlcad/branches/bioh/src/libged/attr.cpp
brlcad/branches/bioh/src/libged/autoview.c
brlcad/branches/bioh/src/libged/bb.c
brlcad/branches/bioh/src/libged/bev.c
brlcad/branches/bioh/src/libged/bigE.c
brlcad/branches/bioh/src/libged/blast.c
brlcad/branches/bioh/src/libged/bo.c
brlcad/branches/bioh/src/libged/bot_condense.c
brlcad/branches/bioh/src/libged/bot_decimate.c
brlcad/branches/bioh/src/libged/bot_dump.c
brlcad/branches/bioh/src/libged/bot_face_fuse.c
brlcad/branches/bioh/src/libged/bot_face_sort.c
brlcad/branches/bioh/src/libged/bot_flip.c
brlcad/branches/bioh/src/libged/bot_fuse.c
brlcad/branches/bioh/src/libged/bot_merge.c
brlcad/branches/bioh/src/libged/bot_smooth.c
brlcad/branches/bioh/src/libged/bot_split.c
brlcad/branches/bioh/src/libged/bot_sync.c
brlcad/branches/bioh/src/libged/bot_vertex_fuse.c
brlcad/branches/bioh/src/libged/cat.c
brlcad/branches/bioh/src/libged/cc.c
brlcad/branches/bioh/src/libged/clone.c
brlcad/branches/bioh/src/libged/coil.c
brlcad/branches/bioh/src/libged/color.c
brlcad/branches/bioh/src/libged/columns.c
brlcad/branches/bioh/src/libged/comb.c
brlcad/branches/bioh/src/libged/comb_color.c
brlcad/branches/bioh/src/libged/comb_std.c
brlcad/branches/bioh/src/libged/combmem.c
brlcad/branches/bioh/src/libged/concat.cpp
brlcad/branches/bioh/src/libged/copy.c
brlcad/branches/bioh/src/libged/copyeval.c
brlcad/branches/bioh/src/libged/copymat.c
brlcad/branches/bioh/src/libged/cpi.c
brlcad/branches/bioh/src/libged/dag.cpp
brlcad/branches/bioh/src/libged/dbip.c
brlcad/branches/bioh/src/libged/debug.cpp
brlcad/branches/bioh/src/libged/debugbu.c
brlcad/branches/bioh/src/libged/debugdir.c
brlcad/branches/bioh/src/libged/debuglib.c
brlcad/branches/bioh/src/libged/debugnmg.c
brlcad/branches/bioh/src/libged/decompose.c
brlcad/branches/bioh/src/libged/delay.c
brlcad/branches/bioh/src/libged/dir2ae.c
brlcad/branches/bioh/src/libged/display_list.c
brlcad/branches/bioh/src/libged/draw.c
brlcad/branches/bioh/src/libged/draw_calc.cpp
brlcad/branches/bioh/src/libged/dsp.c
brlcad/branches/bioh/src/libged/dump.c
brlcad/branches/bioh/src/libged/dup.c
brlcad/branches/bioh/src/libged/eac.c
brlcad/branches/bioh/src/libged/echo.c
brlcad/branches/bioh/src/libged/edarb.c
brlcad/branches/bioh/src/libged/edbot.c
brlcad/branches/bioh/src/libged/edcodes.c
brlcad/branches/bioh/src/libged/edcomb.c
brlcad/branches/bioh/src/libged/edit.c
brlcad/branches/bioh/src/libged/edit_metaball.c
brlcad/branches/bioh/src/libged/editit.c
brlcad/branches/bioh/src/libged/edmater.c
brlcad/branches/bioh/src/libged/edpipe.c
brlcad/branches/bioh/src/libged/env.c
brlcad/branches/bioh/src/libged/erase.c
brlcad/branches/bioh/src/libged/exists.c
brlcad/branches/bioh/src/libged/expand.c
brlcad/branches/bioh/src/libged/eye_pos.c
brlcad/branches/bioh/src/libged/facedef.c
brlcad/branches/bioh/src/libged/facetize.cpp
brlcad/branches/bioh/src/libged/facetize_log.c
brlcad/branches/bioh/src/libged/fb2pix.c
brlcad/branches/bioh/src/libged/fbclear.c
brlcad/branches/bioh/src/libged/find.c
brlcad/branches/bioh/src/libged/form.c
brlcad/branches/bioh/src/libged/fracture.c
brlcad/branches/bioh/src/libged/gdiff.c
brlcad/branches/bioh/src/libged/ged.c
brlcad/branches/bioh/src/libged/ged_util.c
brlcad/branches/bioh/src/libged/get.c
brlcad/branches/bioh/src/libged/get_autoview.c
brlcad/branches/bioh/src/libged/get_comb.c
brlcad/branches/bioh/src/libged/get_eyemodel.c
brlcad/branches/bioh/src/libged/get_obj_bounds.c
brlcad/branches/bioh/src/libged/get_solid_kp.c
brlcad/branches/bioh/src/libged/get_type.c
brlcad/branches/bioh/src/libged/glob.c
brlcad/branches/bioh/src/libged/gqa.c
brlcad/branches/bioh/src/libged/grid.c
brlcad/branches/bioh/src/libged/grid2model_lu.c
brlcad/branches/bioh/src/libged/grid2view_lu.c
brlcad/branches/bioh/src/libged/group.c
brlcad/branches/bioh/src/libged/heal.c
brlcad/branches/bioh/src/libged/hide.c
brlcad/branches/bioh/src/libged/how.c
brlcad/branches/bioh/src/libged/human.c
brlcad/branches/bioh/src/libged/illum.c
brlcad/branches/bioh/src/libged/importFg4Section.c
brlcad/branches/bioh/src/libged/inside.c
brlcad/branches/bioh/src/libged/instance.c
brlcad/branches/bioh/src/libged/isize.c
brlcad/branches/bioh/src/libged/item.c
brlcad/branches/bioh/src/libged/joint.c
brlcad/branches/bioh/src/libged/joint2.c
brlcad/branches/bioh/src/libged/keep.c
brlcad/branches/bioh/src/libged/keypoint.c
brlcad/branches/bioh/src/libged/kill.c
brlcad/branches/bioh/src/libged/killall.c
brlcad/branches/bioh/src/libged/killrefs.c
brlcad/branches/bioh/src/libged/killtree.c
brlcad/branches/bioh/src/libged/label.c
brlcad/branches/bioh/src/libged/lc.c
brlcad/branches/bioh/src/libged/libfuncs.c
brlcad/branches/bioh/src/libged/lint.cpp
brlcad/branches/bioh/src/libged/list.c
brlcad/branches/bioh/src/libged/loadview.c
brlcad/branches/bioh/src/libged/lod.c
brlcad/branches/bioh/src/libged/log.c
brlcad/branches/bioh/src/libged/lookat.c
brlcad/branches/bioh/src/libged/ls.c
brlcad/branches/bioh/src/libged/lt.c
brlcad/branches/bioh/src/libged/m2v_point.c
brlcad/branches/bioh/src/libged/make.c
brlcad/branches/bioh/src/libged/make_name.c
brlcad/branches/bioh/src/libged/match.c
brlcad/branches/bioh/src/libged/mater.cpp
brlcad/branches/bioh/src/libged/mirror.c
brlcad/branches/bioh/src/libged/model2grid_lu.c
brlcad/branches/bioh/src/libged/model2view.c
brlcad/branches/bioh/src/libged/model2view_lu.c
brlcad/branches/bioh/src/libged/move.c
brlcad/branches/bioh/src/libged/move_all.c
brlcad/branches/bioh/src/libged/move_arb_edge.c
brlcad/branches/bioh/src/libged/move_arb_face.c
brlcad/branches/bioh/src/libged/mrot.c
brlcad/branches/bioh/src/libged/nirt.c
brlcad/branches/bioh/src/libged/nmg.c
brlcad/branches/bioh/src/libged/nmg_cmface.c
brlcad/branches/bioh/src/libged/nmg_collapse.c
brlcad/branches/bioh/src/libged/nmg_fix_normals.c
brlcad/branches/bioh/src/libged/nmg_kill_f.c
brlcad/branches/bioh/src/libged/nmg_kill_v.c
brlcad/branches/bioh/src/libged/nmg_make_v.c
brlcad/branches/bioh/src/libged/nmg_mm.c
brlcad/branches/bioh/src/libged/nmg_move_v.c
brlcad/branches/bioh/src/libged/nmg_simplify.c
brlcad/branches/bioh/src/libged/ocenter.c
brlcad/branches/bioh/src/libged/open.c
brlcad/branches/bioh/src/libged/orient.c
brlcad/branches/bioh/src/libged/orotate.c
brlcad/branches/bioh/src/libged/oscale.c
brlcad/branches/bioh/src/libged/otranslate.c
brlcad/branches/bioh/src/libged/overlay.c
brlcad/branches/bioh/src/libged/path.c
brlcad/branches/bioh/src/libged/pathlist.c
brlcad/branches/bioh/src/libged/pathsum.c
brlcad/branches/bioh/src/libged/perspective.c
brlcad/branches/bioh/src/libged/pix2fb.c
brlcad/branches/bioh/src/libged/plot.c
brlcad/branches/bioh/src/libged/pmat.c
brlcad/branches/bioh/src/libged/pmodel2view.c
brlcad/branches/bioh/src/libged/png.c
brlcad/branches/bioh/src/libged/png2fb.c
brlcad/branches/bioh/src/libged/pnts.cpp
brlcad/branches/bioh/src/libged/pnts_util.c
brlcad/branches/bioh/src/libged/polyclip.cpp
brlcad/branches/bioh/src/libged/prcolor.c
brlcad/branches/bioh/src/libged/prefix.c
brlcad/branches/bioh/src/libged/preview.c
brlcad/branches/bioh/src/libged/process.c
brlcad/branches/bioh/src/libged/protate.c
brlcad/branches/bioh/src/libged/ps.c
brlcad/branches/bioh/src/libged/pscale.c
brlcad/branches/bioh/src/libged/pset.c
brlcad/branches/bioh/src/libged/ptranslate.c
brlcad/branches/bioh/src/libged/pull.c
brlcad/branches/bioh/src/libged/push.c
brlcad/branches/bioh/src/libged/put.c
brlcad/branches/bioh/src/libged/put_comb.c
brlcad/branches/bioh/src/libged/putmat.c
brlcad/branches/bioh/src/libged/qray.c
brlcad/branches/bioh/src/libged/qvrot.c
brlcad/branches/bioh/src/libged/rcodes.c
brlcad/branches/bioh/src/libged/rect.c
brlcad/branches/bioh/src/libged/red.c
brlcad/branches/bioh/src/libged/regdef.c
brlcad/branches/bioh/src/libged/region.c
brlcad/branches/bioh/src/libged/remove.c
brlcad/branches/bioh/src/libged/rfarb.c
brlcad/branches/bioh/src/libged/rmap.c
brlcad/branches/bioh/src/libged/rmat.c
brlcad/branches/bioh/src/libged/rmater.c
brlcad/branches/bioh/src/libged/rot.c
brlcad/branches/bioh/src/libged/rot_point.c
brlcad/branches/bioh/src/libged/rotate_about.c
brlcad/branches/bioh/src/libged/rotate_arb_face.c
brlcad/branches/bioh/src/libged/rotate_eto.c
brlcad/branches/bioh/src/libged/rotate_extrude.c
brlcad/branches/bioh/src/libged/rotate_hyp.c
brlcad/branches/bioh/src/libged/rotate_tgc.c
brlcad/branches/bioh/src/libged/rrt.c
brlcad/branches/bioh/src/libged/rt.c
brlcad/branches/bioh/src/libged/rtabort.c
brlcad/branches/bioh/src/libged/rtcheck.c
brlcad/branches/bioh/src/libged/rtwizard.c
brlcad/branches/bioh/src/libged/savekey.c
brlcad/branches/bioh/src/libged/saveview.c
brlcad/branches/bioh/src/libged/scale.c
brlcad/branches/bioh/src/libged/scale_ehy.c
brlcad/branches/bioh/src/libged/scale_ell.c
brlcad/branches/bioh/src/libged/scale_epa.c
brlcad/branches/bioh/src/libged/scale_eto.c
brlcad/branches/bioh/src/libged/scale_extrude.c
brlcad/branches/bioh/src/libged/scale_hyp.c
brlcad/branches/bioh/src/libged/scale_part.c
brlcad/branches/bioh/src/libged/scale_rhc.c
brlcad/branches/bioh/src/libged/scale_rpc.c
brlcad/branches/bioh/src/libged/scale_superell.c
brlcad/branches/bioh/src/libged/scale_tgc.c
brlcad/branches/bioh/src/libged/scale_tor.c
brlcad/branches/bioh/src/libged/screengrab.c
brlcad/branches/bioh/src/libged/search.c
brlcad/branches/bioh/src/libged/select.c
brlcad/branches/bioh/src/libged/set_output_script.c
brlcad/branches/bioh/src/libged/set_transparency.c
brlcad/branches/bioh/src/libged/set_uplotOutputMode.c
brlcad/branches/bioh/src/libged/setview.c
brlcad/branches/bioh/src/libged/shaded_mode.c
brlcad/branches/bioh/src/libged/shader.c
brlcad/branches/bioh/src/libged/shells.c
brlcad/branches/bioh/src/libged/showmats.c
brlcad/branches/bioh/src/libged/slew.c
brlcad/branches/bioh/src/libged/solid_report.c
brlcad/branches/bioh/src/libged/solids_on_ray.c
brlcad/branches/bioh/src/libged/sphgroup.c
brlcad/branches/bioh/src/libged/summary.c
brlcad/branches/bioh/src/libged/sync.c
brlcad/branches/bioh/src/libged/tables.c
brlcad/branches/bioh/src/libged/tire.c
brlcad/branches/bioh/src/libged/title.c
brlcad/branches/bioh/src/libged/tol.c
brlcad/branches/bioh/src/libged/tops.c
brlcad/branches/bioh/src/libged/tra.c
brlcad/branches/bioh/src/libged/trace.c
brlcad/branches/bioh/src/libged/track.c
brlcad/branches/bioh/src/libged/translate_extrude.c
brlcad/branches/bioh/src/libged/translate_tgc.c
brlcad/branches/bioh/src/libged/tree.c
brlcad/branches/bioh/src/libged/typein.c
brlcad/branches/bioh/src/libged/unhide.c
brlcad/branches/bioh/src/libged/units.c
brlcad/branches/bioh/src/libged/v2m_point.c
brlcad/branches/bioh/src/libged/vdraw.c
brlcad/branches/bioh/src/libged/version.c
brlcad/branches/bioh/src/libged/view2grid_lu.c
brlcad/branches/bioh/src/libged/view2model.c
brlcad/branches/bioh/src/libged/view2model_lu.c
brlcad/branches/bioh/src/libged/view2model_vec.c
brlcad/branches/bioh/src/libged/viewdir.c
brlcad/branches/bioh/src/libged/voxelize.c
brlcad/branches/bioh/src/libged/vrot.c
brlcad/branches/bioh/src/libged/vutil.c
brlcad/branches/bioh/src/libged/wcodes.c
brlcad/branches/bioh/src/libged/wdb_importFg4Section.c
brlcad/branches/bioh/src/libged/whatid.c
brlcad/branches/bioh/src/libged/which.cpp
brlcad/branches/bioh/src/libged/which_shader.c
brlcad/branches/bioh/src/libged/who.c
brlcad/branches/bioh/src/libged/wmater.c
brlcad/branches/bioh/src/libged/xpush.c
brlcad/branches/bioh/src/libged/zap.c
Copied: brlcad/branches/bioh/src/libged/3ptarb/3ptarb.c (from rev 76359,
brlcad/branches/bioh/src/libged/3ptarb.c)
===================================================================
--- brlcad/branches/bioh/src/libged/3ptarb/3ptarb.c
(rev 0)
+++ brlcad/branches/bioh/src/libged/3ptarb/3ptarb.c 2020-07-17 16:44:16 UTC
(rev 76360)
@@ -0,0 +1,267 @@
+/* 3 P T A R B . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2008-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/3ptarb.c
+ *
+ * The 3ptarb command.
+ *
+ */
+
+#include "common.h"
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+
+#include "rt/geom.h"
+#include "ged/objects.h"
+
+#include "./ged_private.h"
+
+
+static char *p_arb3pt[] = {
+ "Enter X, Y, Z for point 1: ",
+ "Enter Y, Z: ",
+ "Enter Z: ",
+ "Enter X, Y, Z for point 2: ",
+ "Enter Y, Z: ",
+ "Enter Z: ",
+ "Enter X, Y, Z for point 3: ",
+ "Enter Y, Z: ",
+ "Enter Z: "
+};
+
+
+int
+ged_3ptarb(struct ged *gedp, int argc, const char *argv[])
+{
+ int i, solve;
+ vect_t vec1;
+ vect_t vec2;
+ fastf_t pt4[2], length, thick;
+ vect_t norm;
+ fastf_t ndotv;
+ char **prompts;
+ struct directory *dp;
+ struct rt_db_internal internal;
+ struct rt_arb_internal *aip;
+ static const char *usage = "name x1 y1 z1 x2 y2 z2 x3 y3 z3 coord c1 c2
th";
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_READ_ONLY(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ if (argc > 15) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (argc < 2) {
+ bu_vls_printf(gedp->ged_result_str, "Enter name for this arb: ");
+ return GED_MORE;
+ }
+
+ GED_CHECK_EXISTS(gedp, argv[1], LOOKUP_QUIET, GED_ERROR);
+
+ /* read the three points */
+ prompts = &p_arb3pt[0];
+ if (argc < 11) {
+ bu_vls_printf(gedp->ged_result_str, "%s", prompts[argc-2]);
+ return GED_MORE;
+ }
+
+ /* preliminary calculations to check input so far */
+ for (i = 0; i < 3; i++) {
+ vec1[i] = atof(argv[i+2]) - atof(argv[i+5]);
+ vec2[i] = atof(argv[i+2]) - atof(argv[i+8]);
+ }
+ VCROSS(norm, vec1, vec2);
+ length = MAGNITUDE(norm);
+ if (ZERO(length)) {
+ bu_vls_printf(gedp->ged_result_str, "%s: points are collinear\n",
argv[0]);
+ return GED_ERROR;
+ }
+ VSCALE(norm, norm, 1.0/length);
+
+ if (argc < 12) {
+ bu_vls_printf(gedp->ged_result_str, "Enter coordinate to solve for (x,
y, or z): ");
+ return GED_MORE;
+ }
+
+ switch (argv[11][0]) {
+ case 'x':
+ if (ZERO(norm[0])) {
+ bu_vls_printf(gedp->ged_result_str, "%s: X not unique in this
face\n", argv[0]);
+ return GED_ERROR;
+ }
+ solve = X;
+
+ if (argc < 13) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the Y, Z coordinate
values: ");
+ return GED_MORE;
+ }
+ if (argc < 14) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate
value: ");
+ return GED_MORE;
+ }
+
+ pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ break;
+
+ case 'y':
+ if (ZERO(norm[1])) {
+ bu_vls_printf(gedp->ged_result_str, "%s: Y not unique in this
face\n", argv[0]);
+ return GED_ERROR;
+ }
+ solve = Y;
+
+ if (argc < 13) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the X, Z coordinate
values: ");
+ return GED_MORE;
+ }
+ if (argc < 14) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate
value: ");
+ return GED_MORE;
+ }
+
+ pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ break;
+
+ case 'z':
+ if (ZERO(norm[2])) {
+ bu_vls_printf(gedp->ged_result_str, "%s: Z not unique in this
face\n", argv[0]);
+ return GED_ERROR;
+ }
+ solve = Z;
+
+ if (argc < 13) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the X, Y coordinate
values: ");
+ return GED_MORE;
+ }
+ if (argc < 14) {
+ bu_vls_printf(gedp->ged_result_str, "Enter the Y coordinate
value: ");
+ return GED_MORE;
+ }
+
+ pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
+ break;
+
+ default:
+ bu_vls_printf(gedp->ged_result_str, "%s: coordinate must be x, y,
or z\n", argv[0]);
+ return GED_ERROR;
+ }
+
+ if (argc < 15) {
+ bu_vls_printf(gedp->ged_result_str, "Enter thickness for this arb: ");
+ return GED_MORE;
+ }
+
+ thick = atof(argv[14]);
+ if (ZERO(thick)) {
+ bu_vls_printf(gedp->ged_result_str, "%s: thickness = 0.0\n", argv[0]);
+ return GED_ERROR;
+ }
+
+ RT_DB_INTERNAL_INIT(&internal);
+ internal.idb_major_type = DB5_MAJORTYPE_BRLCAD;
+ internal.idb_type = ID_ARB8;
+ internal.idb_meth = &OBJ[ID_ARB8];
+ BU_ALLOC(internal.idb_ptr, struct rt_arb_internal);
+ aip = (struct rt_arb_internal *)internal.idb_ptr;
+ aip->magic = RT_ARB_INTERNAL_MAGIC;
+
+ for (i = 0; i < 8; i++) {
+ VSET(aip->pt[i], 0.0, 0.0, 0.0);
+ }
+
+ for (i = 0; i < 3; i++) {
+ /* the three given vertices */
+ VSET(aip->pt[i],
atof(argv[i*3+2])*gedp->ged_wdbp->dbip->dbi_local2base,
atof(argv[i*3+3])*gedp->ged_wdbp->dbip->dbi_local2base,
atof(argv[i*3+4])*gedp->ged_wdbp->dbip->dbi_local2base);
+ }
+
+ thick *= gedp->ged_wdbp->dbip->dbi_local2base;
+
+ ndotv = VDOT(aip->pt[0], norm);
+
+ switch (solve) {
+
+ case X:
+ /* solve for x-coord of 4th point */
+ aip->pt[3][Y] = pt4[0]; /* y-coord */
+ aip->pt[3][Z] = pt4[1]; /* z-coord */
+ aip->pt[3][X] = (ndotv
+ - norm[Y] * aip->pt[3][Y]
+ - norm[Z] * aip->pt[3][Z])
+ / norm[X]; /* x-coord */
+ break;
+
+ case Y:
+ /* solve for y-coord of 4th point */
+ aip->pt[3][X] = pt4[0]; /* x-coord */
+ aip->pt[3][Z] = pt4[1]; /* z-coord */
+ aip->pt[3][Y] = (ndotv
+ - norm[X] * aip->pt[3][X]
+ - norm[Z] * aip->pt[3][Z])
+ / norm[Y]; /* y-coord */
+ break;
+
+ case Z:
+ /* solve for z-coord of 4th point */
+ aip->pt[3][X] = pt4[0]; /* x-coord */
+ aip->pt[3][Y] = pt4[1]; /* y-coord */
+ aip->pt[3][Z] = (ndotv
+ - norm[X] * aip->pt[3][X]
+ - norm[Y] * aip->pt[3][Y])
+ / norm[Z]; /* z-coord */
+ break;
+
+ default:
+ bu_free((void *)internal.idb_ptr, "rt_arb_internal");
+ bu_vls_printf(gedp->ged_result_str, "%s: bad coordinate to solve
for\n", argv[0]);
+ return GED_ERROR;
+ }
+
+ /* calculate the remaining 4 vertices */
+ for (i = 0; i < 4; i++) {
+ VJOIN1(aip->pt[i+4], aip->pt[i], thick, norm);
+ }
+
+ GED_DB_DIRADD(gedp, dp, argv[1], RT_DIR_PHONY_ADDR, 0, RT_DIR_SOLID, (void
*)&internal.idb_type, GED_ERROR);
+
+ GED_DB_PUT_INTERNAL(gedp, dp, &internal, &rt_uniresource, GED_ERROR);
+
+ return GED_OK;
+}
+
+
+/*
+ * Local Variables:
+ * tab-width: 8
+ * mode: C
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Deleted: brlcad/branches/bioh/src/libged/3ptarb.c
===================================================================
--- brlcad/branches/bioh/src/libged/3ptarb.c 2020-07-17 13:38:57 UTC (rev
76359)
+++ brlcad/branches/bioh/src/libged/3ptarb.c 2020-07-17 16:44:16 UTC (rev
76360)
@@ -1,267 +0,0 @@
-/* 3 P T A R B . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/3ptarb.c
- *
- * The 3ptarb command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "rt/geom.h"
-#include "ged/objects.h"
-
-#include "./ged_private.h"
-
-
-static char *p_arb3pt[] = {
- "Enter X, Y, Z for point 1: ",
- "Enter Y, Z: ",
- "Enter Z: ",
- "Enter X, Y, Z for point 2: ",
- "Enter Y, Z: ",
- "Enter Z: ",
- "Enter X, Y, Z for point 3: ",
- "Enter Y, Z: ",
- "Enter Z: "
-};
-
-
-int
-ged_3ptarb(struct ged *gedp, int argc, const char *argv[])
-{
- int i, solve;
- vect_t vec1;
- vect_t vec2;
- fastf_t pt4[2], length, thick;
- vect_t norm;
- fastf_t ndotv;
- char **prompts;
- struct directory *dp;
- struct rt_db_internal internal;
- struct rt_arb_internal *aip;
- static const char *usage = "name x1 y1 z1 x2 y2 z2 x3 y3 z3 coord c1 c2
th";
-
- GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
- GED_CHECK_READ_ONLY(gedp, GED_ERROR);
- GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
- /* initialize result */
- bu_vls_trunc(gedp->ged_result_str, 0);
-
- if (argc > 15) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_ERROR;
- }
-
- if (argc < 2) {
- bu_vls_printf(gedp->ged_result_str, "Enter name for this arb: ");
- return GED_MORE;
- }
-
- GED_CHECK_EXISTS(gedp, argv[1], LOOKUP_QUIET, GED_ERROR);
-
- /* read the three points */
- prompts = &p_arb3pt[0];
- if (argc < 11) {
- bu_vls_printf(gedp->ged_result_str, "%s", prompts[argc-2]);
- return GED_MORE;
- }
-
- /* preliminary calculations to check input so far */
- for (i = 0; i < 3; i++) {
- vec1[i] = atof(argv[i+2]) - atof(argv[i+5]);
- vec2[i] = atof(argv[i+2]) - atof(argv[i+8]);
- }
- VCROSS(norm, vec1, vec2);
- length = MAGNITUDE(norm);
- if (ZERO(length)) {
- bu_vls_printf(gedp->ged_result_str, "%s: points are collinear\n",
argv[0]);
- return GED_ERROR;
- }
- VSCALE(norm, norm, 1.0/length);
-
- if (argc < 12) {
- bu_vls_printf(gedp->ged_result_str, "Enter coordinate to solve for (x,
y, or z): ");
- return GED_MORE;
- }
-
- switch (argv[11][0]) {
- case 'x':
- if (ZERO(norm[0])) {
- bu_vls_printf(gedp->ged_result_str, "%s: X not unique in this
face\n", argv[0]);
- return GED_ERROR;
- }
- solve = X;
-
- if (argc < 13) {
- bu_vls_printf(gedp->ged_result_str, "Enter the Y, Z coordinate
values: ");
- return GED_MORE;
- }
- if (argc < 14) {
- bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate
value: ");
- return GED_MORE;
- }
-
- pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
- pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
- break;
-
- case 'y':
- if (ZERO(norm[1])) {
- bu_vls_printf(gedp->ged_result_str, "%s: Y not unique in this
face\n", argv[0]);
- return GED_ERROR;
- }
- solve = Y;
-
- if (argc < 13) {
- bu_vls_printf(gedp->ged_result_str, "Enter the X, Z coordinate
values: ");
- return GED_MORE;
- }
- if (argc < 14) {
- bu_vls_printf(gedp->ged_result_str, "Enter the Z coordinate
value: ");
- return GED_MORE;
- }
-
- pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
- pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
- break;
-
- case 'z':
- if (ZERO(norm[2])) {
- bu_vls_printf(gedp->ged_result_str, "%s: Z not unique in this
face\n", argv[0]);
- return GED_ERROR;
- }
- solve = Z;
-
- if (argc < 13) {
- bu_vls_printf(gedp->ged_result_str, "Enter the X, Y coordinate
values: ");
- return GED_MORE;
- }
- if (argc < 14) {
- bu_vls_printf(gedp->ged_result_str, "Enter the Y coordinate
value: ");
- return GED_MORE;
- }
-
- pt4[0] = atof(argv[12]) * gedp->ged_wdbp->dbip->dbi_local2base;
- pt4[1] = atof(argv[13]) * gedp->ged_wdbp->dbip->dbi_local2base;
- break;
-
- default:
- bu_vls_printf(gedp->ged_result_str, "%s: coordinate must be x, y,
or z\n", argv[0]);
- return GED_ERROR;
- }
-
- if (argc < 15) {
- bu_vls_printf(gedp->ged_result_str, "Enter thickness for this arb: ");
- return GED_MORE;
- }
-
- thick = atof(argv[14]);
- if (ZERO(thick)) {
- bu_vls_printf(gedp->ged_result_str, "%s: thickness = 0.0\n", argv[0]);
- return GED_ERROR;
- }
-
- RT_DB_INTERNAL_INIT(&internal);
- internal.idb_major_type = DB5_MAJORTYPE_BRLCAD;
- internal.idb_type = ID_ARB8;
- internal.idb_meth = &OBJ[ID_ARB8];
- BU_ALLOC(internal.idb_ptr, struct rt_arb_internal);
- aip = (struct rt_arb_internal *)internal.idb_ptr;
- aip->magic = RT_ARB_INTERNAL_MAGIC;
-
- for (i = 0; i < 8; i++) {
- VSET(aip->pt[i], 0.0, 0.0, 0.0);
- }
-
- for (i = 0; i < 3; i++) {
- /* the three given vertices */
- VSET(aip->pt[i],
atof(argv[i*3+2])*gedp->ged_wdbp->dbip->dbi_local2base,
atof(argv[i*3+3])*gedp->ged_wdbp->dbip->dbi_local2base,
atof(argv[i*3+4])*gedp->ged_wdbp->dbip->dbi_local2base);
- }
-
- thick *= gedp->ged_wdbp->dbip->dbi_local2base;
-
- ndotv = VDOT(aip->pt[0], norm);
-
- switch (solve) {
-
- case X:
- /* solve for x-coord of 4th point */
- aip->pt[3][Y] = pt4[0]; /* y-coord */
- aip->pt[3][Z] = pt4[1]; /* z-coord */
- aip->pt[3][X] = (ndotv
- - norm[Y] * aip->pt[3][Y]
- - norm[Z] * aip->pt[3][Z])
- / norm[X]; /* x-coord */
- break;
-
- case Y:
- /* solve for y-coord of 4th point */
- aip->pt[3][X] = pt4[0]; /* x-coord */
- aip->pt[3][Z] = pt4[1]; /* z-coord */
- aip->pt[3][Y] = (ndotv
- - norm[X] * aip->pt[3][X]
- - norm[Z] * aip->pt[3][Z])
- / norm[Y]; /* y-coord */
- break;
-
- case Z:
- /* solve for z-coord of 4th point */
- aip->pt[3][X] = pt4[0]; /* x-coord */
- aip->pt[3][Y] = pt4[1]; /* y-coord */
- aip->pt[3][Z] = (ndotv
- - norm[X] * aip->pt[3][X]
- - norm[Y] * aip->pt[3][Y])
- / norm[Z]; /* z-coord */
- break;
-
- default:
- bu_free((void *)internal.idb_ptr, "rt_arb_internal");
- bu_vls_printf(gedp->ged_result_str, "%s: bad coordinate to solve
for\n", argv[0]);
- return GED_ERROR;
- }
-
- /* calculate the remaining 4 vertices */
- for (i = 0; i < 4; i++) {
- VJOIN1(aip->pt[i+4], aip->pt[i], thick, norm);
- }
-
- GED_DB_DIRADD(gedp, dp, argv[1], RT_DIR_PHONY_ADDR, 0, RT_DIR_SOLID, (void
*)&internal.idb_type, GED_ERROR);
-
- GED_DB_PUT_INTERNAL(gedp, dp, &internal, &rt_uniresource, GED_ERROR);
-
- return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */
Modified: brlcad/branches/bioh/src/libged/CMakeLists.txt
===================================================================
--- brlcad/branches/bioh/src/libged/CMakeLists.txt 2020-07-17 13:38:57 UTC
(rev 76359)
+++ brlcad/branches/bioh/src/libged/CMakeLists.txt 2020-07-17 16:44:16 UTC
(rev 76360)
@@ -45,38 +45,38 @@
set(LIBGED_SOURCES
${LIBGED_SOURCES}
- 3ptarb.c
- adc.c
- adjust.c
- ae2dir.c
- analyze.c
- annotate.c
- arb.c
- arced.c
- arot.c
- attr.cpp
- autoview.c
- bb.c
- bev.c
- bigE.c
- blast.c
- bo.c
+ 3ptarb/3ptarb.c
+ adc/adc.c
+ adjust/adjust.c
+ ae2dir/ae2dir.c
+ analyze/analyze.c
+ annotate/annotate.c
+ arb/arb.c
+ arced/arced.c
+ arot/arot.c
+ attr/attr.cpp
+ autoview/autoview.c
+ bb/bb.c
+ bev/bev.c
+ bigE/bigE.c
+ blast/blast.c
+ bo/bo.c
bot/bot.cpp
bot/check.cpp
bot/extrude.cpp
bot/remesh.cpp
- bot_condense.c
- bot_decimate.c
- bot_dump.c
- bot_face_fuse.c
- bot_face_sort.c
- bot_flip.c
- bot_fuse.c
- bot_merge.c
- bot_smooth.c
- bot_split.c
- bot_sync.c
- bot_vertex_fuse.c
+ bot_condense/bot_condense.c
+ bot_decimate/bot_decimate.c
+ bot_dump/bot_dump.c
+ bot_face_fuse/bot_face_fuse.c
+ bot_face_sort/bot_face_sort.c
+ bot_flip/bot_flip.c
+ bot_fuse/bot_fuse.c
+ bot_merge/bot_merge.c
+ bot_smooth/bot_smooth.c
+ bot_split/bot_split.c
+ bot_sync/bot_sync.c
+ bot_vertex_fuse/bot_vertex_fuse.c
brep/brep.cpp
brep/conversion.cpp
brep/csg.cpp
@@ -86,8 +86,8 @@
brep/plot.cpp
brep/tikz.cpp
brep/valid.cpp
- cat.c
- cc.c
+ cat/cat.c
+ cc/cc.c
check/check.c
check/check_adj_air.c
check/check_centroid.c
@@ -99,217 +99,217 @@
check/check_surf_area.c
check/check_unconf_air.c
check/check_volume.c
- clone.c
- coil.c
- color.c
- columns.c
- comb.c
- comb_color.c
- comb_std.c
- combmem.c
- concat.cpp
constraint/constraint.c
- copy.c
- copyeval.c
- copymat.c
- cpi.c
- dag.cpp
- dbip.c
- debug.cpp
- debugbu.c
- debugdir.c
- debuglib.c
- debugnmg.c
- decompose.c
- delay.c
- dir2ae.c
- display_list.c
- draw.c
- draw_calc.cpp
- dsp.c
- dump.c
- dup.c
- eac.c
- echo.c
- edarb.c
- edbot.c
- edcodes.c
- edcomb.c
- edit.c
- edit_metaball.c
- editit.c
- edmater.c
- edpipe.c
- env.c
- erase.c
- exists.c
- expand.c
- eye_pos.c
- facedef.c
- facetize.cpp
- facetize_log.c
- fb2pix.c
- fbclear.c
- find.c
- form.c
- fracture.c
- gdiff.c
- gdiff.c
- ged.c
- ged_util.c
- get.c
- get_autoview.c
- get_comb.c
- get_eyemodel.c
- get_obj_bounds.c
- get_solid_kp.c
- get_type.c
- glob.c
- gqa.c
- grid.c
- grid2model_lu.c
- grid2view_lu.c
- group.c
- heal.c
+ clone/clone.c
+ coil/coil.c
+ color/color.c
+ columns/columns.c
+ comb/comb.c
+ comb_color/comb_color.c
+ comb_std/comb_std.c
+ combmem/combmem.c
+ concat/concat.cpp
+ copy/copy.c
+ copyeval/copyeval.c
+ copymat/copymat.c
+ cpi/cpi.c
+ dag/dag.cpp
+ dbip/dbip.c
+ debug/debug.cpp
+ debugbu/debugbu.c
+ debugdir/debugdir.c
+ debuglib/debuglib.c
+ debugnmg/debugnmg.c
+ decompose/decompose.c
+ delay/delay.c
+ dir2ae/dir2ae.c
+ display_list/display_list.c
+ draw/draw.c
+ draw_calc/draw_calc.cpp
+ dsp/dsp.c
+ dump/dump.c
+ dup/dup.c
+ eac/eac.c
+ echo/echo.c
+ edarb/edarb.c
+ edbot/edbot.c
+ edcodes/edcodes.c
+ edcomb/edcomb.c
+ edit/edit.c
+ edit_metaball/edit_metaball.c
+ editit/editit.c
+ edmater/edmater.c
+ edpipe/edpipe.c
+ env/env.c
+ erase/erase.c
+ exists/exists.c
+ expand/expand.c
+ eye_pos/eye_pos.c
+ facedef/facedef.c
+ facetize/facetize.cpp
+ facetize_log/facetize_log.c
+ fb2pix/fb2pix.c
+ fbclear/fbclear.c
+ find/find.c
+ form/form.c
+ fracture/fracture.c
+ gdiff/gdiff.c
+ gdiff/gdiff.c
+ ged/ged.c
+ ged_util/ged_util.c
+ get/get.c
+ get_autoview/get_autoview.c
+ get_comb/get_comb.c
+ get_eyemodel/get_eyemodel.c
+ get_obj_bounds/get_obj_bounds.c
+ get_solid_kp/get_solid_kp.c
+ get_type/get_type.c
+ glob/glob.c
+ gqa/gqa.c
+ grid/grid.c
+ grid2model_lu/grid2model_lu.c
+ grid2view_lu/grid2view_lu.c
+ group/group.c
+ heal/heal.c
help/help.cpp
- hide.c
- how.c
- human.c
- illum.c
- importFg4Section.c
- inside.c
- instance.c
- isize.c
- item.c
- joint.c
- joint2.c
- keep.c
- keypoint.c
- kill.c
- killall.c
- killrefs.c
- killtree.c
- label.c
- lc.c
- libfuncs.c
- lint.cpp
- list.c
- loadview.c
- lod.c
- log.c
- lookat.c
- ls.c
- lt.c
- m2v_point.c
- make.c
- make_name.c
- match.c
- mater.cpp
- mirror.c
- model2grid_lu.c
- model2view.c
- model2view_lu.c
- move.c
- move_all.c
- move_arb_edge.c
- move_arb_face.c
- mrot.c
- nirt.c
- nmg.c
- nmg_cmface.c
- nmg_collapse.c
- nmg_fix_normals.c
- nmg_kill_f.c
- nmg_kill_v.c
- nmg_make_v.c
- nmg_mm.c
- nmg_move_v.c
- nmg_simplify.c
- ocenter.c
- open.c
- orient.c
- orotate.c
- oscale.c
- otranslate.c
- overlay.c
- path.c
- pathlist.c
- pathsum.c
- perspective.c
- pix2fb.c
- plot.c
- pmat.c
- pmodel2view.c
- png.c
- png2fb.c
- pnts.cpp
- pnts_util.c
- polyclip.cpp
- prcolor.c
- prefix.c
- preview.c
- process.c
- protate.c
- ps.c
- pscale.c
- pset.c
- ptranslate.c
- pull.c
- push.c
- put.c
- put_comb.c
- putmat.c
- qray.c
- qvrot.c
- rcodes.c
- rect.c
- red.c
- regdef.c
- region.c
- remove.c
- rfarb.c
- rmap.c
- rmat.c
- rmater.c
- rot.c
- rot_point.c
- rotate_about.c
- rotate_arb_face.c
- rotate_eto.c
- rotate_extrude.c
- rotate_hyp.c
- rotate_tgc.c
- rrt.c
- rt.c
- rtabort.c
- rtcheck.c
- rtwizard.c
- savekey.c
- saveview.c
- scale.c
- scale_ehy.c
- scale_ell.c
- scale_epa.c
- scale_eto.c
- scale_extrude.c
- scale_hyp.c
- scale_part.c
- scale_rhc.c
- scale_rpc.c
- scale_superell.c
- scale_tgc.c
- scale_tor.c
- screengrab.c
- search.c
- select.c
- set_output_script.c
- set_transparency.c
- set_uplotOutputMode.c
- setview.c
- shaded_mode.c
- shader.c
- shells.c
- showmats.c
+ hide/hide.c
+ how/how.c
+ human/human.c
+ illum/illum.c
+ importFg4Section/importFg4Section.c
+ inside/inside.c
+ instance/instance.c
+ isize/isize.c
+ item/item.c
+ joint/joint.c
+ joint2/joint2.c
+ keep/keep.c
+ keypoint/keypoint.c
+ kill/kill.c
+ killall/killall.c
+ killrefs/killrefs.c
+ killtree/killtree.c
+ label/label.c
+ lc/lc.c
+ libfuncs/libfuncs.c
+ lint/lint.cpp
+ list/list.c
+ loadview/loadview.c
+ lod/lod.c
+ log/log.c
+ lookat/lookat.c
+ ls/ls.c
+ lt/lt.c
+ m2v_point/m2v_point.c
+ make/make.c
+ make_name/make_name.c
+ match/match.c
+ mater/mater.cpp
+ mirror/mirror.c
+ model2grid_lu/model2grid_lu.c
+ model2view/model2view.c
+ model2view_lu/model2view_lu.c
+ move/move.c
+ move_all/move_all.c
+ move_arb_edge/move_arb_edge.c
+ move_arb_face/move_arb_face.c
+ mrot/mrot.c
+ nirt/nirt.c
+ nmg/nmg.c
+ nmg_cmface/nmg_cmface.c
+ nmg_collapse/nmg_collapse.c
+ nmg_fix_normals/nmg_fix_normals.c
+ nmg_kill_f/nmg_kill_f.c
+ nmg_kill_v/nmg_kill_v.c
+ nmg_make_v/nmg_make_v.c
+ nmg_mm/nmg_mm.c
+ nmg_move_v/nmg_move_v.c
+ nmg_simplify/nmg_simplify.c
+ ocenter/ocenter.c
+ open/open.c
+ orient/orient.c
+ orotate/orotate.c
+ oscale/oscale.c
+ otranslate/otranslate.c
+ overlay/overlay.c
+ path/path.c
+ pathlist/pathlist.c
+ pathsum/pathsum.c
+ perspective/perspective.c
+ pix2fb/pix2fb.c
+ plot/plot.c
+ pmat/pmat.c
+ pmodel2view/pmodel2view.c
+ png/png.c
+ png2fb/png2fb.c
+ pnts/pnts.cpp
+ pnts_util/pnts_util.c
+ polyclip/polyclip.cpp
+ prcolor/prcolor.c
+ prefix/prefix.c
+ preview/preview.c
+ process/process.c
+ protate/protate.c
+ ps/ps.c
+ pscale/pscale.c
+ pset/pset.c
+ ptranslate/ptranslate.c
+ pull/pull.c
+ push/push.c
+ put/put.c
+ put_comb/put_comb.c
+ putmat/putmat.c
+ qray/qray.c
+ qvrot/qvrot.c
+ rcodes/rcodes.c
+ rect/rect.c
+ red/red.c
+ regdef/regdef.c
+ region/region.c
+ remove/remove.c
+ rfarb/rfarb.c
+ rmap/rmap.c
+ rmat/rmat.c
+ rmater/rmater.c
+ rot/rot.c
+ rot_point/rot_point.c
+ rotate_about/rotate_about.c
+ rotate_arb_face/rotate_arb_face.c
+ rotate_eto/rotate_eto.c
+ rotate_extrude/rotate_extrude.c
+ rotate_hyp/rotate_hyp.c
+ rotate_tgc/rotate_tgc.c
+ rrt/rrt.c
+ rt/rt.c
+ rtabort/rtabort.c
+ rtcheck/rtcheck.c
+ rtwizard/rtwizard.c
+ savekey/savekey.c
+ saveview/saveview.c
+ scale/scale.c
+ scale_ehy/scale_ehy.c
+ scale_ell/scale_ell.c
+ scale_epa/scale_epa.c
+ scale_eto/scale_eto.c
+ scale_extrude/scale_extrude.c
+ scale_hyp/scale_hyp.c
+ scale_part/scale_part.c
+ scale_rhc/scale_rhc.c
+ scale_rpc/scale_rpc.c
+ scale_superell/scale_superell.c
+ scale_tgc/scale_tgc.c
+ scale_tor/scale_tor.c
+ screengrab/screengrab.c
+ search/search.c
+ select/select.c
+ set_output_script/set_output_script.c
+ set_transparency/set_transparency.c
+ set_uplotOutputMode/set_uplotOutputMode.c
+ setview/setview.c
+ shaded_mode/shaded_mode.c
+ shader/shader.c
+ shells/shells.c
+ showmats/showmats.c
simulate/ged_command.cpp
simulate/rt_collision_algorithm.cpp
simulate/rt_collision_shape.cpp
@@ -318,29 +318,29 @@
simulate/rt_motion_state.cpp
simulate/simulation.cpp
simulate/utility.cpp
- slew.c
- solid_report.c
- solids_on_ray.c
- sphgroup.c
- summary.c
- sync.c
- tables.c
- tire.c
- title.c
- tol.c
- tops.c
- tra.c
- trace.c
- track.c
- translate_extrude.c
- translate_tgc.c
- tree.c
- typein.c
- unhide.c
- units.c
- v2m_point.c
- vdraw.c
- version.c
+ slew/slew.c
+ solid_report/solid_report.c
+ solids_on_ray/solids_on_ray.c
+ sphgroup/sphgroup.c
+ summary/summary.c
+ sync/sync.c
+ tables/tables.c
+ tire/tire.c
+ title/title.c
+ tol/tol.c
+ tops/tops.c
+ tra/tra.c
+ trace/trace.c
+ track/track.c
+ translate_extrude/translate_extrude.c
+ translate_tgc/translate_tgc.c
+ tree/tree.c
+ typein/typein.c
+ unhide/unhide.c
+ units/units.c
+ v2m_point/v2m_point.c
+ vdraw/vdraw.c
+ version/version.c
view/aet.c
view/center.cpp
view/data_lines.c
@@ -350,23 +350,23 @@
view/snap.c
view/ypr.c
view/view.c
- view2grid_lu.c
- view2model.c
- view2model_lu.c
- view2model_vec.c
- viewdir.c
- voxelize.c
- vrot.c
- vutil.c
- wcodes.c
- wdb_importFg4Section.c
- whatid.c
- which.cpp
- which_shader.c
- who.c
- wmater.c
- xpush.c
- zap.c
+ view2grid_lu/view2grid_lu.c
+ view2model/view2model.c
+ view2model_lu/view2model_lu.c
+ view2model_vec/view2model_vec.c
+ viewdir/viewdir.c
+ voxelize/voxelize.c
+ vrot/vrot.c
+ vutil/vutil.c
+ wcodes/wcodes.c
+ wdb_importFg4Section/wdb_importFg4Section.c
+ whatid/whatid.c
+ which/which.cpp
+ which_shader/which_shader.c
+ who/who.c
+ wmater/wmater.c
+ xpush/xpush.c
+ zap/zap.c
zoom/zoom.c
${LIBGED_CMD_SRCS}
)
Copied: brlcad/branches/bioh/src/libged/adc/adc.c (from rev 76359,
brlcad/branches/bioh/src/libged/adc.c)
===================================================================
--- brlcad/branches/bioh/src/libged/adc/adc.c (rev 0)
+++ brlcad/branches/bioh/src/libged/adc/adc.c 2020-07-17 16:44:16 UTC (rev
76360)
@@ -0,0 +1,710 @@
+/* A D C . C
+ * BRL-CAD
+ *
+ * Copyright (c) 1985-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/adc.c
+ *
+ */
+
+#include "common.h"
+
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+
+
+#include "vmath.h"
+#include "ged.h"
+
+static void
+adc_vls_print(struct bview *gvp, fastf_t base2local, struct bu_vls *out_vp)
+{
+ bu_vls_printf(out_vp, "draw = %d\n", gvp->gv_adc.draw);
+ bu_vls_printf(out_vp, "a1 = %.15e\n", gvp->gv_adc.a1);
+ bu_vls_printf(out_vp, "a2 = %.15e\n", gvp->gv_adc.a2);
+ bu_vls_printf(out_vp, "dst = %.15e\n", gvp->gv_adc.dst * gvp->gv_scale *
base2local);
+ bu_vls_printf(out_vp, "odst = %d\n", gvp->gv_adc.dv_dist);
+ bu_vls_printf(out_vp, "hv = %.15e %.15e\n",
+ gvp->gv_adc.pos_grid[X] * gvp->gv_scale * base2local,
+ gvp->gv_adc.pos_grid[Y] * gvp->gv_scale * base2local);
+ bu_vls_printf(out_vp, "xyz = %.15e %.15e %.15e\n",
+ gvp->gv_adc.pos_model[X] * base2local,
+ gvp->gv_adc.pos_model[Y] * base2local,
+ gvp->gv_adc.pos_model[Z] * base2local);
+ bu_vls_printf(out_vp, "x = %d\n", gvp->gv_adc.dv_x);
+ bu_vls_printf(out_vp, "y = %d\n", gvp->gv_adc.dv_y);
+ bu_vls_printf(out_vp, "anchor_pos = %d\n", gvp->gv_adc.anchor_pos);
+ bu_vls_printf(out_vp, "anchor_a1 = %d\n", gvp->gv_adc.anchor_a1);
+ bu_vls_printf(out_vp, "anchor_a2 = %d\n", gvp->gv_adc.anchor_a2);
+ bu_vls_printf(out_vp, "anchor_dst = %d\n", gvp->gv_adc.anchor_dst);
+ bu_vls_printf(out_vp, "anchorpoint_a1 = %.15e %.15e %.15e\n",
+ gvp->gv_adc.anchor_pt_a1[X] * base2local,
+ gvp->gv_adc.anchor_pt_a1[Y] * base2local,
+ gvp->gv_adc.anchor_pt_a1[Z] * base2local);
+ bu_vls_printf(out_vp, "anchorpoint_a2 = %.15e %.15e %.15e\n",
+ gvp->gv_adc.anchor_pt_a2[X] * base2local,
+ gvp->gv_adc.anchor_pt_a2[Y] * base2local,
+ gvp->gv_adc.anchor_pt_a2[Z] * base2local);
+ bu_vls_printf(out_vp, "anchorpoint_dst = %.15e %.15e %.15e\n",
+ gvp->gv_adc.anchor_pt_dst[X] * base2local,
+ gvp->gv_adc.anchor_pt_dst[Y] * base2local,
+ gvp->gv_adc.anchor_pt_dst[Z] * base2local);
+}
+
+
+HIDDEN void
+adc_usage(struct bu_vls *vp, const char *name)
+{
+ bu_vls_printf(vp, "Usage: %s \n", name);
+ bu_vls_printf(vp, "%s", " adc vname toggle
display of angle/distance cursor\n");
+ bu_vls_printf(vp, "%s", " adc vname vars print a list
of all variables (i.e. var = val)\n");
+ bu_vls_printf(vp, "%s", " adc vname draw [0|1] set or get
the draw parameter\n");
+ bu_vls_printf(vp, "%s", " adc vname a1 [#] set or get
angle1\n");
+ bu_vls_printf(vp, "%s", " adc vname a2 [#] set or get
angle2\n");
+ bu_vls_printf(vp, "%s", " adc vname dst [#] set or get
radius (distance) of tick\n");
+ bu_vls_printf(vp, "%s", " adc vname odst [#] set or get
radius (distance) of tick (+-2047)\n");
+ bu_vls_printf(vp, "%s", " adc vname hv [# #] set or get
position (grid coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname xyz [# # #] set or get
position (model coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname x [#] set or get
horizontal position (+-2047)\n");
+ bu_vls_printf(vp, "%s", " adc vname y [#] set or get
vertical position (+-2047)\n");
+ bu_vls_printf(vp, "%s", " adc vname dh # add to
horizontal position (grid coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname dv # add to
vertical position (grid coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname dx # add to X
position (model coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname dy # add to Y
position (model coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname dz # add to Z
position (model coordinates)\n");
+ bu_vls_printf(vp, "%s", " adc vname anchor_pos [0|1] anchor ADC
to current position in model coordinates\n");
+ bu_vls_printf(vp, "%s", " adc vname anchor_a1 [0|1] anchor
angle1 to go through anchorpoint_a1\n");
+ bu_vls_printf(vp, "%s", " adc vname anchor_a2 [0|1] anchor
angle2 to go through anchorpoint_a2\n");
+ bu_vls_printf(vp, "%s", " adc vname anchor_dst [0|1] anchor tick
distance to go through anchorpoint_dst\n");
+ bu_vls_printf(vp, "%s", " adc vname anchorpoint_a1 [# # #] set or get
anchor point for angle1\n");
+ bu_vls_printf(vp, "%s", " adc vname anchorpoint_a2 [# # #] set or get
anchor point for angle2\n");
+ bu_vls_printf(vp, "%s", " adc vname anchorpoint_dst [# # #] set or get
anchor point for tick distance\n");
+ bu_vls_printf(vp, "%s", " adc vname -i any of the
above appropriate commands will interpret parameters as increments\n");
+ bu_vls_printf(vp, "%s", " adc vname reset reset
angles, location, and tick distance\n");
+ bu_vls_printf(vp, "%s", " adc vname help prints this
help message\n");
+}
+
+
+/*
+ * Note - this needs to be rewritten to accept keyword/value pairs so
+ * that multiple attributes can be set with a single command call.
+ */
+int
+ged_adc(struct ged *gedp,
+ int argc,
+ const char *argv[])
+{
+ char *command;
+ char *parameter;
+ char **argp = (char **)argv;
+ double scanval;
+ point_t user_pt; /* Value(s) provided by user */
+ point_t scaled_pos;
+ int incr_flag;
+ int i;
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_VIEW(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ if (argc < 2 || 6 < argc) {
+ adc_usage(gedp->ged_result_str, argv[0]);
+ return GED_ERROR;
+ }
+
+ command = (char *)argv[0];
+
+ if (BU_STR_EQUAL(argv[1], "-i")) {
+ if (argc < 5) {
+ bu_vls_printf(gedp->ged_result_str, "%s: -i option specified
without an op-val pair", command);
+ return GED_ERROR;
+ }
+
+ incr_flag = 1;
+ parameter = (char *)argv[2];
+ argc -= 3;
+ argp += 3;
+ } else {
+ incr_flag = 0;
+ parameter = (char *)argv[1];
+ argc -= 2;
+ argp += 2;
+ }
+
+ for (i = 0; i < argc; ++i) {
+ if (sscanf(argp[i], "%lf", &scanval) != 1) {
+ adc_usage(gedp->ged_result_str, command);
+ return GED_ERROR;
+ }
+ user_pt[i] = scanval;
+ }
+
+ if (BU_STR_EQUAL(parameter, "draw")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.draw);
+ return GED_OK;
+ } else if (argc == 1) {
+ i = (int)user_pt[X];
+
+ if (i)
+ gedp->ged_gvp->gv_adc.draw = 1;
+ else
+ gedp->ged_gvp->gv_adc.draw = 0;
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s draw' command accepts 0 or
1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "a1")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a1);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_a1) {
+ if (incr_flag)
+ gedp->ged_gvp->gv_adc.a1 += user_pt[0];
+ else
+ gedp->ged_gvp->gv_adc.a1 = user_pt[0];
+
+ gedp->ged_gvp->gv_adc.dv_a1 = (1.0 - (gedp->ged_gvp->gv_adc.a1
/ 45.0)) * GED_MAX;
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s a1' command accepts only 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "a2")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a2);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_a2) {
+ if (incr_flag)
+ gedp->ged_gvp->gv_adc.a2 += user_pt[0];
+ else
+ gedp->ged_gvp->gv_adc.a2 = user_pt[0];
+
+ gedp->ged_gvp->gv_adc.dv_a2 = (1.0 - (gedp->ged_gvp->gv_adc.a2
/ 45.0)) * GED_MAX;
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s a2' command accepts only 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dst")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.dst
* gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_dst) {
+ if (incr_flag)
+ gedp->ged_gvp->gv_adc.dst += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ else
+ gedp->ged_gvp->gv_adc.dst = user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+
+ gedp->ged_gvp->gv_adc.dv_dist = (gedp->ged_gvp->gv_adc.dst /
M_SQRT1_2 - 1.0) * GED_MAX;
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dst' command accepts 0 or
1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "odst")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_dist);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_dst) {
+ if (incr_flag)
+ gedp->ged_gvp->gv_adc.dv_dist += user_pt[0];
+ else
+ gedp->ged_gvp->gv_adc.dv_dist = user_pt[0];
+
+ gedp->ged_gvp->gv_adc.dst = (gedp->ged_gvp->gv_adc.dv_dist *
INV_GED + 1.0) * M_SQRT1_2;
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s odst' command accepts 0 or
1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dh")) {
+ if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
+ MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dh' command requires 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dv")) {
+ if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
+ MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dv' command requires 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "hv")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%g %g",
+ gedp->ged_gvp->gv_adc.pos_grid[X] *
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local,
+ gedp->ged_gvp->gv_adc.pos_grid[Y] *
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ return GED_OK;
+ } else if (argc == 2) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ if (incr_flag) {
+ gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[X] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[Y] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ } else {
+ gedp->ged_gvp->gv_adc.pos_grid[X] = user_pt[X] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ gedp->ged_gvp->gv_adc.pos_grid[Y] = user_pt[Y] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
+ }
+
+ gedp->ged_gvp->gv_adc.pos_grid[Z] = 0.0;
+ adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
+ MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_model);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s hv' command requires 0 or
2 arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dx")) {
+ if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ gedp->ged_gvp->gv_adc.pos_model[X] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
+ adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dx' command requires 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dy")) {
+ if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ gedp->ged_gvp->gv_adc.pos_model[Y] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
+ adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dy' command requires 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "dz")) {
+ if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ gedp->ged_gvp->gv_adc.pos_model[Z] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
+ adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s dz' command requires 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "xyz")) {
+ if (argc == 0) {
+ VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_wdbp->dbip->dbi_base2local);
+ bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
+ return GED_OK;
+ } else if (argc == 3) {
+ VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (incr_flag) {
+ VADD2(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_adc.pos_model, user_pt);
+ } else {
+ VMOVE(gedp->ged_gvp->gv_adc.pos_model, user_pt);
+ }
+
+ adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s xyz' command requires 0 or
3 arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "x")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_x);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ if (incr_flag) {
+ gedp->ged_gvp->gv_adc.dv_x += user_pt[0];
+ } else {
+ gedp->ged_gvp->gv_adc.dv_x = user_pt[0];
+ }
+
+ gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x
* INV_GED;
+ gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y
* INV_GED;
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+ MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s x' command requires 0 or 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "y")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_y);
+ return GED_OK;
+ } else if (argc == 1) {
+ if (!gedp->ged_gvp->gv_adc.anchor_pos) {
+ if (incr_flag) {
+ gedp->ged_gvp->gv_adc.dv_y += user_pt[0];
+ } else {
+ gedp->ged_gvp->gv_adc.dv_y = user_pt[0];
+ }
+
+ gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x
* INV_GED;
+ gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y
* INV_GED;
+ adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
+ MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
+ }
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s y' command requires 0 or 1
argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchor_pos")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_pos);
+ return GED_OK;
+ } else if (argc == 1) {
+ i = (int)user_pt[X];
+
+ if (i < 0 || 2 < i) {
+ bu_vls_printf(gedp->ged_result_str, "The '%d anchor_pos'
parameter accepts values of 0, 1, or 2.", i);
+ return GED_ERROR;
+ }
+
+ gedp->ged_gvp->gv_adc.anchor_pos = i;
+ ged_calc_adc_pos(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchor_pos' command
accepts 0 or 1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchor_a1")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_a1);
+ return GED_OK;
+ } else if (argc == 1) {
+ i = (int)user_pt[X];
+
+ if (i)
+ gedp->ged_gvp->gv_adc.anchor_a1 = 1;
+ else
+ gedp->ged_gvp->gv_adc.anchor_a1 = 0;
+
+ ged_calc_adc_a1(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a1' command accepts
0 or 1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchorpoint_a1")) {
+ if (argc == 0) {
+ VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a1,
gedp->ged_wdbp->dbip->dbi_base2local);
+ bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
+
+ return GED_OK;
+ } else if (argc == 3) {
+ VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (incr_flag) {
+ VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a1,
gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
+ } else {
+ VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
+ }
+
+ ged_calc_adc_a1(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a1' command
accepts 0 or 3 arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchor_a2")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_a2);
+
+ return GED_OK;
+ } else if (argc == 1) {
+ i = (int)user_pt[X];
+
+ if (i)
+ gedp->ged_gvp->gv_adc.anchor_a2 = 1;
+ else
+ gedp->ged_gvp->gv_adc.anchor_a2 = 0;
+
+ ged_calc_adc_a2(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a2' command accepts
0 or 1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchorpoint_a2")) {
+ if (argc == 0) {
+ VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a2,
gedp->ged_wdbp->dbip->dbi_base2local);
+
+ bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
+
+ return GED_OK;
+ } else if (argc == 3) {
+ VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (incr_flag) {
+ VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a2,
gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
+ } else {
+ VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
+ }
+
+ ged_calc_adc_a2(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a2' command
accepts 0 or 3 arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchor_dst")) {
+ if (argc == 0) {
+ bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_dst);
+
+ return GED_OK;
+ } else if (argc == 1) {
+ i = (int)user_pt[X];
+
+ if (i) {
+ gedp->ged_gvp->gv_adc.anchor_dst = 1;
+ } else
+ gedp->ged_gvp->gv_adc.anchor_dst = 0;
+
+ ged_calc_adc_dst(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchor_dst' command
accepts 0 or 1 argument\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "anchorpoint_dst")) {
+ if (argc == 0) {
+ VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_dst,
gedp->ged_wdbp->dbip->dbi_base2local);
+ bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
+
+ return GED_OK;
+ } else if (argc == 3) {
+ VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
+
+ if (incr_flag) {
+ VADD2(gedp->ged_gvp->gv_adc.anchor_pt_dst,
gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
+ } else {
+ VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
+ }
+
+ ged_calc_adc_dst(gedp->ged_gvp);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_dst' command
accepts 0 or 3 arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "reset")) {
+ if (argc == 0) {
+ adc_reset(&(gedp->ged_gvp->gv_adc), gedp->ged_gvp->gv_view2model,
gedp->ged_gvp->gv_model2view);
+
+ return GED_OK;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "The '%s reset' command accepts no
arguments\n", command);
+ return GED_ERROR;
+ }
+
+ if (BU_STR_EQUAL(parameter, "vars")) {
+ adc_vls_print(gedp->ged_gvp, gedp->ged_wdbp->dbip->dbi_base2local,
gedp->ged_result_str);
+ return GED_OK;
+ }
+
+ if (BU_STR_EQUAL(parameter, "help")) {
+ adc_usage(gedp->ged_result_str, command);
+ return GED_HELP;
+ }
+
+ bu_vls_printf(gedp->ged_result_str, "%s: unrecognized command '%s'\n",
command, parameter);
+ adc_usage(gedp->ged_result_str, command);
+
+ return GED_ERROR;
+}
+
+
+void
+ged_calc_adc_pos(struct bview *gvp)
+{
+ if (gvp->gv_adc.anchor_pos == 1) {
+ adc_model_to_adc_view(&(gvp->gv_adc), gvp->gv_model2view, GED_MAX);
+ adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
+ } else if (gvp->gv_adc.anchor_pos == 2) {
+ adc_grid_to_adc_view(&(gvp->gv_adc), gvp->gv_view2model, GED_MAX);
+ MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model,
gvp->gv_adc.pos_view);
+ } else {
+ adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
+ MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model,
gvp->gv_adc.pos_view);
+ }
+}
+
+
+void
+ged_calc_adc_a1(struct bview *gvp)
+{
+ if (gvp->gv_adc.anchor_a1) {
+ fastf_t dx, dy;
+ point_t view_pt;
+
+ MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a1);
+ dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
+ dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
+
+ if (!ZERO(dx) || !ZERO(dy)) {
+ gvp->gv_adc.a1 = RAD2DEG*atan2(dy, dx);
+ gvp->gv_adc.dv_a1 = (1.0 - (gvp->gv_adc.a1 / 45.0)) * GED_MAX;
+ }
+ }
+}
+
+
+void
+ged_calc_adc_a2(struct bview *gvp)
+{
+ if (gvp->gv_adc.anchor_a2) {
+ fastf_t dx, dy;
+ point_t view_pt;
+
+ MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a2);
+ dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
+ dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
+
+ if (!ZERO(dx) || !ZERO(dy)) {
+ gvp->gv_adc.a2 = RAD2DEG*atan2(dy, dx);
+ gvp->gv_adc.dv_a2 = (1.0 - (gvp->gv_adc.a2 / 45.0)) * GED_MAX;
+ }
+ }
+}
+
+
+void
+ged_calc_adc_dst(struct bview *gvp)
+{
+ if (gvp->gv_adc.anchor_dst) {
+ fastf_t dist;
+ fastf_t dx, dy;
+ point_t view_pt;
+
+ MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_dst);
+
+ dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
+ dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
+ dist = sqrt(dx * dx + dy * dy);
+ gvp->gv_adc.dst = dist * INV_GED;
+ gvp->gv_adc.dv_dist = (dist / M_SQRT1_2) - GED_MAX;
+ } else
+ gvp->gv_adc.dst = (gvp->gv_adc.dv_dist * INV_GED + 1.0) * M_SQRT1_2;
+}
+
+
+/*
+ * Local Variables:
+ * mode: C
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Deleted: brlcad/branches/bioh/src/libged/adc.c
===================================================================
--- brlcad/branches/bioh/src/libged/adc.c 2020-07-17 13:38:57 UTC (rev
76359)
+++ brlcad/branches/bioh/src/libged/adc.c 2020-07-17 16:44:16 UTC (rev
76360)
@@ -1,710 +0,0 @@
-/* A D C . C
- * BRL-CAD
- *
- * Copyright (c) 1985-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/adc.c
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-
-
-#include "vmath.h"
-#include "ged.h"
-
-static void
-adc_vls_print(struct bview *gvp, fastf_t base2local, struct bu_vls *out_vp)
-{
- bu_vls_printf(out_vp, "draw = %d\n", gvp->gv_adc.draw);
- bu_vls_printf(out_vp, "a1 = %.15e\n", gvp->gv_adc.a1);
- bu_vls_printf(out_vp, "a2 = %.15e\n", gvp->gv_adc.a2);
- bu_vls_printf(out_vp, "dst = %.15e\n", gvp->gv_adc.dst * gvp->gv_scale *
base2local);
- bu_vls_printf(out_vp, "odst = %d\n", gvp->gv_adc.dv_dist);
- bu_vls_printf(out_vp, "hv = %.15e %.15e\n",
- gvp->gv_adc.pos_grid[X] * gvp->gv_scale * base2local,
- gvp->gv_adc.pos_grid[Y] * gvp->gv_scale * base2local);
- bu_vls_printf(out_vp, "xyz = %.15e %.15e %.15e\n",
- gvp->gv_adc.pos_model[X] * base2local,
- gvp->gv_adc.pos_model[Y] * base2local,
- gvp->gv_adc.pos_model[Z] * base2local);
- bu_vls_printf(out_vp, "x = %d\n", gvp->gv_adc.dv_x);
- bu_vls_printf(out_vp, "y = %d\n", gvp->gv_adc.dv_y);
- bu_vls_printf(out_vp, "anchor_pos = %d\n", gvp->gv_adc.anchor_pos);
- bu_vls_printf(out_vp, "anchor_a1 = %d\n", gvp->gv_adc.anchor_a1);
- bu_vls_printf(out_vp, "anchor_a2 = %d\n", gvp->gv_adc.anchor_a2);
- bu_vls_printf(out_vp, "anchor_dst = %d\n", gvp->gv_adc.anchor_dst);
- bu_vls_printf(out_vp, "anchorpoint_a1 = %.15e %.15e %.15e\n",
- gvp->gv_adc.anchor_pt_a1[X] * base2local,
- gvp->gv_adc.anchor_pt_a1[Y] * base2local,
- gvp->gv_adc.anchor_pt_a1[Z] * base2local);
- bu_vls_printf(out_vp, "anchorpoint_a2 = %.15e %.15e %.15e\n",
- gvp->gv_adc.anchor_pt_a2[X] * base2local,
- gvp->gv_adc.anchor_pt_a2[Y] * base2local,
- gvp->gv_adc.anchor_pt_a2[Z] * base2local);
- bu_vls_printf(out_vp, "anchorpoint_dst = %.15e %.15e %.15e\n",
- gvp->gv_adc.anchor_pt_dst[X] * base2local,
- gvp->gv_adc.anchor_pt_dst[Y] * base2local,
- gvp->gv_adc.anchor_pt_dst[Z] * base2local);
-}
-
-
-HIDDEN void
-adc_usage(struct bu_vls *vp, const char *name)
-{
- bu_vls_printf(vp, "Usage: %s \n", name);
- bu_vls_printf(vp, "%s", " adc vname toggle
display of angle/distance cursor\n");
- bu_vls_printf(vp, "%s", " adc vname vars print a list
of all variables (i.e. var = val)\n");
- bu_vls_printf(vp, "%s", " adc vname draw [0|1] set or get
the draw parameter\n");
- bu_vls_printf(vp, "%s", " adc vname a1 [#] set or get
angle1\n");
- bu_vls_printf(vp, "%s", " adc vname a2 [#] set or get
angle2\n");
- bu_vls_printf(vp, "%s", " adc vname dst [#] set or get
radius (distance) of tick\n");
- bu_vls_printf(vp, "%s", " adc vname odst [#] set or get
radius (distance) of tick (+-2047)\n");
- bu_vls_printf(vp, "%s", " adc vname hv [# #] set or get
position (grid coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname xyz [# # #] set or get
position (model coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname x [#] set or get
horizontal position (+-2047)\n");
- bu_vls_printf(vp, "%s", " adc vname y [#] set or get
vertical position (+-2047)\n");
- bu_vls_printf(vp, "%s", " adc vname dh # add to
horizontal position (grid coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname dv # add to
vertical position (grid coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname dx # add to X
position (model coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname dy # add to Y
position (model coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname dz # add to Z
position (model coordinates)\n");
- bu_vls_printf(vp, "%s", " adc vname anchor_pos [0|1] anchor ADC
to current position in model coordinates\n");
- bu_vls_printf(vp, "%s", " adc vname anchor_a1 [0|1] anchor
angle1 to go through anchorpoint_a1\n");
- bu_vls_printf(vp, "%s", " adc vname anchor_a2 [0|1] anchor
angle2 to go through anchorpoint_a2\n");
- bu_vls_printf(vp, "%s", " adc vname anchor_dst [0|1] anchor tick
distance to go through anchorpoint_dst\n");
- bu_vls_printf(vp, "%s", " adc vname anchorpoint_a1 [# # #] set or get
anchor point for angle1\n");
- bu_vls_printf(vp, "%s", " adc vname anchorpoint_a2 [# # #] set or get
anchor point for angle2\n");
- bu_vls_printf(vp, "%s", " adc vname anchorpoint_dst [# # #] set or get
anchor point for tick distance\n");
- bu_vls_printf(vp, "%s", " adc vname -i any of the
above appropriate commands will interpret parameters as increments\n");
- bu_vls_printf(vp, "%s", " adc vname reset reset
angles, location, and tick distance\n");
- bu_vls_printf(vp, "%s", " adc vname help prints this
help message\n");
-}
-
-
-/*
- * Note - this needs to be rewritten to accept keyword/value pairs so
- * that multiple attributes can be set with a single command call.
- */
-int
-ged_adc(struct ged *gedp,
- int argc,
- const char *argv[])
-{
- char *command;
- char *parameter;
- char **argp = (char **)argv;
- double scanval;
- point_t user_pt; /* Value(s) provided by user */
- point_t scaled_pos;
- int incr_flag;
- int i;
-
- GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
- GED_CHECK_VIEW(gedp, GED_ERROR);
- GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
- /* initialize result */
- bu_vls_trunc(gedp->ged_result_str, 0);
-
- if (argc < 2 || 6 < argc) {
- adc_usage(gedp->ged_result_str, argv[0]);
- return GED_ERROR;
- }
-
- command = (char *)argv[0];
-
- if (BU_STR_EQUAL(argv[1], "-i")) {
- if (argc < 5) {
- bu_vls_printf(gedp->ged_result_str, "%s: -i option specified
without an op-val pair", command);
- return GED_ERROR;
- }
-
- incr_flag = 1;
- parameter = (char *)argv[2];
- argc -= 3;
- argp += 3;
- } else {
- incr_flag = 0;
- parameter = (char *)argv[1];
- argc -= 2;
- argp += 2;
- }
-
- for (i = 0; i < argc; ++i) {
- if (sscanf(argp[i], "%lf", &scanval) != 1) {
- adc_usage(gedp->ged_result_str, command);
- return GED_ERROR;
- }
- user_pt[i] = scanval;
- }
-
- if (BU_STR_EQUAL(parameter, "draw")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.draw);
- return GED_OK;
- } else if (argc == 1) {
- i = (int)user_pt[X];
-
- if (i)
- gedp->ged_gvp->gv_adc.draw = 1;
- else
- gedp->ged_gvp->gv_adc.draw = 0;
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s draw' command accepts 0 or
1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "a1")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a1);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_a1) {
- if (incr_flag)
- gedp->ged_gvp->gv_adc.a1 += user_pt[0];
- else
- gedp->ged_gvp->gv_adc.a1 = user_pt[0];
-
- gedp->ged_gvp->gv_adc.dv_a1 = (1.0 - (gedp->ged_gvp->gv_adc.a1
/ 45.0)) * GED_MAX;
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s a1' command accepts only 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "a2")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.a2);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_a2) {
- if (incr_flag)
- gedp->ged_gvp->gv_adc.a2 += user_pt[0];
- else
- gedp->ged_gvp->gv_adc.a2 = user_pt[0];
-
- gedp->ged_gvp->gv_adc.dv_a2 = (1.0 - (gedp->ged_gvp->gv_adc.a2
/ 45.0)) * GED_MAX;
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s a2' command accepts only 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dst")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%g", gedp->ged_gvp->gv_adc.dst
* gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_dst) {
- if (incr_flag)
- gedp->ged_gvp->gv_adc.dst += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- else
- gedp->ged_gvp->gv_adc.dst = user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
-
- gedp->ged_gvp->gv_adc.dv_dist = (gedp->ged_gvp->gv_adc.dst /
M_SQRT1_2 - 1.0) * GED_MAX;
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dst' command accepts 0 or
1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "odst")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_dist);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_dst) {
- if (incr_flag)
- gedp->ged_gvp->gv_adc.dv_dist += user_pt[0];
- else
- gedp->ged_gvp->gv_adc.dv_dist = user_pt[0];
-
- gedp->ged_gvp->gv_adc.dst = (gedp->ged_gvp->gv_adc.dv_dist *
INV_GED + 1.0) * M_SQRT1_2;
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s odst' command accepts 0 or
1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dh")) {
- if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
- MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dh' command requires 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dv")) {
- if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[0] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
- MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dv' command requires 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "hv")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%g %g",
- gedp->ged_gvp->gv_adc.pos_grid[X] *
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local,
- gedp->ged_gvp->gv_adc.pos_grid[Y] *
gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- return GED_OK;
- } else if (argc == 2) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- if (incr_flag) {
- gedp->ged_gvp->gv_adc.pos_grid[X] += user_pt[X] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- gedp->ged_gvp->gv_adc.pos_grid[Y] += user_pt[Y] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- } else {
- gedp->ged_gvp->gv_adc.pos_grid[X] = user_pt[X] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- gedp->ged_gvp->gv_adc.pos_grid[Y] = user_pt[Y] /
(gedp->ged_gvp->gv_scale * gedp->ged_wdbp->dbip->dbi_base2local);
- }
-
- gedp->ged_gvp->gv_adc.pos_grid[Z] = 0.0;
- adc_grid_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_view2model, GED_MAX);
- MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_model);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s hv' command requires 0 or
2 arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dx")) {
- if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- gedp->ged_gvp->gv_adc.pos_model[X] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
- adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dx' command requires 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dy")) {
- if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- gedp->ged_gvp->gv_adc.pos_model[Y] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
- adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dy' command requires 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "dz")) {
- if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- gedp->ged_gvp->gv_adc.pos_model[Z] += user_pt[0] *
gedp->ged_wdbp->dbip->dbi_local2base;
- adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s dz' command requires 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "xyz")) {
- if (argc == 0) {
- VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_wdbp->dbip->dbi_base2local);
- bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
- return GED_OK;
- } else if (argc == 3) {
- VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
- if (incr_flag) {
- VADD2(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_adc.pos_model, user_pt);
- } else {
- VMOVE(gedp->ged_gvp->gv_adc.pos_model, user_pt);
- }
-
- adc_model_to_adc_view(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view, GED_MAX);
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s xyz' command requires 0 or
3 arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "x")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_x);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- if (incr_flag) {
- gedp->ged_gvp->gv_adc.dv_x += user_pt[0];
- } else {
- gedp->ged_gvp->gv_adc.dv_x = user_pt[0];
- }
-
- gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x
* INV_GED;
- gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y
* INV_GED;
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
- MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s x' command requires 0 or 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "y")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.dv_y);
- return GED_OK;
- } else if (argc == 1) {
- if (!gedp->ged_gvp->gv_adc.anchor_pos) {
- if (incr_flag) {
- gedp->ged_gvp->gv_adc.dv_y += user_pt[0];
- } else {
- gedp->ged_gvp->gv_adc.dv_y = user_pt[0];
- }
-
- gedp->ged_gvp->gv_adc.pos_view[X] = gedp->ged_gvp->gv_adc.dv_x
* INV_GED;
- gedp->ged_gvp->gv_adc.pos_view[Y] = gedp->ged_gvp->gv_adc.dv_y
* INV_GED;
- adc_view_to_adc_grid(&(gedp->ged_gvp->gv_adc),
gedp->ged_gvp->gv_model2view);
- MAT4X3PNT(gedp->ged_gvp->gv_adc.pos_model,
gedp->ged_gvp->gv_view2model, gedp->ged_gvp->gv_adc.pos_view);
- }
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s y' command requires 0 or 1
argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchor_pos")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_pos);
- return GED_OK;
- } else if (argc == 1) {
- i = (int)user_pt[X];
-
- if (i < 0 || 2 < i) {
- bu_vls_printf(gedp->ged_result_str, "The '%d anchor_pos'
parameter accepts values of 0, 1, or 2.", i);
- return GED_ERROR;
- }
-
- gedp->ged_gvp->gv_adc.anchor_pos = i;
- ged_calc_adc_pos(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchor_pos' command
accepts 0 or 1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchor_a1")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_a1);
- return GED_OK;
- } else if (argc == 1) {
- i = (int)user_pt[X];
-
- if (i)
- gedp->ged_gvp->gv_adc.anchor_a1 = 1;
- else
- gedp->ged_gvp->gv_adc.anchor_a1 = 0;
-
- ged_calc_adc_a1(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a1' command accepts
0 or 1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchorpoint_a1")) {
- if (argc == 0) {
- VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a1,
gedp->ged_wdbp->dbip->dbi_base2local);
- bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
- return GED_OK;
- } else if (argc == 3) {
- VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
- if (incr_flag) {
- VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a1,
gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
- } else {
- VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a1, user_pt);
- }
-
- ged_calc_adc_a1(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a1' command
accepts 0 or 3 arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchor_a2")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_a2);
-
- return GED_OK;
- } else if (argc == 1) {
- i = (int)user_pt[X];
-
- if (i)
- gedp->ged_gvp->gv_adc.anchor_a2 = 1;
- else
- gedp->ged_gvp->gv_adc.anchor_a2 = 0;
-
- ged_calc_adc_a2(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchor_a2' command accepts
0 or 1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchorpoint_a2")) {
- if (argc == 0) {
- VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_a2,
gedp->ged_wdbp->dbip->dbi_base2local);
-
- bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
- return GED_OK;
- } else if (argc == 3) {
- VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
- if (incr_flag) {
- VADD2(gedp->ged_gvp->gv_adc.anchor_pt_a2,
gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
- } else {
- VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_a2, user_pt);
- }
-
- ged_calc_adc_a2(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_a2' command
accepts 0 or 3 arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchor_dst")) {
- if (argc == 0) {
- bu_vls_printf(gedp->ged_result_str, "%d",
gedp->ged_gvp->gv_adc.anchor_dst);
-
- return GED_OK;
- } else if (argc == 1) {
- i = (int)user_pt[X];
-
- if (i) {
- gedp->ged_gvp->gv_adc.anchor_dst = 1;
- } else
- gedp->ged_gvp->gv_adc.anchor_dst = 0;
-
- ged_calc_adc_dst(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchor_dst' command
accepts 0 or 1 argument\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "anchorpoint_dst")) {
- if (argc == 0) {
- VSCALE(scaled_pos, gedp->ged_gvp->gv_adc.anchor_pt_dst,
gedp->ged_wdbp->dbip->dbi_base2local);
- bu_vls_printf(gedp->ged_result_str, "%g %g %g", V3ARGS(scaled_pos));
-
- return GED_OK;
- } else if (argc == 3) {
- VSCALE(user_pt, user_pt, gedp->ged_wdbp->dbip->dbi_local2base);
-
- if (incr_flag) {
- VADD2(gedp->ged_gvp->gv_adc.anchor_pt_dst,
gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
- } else {
- VMOVE(gedp->ged_gvp->gv_adc.anchor_pt_dst, user_pt);
- }
-
- ged_calc_adc_dst(gedp->ged_gvp);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s anchorpoint_dst' command
accepts 0 or 3 arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "reset")) {
- if (argc == 0) {
- adc_reset(&(gedp->ged_gvp->gv_adc), gedp->ged_gvp->gv_view2model,
gedp->ged_gvp->gv_model2view);
-
- return GED_OK;
- }
-
- bu_vls_printf(gedp->ged_result_str, "The '%s reset' command accepts no
arguments\n", command);
- return GED_ERROR;
- }
-
- if (BU_STR_EQUAL(parameter, "vars")) {
- adc_vls_print(gedp->ged_gvp, gedp->ged_wdbp->dbip->dbi_base2local,
gedp->ged_result_str);
- return GED_OK;
- }
-
- if (BU_STR_EQUAL(parameter, "help")) {
- adc_usage(gedp->ged_result_str, command);
- return GED_HELP;
- }
-
- bu_vls_printf(gedp->ged_result_str, "%s: unrecognized command '%s'\n",
command, parameter);
- adc_usage(gedp->ged_result_str, command);
-
- return GED_ERROR;
-}
-
-
-void
-ged_calc_adc_pos(struct bview *gvp)
-{
- if (gvp->gv_adc.anchor_pos == 1) {
- adc_model_to_adc_view(&(gvp->gv_adc), gvp->gv_model2view, GED_MAX);
- adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
- } else if (gvp->gv_adc.anchor_pos == 2) {
- adc_grid_to_adc_view(&(gvp->gv_adc), gvp->gv_view2model, GED_MAX);
- MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model,
gvp->gv_adc.pos_view);
- } else {
- adc_view_to_adc_grid(&(gvp->gv_adc), gvp->gv_model2view);
- MAT4X3PNT(gvp->gv_adc.pos_model, gvp->gv_view2model,
gvp->gv_adc.pos_view);
- }
-}
-
-
-void
-ged_calc_adc_a1(struct bview *gvp)
-{
- if (gvp->gv_adc.anchor_a1) {
- fastf_t dx, dy;
- point_t view_pt;
-
- MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a1);
- dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
- dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
-
- if (!ZERO(dx) || !ZERO(dy)) {
- gvp->gv_adc.a1 = RAD2DEG*atan2(dy, dx);
- gvp->gv_adc.dv_a1 = (1.0 - (gvp->gv_adc.a1 / 45.0)) * GED_MAX;
- }
- }
-}
-
-
-void
-ged_calc_adc_a2(struct bview *gvp)
-{
- if (gvp->gv_adc.anchor_a2) {
- fastf_t dx, dy;
- point_t view_pt;
-
- MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_a2);
- dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
- dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
-
- if (!ZERO(dx) || !ZERO(dy)) {
- gvp->gv_adc.a2 = RAD2DEG*atan2(dy, dx);
- gvp->gv_adc.dv_a2 = (1.0 - (gvp->gv_adc.a2 / 45.0)) * GED_MAX;
- }
- }
-}
-
-
-void
-ged_calc_adc_dst(struct bview *gvp)
-{
- if (gvp->gv_adc.anchor_dst) {
- fastf_t dist;
- fastf_t dx, dy;
- point_t view_pt;
-
- MAT4X3PNT(view_pt, gvp->gv_model2view, gvp->gv_adc.anchor_pt_dst);
-
- dx = view_pt[X] * GED_MAX - gvp->gv_adc.dv_x;
- dy = view_pt[Y] * GED_MAX - gvp->gv_adc.dv_y;
- dist = sqrt(dx * dx + dy * dy);
- gvp->gv_adc.dst = dist * INV_GED;
- gvp->gv_adc.dv_dist = (dist / M_SQRT1_2) - GED_MAX;
- } else
- gvp->gv_adc.dst = (gvp->gv_adc.dv_dist * INV_GED + 1.0) * M_SQRT1_2;
-}
-
-
-/*
- * Local Variables:
- * mode: C
- * tab-width: 8
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */
Copied: brlcad/branches/bioh/src/libged/adjust/adjust.c (from rev 76359,
brlcad/branches/bioh/src/libged/adjust.c)
===================================================================
--- brlcad/branches/bioh/src/libged/adjust/adjust.c
(rev 0)
+++ brlcad/branches/bioh/src/libged/adjust/adjust.c 2020-07-17 16:44:16 UTC
(rev 76360)
@@ -0,0 +1,96 @@
+/* A D J U S T . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2008-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/adjust.c
+ *
+ * The adjust command.
+ *
+ */
+
+#include "common.h"
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+
+#include "ged.h"
+
+
+int
+ged_adjust(struct ged *gedp, int argc, const char *argv[])
+{
+ int status;
+ struct directory *dp;
+ char *name;
+ struct rt_db_internal intern;
+ static const char *usage = "object attr value ?attr value?";
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_READ_ONLY(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc < 4) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ name = (char *)argv[1];
+
+ GED_DB_LOOKUP(gedp, dp, name, LOOKUP_QUIET, GED_ERROR);
+
+ GED_DB_GET_INTERNAL(gedp, &intern, dp, (matp_t)NULL, &rt_uniresource,
GED_ERROR);
+ RT_CK_DB_INTERNAL(&intern);
+
+ /* Find out what type of object we are dealing with and tweak it. */
+ RT_CK_FUNCTAB(intern.idb_meth);
+
+ if (!intern.idb_meth->ft_adjust) {
+ bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) adjust failure",
name);
+ return GED_ERROR;
+ }
+
+ status = intern.idb_meth->ft_adjust(gedp->ged_result_str, &intern, argc-2,
argv+2);
+ if (status == GED_OK && wdb_put_internal(gedp->ged_wdbp, name, &intern,
1.0) < 0) {
+ bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) failure", name);
+ rt_db_free_internal(&intern);
+ return GED_ERROR;
+ }
+
+ return GED_OK;
+}
+
+
+/*
+ * Local Variables:
+ * tab-width: 8
+ * mode: C
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Deleted: brlcad/branches/bioh/src/libged/adjust.c
===================================================================
--- brlcad/branches/bioh/src/libged/adjust.c 2020-07-17 13:38:57 UTC (rev
76359)
+++ brlcad/branches/bioh/src/libged/adjust.c 2020-07-17 16:44:16 UTC (rev
76360)
@@ -1,96 +0,0 @@
-/* A D J U S T . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/adjust.c
- *
- * The adjust command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "ged.h"
-
-
-int
-ged_adjust(struct ged *gedp, int argc, const char *argv[])
-{
- int status;
- struct directory *dp;
- char *name;
- struct rt_db_internal intern;
- static const char *usage = "object attr value ?attr value?";
-
- GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
- GED_CHECK_READ_ONLY(gedp, GED_ERROR);
- GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
- /* initialize result */
- bu_vls_trunc(gedp->ged_result_str, 0);
-
- /* must be wanting help */
- if (argc == 1) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_HELP;
- }
-
- if (argc < 4) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_ERROR;
- }
-
- name = (char *)argv[1];
-
- GED_DB_LOOKUP(gedp, dp, name, LOOKUP_QUIET, GED_ERROR);
-
- GED_DB_GET_INTERNAL(gedp, &intern, dp, (matp_t)NULL, &rt_uniresource,
GED_ERROR);
- RT_CK_DB_INTERNAL(&intern);
-
- /* Find out what type of object we are dealing with and tweak it. */
- RT_CK_FUNCTAB(intern.idb_meth);
-
- if (!intern.idb_meth->ft_adjust) {
- bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) adjust failure",
name);
- return GED_ERROR;
- }
-
- status = intern.idb_meth->ft_adjust(gedp->ged_result_str, &intern, argc-2,
argv+2);
- if (status == GED_OK && wdb_put_internal(gedp->ged_wdbp, name, &intern,
1.0) < 0) {
- bu_vls_printf(gedp->ged_result_str, "wdb_export(%s) failure", name);
- rt_db_free_internal(&intern);
- return GED_ERROR;
- }
-
- return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */
Copied: brlcad/branches/bioh/src/libged/ae2dir/ae2dir.c (from rev 76359,
brlcad/branches/bioh/src/libged/ae2dir.c)
===================================================================
--- brlcad/branches/bioh/src/libged/ae2dir/ae2dir.c
(rev 0)
+++ brlcad/branches/bioh/src/libged/ae2dir/ae2dir.c 2020-07-17 16:44:16 UTC
(rev 76360)
@@ -0,0 +1,94 @@
+/* A E 2 D I R . C
+ * BRL-CAD
+ *
+ * Copyright (c) 2008-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/ae2dir.c
+ *
+ * The ae2dir command.
+ *
+ */
+
+#include "common.h"
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+
+#include "./ged_private.h"
+
+
+int
+ged_ae2dir(struct ged *gedp, int argc, const char *argv[])
+{
+ double az, el;
+ vect_t dir;
+ int iflag;
+ static const char *usage = "[-i] az el";
+
+ GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
+ GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
+
+ /* initialize result */
+ bu_vls_trunc(gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argv[1][0] == '-' && argv[1][1] == 'i' && argv[1][2] == '\0') {
+ iflag = 1;
+ --argc;
+ ++argv;
+ } else
+ iflag = 0;
+
+ if (argc != 3) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ if (sscanf(argv[1], "%lf", &az) != 1 ||
+ sscanf(argv[2], "%lf", &el) != 1) {
+ bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_ERROR;
+ }
+
+ az *= DEG2RAD;
+ el *= DEG2RAD;
+ V3DIR_FROM_AZEL(dir, az, el);
+
+ if (iflag)
+ VSCALE(dir, dir, -1);
+
+ bn_encode_vect(gedp->ged_result_str, dir, 1);
+
+ return GED_OK;
+}
+
+
+/*
+ * Local Variables:
+ * tab-width: 8
+ * mode: C
+ * indent-tabs-mode: t
+ * c-file-style: "stroustrup"
+ * End:
+ * ex: shiftwidth=4 tabstop=8
+ */
Deleted: brlcad/branches/bioh/src/libged/ae2dir.c
===================================================================
--- brlcad/branches/bioh/src/libged/ae2dir.c 2020-07-17 13:38:57 UTC (rev
76359)
+++ brlcad/branches/bioh/src/libged/ae2dir.c 2020-07-17 16:44:16 UTC (rev
76360)
@@ -1,94 +0,0 @@
-/* A E 2 D I R . C
- * BRL-CAD
- *
- * Copyright (c) 2008-2020 United States Government as represented by
- * the U.S. Army Research Laboratory.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this file; see the file named COPYING for more
- * information.
- */
-/** @file libged/ae2dir.c
- *
- * The ae2dir command.
- *
- */
-
-#include "common.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-
-#include "./ged_private.h"
-
-
-int
-ged_ae2dir(struct ged *gedp, int argc, const char *argv[])
-{
- double az, el;
- vect_t dir;
- int iflag;
- static const char *usage = "[-i] az el";
-
- GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
- GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);
-
- /* initialize result */
- bu_vls_trunc(gedp->ged_result_str, 0);
-
- /* must be wanting help */
- if (argc == 1) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_HELP;
- }
-
- if (argv[1][0] == '-' && argv[1][1] == 'i' && argv[1][2] == '\0') {
- iflag = 1;
- --argc;
- ++argv;
- } else
- iflag = 0;
-
- if (argc != 3) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_ERROR;
- }
-
- if (sscanf(argv[1], "%lf", &az) != 1 ||
- sscanf(argv[2], "%lf", &el) != 1) {
- bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
- return GED_ERROR;
- }
-
- az *= DEG2RAD;
- el *= DEG2RAD;
- V3DIR_FROM_AZEL(dir, az, el);
-
- if (iflag)
- VSCALE(dir, dir, -1);
-
- bn_encode_vect(gedp->ged_result_str, dir, 1);
-
- return GED_OK;
-}
-
-
-/*
- * Local Variables:
- * tab-width: 8
- * mode: C
- * indent-tabs-mode: t
- * c-file-style: "stroustrup"
- * End:
- * ex: shiftwidth=4 tabstop=8
- */
Copied: brlcad/branches/bioh/src/libged/analyze/analyze.c (from rev 76359,
brlcad/branches/bioh/src/libged/analyze.c)
===================================================================
--- brlcad/branches/bioh/src/libged/analyze/analyze.c
(rev 0)
+++ brlcad/branches/bioh/src/libged/analyze/analyze.c 2020-07-17 16:44:16 UTC
(rev 76360)
@@ -0,0 +1,1324 @@
+/* A N A L Y Z E . C
+ * BRL-CAD
+ *
+ * Copyright (c) 1985-2020 United States Government as represented by
+ * the U.S. Army Research Laboratory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * version 2.1 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this file; see the file named COPYING for more
+ * information.
+ */
+/** @file libged/analyze.c
+ *
+ * The analyze command.
+ *
+ */
+
+#include "common.h"
+
+#include <math.h>
+#include <string.h>
+#include <assert.h>
+
+
+
+#include "vmath.h"
+#include "bn.h"
+#include "bg/polygon.h"
+#include "rt/arb_edit.h"
+#include "raytrace.h"
+#include "rt/geom.h"
+
+#include "./ged_private.h"
+
+/**
+ * TODO: primitives that still need implementing
+ * ehy
+ * metaball
+ * nmg
+ */
+
+/* Conversion factor for Gallons to cubic millimeters */
+#define GALLONS_TO_MM3 3785411.784
+
+
+/* ARB face printout array */
+static const int prface[5][6] = {
+ {123, 124, 234, 134, -111, -111}, /* ARB4 */
+ {1234, 125, 235, 345, 145, -111}, /* ARB5 */
+ {1234, 2365, 1564, 512, 634, -111}, /* ARB6 */
+ {1234, 567, 145, 2376, 1265, 4375}, /* ARB7 */
+ {1234, 5678, 1584, 2376, 1265, 4378}, /* ARB8 */
+};
+
+
+/* edge definition array */
+static const int nedge[5][24] = {
+ {0, 1, 1, 2, 2, 0, 0, 3, 3, 2, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1}, /* ARB4 */
+ {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 1, 4, 2, 4, 3, 4, -1, -1, -1, -1, -1, -1,
-1, -1}, /* ARB5 */
+ {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 1, 4, 2, 5, 3, 5, 4, 5, -1, -1, -1, -1, -1,
-1}, /* ARB6 */
+ {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 3, 4, 1, 5, 2, 6, 4, 5, 5, 6, 4, 6, -1,
-1}, /* ARB7 */
+ {0, 1, 1, 2, 2, 3, 0, 3, 0, 4, 4, 5, 1, 5, 5, 6, 6, 7, 4, 7, 3, 7, 2, 6},
/* ARB8 */
+};
+
+
+/* contains information used to analyze a polygonal face */
+struct poly_face
+{
+ char label[5];
+ size_t npts;
+ point_t *pts;
+ plane_t plane_eqn;
+ fastf_t area;
+};
+
+
+#define POLY_FACE_INIT_ZERO { { 0, 0, 0, 0, 0 }, 0, NULL, HINIT_ZERO, 0.0 }
+
+#define ADD_PT(face, pt) do { VMOVE((face).pts[(face).npts], (pt));
(face).npts++; } while (0)
+
+/* structures and subroutines for analyze pretty printing */
+
+#define FBUFSIZ 100
+#define NFIELDS 9
+#define NOT_A_PLANE -1
+typedef struct row_field
+{
+ int nchars;
+ char buf[FBUFSIZ];
+} field_t;
+
+typedef struct table_row
+{
+ int nfields;
+ field_t fields[NFIELDS];
+} row_t;
+
+typedef struct table
+{
+ int nrows;
+ row_t *rows;
+} table_t;
+
+void get_dashes(field_t *f, const int ndashes)
+{
+ int i;
+ f->buf[0] = '\0';
+ for (i = 0; i < ndashes; ++i) {
+ bu_strlcat(f->buf, "-", FBUFSIZ);
+ }
+ f->nchars = ndashes;
+}
+
+
+void print_volume_table(struct ged *gedp
+ , const fastf_t tot_vol
+ , const fastf_t tot_area
+ , const fastf_t tot_gallons
+ )
+{
+
+/* table format
+
+ +------------------------------------+
+ | Volume = 7999999999.99999905 |
+ | Surface Area = 24000000.00000000 |
+ | Gallons = 2113.37641887 |
+ +------------------------------------+
+
+*/
+ /* track actual table column widths */
+ /* this table has 1 column (plus a name column) */
+ int maxwidth[2] = {0, 0};
+ field_t dashes;
+ char* fnames[3] = {"Volume",
+ "Surface Area",
+ "Gallons"};
+ int indent = 4; /* number spaces to indent the table */
+ int table_width_chars;
+ table_t table;
+ int i, nd, field;
+
+ table.nrows = 3;
+ table.rows = (row_t *)bu_calloc(3, sizeof(row_t), "print_volume_table:
rows");
+ for (i = 0; i < table.nrows; ++i) {
+ fastf_t val = 0.0;
+
+ /* field 0 */
+ field = 0;
+ table.rows[i].fields[0].nchars =
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "%s",
+ fnames[i]);
+ if (maxwidth[field] < table.rows[i].fields[field].nchars)
+ maxwidth[field] = table.rows[i].fields[field].nchars;
+
+ if (i == 0) {
+ val = tot_vol;
+ } else if (i == 1) {
+ val = tot_area;
+ } else if (i == 2) {
+ val = tot_gallons;
+ }
+
+ /* field 1 */
+ field = 1;
+ if (val < 0) {
+ table.rows[i].fields[1].nchars =
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "COULD NOT DETERMINE");
+ } else {
+ table.rows[i].fields[1].nchars =
snprintf(table.rows[i].fields[field].buf, FBUFSIZ, "%10.8f", val);
+ }
+ if (maxwidth[field] < table.rows[i].fields[field].nchars)
+ maxwidth[field] = table.rows[i].fields[field].nchars;
+ }
+
+ /* get total table width */
+ table_width_chars = maxwidth[0] + maxwidth[1];
+ table_width_chars += 2 + 2; /* 2 chars at each end of a row */
+ table_width_chars += 3; /* ' = ' between the two fields of a row */
+
+ /* newline following previous table */
+ bu_vls_printf(gedp->ged_result_str, "\n");
+
+ /* header row 1 */
+ nd = table_width_chars - 4;
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s+-%-*.*s-+\n",
+ indent, indent, " ",
+ nd, nd, dashes.buf);
+
+ /* the three data rows */
+ for (i = 0; i < table.nrows; ++i) {
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s| %-*.*s = %*.*s |\n",
+ indent, indent, " ",
+ maxwidth[0], maxwidth[0], table.rows[i].fields[0].buf,
+ maxwidth[1], maxwidth[1], table.rows[i].fields[1].buf);
+ }
+
+ /* closing table row */
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s+-%-*.*s-+\n",
+ indent, indent, " ",
+ nd, nd, dashes.buf);
+ bu_free((char *)table.rows, "print_volume_table: rows");
+}
+
+
+void print_edges_table(struct ged *gedp, table_t *table)
+{
+
+/* table header
+
+
+--------------------+--------------------+--------------------+--------------------+
+ | EDGE LEN | EDGE LEN | EDGE LEN | EDGE
LEN |
+
+--------------------+--------------------+--------------------+--------------------+
+
+*/
+
+ int i;
+ int tcol, nd, nrow, nrows;
+ int maxwidth[] = {0, 0, 0,
+ 0, 0, 0,
+ 0, 0};
+ int indent = 2;
+ field_t dashes;
+ char EDGE[] = {"EDGE"};
+ int elen = strlen(EDGE);
+ char LEN[] = {"LENGTH"};
+ int llen = strlen(LEN);
+ char buf[FBUFSIZ];
+
+ /* put four edges per row making 8 columns */
+ /* this table has 8 columns per row: 2 columns per edge; 4 edges per row */
+
+ /* collect max table column widths */
+ tcol = 0;
+ for (i = 0; i < table->nrows; ++i) {
+ /* field 0 */
+ int field = 0;
+ if (maxwidth[tcol] < table->rows[i].fields[field].nchars)
+ maxwidth[tcol] = table->rows[i].fields[field].nchars;
+ if (maxwidth[tcol] < elen)
+ maxwidth[tcol] = elen;
+
+ /* field 1 */
+ field = 1;
+ if (maxwidth[tcol+1] < table->rows[i].fields[field].nchars)
+ maxwidth[tcol+1] = table->rows[i].fields[field].nchars;
+ if (maxwidth[tcol] < llen)
+ maxwidth[tcol] = llen;
+
+ /* iterate on columns */
+ tcol += 2;
+ tcol = tcol > 6 ? 0 : tcol;
+ }
+
+ /* header row 1 */
+ /* print dashes in 4 sets */
+ nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
+ indent, indent, " ",
+ nd, nd, dashes.buf);
+ nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
+ nd, nd, dashes.buf);
+
+ /* header row 2 */
+ /* print titles in 4 sets */
+
+ /* bu_vls_printf can't handle this at the moment */
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s| %-*.*s %*.*s ",
+ indent, indent, " ",
+ maxwidth[0], maxwidth[0], EDGE,
+ maxwidth[1], maxwidth[1], LEN);
+ bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s ",
+ maxwidth[2], maxwidth[2], EDGE,
+ maxwidth[3], maxwidth[3], LEN);
+ bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s ",
+ maxwidth[4], maxwidth[4], EDGE,
+ maxwidth[5], maxwidth[5], LEN);
+ bu_vls_printf(gedp->ged_result_str, "| %-*.*s %*.*s |\n",
+ maxwidth[6], maxwidth[6], EDGE,
+ maxwidth[7], maxwidth[7], LEN);
+
+ /* header row 3 */
+ /* print dashes in 4 sets */
+ nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
+ indent, indent, " ",
+ nd, nd, dashes.buf);
+ nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
+ nd, nd, dashes.buf);
+
+ /* print the data lines */
+ /* collect max table column widths */
+ tcol = 0;
+ nrow = 0;
+ for (i = 0; i < table->nrows; ++i) {
+ int field;
+
+ if (tcol == 0) {
+ /* need to start a row */
+ snprintf(buf, FBUFSIZ, "%-*.*s|",
+ indent, indent, " ");
+ bu_vls_printf(gedp->ged_result_str, "%s", buf);
+ }
+
+ /* data in sets of two */
+ /* field 0 */
+ field = 0;
+ /* FIXME: using snprintf because bu_vls_printf is broken for complex
formats */
+ snprintf(buf, FBUFSIZ, " %-*.*s",
+ maxwidth[tcol], maxwidth[tcol],
table->rows[i].fields[field].buf);
+ bu_vls_printf(gedp->ged_result_str, "%s", buf);
+
+ /* field 1 */
+ field = 1;
+ /* FIXME: using snprintf because bu_vls_printf is broken for complex
formats */
+ snprintf(buf, FBUFSIZ, " %-*.*s |",
+ maxwidth[tcol+1], maxwidth[tcol+1],
table->rows[i].fields[field].buf);
+ bu_vls_printf(gedp->ged_result_str, "%s", buf);
+
+ /* iterate on columns */
+ tcol += 2;
+
+ if (tcol > 6) {
+ /* time for a newline to end the row */
+ bu_vls_printf(gedp->ged_result_str, "\n");
+ tcol = 0;
+ ++nrow;
+ }
+ }
+
+ /* we may have a row to finish */
+ nrows = table->nrows % 4;
+ if (nrows) {
+ assert(tcol < 8);
+
+ /* write blanks */
+ while (tcol < 7) {
+
+ /* data in sets of two */
+ /* this is field 0 */
+ /* FIXME: using snprintf because bu_vls_printf is broken for
complex formats */
+ snprintf(buf, FBUFSIZ, " %-*.*s",
+ maxwidth[tcol], maxwidth[tcol], " ");
+ bu_vls_printf(gedp->ged_result_str, "%s", buf);
+
+ /* this is field 1 */
+ /* FIXME: using snprintf because bu_vls_printf is broken for
complex formats */
+ snprintf(buf, FBUFSIZ, " %-*.*s |",
+ maxwidth[tcol+1], maxwidth[tcol+1], " ");
+ bu_vls_printf(gedp->ged_result_str, "%s", buf);
+
+ /* iterate on columns */
+ tcol += 2;
+
+ if (tcol > 6) {
+ /* time for a newline to end the row */
+ bu_vls_printf(gedp->ged_result_str, "\n");
+ }
+ }
+ }
+
+ /* close the table */
+ /* print dashes in 4 sets */
+ nd = maxwidth[0] + maxwidth[1] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s+%-*.*s",
+ indent, indent, " ",
+ nd, nd, dashes.buf);
+ nd = maxwidth[2] + maxwidth[3] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[4] + maxwidth[5] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s",
+ nd, nd, dashes.buf);
+ nd = maxwidth[6] + maxwidth[7] + 3; /* 1 space between numbers and one at
each end */
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "+%-*.*s+\n",
+ nd, nd, dashes.buf);
+}
+
+
+void print_faces_table(struct ged *gedp, table_t *table)
+{
+
+/* table header
+
+
+------+-----------------------------+--------------------------------------------------+-----------------+
+ | FACE | ROT FB | PLANE EQUATION
| SURFACE AREA |
+
+------+-----------------------------+--------------------------------------------------+-----------------+
+
+*/
+
+ /* track actual table column widths */
+ /* this table has 8 columns */
+ int maxwidth[8] = {0, 0, 0,
+ 0, 0, 0,
+ 0, 0};
+ int i, j;
+ int c0, h1a, h1b, h1c;
+ int h2a, h2b, h2c;
+ int c2, c2a, c2b, c2c;
+ int f7, f7a, f7b, f7c;
+ int nd, tnd;
+ field_t dashes;
+ char ROT[] = {"ROT"};
+ char FB[] = {"FB"};
+ char PA[] = {"PLANE EQUATION"};
+ char SA[] = {"SURFACE AREA"};
+
+ /* get max fields widths */
+ for (i = 0; i < table->nrows; ++i) {
+ for (j = 0; j < table->rows[i].nfields; ++j) {
+ if (table->rows[i].fields[j].nchars > maxwidth[j])
+ maxwidth[j] = table->rows[i].fields[j].nchars;
+ }
+ }
+
+ /* blank line following previous table */
+ bu_vls_printf(gedp->ged_result_str, "\n");
+
+ /* get max width of header columns (not counting single space on either
side) */
+ c0 = maxwidth[0] > 4 ? maxwidth[0] : 4;
+
+ /* print "ROT" in center of field 1 space */
+ h1b = strlen(ROT);
+ h1a = (maxwidth[1] - h1b)/2;
+ h1c = (maxwidth[1] - h1b - h1a);
+
+ /* print "FB" in center of field 2 space */
+ h2b = strlen(FB);
+ h2a = (maxwidth[2] - h2b)/2;
+ h2c = (maxwidth[2] - h2b - h2a);
+
+ /* get width of subcolumns of header column 2 */
+ /* print "PLANE EQUATION" in center of columns 2 space */
+ c2 = maxwidth[3] + maxwidth[4] + maxwidth[5] + maxwidth[6] + 3; /* 3
spaces between fields */
+ c2b = strlen(PA);
+ c2a = (c2 - c2b)/2;
+ c2c = (c2 - c2b - c2a);
+
+ /* print "SURFACE AREA" in center of field 7 space */
+ f7b = strlen(SA);
+ f7 = maxwidth[7] > f7b ? maxwidth[7] : f7b;
+ f7a = (f7 - f7b)/2;
+ f7c = (f7 - f7b - f7a);
+
+ /* print the pieces */
+
+ /* header row 1 */
+ bu_vls_printf(gedp->ged_result_str, "+-");
+ nd = c0; tnd = nd;
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s",
+ nd, nd, dashes.buf);
+ bu_vls_printf(gedp->ged_result_str, "-+-");
+ nd = h1a + h1b + h1c + 1 + h2a + h2b + h2c; tnd += nd + 3;
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%*.*s",
+ nd, nd, dashes.buf);
+ bu_vls_printf(gedp->ged_result_str, "-+-");
+ nd = c2a + c2b + c2c; tnd += nd + 3;
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%*.*s",
+ nd, nd, dashes.buf);
+ bu_vls_printf(gedp->ged_result_str, "-+-");
+ nd = f7a + f7b + f7c; tnd += nd + 3;
+ get_dashes(&dashes, nd);
+ bu_vls_printf(gedp->ged_result_str, "%*.*s",
+ nd, nd, dashes.buf);
+ bu_vls_printf(gedp->ged_result_str, "-+\n");
+
+ /* header row 2 */
+ bu_vls_printf(gedp->ged_result_str, "| ");
+
+ bu_vls_printf(gedp->ged_result_str, "%-*.*s", c0, c0, "FACE");
+
+ bu_vls_printf(gedp->ged_result_str, " | ");
+
+
@@ 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