Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a52c3a553e | ||
|
|
4cd1528daa | ||
|
|
4b04f6c261 | ||
|
|
562a74bfca | ||
|
|
ce84e56ccf | ||
|
|
71de9997e0 | ||
|
|
565e5e0242 | ||
|
|
867d2b87d3 | ||
|
|
ef73c17b95 | ||
|
|
07d3ec5ae1 | ||
|
|
01629532c8 | ||
|
|
ad97489d26 | ||
|
|
e4b5e8ebcb | ||
|
|
43d5886fef | ||
|
|
86b559a5da | ||
|
|
0ab871f46a | ||
|
|
eb8ef3c631 | ||
|
|
8465475f78 | ||
|
|
08790a882e | ||
|
|
00b6fe5031 | ||
|
|
434cabae66 | ||
|
|
f8c2dde741 | ||
|
|
c8039f0a9d | ||
|
|
12f694d220 | ||
|
|
811b1f1848 | ||
|
|
d187b321d8 | ||
|
|
cfaa401d57 | ||
|
|
64a43c3ce7 | ||
|
|
b25cbfa7ab | ||
|
|
2f6763d30b | ||
|
|
983520a1d9 | ||
|
|
93177e87ad | ||
|
|
c65f295e3c | ||
|
|
be6e927ae7 | ||
|
|
72bd5645aa | ||
|
|
c5f2a7cd94 | ||
|
|
a569144fb7 | ||
|
|
362966205f | ||
|
|
c967eee423 | ||
|
|
fc00a226bb | ||
|
|
bdecd44f8b | ||
|
|
3f144ccea7 | ||
|
|
372e40450c | ||
|
|
d53453aaff | ||
|
|
1533c55bb7 | ||
|
|
fe8137e71c | ||
|
|
ebc5f471f6 | ||
|
|
8fedcb0c13 | ||
|
|
8a527b153c | ||
|
|
7aa45470c7 | ||
|
|
59db43fb4e | ||
|
|
e36e27616d | ||
|
|
4d0f648c27 | ||
|
|
239ebdfea6 | ||
|
|
50e27a1164 | ||
|
|
994003b577 | ||
|
|
c31151e3bc | ||
|
|
f6f82920be | ||
|
|
622c08c5b7 | ||
|
|
9b665d90c0 | ||
|
|
712bf8e231 | ||
|
|
bb76d91e7b | ||
|
|
067040dc3a | ||
|
|
8a6a5c9c90 | ||
|
|
450a580bed | ||
|
|
c9162722c1 | ||
|
|
81a94faea1 | ||
|
|
29aec44b57 | ||
|
|
907b00591c | ||
|
|
f13dca80dd | ||
|
|
12b634f2ec | ||
|
|
d77f995f01 | ||
|
|
f376845359 | ||
|
|
9f8116ce5e | ||
|
|
240fce0d40 | ||
|
|
05be376148 | ||
|
|
06db87440b | ||
|
|
f42fbedd4b | ||
|
|
d2860bd18b | ||
|
|
6e75722c1f | ||
|
|
c9fc8682da | ||
|
|
68c6e60ac2 | ||
|
|
6055995763 | ||
|
|
062259d255 | ||
|
|
fa7fa22e1a | ||
|
|
3bd6c4f7d2 | ||
|
|
a458db1163 | ||
|
|
9d5bdfbe13 | ||
|
|
0672817434 | ||
|
|
fadbd1d32a | ||
|
|
2e5892c69f | ||
|
|
9125fa75ef | ||
|
|
c565913df5 | ||
|
|
2dc99766b7 | ||
|
|
49d5d89da4 | ||
|
|
e06eaf3311 | ||
|
|
a18387b513 | ||
|
|
a96d52ebc1 | ||
|
|
d9742efbcd | ||
|
|
c5f91563dd | ||
|
|
9349eadc6f | ||
|
|
665eb9d0e1 | ||
|
|
1edf8e3f58 | ||
|
|
c1b1e5bd60 | ||
|
|
ccfbd4fecf | ||
|
|
0334aa7f50 | ||
|
|
1d1f3843ca | ||
|
|
c134368422 | ||
|
|
b8978097ed | ||
|
|
2d6b7acaf9 | ||
|
|
226df593a8 | ||
|
|
c6605a30bf | ||
|
|
673702de38 | ||
|
|
e699fdb2ad | ||
|
|
3783610317 | ||
|
|
c263f71ffd | ||
|
|
1a901c22f3 | ||
|
|
7cb6e2b28a | ||
|
|
3e5aac862c | ||
|
|
c5576934a2 | ||
|
|
28f4b9453b | ||
|
|
5e0f4a8f16 | ||
|
|
0ceeb11730 | ||
|
|
2e513dbac7 | ||
|
|
405817da72 | ||
|
|
1a1965e467 | ||
|
|
258e31a58c | ||
|
|
df301cb94a | ||
|
|
166612edfa | ||
|
|
92f0490397 | ||
|
|
c1974a737a | ||
|
|
283ddd0124 | ||
|
|
a3ae403bdd | ||
|
|
5f12868089 | ||
|
|
faa45d6eec | ||
|
|
fea130bd42 | ||
|
|
d6cddc450c | ||
|
|
ecd3ea9662 | ||
|
|
fb01bb16fc | ||
|
|
1d3ae20bc6 | ||
|
|
cbb2eb4e6a | ||
|
|
172d43d9f8 | ||
|
|
9b981c6cd7 | ||
|
|
a72faddebb | ||
|
|
c19321cf46 | ||
|
|
b4450076b7 | ||
|
|
fb223ea49e | ||
|
|
6eb43a570b | ||
|
|
f710ed8280 | ||
|
|
2f0ca15ab1 | ||
|
|
17e7f5b0d9 | ||
|
|
af81ddb0ba | ||
|
|
4f661f7caf | ||
|
|
80112e5502 | ||
|
|
3e38af5386 | ||
|
|
31aeaff339 | ||
|
|
93b91dbac7 | ||
|
|
ebe5c81ec3 | ||
|
|
102887558f | ||
|
|
2c0ecfabe0 | ||
|
|
6830814e38 | ||
|
|
27dea8fb61 | ||
|
|
7de391f3ff | ||
|
|
32a1700d27 | ||
|
|
86cd4c3330 | ||
|
|
6b8a7df404 | ||
|
|
15cf204489 | ||
|
|
3a2ed6b69b | ||
|
|
5b878cbf4a | ||
|
|
67a4c4d6f8 | ||
|
|
a13f10ceec | ||
|
|
2b05f56bd6 | ||
|
|
29e01bbdcb | ||
|
|
8058e6b44a | ||
|
|
2c8b455c9a | ||
|
|
83720bf53a | ||
|
|
a482187a2f | ||
|
|
bb11dd9b50 | ||
|
|
8bf376f214 | ||
|
|
8ec8f3e6fe | ||
|
|
5de1663827 | ||
|
|
5d9ac0dfc2 | ||
|
|
5c5ee1e1c1 | ||
|
|
3d9f9aefcb | ||
|
|
c75a16bc6f | ||
|
|
11ce4aee01 | ||
|
|
52b9c29464 | ||
|
|
7ca23aaf97 | ||
|
|
a31745fd74 | ||
|
|
62e5a35f84 | ||
|
|
1bdce00f90 | ||
|
|
05580a214f | ||
|
|
4975b65f4b | ||
|
|
11d16fbec3 | ||
|
|
92eef6267a | ||
|
|
5909426c29 | ||
|
|
225a2911a6 | ||
|
|
f371ebe40a | ||
|
|
ac397cf0f1 | ||
|
|
35815d8abe | ||
|
|
3c753d7edc | ||
|
|
4b523b47e8 | ||
|
|
85f46e8b34 | ||
|
|
32a31c570e | ||
|
|
0580e05ce2 | ||
|
|
c476bb6842 | ||
|
|
d13888124e | ||
|
|
b1555c1065 | ||
|
|
62386c7d21 | ||
|
|
447b8fd1fd | ||
|
|
690ef36350 | ||
|
|
ba332e4bb6 | ||
|
|
8b43f5b937 | ||
|
|
d0e4a641ad | ||
|
|
ece0f05ca8 | ||
|
|
8d1e5696ac | ||
|
|
e8039f6282 | ||
|
|
b8d9da0f14 | ||
|
|
01b7345440 | ||
|
|
934d27c6ea | ||
|
|
01941d267f | ||
|
|
75cf6ae3ae | ||
|
|
a1cfd4b19d | ||
|
|
221916542b | ||
|
|
680b0df858 | ||
|
|
f29538b225 | ||
|
|
939be6a35b | ||
|
|
2683bec99e | ||
|
|
dd5e0068cf | ||
|
|
9548023441 | ||
|
|
a300e63ee7 | ||
|
|
4e0ea03ab1 | ||
|
|
d9c4b70f06 | ||
|
|
d18a7f49df | ||
|
|
bb816bdf32 | ||
|
|
edf16c00aa | ||
|
|
be9df57bb8 | ||
|
|
0d8ecce829 | ||
|
|
3366facfa8 | ||
|
|
f7d0707115 | ||
|
|
0642ec6a9b | ||
|
|
d896eaaa62 | ||
|
|
083490d046 | ||
|
|
f0192a155c | ||
|
|
b697db98da | ||
|
|
270c4ee950 | ||
|
|
25e35daa28 | ||
|
|
59f2fc1c1d | ||
|
|
5ccf4659cd | ||
|
|
8184e8e602 | ||
|
|
cd62ba6e33 | ||
|
|
11a21833b8 | ||
|
|
bc76a3d047 | ||
|
|
11048da2af | ||
|
|
873deab120 | ||
|
|
8cd9292884 | ||
|
|
5e5727f80a | ||
|
|
0c0c03e204 | ||
|
|
47707e2873 | ||
|
|
ec5292df3d | ||
|
|
73d8bc9e07 | ||
|
|
7b67b22c4c | ||
|
|
3054f35dcd | ||
|
|
396e956182 | ||
|
|
4c4e511514 | ||
|
|
ee563d8bb7 | ||
|
|
7c08bdedd0 | ||
|
|
014bd2baa7 | ||
|
|
26d699a8bc | ||
|
|
d60e6d98cf | ||
|
|
e1f3a5927e | ||
|
|
a7e871ad5d | ||
|
|
b45a837c8e | ||
|
|
dd761d0251 | ||
|
|
f03a797314 | ||
|
|
9faa1cf054 | ||
|
|
613e5159bb | ||
|
|
db7ccc708e | ||
|
|
9b21f48742 | ||
|
|
d5063e4a91 | ||
|
|
2c356e22ac | ||
|
|
36b843280e | ||
|
|
51cc815e18 | ||
|
|
3a4e14c6fd | ||
|
|
e90be9521b | ||
|
|
bac7bcd86b | ||
|
|
4523f24a24 | ||
|
|
bde66077ed | ||
|
|
b576994be8 | ||
|
|
fd3a00472c | ||
|
|
fb9b1a9e16 | ||
|
|
526a2da14f | ||
|
|
ee752a2547 | ||
|
|
71d7311181 | ||
|
|
1245070f85 | ||
|
|
c337472d21 | ||
|
|
739c6303c3 | ||
|
|
261602ef3f | ||
|
|
4541da96b6 | ||
|
|
36cb12d025 | ||
|
|
68194fef4a | ||
|
|
c032076f46 | ||
|
|
169d7711ce | ||
|
|
e2f00d33ff | ||
|
|
a84bd44fbe | ||
|
|
8efa80c576 | ||
|
|
6553f37f9c | ||
|
|
e2c1c67688 | ||
|
|
caa31bd79d | ||
|
|
f07aff411c | ||
|
|
a8c47342ef | ||
|
|
55fe75a472 | ||
|
|
b571702d11 | ||
|
|
6c6b100dc6 | ||
|
|
6d66d6760a | ||
|
|
1a5c460e78 | ||
|
|
586e9099cc | ||
|
|
c6943d9294 | ||
|
|
3ad1472d12 | ||
|
|
b3f6d063e3 | ||
|
|
c1d49db9ba | ||
|
|
bbf93217a4 | ||
|
|
716952bfd4 | ||
|
|
58a641095b | ||
|
|
b1025eeb72 | ||
|
|
681c402935 | ||
|
|
7aaeb90e86 | ||
|
|
e42ef042af | ||
|
|
f10c7eead4 | ||
|
|
f3420bd799 | ||
|
|
cdb6ce81ea | ||
|
|
334e84a09c | ||
|
|
4c59c5594d | ||
|
|
ae5f9a4d64 | ||
|
|
3a6e7584db | ||
|
|
0f2b6ff68d | ||
|
|
5afe8dfddb | ||
|
|
8a4c8152a8 | ||
|
|
96916a522d | ||
|
|
839e2f4d49 | ||
|
|
79f154f8c8 | ||
|
|
affa82e3f9 | ||
|
|
cde33eb350 | ||
|
|
6840ae4980 | ||
|
|
727126fdb0 | ||
|
|
120b194b41 | ||
|
|
9018fc554b | ||
|
|
4685010094 | ||
|
|
283ee4f2ea | ||
|
|
c28c8e6fa5 | ||
|
|
cd3b600929 | ||
|
|
97f79ba47f | ||
|
|
e135143f6d | ||
|
|
0dac23b7f4 | ||
|
|
6eedd18fc1 | ||
|
|
e0747b0a44 | ||
|
|
b401fb99ee | ||
|
|
c9071978ba | ||
|
|
b68a7845e3 | ||
|
|
a5bc20c8e6 | ||
|
|
df4d349841 | ||
|
|
8f2891cc22 | ||
|
|
d3ec77bada | ||
|
|
ca9e2741b1 | ||
|
|
36f6b04410 | ||
|
|
c89f48c6be | ||
|
|
7ae33f6603 | ||
|
|
12b2558d95 | ||
|
|
bb8645b3d5 | ||
|
|
091beeed8a | ||
|
|
880e01ab39 | ||
|
|
2f452feda1 | ||
|
|
2b341094bd | ||
|
|
366c544ef3 | ||
|
|
b85a8dedf4 | ||
|
|
63a9e407a4 | ||
|
|
5671728e8b | ||
|
|
c53b7592ec | ||
|
|
32761cac81 | ||
|
|
5b2bd747a7 | ||
|
|
40d222eca2 | ||
|
|
d5f07e68b7 | ||
|
|
5e53148eb0 | ||
|
|
557063dd22 | ||
|
|
ae2a224b1b | ||
|
|
8519b6fd62 | ||
|
|
cb8d3b8cb2 | ||
|
|
9b95229506 | ||
|
|
3de7fdc7e3 | ||
|
|
2e07221328 | ||
|
|
4657adc369 | ||
|
|
a4f7a0f8a7 | ||
|
|
d101cf223c | ||
|
|
559becc0c7 | ||
|
|
8a3532090f | ||
|
|
678ac4b4e0 | ||
|
|
55fdaf6b01 | ||
|
|
3ec6e4e4b0 | ||
|
|
47864ddea0 | ||
|
|
dde21caae8 | ||
|
|
6eb742ffed | ||
|
|
449d536543 | ||
|
|
08ffe6c521 | ||
|
|
af24027ed3 | ||
|
|
3449f97ad0 | ||
|
|
10773102bf | ||
|
|
ebc4b5274f | ||
|
|
c8a621ca42 | ||
|
|
6886a82f6b | ||
|
|
17b6351666 | ||
|
|
ee32a8657a | ||
|
|
4b4dbfb0dd | ||
|
|
2ed71ed307 | ||
|
|
ab9dfd65c8 | ||
|
|
c39dadbb5f | ||
|
|
c0630af769 | ||
|
|
543033d12a | ||
|
|
c4d1e897bf | ||
|
|
06b1cc28e4 | ||
|
|
c5ddd64ee6 | ||
|
|
423c472f8e | ||
|
|
cc6751dea5 | ||
|
|
d0a733e7b6 | ||
|
|
0171da00f7 | ||
|
|
9f9c2dfdf4 | ||
|
|
badebb2cff | ||
|
|
d66c10cd18 | ||
|
|
088d69f31e | ||
|
|
e81b926b42 | ||
|
|
5d2b2c130f | ||
|
|
06c988273b | ||
|
|
ba927b573c | ||
|
|
b45d3b0ee5 | ||
|
|
e1c620eb09 | ||
|
|
8d42a37556 | ||
|
|
625002976f | ||
|
|
458cb7ddae | ||
|
|
0a89a7b419 | ||
|
|
22a7610b9b | ||
|
|
bf245cfe0d | ||
|
|
be4c784217 | ||
|
|
f47a1b6aa5 | ||
|
|
4c96da8d67 | ||
|
|
a0072cc4c7 | ||
|
|
4de47dc376 | ||
|
|
d5610d2e46 | ||
|
|
a9243bb35a | ||
|
|
bb4d921ab5 | ||
|
|
4300471f9b | ||
|
|
d5ba2afbb6 | ||
|
|
374121bef6 | ||
|
|
efeb827baf | ||
|
|
e7baa4dc39 | ||
|
|
7c1c56db1a | ||
|
|
a7a0ddd27d | ||
|
|
91dd109ec6 | ||
|
|
04238bd94e | ||
|
|
3e63a1d9c2 | ||
|
|
e3c3883ac0 | ||
|
|
ec96d5c62f | ||
|
|
db3620f8e4 | ||
|
|
5a3335859b | ||
|
|
fda014d266 | ||
|
|
90b61b7de4 | ||
|
|
88f537b267 | ||
|
|
8271bdf523 | ||
|
|
f2bbec3a7a | ||
|
|
e77c0e5e2f | ||
|
|
0f4371a8b0 | ||
|
|
ae51eca930 | ||
|
|
a38e5dfc0b | ||
|
|
dae3c80823 | ||
|
|
9f423d4a9f | ||
|
|
e97cc38f1b | ||
|
|
43161925a6 | ||
|
|
e5c65d3a20 | ||
|
|
e79d22ebf8 | ||
|
|
b438560c71 | ||
|
|
d3f21c7af9 | ||
|
|
f0bc2b2618 | ||
|
|
75ee72d5a0 | ||
|
|
b58ec42de9 | ||
|
|
b91103d033 | ||
|
|
f7b509919c | ||
|
|
a9073a1152 | ||
|
|
01fb77f087 | ||
|
|
bde5c65957 | ||
|
|
a5b6857382 | ||
|
|
42d8d404c6 | ||
|
|
6ac3830bb2 | ||
|
|
ee31d44111 | ||
|
|
70c0c9f6d6 | ||
|
|
60eaf34cad | ||
|
|
f49a7a9149 | ||
|
|
9fc868b625 | ||
|
|
14f74c127b | ||
|
|
af56cd0e29 | ||
|
|
2bf99947e4 | ||
|
|
c5133a6ad1 | ||
|
|
8fe00edcec | ||
|
|
e32aea9524 | ||
|
|
4f97a4c4fa | ||
|
|
75565a805a | ||
|
|
1c2b62a9ab | ||
|
|
962d29fd43 | ||
|
|
4c975574c1 | ||
|
|
64800da42b | ||
|
|
4311dcb669 | ||
|
|
f72892e1d0 | ||
|
|
9c0be4c700 | ||
|
|
f70e5afe02 | ||
|
|
6513dd74f3 | ||
|
|
ebefcda1b9 | ||
|
|
2f0726378d | ||
|
|
87ae49ba68 | ||
|
|
affb506f7b | ||
|
|
e553e56021 | ||
|
|
fc4408e598 | ||
|
|
427549a277 | ||
|
|
4422e4d1b2 | ||
|
|
53805b7e1b | ||
|
|
ce909cafe0 | ||
|
|
2dd232bab8 | ||
|
|
1c0b6ce9ba | ||
|
|
ff635e7f56 | ||
|
|
380d87e7e8 | ||
|
|
217ebcda1d | ||
|
|
17d70eb4b0 | ||
|
|
821ced8843 | ||
|
|
cce614722e | ||
|
|
f93396bc94 | ||
|
|
5ae48a59fa | ||
|
|
1455c97593 | ||
|
|
f3a33d1c3a | ||
|
|
77725a3d07 | ||
|
|
9b978c06a3 | ||
|
|
5e12fffd96 | ||
|
|
f6900e02ff | ||
|
|
368cfd814e | ||
|
|
6015dc11f0 | ||
|
|
3f11a86a6d | ||
|
|
6ac26ee35c | ||
|
|
be3c29c5d3 | ||
|
|
4754be8a06 | ||
|
|
5ff1649566 | ||
|
|
694508b3a3 | ||
|
|
c89cbe4ea2 | ||
|
|
b9b8d17f04 | ||
|
|
3c7a737ef0 | ||
|
|
04c4de70c6 | ||
|
|
af5b78eac2 | ||
|
|
0a87bf7413 | ||
|
|
abe611ab06 | ||
|
|
09239cf865 | ||
|
|
b2e26ea92e | ||
|
|
d2f1d498b6 | ||
|
|
3eb72137f5 | ||
|
|
0f5d131dc3 | ||
|
|
82e705d16b | ||
|
|
8c6ea7fa2a | ||
|
|
a358795838 | ||
|
|
af699c463c | ||
|
|
3b60eb9365 | ||
|
|
e74c7366a8 | ||
|
|
792a6c37af | ||
|
|
9964f2f2dd | ||
|
|
a8ac2f9739 | ||
|
|
3c464f0669 | ||
|
|
69291cf8fc | ||
|
|
25e7fcbf3c | ||
|
|
ca417bb8db | ||
|
|
c9242fc497 | ||
|
|
46a76f58b4 | ||
|
|
4d3f1315ac | ||
|
|
27b438c248 | ||
|
|
ff93f04f95 | ||
|
|
d619e79c6e | ||
|
|
d54322c61e | ||
|
|
ca7bae5400 | ||
|
|
569522dc78 | ||
|
|
ac6dd1e640 | ||
|
|
582f55fb25 | ||
|
|
bd85be8b38 | ||
|
|
8167512b78 | ||
|
|
c09cb482e8 | ||
|
|
e87c011e87 | ||
|
|
c1db362436 | ||
|
|
b1533b93c7 | ||
|
|
5e302a3d2d | ||
|
|
c9e7c891d4 | ||
|
|
fedce40734 | ||
|
|
b795708e67 | ||
|
|
d17ad7fc35 | ||
|
|
11e86aa43b | ||
|
|
1cf91d8c37 | ||
|
|
226647486d | ||
|
|
d894c54d25 | ||
|
|
31ccc15142 | ||
|
|
cd08f49318 | ||
|
|
076c139375 | ||
|
|
eca605b07f | ||
|
|
f30b31538d | ||
|
|
f6ffcf1769 | ||
|
|
431028d5df | ||
|
|
2b20a3b1cf | ||
|
|
a8046ab9c3 | ||
|
|
b4b6d84030 | ||
|
|
1e1c51d140 | ||
|
|
333b2c6239 | ||
|
|
41161be42a | ||
|
|
24cdad1b75 | ||
|
|
44325f5a64 | ||
|
|
86f615d840 | ||
|
|
c42709e554 | ||
|
|
b0794599f9 | ||
|
|
659889d0d0 | ||
|
|
34ce813a2d |
@@ -1,3 +0,0 @@
|
||||
/bin
|
||||
/lib
|
||||
/build
|
||||
@@ -481,6 +481,7 @@ nicknames mjgillich mgillich
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Howard, Doug
|
||||
nicknames dhoward
|
||||
SURVICE Engineering, Inc.
|
||||
2006 April
|
||||
|
||||
@@ -536,7 +537,7 @@ nicknames homovulgaris, madant
|
||||
Open Source (GSoC)
|
||||
|
||||
Saunders, Benjamin
|
||||
nicknames Ralith
|
||||
nicknames Ralith, ralith
|
||||
2008 July
|
||||
Open Source
|
||||
|
||||
@@ -576,6 +577,10 @@ Jain, Sachin
|
||||
2011 April
|
||||
Open Source
|
||||
|
||||
Gerstner, Nick
|
||||
2011 May
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Easterbrook, Zach
|
||||
nicknames lainiwakurax
|
||||
2011 July
|
||||
@@ -706,12 +711,12 @@ nicknames avneetkhalsa
|
||||
Open Source (GSoC)
|
||||
|
||||
Daga, Mohit
|
||||
nicknames zero_level
|
||||
nicknames zero_level, mohitdaga
|
||||
2013 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Kamga, Isaac
|
||||
nicknames Izak
|
||||
nicknames Izak, iiizzzaaakkk
|
||||
2013 July
|
||||
Open Source (GSoC)
|
||||
|
||||
@@ -740,6 +745,7 @@ Schulte, Johannes
|
||||
Open Source (GCI)
|
||||
|
||||
Amidon, Peter
|
||||
nicknames peter-sa, Andromeda Galaxy
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
@@ -945,7 +951,7 @@ Thomas, Balbir
|
||||
Open Source
|
||||
|
||||
Remenak, Daniel T.
|
||||
nicknames DTRemenak, Erroneous
|
||||
nicknames DTRemenak, Erroneous, dtremenak
|
||||
2005 July
|
||||
California Institute of Technology
|
||||
Open Source
|
||||
|
||||
@@ -77,7 +77,7 @@ and with @DEPRECATED in source code comments. Where users are not
|
||||
adversely affected, a run-time DEPRECATION statement may be printed.
|
||||
|
||||
Whenever published functionality is finally removed, move its entry
|
||||
from the DEPRECATED section below to the OBSOLETE section for the
|
||||
from the DEPRECATED section below to the REMOVED section for the
|
||||
version in which it was removed. Make sure the entry retains a
|
||||
reference to the version in which the item was marked as deprecated.
|
||||
|
||||
@@ -112,32 +112,80 @@ calls that can be updated must be updated at that time.
|
||||
The items listed below are interfaces that are deprecated. They are
|
||||
categorized by the release in which the change was made. If the
|
||||
change involved a removal of a command or function, both the original
|
||||
and new names should be listed for reference.
|
||||
and new names should be listed for reference. If an item is marked
|
||||
with a "'" (single quote), that means it was not documented and may be
|
||||
removed at any time.
|
||||
|
||||
|
||||
7.26
|
||||
----
|
||||
ray tracing tools
|
||||
lgt : functionally replaced by nirt
|
||||
rtcell', rtfrac', rtpp, rtrad', rtrange, rtray, rtregis, rtsil'
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
converter tools
|
||||
cy-g, euclid-g, euclid_format', euclid_unformat', g-euclid,
|
||||
g-euclid1', g-tankill, intaval-g.py, viewpoint-g : obsolete formats
|
||||
plot3-X, plot3-hpgl, plot3-tek : obsolete interface, see overlay command
|
||||
plot3debug, xyz-plot3 : see plot3-asc,asc-plot3
|
||||
bot-bldxf', bot_shell-vtk, g-nmg, nmg-bot, nmg-rib, nmg-sgp',
|
||||
poly-bot, rt_bot_faces, : primitive-specific converters
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
image tools
|
||||
cmap-fb, fb-cmap, fbcmrot : colormap support obsolete
|
||||
fbed, cell-fb : outside scope
|
||||
fbscanplot, polar-fb, pp-fb, bw-imp, pixinfo.sh : obsolete
|
||||
png_info : incorporating into icv
|
||||
pixpaste : outside scope, license
|
||||
alias-pix' : incorporating into icv
|
||||
asc2pix' : incorporating into icv
|
||||
pix-yuv', yuv-pix' : obsolete non-standard format
|
||||
texturescale : obsolete implementation
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
video & animation tools
|
||||
anim_*', fbanim, chan_add', chan_mult, chan_permute,
|
||||
pixflip-fb' : outside scope
|
||||
pixfields', pixfieldsep' : outside scope
|
||||
orbit.sh, rtwalk, scriptsort, script-tab', tabinterp, tabsup,
|
||||
azel, bary
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
signal analysis tools
|
||||
a-d', d-a', bw-a', i-a', u-a' : incorporating into cv
|
||||
d-a', d-bw', d-f', d-i', d-u' : incorporating into cv
|
||||
a-d', bw-d', c-d', f-d', i-d', u-d' : incorporating into cv
|
||||
f-d', f-i', d-f', i-f', u-f', u-bw' : incorporating into cv
|
||||
d2-c', double-asc' : incorporating into cv
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
infrared & shapefactor tools
|
||||
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
|
||||
ssamp-bw, ssampview', ssampview.tcl'
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
misc tools
|
||||
fix_polysolids' : obsolete primitive
|
||||
remapid : superseded by reid+remat
|
||||
buffer : unnecesary network/stream buffering tool
|
||||
hex : superseded by hexdump
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
include/bu/ptbl.h
|
||||
BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, BU_PTBL_END
|
||||
Removed as private implementation detail [deprecated 7.26
|
||||
include/bu/hash.h
|
||||
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value, bu_get_hash_key,
|
||||
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
|
||||
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
|
||||
bu_hash_tbl will be made private.
|
||||
Replaced with new API [deprecated 7.26]
|
||||
rtrad, bot_shell-vtk, rt_bot_faces, g-nmg, nmg-bot, nmg-rib, nmg-sgp, plot3-hpgl,
|
||||
plot3-tk, plot3-X, fix_polysolids, terrain, pixinfo.sh, png_info, dbcp, buffer,
|
||||
hex, bw-d, c-d, d-bw, d-f, d-i, d-u, f-d, f-i, i-d, -if, u-bw, u-d, u-f
|
||||
remove obsolete commands [deprecated 7.26]
|
||||
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
|
||||
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
|
||||
bu_hash_tbl will be made private.
|
||||
Replaced with new API [deprecated 7.26]
|
||||
include/bu/cmd.h
|
||||
remove struct bu_cmdhist and struct bu_cmdhist_obj [deprecated 7.26]
|
||||
BU_CMDHIST_NULL, BU_CMDHIST_OBJ_NULL, bu_cmdhist_histor, bu_cmdhist_add,
|
||||
bu_cmdhist_curr, bu_cmdhist_nest, bu_cmdhist_prev [deprecated 7.26]
|
||||
fb-rle, rle-fb, bw-rle, pix-rle, rle-pix
|
||||
All tools focused specifically on the RLE image format. [deprecated 7.26]
|
||||
All tools focused specifically on the RLE image format. [deprecated 7.26]
|
||||
nirt
|
||||
-T - use LIBRT_BOT_MINTIE environment variable instead [deprecated 7.26]
|
||||
all global variables
|
||||
global variables are no longer considered published public API [deprecated 7.26]
|
||||
bn_mat_identity -> MAT_INIT_IDN or MAT_IDN() or NULL
|
||||
bn_mat_identity -> MAT_INIT_IDN or MAT_IDN() or NULL
|
||||
include/bn.h
|
||||
tp_setup, no longer needs to be public API [deprecated 7.26]
|
||||
include/raytrace.h
|
||||
@@ -147,31 +195,48 @@ include/raytrace.h
|
||||
tcl_list_to_fastf_array *_tcl_*, removal of all tcl-specific
|
||||
API functions [deprecated 7.26]
|
||||
db_regexp_match_all() -> db_ls() [deprecated 7.26]
|
||||
include/rt/solid.h
|
||||
shouldn't be public API - this level of detail belongs inside the display
|
||||
manager [deprecated 7.26]
|
||||
include/ged/defines.h
|
||||
remove struct ged_drawable - shouldn't be public API [deprecated 7.26]
|
||||
remove freesolid from struct ged - exposes struct solid [deprecated 7.26]
|
||||
include/ged/view.h
|
||||
remove current forms of dl_erasePathFromDisplay and invent_solid - they
|
||||
expose the struct solid type [deprecated 7.26]
|
||||
include/tclcad.h
|
||||
tclcad_bn_mat_print tclcad_rt_parse_ray tclcad_rt_pr_cutter
|
||||
tclcad_rt_pr_hit tclcad_rt_rt tclcad_rt_import_from_path, removal of all
|
||||
tcl-specific API functions [deprecated 7.26]
|
||||
tcl-specific API functions [deprecated 7.26]
|
||||
pixcut, pixpaste
|
||||
copyright cleanup [deprecated 7.26]
|
||||
copyright cleanup [deprecated 7.26]
|
||||
librt, fast4-g
|
||||
removal of CLINE entity support [deprecated 7.26]
|
||||
kill, killtree, killall, killrefs
|
||||
replaced with rm command [deprecated 7.26]
|
||||
rm comb obj1 obj2 comb1 ... -> new behavior: remove objects and empty combs from .g
|
||||
original functionality replaced with rm comb/obj* comb/comb1 ... syntax [deprecated 7.26]
|
||||
mged
|
||||
kill, killtree, killall, killrefs - replaced with rm command [deprecated 7.26]
|
||||
|
||||
rm comb obj1 obj2 comb1 ... -> new behavior: remove objects and empty combs from .g
|
||||
original functionality replaced with rm comb/obj* comb/comb1 ... syntax [deprecated 7.26]
|
||||
|
||||
expand -> replaced by search -name <pattern> (previous docs indicating matching of
|
||||
expand was regex were wrong - uses bu_fnmatch.) [deprecated 7.26]
|
||||
|
||||
pathlist, paths -> replaced by search [deprecated 7.26]
|
||||
burst
|
||||
remove termlib-based interactive menu interface [deprecated 7.26]
|
||||
|
||||
7.24
|
||||
----
|
||||
fbed, pp-fb
|
||||
removes termcap use, no known users [deprecated 7.24]
|
||||
removes termcap use, no known users [deprecated 7.24]
|
||||
include/raytrace librt
|
||||
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
|
||||
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
|
||||
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
|
||||
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
|
||||
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
|
||||
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
|
||||
src/irprep
|
||||
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
|
||||
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
|
||||
include/raytrace.h librt
|
||||
RT_DBHASH and RT_DBNHASH [deprecated 7.24]
|
||||
RT_DBHASH and RT_DBNHASH [deprecated 7.24]
|
||||
|
||||
7.22
|
||||
----
|
||||
@@ -180,9 +245,9 @@ include/raytrace.h librt
|
||||
RT_GET_TREE -> BU_GET [deprecation 7.22]
|
||||
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
|
||||
include/bu.h
|
||||
bu_parse_mm() [deprecated 7.22]
|
||||
bu_parse_mm() [deprecated 7.22]
|
||||
librtserver
|
||||
becoming stand-alone project, removes optional java dependency [deprecated 7.22]
|
||||
becoming stand-alone project, removes optional java dependency [deprecated 7.22]
|
||||
mged
|
||||
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
|
||||
|
||||
@@ -222,8 +287,6 @@ db.h
|
||||
rt_fastf_float() -> ntohf() [deprecated 7.18]
|
||||
rt_mat_dbmat() -> htonf() [deprecated 7.18]
|
||||
rt_dbmat_mat() -> ntohf() [deprecated 7.18]
|
||||
dbcp
|
||||
dbcp -> dd [deprecated 7.18]
|
||||
mged
|
||||
?(*) -> ? -(*) [deprecated 7.18]
|
||||
apropos(*) -> apropos -(*) [deprecated 7.18]
|
||||
@@ -292,27 +355,42 @@ include/raytrace.h
|
||||
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
|
||||
|
||||
|
||||
************
|
||||
* OBSOLETE *
|
||||
************
|
||||
***********
|
||||
* REMOVED *
|
||||
***********
|
||||
|
||||
Below are the interfaces that have followed deprecation policy and are
|
||||
now no longer a part of BRL-CAD.
|
||||
Below are the interfaces that have followed deprecation policy or were
|
||||
deemed minimally impacting and, regardless, are now no longer a part
|
||||
of BRL-CAD.
|
||||
|
||||
7.26.0
|
||||
------
|
||||
dbcp
|
||||
dbcp -> dd [deprecated 7.18]
|
||||
pov (mged)
|
||||
removed, undocumented command with many alternatives [minimally impacting]
|
||||
polybinout (mged)
|
||||
removed, undocumented command, use plot [minimally impacting]
|
||||
pl (mged)
|
||||
removed, use plot [minimally impacting]
|
||||
conf.h
|
||||
removed - replaced with common.h [deprecated 7.0]
|
||||
libbu, libbn
|
||||
no longer utilize or require Tcl [7.26 architecture change]
|
||||
UtahRLE image tools
|
||||
no longer installed by default with BRL-CAD - not used directly by
|
||||
BRL-CAD tools [minimally impacting]
|
||||
Tcl in libbu and libbn
|
||||
no longer utilize or require Tcl [dependency eliminated]
|
||||
Tcl/Tk man pages
|
||||
no longer installed by default with BRL-CAD when the bundled Tcl/Tk is used
|
||||
to build [minimally impacting]
|
||||
include/dg.h
|
||||
implementation detail no longer being exposed, use libged [deprecated 7.22]
|
||||
implementation detail no longer being exposed, use libged [deprecated 7.22]
|
||||
autogen.sh && configure
|
||||
GNU Autotools build system -> CMake build system [deprecated 7.20]
|
||||
Dunn camera and Canon printer tools
|
||||
dunncolor [ deprecated 7.16 ]
|
||||
dunnsnap [ deprecated 7.16 ]
|
||||
canonize [ deprecated 7.16 ]
|
||||
dunncolor [deprecated 7.16]
|
||||
dunnsnap [deprecated 7.16]
|
||||
canonize [deprecated 7.16]
|
||||
genptr_t/GENPTR_NULL
|
||||
genptr_t -> void* [deprecated 7.16]
|
||||
include/bu.h
|
||||
@@ -344,7 +422,7 @@ mged
|
||||
-n option -> -c option [deprecated 7.14]
|
||||
per_line [deprecated 7.14]
|
||||
SGI-specific tools
|
||||
pl-sgi -> pl-fb [ deprecated 7.16 ]
|
||||
pl-sgi -> pl-fb [deprecated 7.16]
|
||||
src/gtools
|
||||
g_[toolname] -> g[toolname] [deprecated 7.14]
|
||||
src/librt/cmd.c
|
||||
@@ -361,6 +439,9 @@ pixread.sh
|
||||
obsolete hardware [deprecated 7.16]
|
||||
sgisnap.sh
|
||||
obsolete hardware [deprecated 7.16]
|
||||
librtserver and Java Native Interface (JNI) bindings
|
||||
removed, unused and undocumented, modern approach would be to
|
||||
use a tool such as swig to generate bindings [minimally impacting]
|
||||
|
||||
7.24.2
|
||||
------
|
||||
@@ -994,23 +1075,23 @@ s/bu_count_path(.*)\);/bu_dir_list\1, NULL);/g
|
||||
made bu_dir_list() return the number of entries [7.21]
|
||||
s/bu_strcmpm\((.*),([^,]*)\)/bu_strcmp(\1)/g
|
||||
no use for label parameter, convert to bu_strcmp() [7.21]
|
||||
bu_set_realtime() [deprecated 7.22]
|
||||
bu_set_realtime() [deprecated 7.22]
|
||||
|
||||
7.24
|
||||
----
|
||||
s/bu_set_realtime\([[:space:]]\);//g
|
||||
didn't do anything [7.23]
|
||||
didn't do anything [7.23]
|
||||
s/.*bu_cpulimit_[sg]et\([[:space:]]\);//g
|
||||
didn't do anything [7.23]
|
||||
didn't do anything [7.23]
|
||||
s/rt_g\./RTG\./g
|
||||
renamed rt_g global to RTG so it doesn't match the struct name [7.24]
|
||||
renamed rt_g global to RTG so it doesn't match the struct name [7.24]
|
||||
s/rt_functab\[/OBJ\[/g
|
||||
renamed rt_functab global to OBJ so it doesn't match the struct name [7.24]
|
||||
renamed rt_functab global to OBJ so it doesn't match the struct name [7.24]
|
||||
s/redraw_vlist/draw/g
|
||||
removed redraw_vlist mged command, just call draw or refresh [7.24]
|
||||
removed redraw_vlist mged command, just call draw or refresh [7.24]
|
||||
s/RT_BADNUM/INVALID/g
|
||||
s/RT_BADVAL/VINVALID/g
|
||||
moved RT_BADNUM and RT_BADVEC to vmath.h as INVALID and VINVALID [7.24]
|
||||
moved RT_BADNUM and RT_BADVEC to vmath.h as INVALID and VINVALID [7.24]
|
||||
s/bu_create_hash_tbl/bu_hash_tbl_create/g
|
||||
s/bu_find_hash_entry/bu_hash_tbl_find/g
|
||||
s/bu_hash_add_entry/bu_hash_tbl_add/g
|
||||
@@ -1019,7 +1100,7 @@ s/bu_hash_tbl_pr/bu_hash_tbl_print/g
|
||||
s/dm_applicationfocus\([[:space:]]*\);//g
|
||||
only useful in older os x versions, users can now do the same thing via XQuartz preferences [7.24]
|
||||
s/bu_vls_trunc2/bu_vls_trunc/g
|
||||
removed duplicitous function in favor of more general version [7.24]
|
||||
removed duplicitous function in favor of more general version [7.24]
|
||||
s/bn_pi/M_PI/g
|
||||
s/bn_twopi/M_2PI/g
|
||||
s/bn_halfpi/M_PI_2/g
|
||||
@@ -1031,34 +1112,34 @@ s/bn_inv255/(1.0 \/ 255.0)/g
|
||||
s/bn_degtorad/DEG2RAD/g
|
||||
s/bn_radtodeg/RAD2DEG/g
|
||||
s/bn_sin_scale/(BN_SINTABSIZE \/ M_2PI)/g
|
||||
eliminated a number of libbn globals in favor of existing constants [7.24]
|
||||
eliminated a number of libbn globals in favor of existing constants [7.24]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])vfont-if\.h/\1bu\/vfont.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])cmd\.h/\1bu\/cmd.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])hist\.h/\1bu\/hist.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])magic\.h/\1bu\/magic.h/g
|
||||
library-specific public headers moved into a subdir [7.24]
|
||||
library-specific public headers moved into a subdir [7.24]
|
||||
s/([^_])([nh]to[hn][fd])/\1bu_cv_\2/g
|
||||
ntohf, ntohd, htonf, htond renamed with bu_cv_ prefix [7.24]
|
||||
ntohf, ntohd, htonf, htond renamed with bu_cv_ prefix [7.24]
|
||||
|
||||
7.26
|
||||
----
|
||||
s/bu_kill_parallel\([[:space:]]*\);//g
|
||||
didn't do anything unless called from forked process, use bu_terminate() [7.25]
|
||||
didn't do anything unless called from forked process, use bu_terminate() [7.25]
|
||||
s/bu_jmpbuf/bu_jmpbuf[0]/g
|
||||
s/bu_setjmp_valid/bu_setjmp_valid[0]/g
|
||||
can replace 0 with bu_parallel_id() to get thread-safe jumping [7.25]
|
||||
can replace 0 with bu_parallel_id() to get thread-safe jumping [7.25]
|
||||
s/bu_semaphore_reinit/bu_semaphore_init/g
|
||||
no longer need to manually reinitialize (or initialize) semaphores [7.25]
|
||||
no longer need to manually reinitialize (or initialize) semaphores [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])fbio\.h/\1bu\/fb.h/g
|
||||
fbio.h is now part of fb.h [7.25]
|
||||
fbio.h is now part of fb.h [7.25]
|
||||
s/UNION/'u'/g
|
||||
s/SUBTRACT/'-'/g
|
||||
s/INTERSECT/'+'/g
|
||||
old db.h db4 preprocessor symbols removed, use char or DB_OP_* [7.25]
|
||||
old db.h db4 preprocessor symbols removed, use char or DB_OP_* [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bselect\.h/\1bsocket.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bin\.h/\1bnetwork.h/g
|
||||
rename bselect.h and bin.h public headers to be more declaratively named [7.25]
|
||||
s/db5_enc_len[(.*)]/DB5_ENC_LEN(\1)/g
|
||||
rename bselect.h and bin.h public headers to be more declaratively named [7.25]
|
||||
s/db5_enc_len\[(.*)\]/DB5_ENC_LEN(\1)/g
|
||||
replaced db5_enc_len[] global array with DB5_ENC_LEN() macro [7.25]
|
||||
s/db_normalize/bu_normalize/g
|
||||
move the path normalization routine to libbu [7.25]
|
||||
@@ -1107,13 +1188,25 @@ s/rt_ck_vlist/bn_ck_vlist/g
|
||||
s/rt_vlist_export/bn_vlist_export/g
|
||||
s/rt_vlblock_free/bn_vlblock_free/g
|
||||
s/rt_vlblock_find/bn_vlblock_find/g
|
||||
move vlist functions from librt to libbn [7.25]
|
||||
move vlist functions from librt to libbn [7.25]
|
||||
s/([[:space:],\(,"])bn_tcl/\1tclcad_bn/g
|
||||
s/([[:space:],\(,"])rt_tcl_rt/\1tclcad_rt/g
|
||||
s/([[:space:],\(,"])rt_tcl/\1tclcad_rt/g
|
||||
tcl library registrations moved to libtclcad [7.25]
|
||||
s/rt_grow_boolstack/rt_bool_growstack/g
|
||||
rename with consistent prefixes [7.25]
|
||||
rename with consistent prefixes [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])obj\.h/\1dm\/bview.h/g
|
||||
s/GED_VIEW_OBJ_NULL/VIEW_OBJ_NULL/g
|
||||
move view_obj to dm/bview.h [7.25]
|
||||
s/BU_PTBL_CLEAR_I\((.*)\)/BU_PTBL_SET(\1, (long*)0)/g
|
||||
replace BU_PTBL_CLEAR_I into the BU_PTBL_SET command [7.25]
|
||||
s/BU_PTBL_END\(([^\)]*)\)/(\1)->end/g
|
||||
replace BU_PTBL_END with direct ptbl peek or BU_PTBL_LEN [7.25]
|
||||
s/bu_free_argv/bu_argv_free/g
|
||||
s/bu_dup_argv/bu_argv_dup/g
|
||||
s/bu_dupinsert_argv/bu_argv_dupinsert/g
|
||||
bu_*_argv -> bu_argv_* [7.25]
|
||||
s/bu_dir_list/bu_file_list/g
|
||||
bu_dir_list -> bu_file_list [7.25]
|
||||
s/BU_FNMATCH_NOMATCH/1/g
|
||||
don't use an explicit define for the non-matching case [7.25]
|
||||
|
||||
+36
-16
@@ -525,12 +525,12 @@ if(NOT BRLCAD_IS_SUBBUILD)
|
||||
|
||||
add_custom_target(unit
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "\"**********************************************************************\""
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "NOTE: The \"unit\" a.k.a. \"BRL-CAD Unit Testing\" target runs the"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo " subset of BRL-CAD's API unit tests that are expected to work (i.e.,"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo " tests not currently under development). All dependencies required"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "NOTE: The \\\"unit\\\" a.k.a. \\\"BRL-CAD Unit Testing\\\" target runs the"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo " subset of BRL-CAD\\'s API unit tests that are expected to work \\(i.e.,"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo " tests not currently under development\\). All dependencies required"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo " by the tests are compiled automatically."
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "\"**********************************************************************\""
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} -C $CONFIG -LE \"Regression|NOT_WORKING\" -E \"^regress-|NOTE\" ${JFLAG}
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} -C ${CONFIG} -LE \"Regression|NOT_WORKING\" -E \"^regress-|NOTE\" ${JFLAG}
|
||||
)
|
||||
|
||||
set_target_properties(unit PROPERTIES FOLDER "BRL-CAD Validation Testing")
|
||||
@@ -1130,10 +1130,30 @@ if(BRLCAD_ENABLE_OPENCL)
|
||||
endif(NOT OPENCL_FOUND)
|
||||
endif(BRLCAD_ENABLE_OPENCL)
|
||||
|
||||
# Enable features requiring Embree
|
||||
option(BRLCAD_ENABLE_EMBREE "Enable features requiring Embree raytracer" ON)
|
||||
if(BRLCAD_ENABLE_EMBREE)
|
||||
find_package(EMBREE)
|
||||
if(NOT EMBREE_FOUND)
|
||||
message("Embree support enablement requested, but Embree is not found - disabling")
|
||||
set(BRLCAD_ENABLE_EMBREE OFF)
|
||||
endif(NOT EMBREE_FOUND)
|
||||
endif(BRLCAD_ENABLE_EMBREE)
|
||||
|
||||
# Enable STEP
|
||||
option(BRLCAD_ENABLE_STEP "Enable STEP" ON)
|
||||
|
||||
# Enable features requiring Screened Poisson Surface Reconstruction
|
||||
option(BRLCAD_ENABLE_SPR "Enable features requiring Screened Poisson Surface Reconstruction" OFF)
|
||||
mark_as_advanced(BRLCAD_ENABLE_SPR)
|
||||
|
||||
# Enable experimental support for binary attributes
|
||||
option(BRLCAD_ENABLE_BINARY_ATTRIBUTES "Enable support for binary attributes" OFF)
|
||||
mark_as_advanced(BRLCAD_ENABLE_BINARY_ATTRIBUTES)
|
||||
if(BRLCAD_ENABLE_BINARY_ATTRIBUTES)
|
||||
CONFIG_H_APPEND(BRLCAD "#define USE_BINARY_ATTRIBUTES 1\n")
|
||||
endif(BRLCAD_ENABLE_BINARY_ATTRIBUTES)
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# The following are fine-grained options for enabling/disabling compiler
|
||||
# and source code definition settings. Typically these are set to
|
||||
@@ -1522,7 +1542,7 @@ CHECK_CXX_FLAG(ftemplate-depth-128)
|
||||
# may still output SSE instructions (e.g., for cross-compiling).
|
||||
# CHECK_C_FLAG(msse)
|
||||
# CHECK_C_FLAG(msse2)
|
||||
CHECK_C_FLAG(msse3 BUILD_TYPES Debug)
|
||||
# CHECK_C_FLAG(msse3)
|
||||
|
||||
# Check for c90 support with gnu extensions if we're not building for
|
||||
# a release so we get more broad portability testing. Since the
|
||||
@@ -1531,8 +1551,7 @@ CHECK_C_FLAG(msse3 BUILD_TYPES Debug)
|
||||
# a strictly standard compliant build, use the c** options instead
|
||||
# of the gnu variations
|
||||
if(ENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE)
|
||||
CHECK_C_FLAG("std=c99" BUILD_TYPES Debug)
|
||||
CHECK_C_FLAG("std=c99" BUILD_TYPES Release VARS C99_FLAG)
|
||||
CHECK_C_FLAG("std=c99")
|
||||
# we need to define some things as "empty" to avoid false positives
|
||||
# for bu_* functions using varargs and print specifiers
|
||||
CHECK_C_FLAG("D_BU_ATTR_PRINTF12=''")
|
||||
@@ -1541,8 +1560,7 @@ if(ENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE)
|
||||
# a hack to temp work around signal() handling in interrupt.c
|
||||
CHECK_C_FLAG("DC99_POSIX_USE_BSD")
|
||||
#=== C++
|
||||
CHECK_CXX_FLAG("std=c++03" BUILD_TYPES Debug)
|
||||
CHECK_CXX_FLAG("std=c++03" BUILD_TYPES Release VARS CXX03_FLAG)
|
||||
CHECK_CXX_FLAG("std=c++03")
|
||||
# for bu_* functions using varargs and print specifiers
|
||||
CHECK_CXX_FLAG("D_BU_ATTR_PRINTF12=''")
|
||||
CHECK_CXX_FLAG("D_BU_ATTR_PRINTF23=''")
|
||||
@@ -1550,15 +1568,17 @@ if(ENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE)
|
||||
# a hack to temp work around signal() handling in interrupt.c
|
||||
CHECK_CXX_FLAG("DC99_POSIX_USE_BSD")
|
||||
else()
|
||||
CHECK_C_FLAG("std=gnu89" BUILD_TYPES Debug)
|
||||
CHECK_C_FLAG("std=gnu99" BUILD_TYPES Release VARS C99_FLAG)
|
||||
CHECK_CXX_FLAG("std=gnu++98" BUILD_TYPES Debug)
|
||||
CHECK_CXX_FLAG("std=gnu++98" BUILD_TYPES Release VARS CXX03_FLAG)
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
CHECK_C_FLAG("std=gnu99")
|
||||
else("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
CHECK_C_FLAG("std=gnu89")
|
||||
endif("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
CHECK_CXX_FLAG("std=gnu++98")
|
||||
endif()
|
||||
# TODO - should be using this with MSVC, but it breaks the BUILD_SLEEP
|
||||
# try_compile below with errors that appear to be coming from Windows
|
||||
# headers??
|
||||
# CHECK_C_FLAG("Za" BUILD_TYPES ALL)
|
||||
# CHECK_C_FLAG("Za")
|
||||
|
||||
# What POSIX do we want to target, initially? See
|
||||
# http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
|
||||
@@ -2586,9 +2606,9 @@ endif(NOT BRLCAD_COMPILE_HOST)
|
||||
if(NOT BRLCAD_COMPILE_USER)
|
||||
set(BRLCAD_COMPILE_USER "\"user_unknown\"")
|
||||
endif(NOT BRLCAD_COMPILE_USER)
|
||||
if(NOT BRLCAD_COMPILE_COUNT)
|
||||
if("${BRLCAD_COMPILE_COUNT}" STREQUAL "")
|
||||
set(BRLCAD_COMPILE_COUNT -1)
|
||||
endif(NOT BRLCAD_COMPILE_COUNT)
|
||||
endif("${BRLCAD_COMPILE_COUNT}" STREQUAL "")
|
||||
|
||||
CONFIG_H_APPEND(BRLCAD "#define BRLCAD_COMPILE_DATE ${BRLCAD_COMPILE_DATE}\n")
|
||||
CONFIG_H_APPEND(BRLCAD "#define BRLCAD_COMPILE_HOST ${BRLCAD_COMPILE_HOST}\n")
|
||||
|
||||
@@ -247,12 +247,22 @@ for memory allocation, threading, string handling, argument support,
|
||||
linked lists, and more.
|
||||
Depends on: (threading) (malloc)
|
||||
|
||||
libbg: The BRL-CAD Geometry library implements generic algorithms
|
||||
widely used in computational geometry, such as convex hull and
|
||||
triangle/triangle intersection calculations.
|
||||
Depends on: libbn libbu
|
||||
|
||||
libbn: The BRL-CAD Numerics library provides many floating-point math
|
||||
manipulation routines for vector and matrix math, a polynomial
|
||||
equation solver, noise functions, random number generators, complex
|
||||
number support, and more as well.
|
||||
Depends on: libbu libm
|
||||
|
||||
libbrep: The BRL-CAD Boundary Representation library implements
|
||||
routines needed for the manipulation and analysis of Non-Uniform
|
||||
Rational BSpline based boundary representations.
|
||||
Depends on: libbg libbn libbu OpenNURBS
|
||||
|
||||
libcursor: The cursor library is a lightweight cursor manipulation
|
||||
library similar to curses but with less overhead.
|
||||
Depends on: termlib
|
||||
@@ -294,14 +304,6 @@ messages across stream connections. The library supports a
|
||||
client-server communication model.
|
||||
Depends on: libbu
|
||||
|
||||
librtserver: The ray-trace server library is a thin interface over
|
||||
librt that simplifies the process of applying individual ray
|
||||
intersection tests against a given set of geometry. The library
|
||||
supports communication with a BRL-CAD geometry repository and
|
||||
multithreaded ray dispatch.
|
||||
Depends on: librt libbn libbu libtcl
|
||||
Includes dependent libraries as part of this library
|
||||
|
||||
libtclcad: The Tcl-CAD library is a thin interface that assists in the
|
||||
binding of an image to a Tk graphics context.
|
||||
Depends on: libbn libbu libfb libtcl libtk
|
||||
@@ -422,14 +424,15 @@ compiler conformance with the ANSI C standard (c89).
|
||||
There is currently no C++ interface to the core BRL-CAD libraries.
|
||||
There are a few tools and enhancements to libraries that are
|
||||
implemented in C++ (the new BREP object type in librt, for example),
|
||||
but there are presently no C++ bindings available beyond experimental
|
||||
developments. While C++ as an implementation language of new tools
|
||||
and new library interfaces is not prohibited, the mixing of C++
|
||||
semantics and C++ code (including simple // style comments) in the
|
||||
existing C files is not allowed. As new interfaces are developed, new
|
||||
contributors become involved, and C++ code integration becomes more
|
||||
prevalent, the contributor guidelines will become reinforced with more
|
||||
details.
|
||||
and C++ is used underneath quite a number of libraries, but there is
|
||||
presently no public C++ API in use outside of OpenNURBS.
|
||||
|
||||
While C++ as an implementation language of new tools and new library
|
||||
interfaces is not prohibited, the mixing of C++ semantics and C++ code
|
||||
(including simple // style comments) in the existing C files is not
|
||||
allowed. As new interfaces are developed, new contributors become
|
||||
involved, and C++ code integration becomes more prevalent, the
|
||||
contributor guidelines will become reinforced with more details.
|
||||
|
||||
|
||||
CODING STYLE & STANDARDS
|
||||
@@ -872,6 +875,10 @@ Note that changes to publicly documented tools and library APIs must
|
||||
adhere to BRL-CAD's change policy. This means changes to any tests
|
||||
may require thoughtful deployment. See the CHANGES file for details.
|
||||
|
||||
These tests are run nightly on BRL-CAD's server to catch problems
|
||||
quickly - developers should be aware of the status of BRL-CAD's tests
|
||||
as seen at http://brlcad.org/CDash
|
||||
|
||||
To add new regression tests, look at regress/weight.sh for an
|
||||
integration test example and src/libbu/tests/bu_vls_vprintf.c for an
|
||||
API unit test example. See their corresponding CMakeLists.txt build
|
||||
@@ -1268,7 +1275,7 @@ Release steps are as follows:
|
||||
|
||||
# Manually check rt, mged, and archer.
|
||||
bin/rt # should report usage with correct library versions
|
||||
bin/mged -c test.g "make sph sph ; rt" # pops up a sphere
|
||||
bin/mged -c test.g "make sph sph ; draw sph ; rt" # pops up a sphere
|
||||
bin/mged # displays gui, run: opendb test.g ; draw sph ; rt
|
||||
bin/archer # displays gui, run: opendb test.g ; draw sph ; rt
|
||||
|
||||
@@ -1466,10 +1473,6 @@ audience. Always notify the following when a release is made:
|
||||
BRL-CAD SourceForge NEWS (authorized can submit)
|
||||
https://sourceforge.net/p/brlcad/news/new
|
||||
|
||||
Freshmeat (anyone can submit update)
|
||||
http://freecode.com/projects/BRL-CAD/
|
||||
short summary without news details (sentence format)
|
||||
|
||||
BRL-CAD on Facebook (authorized can submit)
|
||||
http://www.facebook.com/pages/BRL-CAD/387112738872
|
||||
short summary without news details (sentence format)
|
||||
|
||||
@@ -9,13 +9,61 @@ first and are grouped by release. Each release also includes optional
|
||||
descriptive text that emphasizes or further describes significant
|
||||
changes made. See document footer for additional details.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2014-XX-XX Release 7.26.XX ---
|
||||
--- 2016-07-XX Release 7.26.2 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* added -M draw cmd option to skip subtraction solids - Cliff Yapp
|
||||
* added -L draw cmd option to draw bboxes for large bots - Cliff Yapp
|
||||
* upgraded freetype to version 2.6.5 - Cliff Yapp
|
||||
* upgraded zlib to version 1.2.8 - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2016-06-XX Release 7.26.0 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This major release update of BRL-CAD culminates several years of
|
||||
development efforts to provide robust boundary representation (BREP)
|
||||
NURBS import and ray tracing support. Our NURBS capability gets us a
|
||||
step closer to full hybrid representation modeling, supporting
|
||||
seamless transitioning and mixing of boundary representation geometry
|
||||
(e.g., NURBS or polygonal meshes) with implicit representation
|
||||
geometry (e.g., primitives with CSG).
|
||||
|
||||
* added manual page for lt comb child listing command - Cliff Yapp
|
||||
* added lt -c option for specifying separation character - Bob Parker
|
||||
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
|
||||
* improved hierarchy preservation in 3dm-g importer - Jon Engbert
|
||||
* fixed upside down 'screengrab' images on some platforms - Nick Reed
|
||||
* updated wireframe drawing to respect primitive colors - Cliff Yapp
|
||||
* updated pixdiff & pixcmp to only compare same sizes - Cliff Yapp
|
||||
* fixed running archer from read-only filesystems - Cliff Yapp
|
||||
* fixed patch-g tool and E command infinite loop bug - Sean Morrison
|
||||
* improved NMG ray tracing fault tolerance - Sean Morrison
|
||||
* added 3dm-g support for layers and names - Keith Bowman
|
||||
* fixed color/shader preservation issue with 3dm-g importer - Jon Engbert
|
||||
* added 3dm-g support for mesh objects - Jon Engbert
|
||||
* added csg implicit hierarchy conversion to brep command - Cliff Yapp
|
||||
* fixed crash in clone when told to make zero copies - Cliff Yapp
|
||||
* fixed crash in search when using -above option - Cliff Yapp
|
||||
* extended nirt to list current and available formats - Sean Morrison
|
||||
* fixed NURBS wireframe drawing crash - Cliff Yapp
|
||||
* fixed firing of single rays using the rtshot tool - Sean Morrision
|
||||
* improved rcodes command feedback in the no changes case - Cliff Yapp
|
||||
* added brlman -S option to specify man page section - Cliff Yapp
|
||||
* modified rtg3 to avoid outputting excessive LOS - Nick Gerstner
|
||||
* extended burst and rtg3 to output 5 digit ID numbers - Nick Gerstner
|
||||
* improved draw command manual page documenation - Cliff Yapp
|
||||
* added lc -m option to report multi-material/los regions - Cliff Yapp
|
||||
* added new 'icv' image conversion tool w/ pix, bw, dpix, png, ppm
|
||||
- Mohit Daga, Cliff Yapp, Sean Morrison, Erik Greenwald
|
||||
* ported 'burst' tool (batch mode only) to Windows - Cliff Yapp
|
||||
* removed mged pl command, use plot command instead - Sean Morrison
|
||||
* improved datum wireframes (yellow) and fixed arrowheads - Cliff Yapp
|
||||
* added initial manual page for 'burst' ray dispatch tool - Cliff Yapp
|
||||
* improved wireframe display list performance - Keith Bowman
|
||||
* added draw -S for simplied wireframes, no subtractions - Cliff Yapp
|
||||
* added draw -L# to draw bounding boxes for large objects - Cliff Yapp
|
||||
* added 3dm-g instance reference and definition import - Jon Engbert
|
||||
* minor rtwizard graphical user interface reorganization - Cliff Yapp
|
||||
* ported 'brlman' manual page viewer with GUI to Windows - Cliff Yapp
|
||||
* added gdiff -h help command-line option - Cliff Yapp
|
||||
@@ -24,8 +72,10 @@ changes made. See document footer for additional details.
|
||||
* improved pix-bw intensity averaging to closest integer - Cliff Yapp
|
||||
* removed pix-bw3 & bw3-pix tools, see pix-bw & bw-pix - Cliff Yapp
|
||||
* fixed pix-ppm to write out all image data - Sean Morrision
|
||||
* added libnetpbm for ppm image format support in icv - Cliff Yapp
|
||||
* added new algorithm to bot_decimate (via -f option) - Jon Engbert
|
||||
* fixed benchmark bug running from paths with spaces - Sean Morrison
|
||||
* fixed adjust command crash when working with BoTs - Daniel Roßberg
|
||||
* removed support for RLE v1 and v2 ('orle') image format - Cliff Yapp
|
||||
* fixed datum type 'in' command unit conversion bug - Cliff Yapp
|
||||
* fixed rpatch / patch-g line handling on Windows - Daniel Roßberg
|
||||
@@ -36,25 +86,36 @@ changes made. See document footer for additional details.
|
||||
- Jon Engbert, Vasco Costa
|
||||
* improved point cloud plot visualization - Sean Morrison
|
||||
* fixed program freezing bug in MGED grouper command - Bob Parker
|
||||
* added 'rhc' reporting to analyze command - Kalpit Thakkar
|
||||
* improved help option consistency across numerous tools - Carl Moore
|
||||
* added prefatory FASTGEN4 geometry export support - Jon Engbert
|
||||
* improved option parsing and output options for gencolor - Carl Moore
|
||||
* fixed saveview usage help string and running from archer - Nick Reed
|
||||
* fixed and improved killtree man page - Nick Reed
|
||||
* fixed composition bugs in pixmatte and pixmerge - Carl Moore
|
||||
* fixed definition of "light year" in unit conversions - Cliff Yapp
|
||||
* modernized documents and improved infrastructure - Hitesh Sofat
|
||||
* added mirroring support for hrt primitive objects - Isaac Kamga
|
||||
* ported the mged Overlap Tool to Windows - Sean Morrison
|
||||
* improved NURBS prep performance for UV-remapped surfaces - Nick Reed
|
||||
* fixed dbconcat -c crash when color table does not exist - Nick Reed
|
||||
* swapped meanings of search's -above/-below options - Sean Morrison
|
||||
* upgraded freetype to version 2.5.5 - Cliff Yapp
|
||||
* updated libregex to apply a fix for CVE-2015-2305 - Cliff Yapp
|
||||
* upgraded libpng to version 1.6.20 - Cliff Yapp
|
||||
* added command window option for pasting tree view paths - Nick Reed
|
||||
* improved robustness of bb command oriented box option - Peter Amidon
|
||||
* added example NURBS B-Rep geometry files from NIST - Cliff Yapp
|
||||
* removed "high resolution" options from all commands - Carl Moore
|
||||
* improved performance of archer loading large BoT models - Nick Reed
|
||||
* added evaluated shaded drawing preference mode and menu - Nick Reed
|
||||
* extensive improvements to NURBS Boolean evaluation - Nick Reed
|
||||
* added 'bot chull' for creating convex hull envelopes - Cliff Yapp
|
||||
* new manual page for the g-voxel exporter - Mandarj
|
||||
* improved performance of lc command - Peter Amidon
|
||||
* updated manual page for MGED's brep command - Peter Amidon
|
||||
* new manual page for the g-dot exporter - Shardul Chiplunkar
|
||||
* added sketch centroid support the analyze command - Peter Amidon
|
||||
* new Think. Invent. Create. splash screen for archer - Marc Tannous
|
||||
* improved pix-bw to support dual output streams - Carl Moore
|
||||
* added list option to attr command - Cliff Yapp
|
||||
@@ -65,6 +126,9 @@ changes made. See document footer for additional details.
|
||||
* gqa respects LIBRT_BOT_MINTIE environment variable - Ștefan Mirea
|
||||
* improved behavior of mged's draw command - Ștefan Mirea
|
||||
* fixed handling of extra whitespace in nirt commands - Ștefan Mirea
|
||||
* renamed 'make_bb' mged command name to 'bb' - Cliff Yapp
|
||||
* added g-ply exporter for Stanford PLY geometry format - Rishub Jain
|
||||
* added ply-g importer for Stanford PLY geometry format - Rishub Jain
|
||||
* fixed texture mapping crash with bad image dimensions - Ștefan Mirea
|
||||
* fixed g2asc and asc2g handling of dsp primitive - Cliff Yapp
|
||||
* rewrote gdiff with improved output & reporting options - Cliff Yapp
|
||||
@@ -74,6 +138,8 @@ changes made. See document footer for additional details.
|
||||
* support non-.g file import in Archer's file open dialog - Cliff Yapp
|
||||
* added brep support to g2asc and asc2g - Cliff Yapp
|
||||
* fixed a CPU affinity locking bug on Linux platforms - Sean Morrison
|
||||
* renamed g_diff/g_lint/g_qa/g_transfer sans underscore - Cliff Yapp
|
||||
* removed mged -n option, use mged -c for classic mode - Cliff Yapp
|
||||
* fixed mged -c crash running view-modifying commands - Sean Morrison
|
||||
* improved kill, killall, killtree documentation - Sean Morrison
|
||||
* added killtree -f force flag to kill unconditionally - Sean Morrison
|
||||
@@ -83,7 +149,7 @@ changes made. See document footer for additional details.
|
||||
- Wu Jianbang, Nick Reed, Cliff Yapp
|
||||
* improved step-g assembly hierarchy import support - Keith Bowman
|
||||
* fixed rtweight when using the -G grid spacing option - Sean Morrison
|
||||
* fixed memory leaks in a number of pix utilities - Cezar Elnazi
|
||||
* fixed memory leaks in a number of pix utilities - Cezar Elnazli
|
||||
* improved NURBS ray tracing & tessellation robustness - Keith Bowman
|
||||
* improved step-g NURBS geometry import robustness - Keith Bowman
|
||||
* added -v verbose output option to mged 'search' command - Cliff Yapp
|
||||
@@ -95,6 +161,8 @@ changes made. See document footer for additional details.
|
||||
* added menu option to restore mged command window - Cezar Elnazli
|
||||
* search command now recognizes hyp and metaball types - Cliff Yapp
|
||||
* added -depth option to mged 'search' command - Cliff Yapp
|
||||
* initial support for rigging joints and constrained articulation
|
||||
- Nick Reed, Keith Bowman, Cliff Yapp, Sean Morrison
|
||||
* improved 'search' with 'flat' search path modifier - Cliff Yapp
|
||||
* improved 'search' with above/equal/below depth limits - Cliff Yapp
|
||||
* added comb -S option to stop when object already exists - Cliff Yapp
|
||||
@@ -375,7 +443,7 @@ received corrections and improvements. The introductory article
|
||||
* "About BRL-CAD" article translation to Armenian - Karen Mgebrova
|
||||
* "About BRL-CAD" article translation to Italian
|
||||
- Unknown Contributor, Tom Browder
|
||||
* improved handling of rgb/color attributes by adjust cmd - Cliff Yapp
|
||||
* improved 'adjust' command rgb/color attribute handling - Cliff Yapp
|
||||
* added initial support for step-g import of assemblies - Keith Bowman
|
||||
* added a basic SWIG spec file - Erik Greenwald
|
||||
* fixed referenced object highlighting in archer treeview - Bob Parker
|
||||
@@ -406,7 +474,7 @@ received corrections and improvements. The introductory article
|
||||
* improved tessellation of pipe bends for conversion - Richard Weiss
|
||||
* fixed keypoint vertex bug when editing extrude objects - Nick Reed
|
||||
* fixed eto error converting hyp objects with asc2g tool - Nick Reed
|
||||
# fixed mged bug processing edcodes command arguments - Bob Parker
|
||||
* fixed mged bug processing edcodes command arguments - Bob Parker
|
||||
* various improvements to NMG polygonal mesh processing robustness
|
||||
- Nick Reed, Sean Morrison, Richard Weiss
|
||||
* improved bad face handling within the obj-g importer - Nick Reed
|
||||
@@ -1117,7 +1185,7 @@ invalid geometry is now more robust.
|
||||
* added new -c character option to the loop command - Dawn Thomas
|
||||
* tire now checks for files instead of overwriting - Cliff Yapp
|
||||
* add new nirt formatting options, -L listing option - C. Yapp
|
||||
* fixed nirt's dest cmd's handling of file name string - Cliff Yapp
|
||||
* fixed nirt 'dest' command file name string handling - Cliff Yapp
|
||||
* modified mged nirt command to include air in results - Bob Parker
|
||||
|
||||
|
||||
@@ -1709,7 +1777,7 @@ The rtarea command was added to MGED as well, along with rtweight.
|
||||
* added a -noleaf option to the mged pathlist command - Bob Parker
|
||||
* fixed potential infinite loop bug in BoT primitive - Bob Parker
|
||||
* no longer install tclsh/wish, use btclsh/bwish - Sean Morrison
|
||||
* added bot_merge mged cmd (combine 2 bots into 1) - Lee Butler
|
||||
* added 'bot_merge' mged command (combine 2 bots into 1) - Lee Butler
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2005-06-07 Release 7.2.6 ---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
BRL-CAD
|
||||
Release 7.26.0
|
||||
Release 7.26.2
|
||||
http://brlcad.org/
|
||||
|
||||
BRL-CAD is a powerful cross-platform open source combinatorial
|
||||
|
||||
@@ -18,32 +18,57 @@ tasks as they are completed.
|
||||
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
|
||||
-------------------------------------------------
|
||||
|
||||
* sync tgc/rec shot() behavior, sort results for proper normal.
|
||||
inspect t62 grazing with r653,r735 (tgc on an arb8) looking at ae0,0
|
||||
and z=1524 (was hit/overlap, now misses).
|
||||
* quick check of CHANGES to make sure user-vis obsoletions are in NEWS
|
||||
|
||||
* fix regressions in step-g
|
||||
* fix regressions in lc -d and -s options
|
||||
|
||||
* figure out why the following is crashing:
|
||||
* regressed behavior in mged and archer: they seem to be defaulting
|
||||
objects to black instead of white/gray. wireframes and default
|
||||
black-background rendering make newly created objects practically
|
||||
invisible.
|
||||
|
||||
bin/rtshot -R 1 -p 0 0 0 -d 1 0 0 share/db/havoc.g havoc
|
||||
|
||||
is it related to using bu_hash in some fashion? This test worked
|
||||
as of r65575
|
||||
|
||||
* quick rtg3 with -c option. was failing when run without -c "set
|
||||
ray_data_file=..." with this: "RTG3: Invalid argument" and "Cannot
|
||||
open ray data output file"
|
||||
|
||||
* rtwizard command line ghost image specification isn't working
|
||||
reliably
|
||||
|
||||
* drawing datums far from origin result in huge arrowheads
|
||||
* check these commits for documentation:
|
||||
58415 - NEWS, attributes are now case-insensitive (test: any or just standard ones?)
|
||||
58147 - NEWS, improved search command documentation examples
|
||||
58146 - NEWS, improved archer initialization, removed startup flashing
|
||||
58145 - NEWS, minor but technically user visible and potentially significant if the assumptions made are incorrect (improved tire command usage statement)
|
||||
58254 - NEWS, fixed bug you say? what bug?
|
||||
58325 - NEWS, improved v5 specification formatting, added timestamp proposal
|
||||
64637 - NEWS, almost certainly fixed mysterious errors during dbconcat and db_opens with duplicate names found
|
||||
58475 - AUTHORS if user identified the fix (not just the bug), NEWS if g-step considered published
|
||||
58594, 58608 - AUTHORS for mged tutorial fixes (doc or code contrib section), NEWS if user-vis
|
||||
61168 - NEWS, new param option to search
|
||||
64314 - NEWS, announce the new doc
|
||||
63132 - NEWS, expanded rtedge usage
|
||||
|
||||
|
||||
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
|
||||
-------------------------------------------------------
|
||||
|
||||
* update astyle
|
||||
|
||||
* integrate gen-registered-attributes-html output into website
|
||||
|
||||
* brlcad-config build helper script is not working (not reporting
|
||||
-llibs, reporting semicolon list for 'brlcad' lib). Example working output:
|
||||
$ /usr/brlcad/rel-7.18.0/bin/brlcad-config brlcad
|
||||
-L/usr/brlcad/rel-7.18.0/lib -m64 -L/usr/local/lib64 -L/usr/local/lib -pipe -fno-strict-aliasing -fno-common -fexceptions -ggdb3 -D_FORTIFY_SOURCE=2 -O3 -w -L/usr/brlcad/rel-7.18.0/lib -lbrlcad -lged -lwdb -lrt -lbn -lbu -ltcl8.5 -ldl -lm -lpng14 -lz -lc -lpthread -lregex -lsysv -lopenNURBS -lanalyze
|
||||
|
||||
$ /usr/brlcad/rel-7.18.0/bin/brlcad-config rt
|
||||
-L/usr/brlcad/rel-7.18.0/lib -m64 -L/usr/local/lib64 -L/usr/local/lib -pipe -fno-strict-aliasing -fno-common -fexceptions -ggdb3 -D_FORTIFY_SOURCE=2 -O3 -w -L/usr/brlcad/rel-7.18.0/lib -lrt -lbn -lbu -ltcl8.5 -ldl -lm -lpng14 -lz -lc -lpthread -lregex -lsysv -lopenNURBS
|
||||
|
||||
* bu_*_argv -> bu_argv_*
|
||||
|
||||
* obsd stack crashers
|
||||
|
||||
* rt moss.g facetize rt bot bug
|
||||
|
||||
* invoke graphical with console, play nicely
|
||||
|
||||
* sync tgc/rec shot() behavior, sort results for proper normal.
|
||||
inspect t62 grazing with r653,r735 (tgc on an arb8) looking at ae0,0
|
||||
and z=1524 (was hit/overlap, now misses).
|
||||
|
||||
* reinstate 'stat' and search -size, see r67636 through r67646
|
||||
|
||||
* turn on Bullet code (simulate command) unconditionally
|
||||
@@ -69,39 +94,56 @@ THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
|
||||
THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
-----------------------------------
|
||||
|
||||
* evaluate OpenMesh (http://www.openmesh.org) and OpenFlipper
|
||||
(http://www.openflipper.org) for smoothing, decimation, and
|
||||
additional GCV conversion formats.
|
||||
|
||||
* GCT decimation assumes no edge is shared by two triangles except
|
||||
once in the reversed order (AB, BA). Needs basic check to avoid
|
||||
failures/crashing.
|
||||
|
||||
* V&V bwcrop, pixembed are behaving correctly, as documented
|
||||
|
||||
* need routine that returns a color given a path, similar to
|
||||
rt_comb_get_color() but full path so that inheritance is taken into
|
||||
account and colors set correctly.
|
||||
|
||||
* implement unit tests for bu dirent / stat API
|
||||
|
||||
* OpenCL for enhanced performance boolweave sorting
|
||||
|
||||
* create boolweave+boolfinal unit tests to validate weaving behavior
|
||||
and performance.
|
||||
|
||||
* convert src/util/terrain.c to src/shapes/terrain.c writing out the
|
||||
datafile to a binunif along with a referencing dsp. perhaps add
|
||||
command line option to skip .g to retain prior datafile capability.
|
||||
need to review command line options to simplify complexity and
|
||||
control randomization better.
|
||||
|
||||
* implement quasi-random unbiased iterative spherical ray sampling.
|
||||
requires devising an algorithm whereby we obtain a set of points on
|
||||
a sphere with rays randomly going through those points, so we sample
|
||||
the volume evenly. we need to be able to add additional sets of
|
||||
points/rays (incrementally or step-wise) in order to evaluate
|
||||
convergence and estimate error. this feature is useful for checking
|
||||
overlaps, surface area, volume, and moments of inertia.
|
||||
|
||||
* get_eyemodel returns an eye_pt entry, but feeding the results to
|
||||
archer's eye_pt command results in get_eyemodel returning a different
|
||||
eye_pt, even when the units are all in mm. is this expected?
|
||||
intuitively, I would expected feeding the results of get_eyemodel to
|
||||
eye_pt to result in no change, modulo unit conversions.
|
||||
|
||||
* teach pixdiff, rt, and other tools that can/should support the
|
||||
capability to read/write (as appropriate) pixel index values and
|
||||
reproduce the ray fired to create that pixel. rt's -j option can
|
||||
specify a sub-rectangle, but the key point (whatever the details of
|
||||
implementation) is to be able to easily identify and reproduce the
|
||||
ray that produces a given pixel when debugging. For example,
|
||||
pixdiff's -l option will report differing pixels by index - rt
|
||||
should support those index specifications as an input option.
|
||||
Another possibility would be to have rt support accepting an input
|
||||
image as a "control" image and generating a file with nirt or rtshot
|
||||
commands for each pixel that reports different from the control.
|
||||
* make rt -b accept a pixel index in addition to x,y pixel coordinates
|
||||
|
||||
* pull work on rm command out of history (commit r67394 reverted it)
|
||||
and take it to a production ready stage.
|
||||
|
||||
* Extract bounding box code from both autoview.c and get_autoview.c
|
||||
into a general bounding rpp function in librt and use accordingly
|
||||
(particularly in libged). Should combine autoview.c with
|
||||
get_autoview.c (perhaps as a flag) and utilize the general function
|
||||
in lots of places (e.g., the ged_arb() function).
|
||||
* teach pixdiff and other tools that can/should support the capability
|
||||
to read/write (as appropriate) pixel index values or x,y coordinates
|
||||
and reproduce the ray fired to create that pixel. currently does -l
|
||||
index but not xy coordinates.
|
||||
|
||||
* make mged work without a batch script
|
||||
|
||||
* make archer work without a batch script
|
||||
|
||||
* make isst work without a batch script
|
||||
|
||||
* Need to rethink libbu hash API - ideally should be much simpler and
|
||||
expose much less to the user.
|
||||
|
||||
@@ -168,9 +210,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
fixes some concerns but breaks if an application changes its notion of
|
||||
the current working directory after initialization, for example.
|
||||
|
||||
* make the idents command not list subtracted objects by default,
|
||||
optionally list everything
|
||||
|
||||
* start making use of the CMakePushCheckState macros - we are doing
|
||||
this manually in several places
|
||||
|
||||
@@ -250,12 +289,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* import CTRI material information in fast4-g as per-face data.
|
||||
|
||||
* improve performance of these commands that seem to have exponential
|
||||
cost: bot_split, killtree
|
||||
|
||||
* translate lc command to libged (discovered in Feb. 2015 to have already
|
||||
been done -- need information regarding when this was done and committed).
|
||||
|
||||
* Integrate ADRT into Archer as a visualization mode.
|
||||
|
||||
* Document a GUI feature list (prioritized).
|
||||
@@ -281,13 +314,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
propagated up into separate region hits. the prior is probably
|
||||
easier and less error-prone.
|
||||
|
||||
* BoT mesh editing command. Subtasks:
|
||||
|
||||
- enumerate functions desirable
|
||||
- catalog features of other mesh manipulation tools
|
||||
- investigate mesh editing libraries and/or relying on NMG editing
|
||||
- bind GUI editing to the BoT mesh editing command
|
||||
|
||||
* establish the Basic Application Runtime (BAR), only consisting of
|
||||
libbu and libbn, as a stand-alone self-contained project. provide
|
||||
an API that supports most C/C++ application development and
|
||||
@@ -311,16 +337,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
functions until it provides some clear advantage (e.g., portability,
|
||||
performance, and/or maintainability).
|
||||
|
||||
* object error heuristic. implement a function/command to report how
|
||||
big of an error a given geometry object has. the intent is to help
|
||||
prioritize geometry modeling errors based on their spatial impact.
|
||||
this is particularly relevant for nurbs/brep and nmg geometry where
|
||||
there may be solidity gaps in the topology that need to be sealed or
|
||||
dangling faces/surfaces of different sizes. this is meant to be a
|
||||
relative heuristic applicable across all geometry, not necessary an
|
||||
exact measure. this may make more sense added as an output option
|
||||
to glint or as a warning category for a geometry debugger.
|
||||
|
||||
* create a joint articulation (manually is good, automatic is better)
|
||||
for the tin woodsman so he can move his arms, legs, neck, and head.
|
||||
|
||||
@@ -365,17 +381,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* investigate INFINITY spatial partitioning issue.
|
||||
|
||||
* implement a region anointment feature where the user can turn an
|
||||
assembly into a region and change all lower or higher regions into
|
||||
combinations. basically consolidate or distribute region flags.
|
||||
this is partially covered by the 'comb' command but it tries hard to
|
||||
ensure geometry isn't left in a broken state. needs to be a way to
|
||||
do the simple consolidate/distribute operation regardless of
|
||||
resulting state.
|
||||
|
||||
* update search depth options (above + below) to make sure the logic
|
||||
supports depth=0 / above=0 / below=0 meaning the current node.
|
||||
|
||||
* kill material_head static global in src/librt/mater.c
|
||||
|
||||
* add an mk_extrude() routine to libwdb.
|
||||
@@ -384,6 +389,7 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
other options supplied at the command line and in environment
|
||||
variables. See whether we can pass a variable into CMAKE_C_FLAGS
|
||||
that will allow specification of build flags at make time.
|
||||
Relevant link: https://cmake.org/Bug/view.php?id=12928
|
||||
|
||||
* investigate the possibility of allowing functions to define
|
||||
their own custom filters for some version of the db_search API.
|
||||
@@ -393,9 +399,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
as the functions satisfy the API templates used by the db_plan
|
||||
structures, wouldn't custom functions work?
|
||||
|
||||
* merge get_eyemodel's functionality as a "view eyemodel"
|
||||
sub-command in MGED/Archer.
|
||||
|
||||
* document gqa centroid and moments of inertia options
|
||||
|
||||
* add support for custom and random views to gqa. provide an option
|
||||
@@ -555,10 +558,16 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* decouple libwdb from librt, particularly the headers and relevant
|
||||
structures that cross over to both such as the rtgeom.h types.
|
||||
|
||||
* Translate the poly2tri routines into libbn C code
|
||||
* Translate logic from clipper polygon clipping library
|
||||
(http://www.angusj.com/delphi/clipper.php) into libbg and use it
|
||||
as a pre-processing step for poly2tri's algorithm along the lines
|
||||
of what bitfighter did: https://github.com/raptor/clip2tri
|
||||
Some useful notes here: http://stackoverflow.com/a/16115775
|
||||
|
||||
* Translate the poly2tri routines into libbg C code
|
||||
|
||||
* Implement Shamos-Hoey test for checking whether a polygon is simple
|
||||
in libbn: http://geomalgorithms.com/a09-_intersect-3.html
|
||||
in libbg: http://geomalgorithms.com/a09-_intersect-3.html
|
||||
|
||||
* figure out what in f_matpick (or possibly some other related function)
|
||||
is causing ipathpos to get incremented to a number larger than the
|
||||
@@ -567,24 +576,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* change _mged_ command prefix to a simple '.' prefix to hide/protect
|
||||
the built-in commands.
|
||||
|
||||
* the 'comb' command both updates and creates combinations. this is a
|
||||
problem because it's not possible to infer an intended result from
|
||||
the command string alone. it should either append to an existing
|
||||
combination and fail if it doesn't exist (with flag to create) OR it
|
||||
should create a combination and fail if there is an existing
|
||||
combination (with flag to append).
|
||||
|
||||
* Update the comb "region lift" capability to handle automatic duplication
|
||||
and substitution of the duplicate into the tree of combs who can't have
|
||||
their definitions changed without impacting other geometry in the .g file.
|
||||
|
||||
* change 'mirror' command offset to be prior to mirror instead of
|
||||
after, so that you can mirror intuitively over a specified point
|
||||
along a given axis.
|
||||
|
||||
* add option to 'mirror' command to delete the source object. support
|
||||
specification of a plane as the view plane, 3 points, XY, YZ, XZ.
|
||||
|
||||
* refactor rt_mirror (src/librt/primitives/mirror.c) into the functab
|
||||
|
||||
* refactor rt_functab accessors to go through an api call or calls so
|
||||
@@ -617,6 +608,9 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* investigate integrating Pixar's OpenSubdiv for subdivision surfaces:
|
||||
http://graphics.pixar.com/opensubdiv/
|
||||
|
||||
* investigate the possibility of using Appleseed (http://appleseedhq.net/)
|
||||
to perform visual image rendering using librt shotline data for input.
|
||||
|
||||
* the scale structure in bn_cmd_noise_slice (bn_tcl.c) was never
|
||||
initialized. it looks like somebody has planned to extend the
|
||||
function but never carried out
|
||||
@@ -646,10 +640,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
as API instead of expecting callers to use RT_DBNHASH and
|
||||
RT_DBHASH() manually. consider using bu_hash or other container.
|
||||
|
||||
* rename chan_add, chan_mult, chan_permute and look into possibly
|
||||
merging them into one tool in the util directory. similar to the
|
||||
'join' command, but arguably easier to use.
|
||||
|
||||
* temp colors and temp matrices during ray tracing, rt, rtwizard.
|
||||
need a command-line and mged method to override parameters.
|
||||
|
||||
@@ -672,11 +662,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* convert teapot to use nurbs surfaces instead of bspline
|
||||
|
||||
* add an option to the bb command for calculating a bounding box that
|
||||
encompasses subtracted objects and trimmed surfaces and default to
|
||||
calculating a tight-fitting fbounding box once we have a robust path
|
||||
from geom->NURBS+CSG->NURBS.
|
||||
|
||||
* create a FASTGEN sample geometry with all entities defined and a
|
||||
corresponding regression test to make sure outputs don't change.
|
||||
|
||||
@@ -764,39 +749,14 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* Mac OS X mouse input binding problem seems to be back with rotations
|
||||
stalling during interactive use.
|
||||
|
||||
* killall command reports db_lookup failures if the target object
|
||||
doesn't exist (maybe we only care about refs). should keep quiet.
|
||||
|
||||
* pixdiff reports bytes, but reports incorrect (off-by-one) bytes for
|
||||
.bw input files. cause is due to tool assuming input is rgb triplets
|
||||
(even though output is bytes, wtf?). should probably report pixels
|
||||
and/or have a -b option for handling byte/bw input.
|
||||
|
||||
* the new "exists" command is a beautiful corollary to the unix 'test'
|
||||
command. make the usage match, remove options that make no sense
|
||||
after you've replaced instances of 'file' with 'object', and add
|
||||
options specific to testing geometry (like whether two objects
|
||||
overlap, whether an object's volume is greater than some value or
|
||||
equal to zero, whether two objects are actually the same object
|
||||
(geometrically), etc.).
|
||||
|
||||
* investigate why epa primitive is so sensitive to coarse absolute
|
||||
value changes (run csgbrep, tol abs=1, facetize and get 321k poly)
|
||||
|
||||
* implement a new "simulate" command for applying physics deformations
|
||||
to geometry. Each timestep (default steps==1) would get recorded as
|
||||
new geometry unless updating the existing is requested. Usage might
|
||||
be something like this:
|
||||
|
||||
simulate [-k] [-g|-G] [-f x y z N] <time> [steps]
|
||||
|
||||
Examples:
|
||||
simulate 10.5 # simulate 10.5s of time (default gravity)
|
||||
simulate 3 10 # simulate 30s of time, 10s per timestep
|
||||
simulate -f 0 0 -1.0 9.807 3.0 # earth's gravity for 3s
|
||||
simulate -k 1.0 # simulate 1s of gravity, overwriting original
|
||||
simulate -G -f 1 2 3 .4 5 # no gravity, custom force, 5s
|
||||
|
||||
* implement http network transfer tool for crash reports and benchmark
|
||||
analyses (via libfetch)
|
||||
|
||||
@@ -819,8 +779,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
framebuffer is enabled and the window is resized. initialize and
|
||||
refresh the new memory and zap the framebuffer.
|
||||
|
||||
* merge sed and oed commands
|
||||
|
||||
* make the right-hand path to oed optional
|
||||
|
||||
* deprecate dbcp and merge functionality (and improved
|
||||
@@ -831,8 +789,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* update g-xxx_facets to use libgcv
|
||||
|
||||
* make sure 'preview' works, particularly the 'tree' subcommand.
|
||||
|
||||
* make nreed's new bot cleanup interface update interactively without
|
||||
resorting to calls to Tcl_DoOneEvent() down in librt.
|
||||
|
||||
@@ -845,9 +801,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* investigate OpenEXR (BSD licensed HDE image format)
|
||||
|
||||
* add support for a custom unit conversion factor to the units command
|
||||
(e.g. 'units 9.3120223' or 'units metertons 9.3120223')
|
||||
|
||||
* usage statistics. similar to the eclipse Usage Data Collector, keep
|
||||
track of which BRL-CAD command-line commands and MGED/libged
|
||||
commands are run. Give the user the option of uploading those
|
||||
@@ -888,10 +841,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
obtain a bu_log()-style callback function returned from a
|
||||
logger registration function.
|
||||
|
||||
* deprecate dbfind - ensure functionality is fully captured by the
|
||||
search command, make it report a deprecation statement on use and
|
||||
utilize search under the hood.
|
||||
|
||||
* investigate impact of using lookup tables for root solving.
|
||||
implement lookup tables for a range of linear, quadratic, cubic, and
|
||||
quartic polynomial coefficients. compare performance to root
|
||||
@@ -933,9 +882,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
intersected with them) since, while bad practice, are valid
|
||||
geometrically.
|
||||
|
||||
* implement some sort of archive/backup command in mged in order to
|
||||
save the currently open database out to a file.
|
||||
|
||||
* make sure there are no getenv() non-NULL assumptions within the
|
||||
code. might want to see if there's a pattern of variables being
|
||||
checked such that a libbu interface would be warranted (e.g.,
|
||||
@@ -983,15 +929,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* refactor mged's signal handling to make it possible to safely
|
||||
interrupt long-running commands
|
||||
|
||||
* add a -color option to all mged commands that draw geometry (B, eid,
|
||||
and E come to mind)
|
||||
|
||||
* have mged record a timestamped command history by default
|
||||
|
||||
* implement -exec support for 'search' command
|
||||
|
||||
* implement -param support for 'search' command
|
||||
|
||||
* readd support for vrml v1 to g-vrml so that users can select whether
|
||||
they want v2 (default) or previous v1 output format via a
|
||||
command-line switch. see http://brlcad.svn.sf.net/viewvc/brlcad/brlcad/trunk/conv/g-vrml.c?view=diff&pathrev=22798&r1=16900&r2=16901
|
||||
@@ -1015,8 +952,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* calculate radii of gyration in 'analyze' and/or gqa output
|
||||
|
||||
* implement 'analyze' command option to write output to a file
|
||||
|
||||
* implement make, ted, edsol, mirror, and analyze for revolve
|
||||
primitive. implement tess() too.
|
||||
|
||||
@@ -1031,13 +966,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
|
||||
* give bot-bldxf the axe (reconcile and merge with bot_dump)
|
||||
|
||||
* implement mged object name globbing similar to tclsh's globbing
|
||||
(i.e. via a globbing command and quoting globs that use []). testing
|
||||
shows db_glob doesn't seem to behave correctly, at least not like
|
||||
glob. hook globbing into all commands so glob_compat_mode
|
||||
statefulness can go away. a db_glob expression that doesn't match
|
||||
anything should not return the expression.
|
||||
|
||||
* come up with a new tool that automatically generates "inside"
|
||||
regions for a given model as a way to automatically model air.
|
||||
particularly useful for bot models where the inside air compartment
|
||||
@@ -1172,8 +1100,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
* libfb + font rendering (perhaps through libbn's plot interface) for
|
||||
a posix terminal.
|
||||
|
||||
* OpenCL for enhanced performance boolweave sorting
|
||||
|
||||
* getexecname, "/proc/self/cmdline", program_invocation_short_name.
|
||||
separate out into new file.
|
||||
|
||||
@@ -1214,15 +1140,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
combinations of these primitives, provided their continuity at the
|
||||
ends ensures continuity all along "seams" - something to consider.
|
||||
|
||||
* incorporate some variety of spatial partitioning into the facetize
|
||||
command (may involve just rewriting it) to try and realize MUCH
|
||||
faster tessellation of CSG geometry. Current routines are doing a
|
||||
lot of unnecessary work that tends to result in explosive completion
|
||||
times for worst-case scenarios - try to get closer to the "only do
|
||||
the work we need to" ideal. Once a new idea is proven in that
|
||||
command, it should be made into a libgcv routine and
|
||||
converters/other commands retargeted to use it.
|
||||
|
||||
* look into embedding both rgb[3] and complex[n] data types in a union
|
||||
to allow unification of libmultispectral and liboptical APIs to a
|
||||
single more general liboptical. Need to be careful about
|
||||
@@ -1363,6 +1280,16 @@ LIBGED
|
||||
|
||||
* See src/libged/TODO for new command and subcommand ideas.
|
||||
|
||||
* the lt [-c] obj command looks like it should be replaceable with
|
||||
a search command (search obj -depth 1) and a more powerful -print
|
||||
option that can do things like mimic tcl style output and create
|
||||
lists with user specified character separation. Enhance search
|
||||
to do more powerful printing, then make lt an alias to a search
|
||||
call.
|
||||
|
||||
* pull work on rm command out of history (commit r67394 reverted it)
|
||||
and take it to a production ready stage.
|
||||
|
||||
* libged needs to support "temporary" objects that are in-memory only
|
||||
and will disappear when the ged instance is destroyed, yet is
|
||||
otherwise considered real objects in a given database. this
|
||||
@@ -1404,6 +1331,153 @@ LIBGED
|
||||
common code in src/libanalyze (there may be more candidates around
|
||||
the tree)
|
||||
|
||||
* Extract bounding box code from both autoview.c and get_autoview.c
|
||||
into a general bounding rpp function in librt and use accordingly
|
||||
(particularly in libged). Should combine autoview.c with
|
||||
get_autoview.c (perhaps as a flag) and utilize the general function
|
||||
in lots of places (e.g., the ged_arb() function).
|
||||
|
||||
* Explore possibility of expanding dm command to accept object names
|
||||
as a way of tweaking display manager specific properties (wireframe
|
||||
vs solid drawing, shading on normals, etc.) that are currently
|
||||
controlled only via the draw command. Many of the undocumented (or
|
||||
poorly documented) draw options are very specific and there are many
|
||||
more possible similar options that aren't defined. Initial thought
|
||||
is to allow passing "dm" subcommands to draw (maybe --dm key=val or
|
||||
some such) and using the dm command to offer display type aware
|
||||
hooks (for example, solid drawing isn't a valid option in text mode
|
||||
display, so options about how to shade normals don't make much
|
||||
sense. On the other hand, a full scene graph could have many
|
||||
per-object display options the user (or application) would want to
|
||||
tweak on a per object basis, e.g. dm obj.r transparency 0.3. Hard
|
||||
wiring draw options isn't going to be flexible or user friendly;
|
||||
need something similar to the new dm ability to supply dm-backend
|
||||
specific options to the user.
|
||||
|
||||
* use the globbing work needed for proper rm support to enhance the
|
||||
ls command. dbfind's behavior can be emulated by search, but the
|
||||
speed of dbfind is not practical in search due to the potential
|
||||
generality of search's filters. search would have to pre-process
|
||||
its plan and prove it needed to examine only a subset of the full
|
||||
hierarchy in advance. ls */objname is a better match for what
|
||||
dbfind is actually doing, and if need be we could add a
|
||||
--print-parent option or some such to precisely mimic dbfind's
|
||||
output.
|
||||
|
||||
* make the idents command not list subtracted objects by default,
|
||||
optionally list everything
|
||||
|
||||
* improve performance of these commands that seem to have exponential
|
||||
cost: bot_split, killtree
|
||||
|
||||
* translate lc command to libged (discovered in Feb. 2015 to have already
|
||||
been done -- need information regarding when this was done and committed).
|
||||
|
||||
* BoT mesh editing command. Subtasks:
|
||||
|
||||
- enumerate functions desirable
|
||||
- catalog features of other mesh manipulation tools
|
||||
- investigate mesh editing libraries and/or relying on NMG editing
|
||||
- bind GUI editing to the BoT mesh editing command
|
||||
|
||||
* object error heuristic. implement a function/command to report how
|
||||
big of an error a given geometry object has. the intent is to help
|
||||
prioritize geometry modeling errors based on their spatial impact.
|
||||
this is particularly relevant for nurbs/brep and nmg geometry where
|
||||
there may be solidity gaps in the topology that need to be sealed or
|
||||
dangling faces/surfaces of different sizes. this is meant to be a
|
||||
relative heuristic applicable across all geometry, not necessary an
|
||||
exact measure. this may make more sense added as an output option
|
||||
to glint or as a warning category for a geometry debugger.
|
||||
|
||||
* implement a region anointment feature where the user can turn an
|
||||
assembly into a region and change all lower or higher regions into
|
||||
combinations. basically consolidate or distribute region flags.
|
||||
this is partially covered by the 'comb' command but it tries hard to
|
||||
ensure geometry isn't left in a broken state. needs to be a way to
|
||||
do the simple consolidate/distribute operation regardless of
|
||||
resulting state.
|
||||
|
||||
* update search depth options (above + below) to make sure the logic
|
||||
supports depth=0 / above=0 / below=0 meaning the current node.
|
||||
|
||||
* the 'comb' command both updates and creates combinations. this is a
|
||||
problem because it's not possible to infer an intended result from
|
||||
the command string alone. it should either append to an existing
|
||||
combination and fail if it doesn't exist (with flag to create) OR it
|
||||
should create a combination and fail if there is an existing
|
||||
combination (with flag to append).
|
||||
|
||||
* Update the comb "region lift" capability to handle automatic duplication
|
||||
and substitution of the duplicate into the tree of combs who can't have
|
||||
their definitions changed without impacting other geometry in the .g file.
|
||||
|
||||
* change 'mirror' command offset to be prior to mirror instead of
|
||||
after, so that you can mirror intuitively over a specified point
|
||||
along a given axis.
|
||||
|
||||
* add option to 'mirror' command to delete the source object. support
|
||||
specification of a plane as the view plane, 3 points, XY, YZ, XZ.
|
||||
|
||||
* add an option to the bb command for calculating a bounding box that
|
||||
encompasses subtracted objects and trimmed surfaces and default to
|
||||
calculating a tight-fitting fbounding box once we have a robust path
|
||||
from geom->NURBS+CSG->NURBS.
|
||||
|
||||
* killall command reports db_lookup failures if the target object
|
||||
doesn't exist (maybe we only care about refs). should keep quiet.
|
||||
|
||||
* the new "exists" command is a beautiful corollary to the unix 'test'
|
||||
command. make the usage match, remove options that make no sense
|
||||
after you've replaced instances of 'file' with 'object', and add
|
||||
options specific to testing geometry (like whether two objects
|
||||
overlap, whether an object's volume is greater than some value or
|
||||
equal to zero, whether two objects are actually the same object
|
||||
(geometrically), etc.).
|
||||
|
||||
* replace sed and oed commands: functionality provided by new 'edit'
|
||||
command, but requires testing (unit tests) to make sure it's working
|
||||
correctly.
|
||||
|
||||
* make sure 'preview' works, particularly the 'tree' subcommand.
|
||||
|
||||
* add support for a custom unit conversion factor to the units command
|
||||
(e.g. 'units 9.3120223' or 'units metertons 9.3120223')
|
||||
|
||||
* deprecate dbfind - ensure functionality is fully captured by the
|
||||
search and ls commands, make it report a deprecation statement on
|
||||
use and utilize ls under the hood.
|
||||
|
||||
* implement some sort of archive/backup command in mged in order to
|
||||
save the currently open database out to a file.
|
||||
|
||||
* add a -color option to all mged commands that draw geometry (B, eid,
|
||||
and E come to mind)
|
||||
|
||||
* have mged record a timestamped command history by default
|
||||
|
||||
* implement -exec support for 'search' command
|
||||
|
||||
* implement -param support for 'search' command
|
||||
|
||||
* implement 'analyze' command option to write output to a file
|
||||
|
||||
* implement mged object name globbing similar to tclsh's globbing
|
||||
(i.e. via a globbing command and quoting globs that use []). testing
|
||||
shows db_glob doesn't seem to behave correctly, at least not like
|
||||
glob. hook globbing into all commands so glob_compat_mode
|
||||
statefulness can go away. a db_glob expression that doesn't match
|
||||
anything should not return the expression.
|
||||
|
||||
* incorporate some variety of spatial partitioning into the facetize
|
||||
command (may involve just rewriting it) to try and realize MUCH
|
||||
faster tessellation of CSG geometry. Current routines are doing a
|
||||
lot of unnecessary work that tends to result in explosive completion
|
||||
times for worst-case scenarios - try to get closer to the "only do
|
||||
the work we need to" ideal. Once a new idea is proven in that
|
||||
command, it should be made into a libgcv routine and
|
||||
converters/other commands retargeted to use it.
|
||||
|
||||
|
||||
SHADED DISPLAYS
|
||||
---------------
|
||||
@@ -1420,6 +1494,9 @@ ARCHER
|
||||
ATTRIBUTES
|
||||
----------
|
||||
|
||||
* See src/libbu/TODO.binary_attributes for more info about
|
||||
bson based binary attribute work.
|
||||
|
||||
* attr command option to output to a file
|
||||
|
||||
* attr command change to only output non-standard attributes
|
||||
@@ -1626,6 +1703,13 @@ NEW OBJECTS
|
||||
view (i.e., a grid of primary rays), and 3) rtgl point samples
|
||||
(which is a variant of 2 but potentially view independent).
|
||||
|
||||
Considerations:
|
||||
fast dictionary with expiration by time? (eviction during writes)
|
||||
cache rate read/write / sec > 10k @ 500bytes
|
||||
remain fast with millions of entries
|
||||
immediate retrieval (consistency)
|
||||
provide for concurrent access (concurrency), perhaps via sharding (N locks)
|
||||
|
||||
* alias objects. this is an object handle in a geometry database that
|
||||
refers to another geometry database object. in effect, it
|
||||
encapsulates the idea of a symbolic reference for database objects.
|
||||
@@ -2188,152 +2272,81 @@ DOCUMENTATION
|
||||
|
||||
* add missing manual pages (tbrowder2 generated list 2013-08):
|
||||
|
||||
3dm-g
|
||||
a-d
|
||||
alias-pix
|
||||
all_sf
|
||||
anim_cascade
|
||||
anim_fly
|
||||
anim_hardtrack
|
||||
anim_keyread
|
||||
anim_lookat
|
||||
anim_offset
|
||||
anim_orient
|
||||
archer
|
||||
asc2pix
|
||||
bolt
|
||||
bombardier
|
||||
bot-bldxf
|
||||
brep_cube
|
||||
brep_simple
|
||||
brepintersect
|
||||
breplicator
|
||||
brickwall
|
||||
brlman
|
||||
burst
|
||||
bw-a
|
||||
bw-d
|
||||
bwish
|
||||
c-d
|
||||
chan_add
|
||||
check-express
|
||||
clutter
|
||||
contours
|
||||
csgbrep
|
||||
d-a
|
||||
d-bw
|
||||
d-f
|
||||
d-i
|
||||
d-u
|
||||
d2-c
|
||||
damdf
|
||||
dauto
|
||||
dauto2
|
||||
dconv
|
||||
ddisp
|
||||
dem-g
|
||||
dfft
|
||||
dmod
|
||||
double-asc
|
||||
dpeak
|
||||
dsel
|
||||
dsp_add
|
||||
dstats
|
||||
dwin
|
||||
euclid_format
|
||||
euclid_unformat
|
||||
f-d
|
||||
f-i
|
||||
fbgammamod
|
||||
fence
|
||||
fhor
|
||||
fix_polysolids
|
||||
g-dot
|
||||
g-euclid1
|
||||
g-jack
|
||||
g-off
|
||||
g-step
|
||||
g-voxel
|
||||
gastank
|
||||
globe
|
||||
handle
|
||||
human
|
||||
i-a
|
||||
i-d
|
||||
i-f
|
||||
ihist
|
||||
imod
|
||||
isst
|
||||
istats
|
||||
jack-g
|
||||
kurt
|
||||
lens
|
||||
lowp
|
||||
masonry
|
||||
menger
|
||||
metaball
|
||||
mkbuilding
|
||||
molecule
|
||||
nmg-sgp
|
||||
nmgmodel
|
||||
off-g
|
||||
pdb-g
|
||||
perplex
|
||||
picket_fence
|
||||
pipe
|
||||
pix-spm
|
||||
pix-yuv
|
||||
pix2g
|
||||
pix3filter
|
||||
pixcount
|
||||
pixelswap
|
||||
pixembed
|
||||
pixfields
|
||||
pixfieldsep
|
||||
pixflip-fb
|
||||
pixpaste
|
||||
plot3-dm
|
||||
plot3stat
|
||||
pyramid
|
||||
raw-g
|
||||
rawbot
|
||||
re2c
|
||||
ringworld
|
||||
room
|
||||
rtcell
|
||||
rtfrac
|
||||
rtrad
|
||||
rtsil
|
||||
rtsrv
|
||||
script-tab
|
||||
shp-g
|
||||
sketch
|
||||
smod
|
||||
sphflake
|
||||
spm-fb
|
||||
ssampview
|
||||
step-g
|
||||
surfaceintersec
|
||||
tea
|
||||
tea_nmg
|
||||
texturescale
|
||||
tgf-g
|
||||
torii
|
||||
ttcp
|
||||
tube
|
||||
u-a
|
||||
u-bw
|
||||
u-d
|
||||
u-f
|
||||
umod
|
||||
ustats
|
||||
vegetation
|
||||
wavy
|
||||
|
||||
* these are matured shape tools that get installed with simple
|
||||
usability but should still have basic docs and better names. plan
|
||||
to absorb them into ged as external plugins, but they'll still need
|
||||
docs:
|
||||
|
||||
bolt
|
||||
fence
|
||||
gastank
|
||||
handle
|
||||
human
|
||||
picket_fence
|
||||
window
|
||||
window_frame
|
||||
wire
|
||||
xyz-plot3
|
||||
yuv-pix
|
||||
|
||||
* misc / 3rd party tools we control / bundle, but need docs if anyone
|
||||
else is to use them or contribute:
|
||||
|
||||
perplex
|
||||
re2c
|
||||
|
||||
* needs his own repo:
|
||||
|
||||
ttcp
|
||||
|
||||
* need to revisit utility of spherical mapping, used by sh_spm and
|
||||
sh_points, used for environment mapping (e.g., stars):
|
||||
|
||||
pix-spm
|
||||
spm-fb
|
||||
|
||||
* these eventually get put into gcv (hopefully not needing docs):
|
||||
|
||||
3dm-g
|
||||
dem-g
|
||||
g-dot
|
||||
g-jack
|
||||
g-off
|
||||
g-step
|
||||
g-voxel
|
||||
jack-g
|
||||
off-g
|
||||
raw-g
|
||||
shp-g
|
||||
step-g
|
||||
tgf-g
|
||||
|
||||
* DocBook: create a DB index.xml to generate a doc listing (with
|
||||
hot links) for the html and pdf collection
|
||||
@@ -2358,9 +2371,8 @@ DOCUMENTATION
|
||||
CMake supports other generators, wouldn't hurt to detail how to
|
||||
trigger builds in them (MSVC is partially covered, make sure to
|
||||
coverage is complete - others include Eclipse, XCode once we get the
|
||||
kinks ironed out there, CodeBlocks. New experimental ninja build
|
||||
tool and its (also experimental) CMake support are promising -
|
||||
if/when CMake support goes mainstream, document that too.)
|
||||
kinks ironed out there, CodeBlocks. Ninja build tool and its
|
||||
CMake support are worth documenting too.
|
||||
|
||||
* all of the rt* tracers share common code and common options, but do
|
||||
not share common documentation. refactor documentation to use
|
||||
|
||||
+3
-1
@@ -73,7 +73,9 @@ else(CMAKE_CONFIGURATION_TYPES)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
add_subdirectory(comgeom)
|
||||
add_subdirectory(nist)
|
||||
if(BRLCAD_ENABLE_STEP)
|
||||
add_subdirectory(nist)
|
||||
endif(BRLCAD_ENABLE_STEP)
|
||||
add_subdirectory(faa)
|
||||
|
||||
foreach(g_input ${G_BENCHMARK_MODELS})
|
||||
|
||||
+30
-2
@@ -33,13 +33,41 @@ macro(ADD_NIST_STEP_TARGET step_model folder)
|
||||
DISTCLEAN(${log_file})
|
||||
endmacro(ADD_NIST_STEP_TARGET step_model folder)
|
||||
|
||||
# Get our root path
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}")
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# The general pattern of the BRL-CAD build is to use CMAKE_CFG_INTDIR when
|
||||
# multi-configuration builds complicate the location of binaries. In this
|
||||
# case, however, we are using a generated script with a different mechanism
|
||||
# for handling this situation, and we need to update the executable paths
|
||||
# accordingly if they are configuration dependent.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" rbin_root "${bin_root}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(rbin_root "${bin_root}")
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Use the CMake executable to figure out if we need an extension
|
||||
get_filename_component(EXE_EXT "${CMAKE_COMMAND}" EXT)
|
||||
|
||||
|
||||
macro(ADD_NIST_3DM_TARGET rhino_model folder)
|
||||
set(CMD_EXEC ${rbin_root}/${BIN_DIR}/3dm-g${EXE_EXT})
|
||||
string(REGEX REPLACE "([0-9a-z]*).3dm" "\\1" rhino_model_root "${rhino_model}")
|
||||
set(output_file ${bin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
|
||||
set(output_file ${rbin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
|
||||
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.log)
|
||||
set(STDOUT_LOG "${log_file}")
|
||||
set(STDERR_LOG "${log_file}")
|
||||
set(CMD_ARGS "-o \"${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}\"")
|
||||
configure_file(${BRLCAD_CMAKE_DIR}/builddir_cmd.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake @ONLY)
|
||||
set(output_file ${bin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
|
||||
add_custom_command(
|
||||
OUTPUT ${output_file}
|
||||
COMMAND 3dm-g -o ${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model} > ${log_file} 2>&1
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake
|
||||
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}
|
||||
)
|
||||
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${output_file})
|
||||
|
||||
@@ -225,7 +225,6 @@ CMAKEFILES(
|
||||
README.OSCON-2014
|
||||
STARTERS
|
||||
STRATEGY
|
||||
burst
|
||||
csv_to_comgeom.txt
|
||||
implicit_constraints.txt
|
||||
pad_file.xml.in
|
||||
|
||||
@@ -29,6 +29,17 @@ familiar with the project.
|
||||
|
||||
* Implement one of the items listed on the request for enhancements tracker
|
||||
|
||||
--
|
||||
There are lots of possible non-coding tasks:
|
||||
|
||||
* Write documentation
|
||||
* Improve the website
|
||||
* Offer to help with art and design
|
||||
* Engage in discussions
|
||||
* Write design docs
|
||||
* Update roadmap
|
||||
* Answer questions, be helpful
|
||||
* Give a presentation on some topic
|
||||
|
||||
---
|
||||
There may be more tasks and ideas available in the Tasks section of
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ libXext-devel
|
||||
libXi-devel
|
||||
freetype-devel
|
||||
fontconfig-devel
|
||||
|
||||
mesa-libGL-devel
|
||||
|
||||
To determine what particular version of Redhat or Fedora you are
|
||||
using, check these files:
|
||||
|
||||
+202
-138
@@ -65,172 +65,201 @@ bolster those areas, and identifies specific actionable objectives.
|
||||
strategic areas devising measurable tasks that support the
|
||||
particular objective.
|
||||
|
||||
** PROJECT: Deploy Archer
|
||||
|
||||
*** command cleanup - ALPHA+
|
||||
**** TODO inventory + mapping + time
|
||||
**** TODO design UI / commands
|
||||
**** TODO QA acceptance from users
|
||||
**** TODO announce / share / sit with users
|
||||
** PROJECT: Deploy Archer/MGED Beta (14)
|
||||
|
||||
*** interactivity / blocking indicators - ALPHA (3)
|
||||
**** TODO multithreaded command execution (2)
|
||||
**** TODO interface busy indicator (1)
|
||||
|
||||
*** command cleanup - ALPHA (3)
|
||||
**** TODO inventory + mapping + time (1)
|
||||
**** TODO design UI / commands (2)
|
||||
**** TODO sit with users to discuss command migration (0)
|
||||
|
||||
*** feature parity - ALPHA (2)
|
||||
**** TODO review/finish edit keypointing (oed parity) (1)
|
||||
**** TODO GUI matrix editing (1)
|
||||
|
||||
*** interactivity / blocking indicators - ALPHA
|
||||
**** TODO multithreaded command execution
|
||||
**** TODO interface busy indicator
|
||||
**** TODO drawing indicator
|
||||
|
||||
*** feature parity - ALPHA
|
||||
**** TODO classic console mode
|
||||
**** TODO review/finish edit keypointing (oed parity)
|
||||
**** TODO summarize features
|
||||
**** TODO create mapping from old to new
|
||||
**** TODO GUI matrix editing
|
||||
**** TODO reverse tempfile
|
||||
**** TODO query ray control GUI
|
||||
|
||||
*** undo - BETA
|
||||
**** TODO implement libbu filesystem info
|
||||
**** TODO re-enable undo with fs awareness
|
||||
|
||||
*** bug reporting / feedback / metrics - BETA
|
||||
**** TODO reliable backtrace
|
||||
**** TODO hook/enable bombardier
|
||||
**** TODO in-app feedback dialog
|
||||
**** TODO track metrics (archer commands, tips, docs)
|
||||
|
||||
*** QA acceptance - BETA
|
||||
**** TODO run regression w/ archer
|
||||
**** TODO sit down reviews (discuss scripts)
|
||||
**** TODO define acceptance tasks
|
||||
**** TODO run with procedural web scripts
|
||||
|
||||
*** announcements + migration plan - BETA+
|
||||
**** TODO write + publish strategy map
|
||||
**** TODO write + publish migration plan
|
||||
**** TODO review + update tutorials (docs)
|
||||
**** TODO create + give presentation
|
||||
**** TODO install new website (basic version)
|
||||
**** TODO discussion with core stakeholders
|
||||
|
||||
*** searchable docs - FINAL
|
||||
**** TODO command line searching of doc content
|
||||
**** TODO apropos reading from docbook
|
||||
**** TODO web publishing + searching of docs
|
||||
*** announcements + migration plan - BETA+ (4)
|
||||
**** TODO write + publish strategy map and migration plan (1)
|
||||
**** TODO preliminary discussion with users, discuss tcl scripts (0)
|
||||
**** TODO archer manual page (1)
|
||||
**** TODO install basic version of new website (1)
|
||||
**** TODO sit down review with users (1)
|
||||
|
||||
*** searchable docs - ALPHA (2)
|
||||
**** TODO command line searching of doc content, apropos (2)
|
||||
|
||||
|
||||
** PROJECT: Concentration
|
||||
** PROJECT: Deploy Merged Archer/MGED Final (16)
|
||||
|
||||
*** revisit scope (vision, mission)
|
||||
**** TODO communicate intent and updates
|
||||
**** TODO develop high-level project roadmap
|
||||
**** TODO connect features to markets
|
||||
*** usability parity - BETA (4)
|
||||
**** TODO classic console mode (1)
|
||||
**** TODO map from old to new, publish summary (1)
|
||||
**** TODO reverse .g tempfile backup, edit live (1)
|
||||
**** TODO graphical query ray (1)
|
||||
|
||||
*** develop command roadmap
|
||||
**** TODO inventory of command-line commands, decide keep/refactor/kill
|
||||
**** TODO communicate command-line changes
|
||||
**** TODO take inventory of ged commands, decide keep/refactor/kill
|
||||
**** TODO communicate ged command changes
|
||||
**** TODO assess and mitigate deployment risks
|
||||
*** undo - BETA (2)
|
||||
**** TODO implement libbu filesystem info (1)
|
||||
**** TODO re-enable undo with fs awareness (1)
|
||||
|
||||
*** unify docs
|
||||
**** TODO convert/integrate/kill html+troff docs
|
||||
**** TODO consolidate docs, one guide per interface
|
||||
**** TODO stub new docs where missing
|
||||
*** bug reporting / feedback / metrics - BETA (3)
|
||||
**** TODO reliable backtrace (1)
|
||||
**** TODO hook/enable bombardier (1)
|
||||
**** TODO track metrics (archer commands, tips, docs) (1)
|
||||
|
||||
*** QA acceptance - BETA (3)
|
||||
**** TODO define acceptance tasks (1)
|
||||
**** TODO run regression w/ archer (1)
|
||||
**** TODO make wiki procedural web scripts work (1)
|
||||
|
||||
*** announcements + migration plan - BETA+ (3)
|
||||
**** TODO review + update tutorials and docs (2)
|
||||
**** TODO create + give presentation (1)
|
||||
|
||||
*** searchable docs - FINAL (1)
|
||||
**** TODO web publishing + searching of docs (1)
|
||||
|
||||
|
||||
** PROJECT: Webulgation
|
||||
** PROJECT: Distilling BRL-CAD (11)
|
||||
|
||||
FIXME these need to be sorted and ranked
|
||||
*** revisit scope (vision, mission) (3)
|
||||
**** TODO communicate intent and updates (1)
|
||||
**** TODO develop high-level project roadmap (1)
|
||||
**** TODO connect features to markets (1)
|
||||
|
||||
*** publish docbook docs
|
||||
**** TODO instantiate / set up sofat's doc interface
|
||||
**** TODO design pdf stylesheet
|
||||
**** TODO integrate docs onto website (html+pdf)
|
||||
*** develop command roadmap (4)
|
||||
**** TODO inventory of command-line commands, decide keep/refactor/kill (1)
|
||||
**** TODO communicate command-line changes (0)
|
||||
**** TODO develop command categorization (1)
|
||||
**** TODO take inventory of ged commands, decide keep/refactor/kill (1)
|
||||
**** TODO communicate ged command changes (0)
|
||||
**** TODO assess and mitigate deployment risks (1)
|
||||
|
||||
*** online doc editing
|
||||
**** TODO review sofat edit interface
|
||||
**** TODO apply website theme to edit interface
|
||||
|
||||
*** publish use cases
|
||||
**** TODO post 3+ customer profiles
|
||||
**** TODO post top-10 feature highlights
|
||||
**** TODO identify alternatives and their highlight mappings
|
||||
**** TODO post comparison table with 2+ alternatives
|
||||
|
||||
*** set up developer corner
|
||||
**** TODO publish doxygen output to website
|
||||
**** TODO update doxygen stylesheet to fit theme
|
||||
**** TODO ensure buildbot is setup and running handsfree
|
||||
**** TODO update buildbot stylesheet to fit theme
|
||||
**** TODO post nightly builds
|
||||
**** TODO set up cron job to maintain CI and doc updates
|
||||
**** TODO announce dev corner to brlcad-devel/brlcad-news
|
||||
|
||||
*** improve website usability
|
||||
**** TODO set up platform-detected downloads on main page
|
||||
**** TODO publish project vitality/stats (ohloh integration)
|
||||
*** integrate docs (4)
|
||||
**** TODO plan what to do with html+troff docs (0)
|
||||
**** TODO stub new docs where missing (1)
|
||||
**** TODO consolidate docs, one guide per interface (2)
|
||||
**** TODO kill obsolete docs (0)
|
||||
**** TODO migrate e-mail and release notes to web (1)
|
||||
|
||||
|
||||
** PROJECT: Deploy GCV
|
||||
** PROJECT: Website Renovation (10)
|
||||
|
||||
*** 3dm "round-tripping"
|
||||
**** TODO integrate existing importer
|
||||
**** TODO NURBS export support
|
||||
**** TODO document entity support
|
||||
*** improve website usability (1)
|
||||
**** TODO set up platform-detected downloads on main page (0)
|
||||
**** TODO publish project vitality/stats (openhub integration) (0)
|
||||
**** TODO restore search interface (1)
|
||||
|
||||
*** documentation
|
||||
**** TODO convert jon's write-up to docbook
|
||||
**** TODO integrate jon's plugin examples
|
||||
**** TODO write and publish plugin API policy
|
||||
**** TODO write and publish GCV feature profile on website
|
||||
*** publish docbook docs (3)
|
||||
**** TODO instantiate / set up sofat's doc interface (1)
|
||||
**** TODO design pdf stylesheet (1)
|
||||
**** TODO integrate docs onto website (html+pdf) (1)
|
||||
|
||||
*** CLI usability
|
||||
**** TODO design usage / synopsis
|
||||
**** TODO provide logging/debugging interface
|
||||
*** publish use cases (3)
|
||||
**** TODO post 3+ customer profiles (1)
|
||||
**** TODO post top-10 feature highlights (1)
|
||||
**** TODO identify alternatives and their highlight mappings (1)
|
||||
**** TODO post comparison table with 2+ alternatives (0)
|
||||
|
||||
*** robust deployment
|
||||
**** TODO convert tlib via automated testing
|
||||
**** TODO automate extraction of sources from checkout
|
||||
**** TODO integrate gcv into mged/archer
|
||||
**** TODO troubleshoot JASP export memory issue
|
||||
**** TODO integrate bot_dump into gcv
|
||||
*** set up developer corner (3)
|
||||
**** TODO ensure buildbot is setup and running handsfree (1)
|
||||
**** TODO update buildbot stylesheet to fit theme (0)
|
||||
**** TODO post nightly builds (0)
|
||||
**** TODO set up cron job to maintain CI and doc updates (1)
|
||||
**** TODO announce dev corner to brlcad-devel/brlcad-news (0)
|
||||
**** TODO buildbot <-> cdash/lcov/coverity/gccfarm/swamp integration (1)
|
||||
|
||||
|
||||
** PROJECT: Deploy GCV (9)
|
||||
|
||||
** PROJECT: Performant Pipeline
|
||||
*** bundled ray dispatch
|
||||
**** TODO define ray bundling API
|
||||
**** TODO audit librt API for performance
|
||||
**** TODO convert RT to new bundled API
|
||||
*** 3dm "round-tripping" (2)
|
||||
**** TODO integrate existing importer (0)
|
||||
**** TODO NURBS export support (1)
|
||||
**** TODO document entity support (1)
|
||||
|
||||
*** raytrace prep caching
|
||||
**** TODO implement libbu data caching API (3)
|
||||
**** TODO implement librt object prep caching (5)
|
||||
**** TODO update tools to utilize the prep cache (1+2)
|
||||
*** documentation (3)
|
||||
**** TODO convert jon's write-up to docbook (0)
|
||||
**** TODO integrate jon's plugin examples (1)
|
||||
**** TODO write and publish plugin API policy (1)
|
||||
**** TODO write and publish GCV feature profile on website (1)
|
||||
|
||||
*** CLI usability (2)
|
||||
**** TODO design usage / synopsis (1)
|
||||
**** TODO provide logging/debugging interface (0)
|
||||
**** TODO integrate bot_dump into gcv (1)
|
||||
|
||||
*** robust deployment (2)
|
||||
**** TODO convert tlib via automated testing (1)
|
||||
**** TODO automate extraction of sources from checkout (0)
|
||||
**** TODO integrate gcv into mged/archer (0)
|
||||
**** TODO troubleshoot JASP export memory issue (1)
|
||||
|
||||
|
||||
** PROJECT: Performant Pipeline (15)
|
||||
|
||||
*** coherent Boolean evaluation (3)
|
||||
**** TODO preliminary OpenCL conversion (1)
|
||||
**** TODO eliminate branching (1)
|
||||
**** TODO V&V with specific test cases (1)
|
||||
|
||||
*** audit ray dispatching (3)
|
||||
**** TODO define ray bundling API (1)
|
||||
**** TODO audit librt ray API, consolidate (1)
|
||||
|
||||
*** implement bundled ray dispatch (2)
|
||||
**** TODO integrate Costa's GSoC work (1)
|
||||
**** TODO propagate bundle through spatial partition (1)
|
||||
**** TODO convert rt* to new bundled API (1)
|
||||
|
||||
*** on-demand NURBS tree-build (4)
|
||||
**** TODO formulate a design / approach (1)
|
||||
**** TODO dynamic tree build with minimal malloc (2)
|
||||
**** TODO profile and validate results (1)
|
||||
|
||||
*** coherent NURBS evaluation (1)
|
||||
**** TODO review 2006 paper (0)
|
||||
**** TODO convert openNURBS surface evaluation to OpenCL (1)
|
||||
|
||||
*** performant raytrace image display (2)
|
||||
**** TODO optimize libdb/libfb to remove bottleneck (1)
|
||||
**** TODO update archer for interactive tracing display (1)
|
||||
|
||||
|
||||
** PROJECT: Raytrace Prep Caching (10)
|
||||
|
||||
*** implement LIBBU data caching (3)
|
||||
**** TODO document libbu data caching API (1)
|
||||
**** TODO create data caching test cases (1)
|
||||
**** TODO implement libbu data caching (1)
|
||||
|
||||
*** implment LIBRT object caching (4)
|
||||
**** TODO serialize BoT prep data to cache (1)
|
||||
**** TODO serialize NURBS prep data to cache (1)
|
||||
**** TODO serialize tess/plot data to cache (2)
|
||||
|
||||
*** update tools to utilize the cache (3)
|
||||
**** TODO update rt* to use prep cache (1)
|
||||
**** TODO update mged/archer to use tess/plot cache (1)
|
||||
**** TODO document the prep cache interface (1)
|
||||
|
||||
*** on-demand NURBS tree-building
|
||||
**** TODO dynamic tree build with minimal malloc
|
||||
**** TODO profile and validate results
|
||||
**** TODO formulate a design / approach
|
||||
|
||||
*** coherent Boolean evaluation
|
||||
**** TODO OpenCL conversion
|
||||
**** TODO handle bundles of ray, eliminate branching
|
||||
**** TODO review and integrate Costa's GSoC work
|
||||
**** TODO V&V with specific test cases
|
||||
** PROJECT: Progressive Geometry Display (11)
|
||||
|
||||
*** coherent NURBS evaluation
|
||||
**** TODO review 2006 paper
|
||||
**** TODO convert openNURBS surface evaluation to OpenCL
|
||||
*** asynchronous geometry display (4)
|
||||
**** TODO modify display loop to run in separate thread (2)
|
||||
**** TODO update draw command to dispatch (2)
|
||||
|
||||
*** performant raytrace image display
|
||||
**** TODO optimize libdb/libfb to remove bottleneck
|
||||
**** TODO update archer for interactive tracing display
|
||||
*** ray trace display manager (4)
|
||||
**** TODO review rtgl code (1)
|
||||
**** TODO design incremental loading architecture (1)
|
||||
**** TODO implement incremental ray tracing (2)
|
||||
|
||||
|
||||
** PROJECT: Merge Archer/MGED
|
||||
|
||||
*** do more good stuff
|
||||
*** point cloud hashing (3)
|
||||
**** TODO design LoD point cloud storage approach (1)
|
||||
**** TODO calculate LoD point cloud utility metric (1)
|
||||
**** TODO implement LoD point cloud loading (3)
|
||||
|
||||
|
||||
** TEMPLATE: Project Title
|
||||
@@ -254,6 +283,41 @@ bolster those areas, and identifies specific actionable objectives.
|
||||
0 for tasks less than 2 days.
|
||||
|
||||
|
||||
* Strategic Strengths
|
||||
** project
|
||||
*** open source
|
||||
*** cross-platform
|
||||
*** free software
|
||||
*** 30-years of development
|
||||
*** massive investment
|
||||
*** extensive API
|
||||
*** extensive documentation
|
||||
** code
|
||||
*** extensively modular
|
||||
*** scalability
|
||||
*** embeddable
|
||||
*** efficient workflow
|
||||
*** flexible workflow
|
||||
*** DoD-accreddited
|
||||
*** integrated into MUVES, AJEM, COVART
|
||||
** modeling
|
||||
*** hybrid representation system
|
||||
*** wide variety of supported entities
|
||||
*** csg, nurbs, triangles, volumes, point clouds
|
||||
*** scriptable geometry
|
||||
*** procedural geometry
|
||||
*** geometry conversion
|
||||
*** geometry editing
|
||||
** analysis
|
||||
*** geometry v&v
|
||||
*** geometry preparation
|
||||
*** joint articulation system
|
||||
*** physics simulation system
|
||||
*** ray tracing performance
|
||||
*** analytic ray tracing
|
||||
*** solid ray tracing
|
||||
*** geometry visualization
|
||||
|
||||
# Local Variables:
|
||||
# mode: org
|
||||
# End:
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
tbl() {
|
||||
case $# in
|
||||
0) rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; tbl';;
|
||||
*) cat $1 | rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; tbl';;
|
||||
esac;
|
||||
}
|
||||
typeset()
|
||||
{
|
||||
case $# in
|
||||
0)
|
||||
rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; troff -mm -Ti300 | dimp -t | ipr -J -Pim124';;
|
||||
*) cat $1 |
|
||||
rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; troff -mm -Ti300 | dimp -t | ipr -J -Pim124';;
|
||||
esac;
|
||||
}
|
||||
laser()
|
||||
{
|
||||
OPTS=
|
||||
case $# in
|
||||
0) ;;
|
||||
*) case $1 in
|
||||
-h) OPTS=$1; shift;;
|
||||
esac
|
||||
case $# in
|
||||
1) FILE=$1;;
|
||||
esac;;
|
||||
esac
|
||||
pix-bw -ntsc ${FILE} | bw-imp ${OPTS} | rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; ipr -J -Pim124'
|
||||
unset OPTS FILE;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#OPTS='-V'
|
||||
OPTS='-b'
|
||||
|
||||
groff $OPTS -mm -Tps burst.mm > burst.ps
|
||||
ps2pdf burst.ps
|
||||
|
||||
#groff $OPTS -mm
|
||||
|
||||
#groff -mm -Thtml burst.mm > burst.html
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
tables="\
|
||||
bpl \
|
||||
cmap \
|
||||
commands \
|
||||
fb \
|
||||
hmkeys \
|
||||
ids \
|
||||
overlap \
|
||||
plot \
|
||||
screen \
|
||||
scrollmenu \
|
||||
shotlines \
|
||||
submenu \
|
||||
topmenu\
|
||||
"
|
||||
|
||||
for table in $tables ; do
|
||||
tbl $table.tbl > $table.mm
|
||||
done
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
# these macros (mm files) are generated by tclsh script "Make-tables.sh"
|
||||
TABLE_MM := bpl.mm
|
||||
TABLE_MM += cmap.mm
|
||||
TABLE_MM += commands.mm
|
||||
TABLE_MM += fb.mm
|
||||
TABLE_MM += hmkeys.mm
|
||||
TABLE_MM += ids.mm
|
||||
TABLE_MM += overlap.mm
|
||||
TABLE_MM += plot.mm
|
||||
TABLE_MM += screen.mm
|
||||
TABLE_MM += scrollmenu.mm
|
||||
TABLE_MM += shotlines.mm
|
||||
TABLE_MM += submenu.mm
|
||||
TABLE_MM += topmenu.mm
|
||||
|
||||
PRODS := burst.ps burst.pdf burst.html
|
||||
|
||||
docs:
|
||||
@echo "Making burst tables for groff..."
|
||||
./Make-tables.sh
|
||||
@echo "Making burst docs..."
|
||||
./Make-docs.sh
|
||||
|
||||
clean: distclean
|
||||
|
||||
distclean:
|
||||
-rm $(TABLE_MM) $(PRODS) *~ t tt
|
||||
@@ -1,64 +0,0 @@
|
||||
Documentation for the BRL-CAD program 'burst'.
|
||||
|
||||
Debian requires packages groff and groff-base.
|
||||
|
||||
The original source file ('burst.mm') has been modified slightly to
|
||||
ensure correct handling by Eric Raymond's doclifter
|
||||
(http://www.catb.org/~esr/doclifter/). From an e-mail from Eric:
|
||||
|
||||
from: Eric S. Raymond <esr@thyrsus.com>
|
||||
reply-to: esr@thyrsus.com
|
||||
to: Tom Browder <tom.browder@gmail.com>
|
||||
date: Tue, Aug 20, 2013 at 8:48 AM
|
||||
subject: Re: doclifter (master) failing on troff mm source
|
||||
mailed-by: thyrsus.com
|
||||
|
||||
<quote>
|
||||
Tom Browder <tom.browder@gmail.com>:
|
||||
> I have checked all macros and they are valid mm macros so I can't
|
||||
> figure out why doclifter is failing. I can send you the whole source
|
||||
> zipped if you're interested.
|
||||
|
||||
What you sent is sufficient. The problem is that your mm file
|
||||
contains none of the three trigger macros doclifter is looking for as
|
||||
a way to recognize that it's dealing with mm - .MT, .SA, or .COVER.
|
||||
The relevant table looks like this:
|
||||
|
||||
# This is how we autodetect the right macro set:
|
||||
|
||||
interpreter_dispatch = {
|
||||
"pp": MeInterpreter,
|
||||
"Dt": MdocInterpreter,
|
||||
"Dd": MdocInterpreter,
|
||||
"Nm": MdocInterpreter,
|
||||
"AU": MsInterpreter,
|
||||
"NH": MsInterpreter,
|
||||
"TH": ManInterpreter,
|
||||
"MT": MmInterpreter,
|
||||
"SA": MmInterpreter,
|
||||
"COVER": MmInterpreter,
|
||||
# Extension macro sets
|
||||
"supplemental macros used in Tcl/Tk": TkManInterpreter,
|
||||
"BS": TkManInterpreter,
|
||||
"the F register is turned on": Pod2ManInterpreter,
|
||||
"ZN": XManInterpreter,
|
||||
"Pn": XManInterpreter,
|
||||
"ny0": XManInterpreter,
|
||||
"reStructuredText": reStructuredTextInterpreter,
|
||||
"reStructeredText": reStructuredTextInterpreter,
|
||||
"DocBook XSL Stylesheets" : DocBookInterpreter,
|
||||
"pdfdest" : FoojzsInterpreter,
|
||||
"H0": ASTInterpreter,
|
||||
# These are all of the supported Mwww tags
|
||||
"URL": MwwwInterpreter,
|
||||
"FTP": MwwwInterpreter,
|
||||
"MTO": MwwwInterpreter,
|
||||
"PIMG": MwwwInterpreter,
|
||||
"IMG": MwwwInterpreter,
|
||||
"TAG": MwwwInterpreter,
|
||||
}
|
||||
|
||||
Inserting a dummy .MT 0 call should fix your problem.
|
||||
</quote>
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
.TL
|
||||
``burst''; Air Force Vulnerability Analyses from BRL-CAD Models
|
||||
.AF "U. S. A. Ballistic Research Laboratory"
|
||||
.ds ZZ Aberdeen Proving Ground
|
||||
.AU "Gary S.\& Moss" GSM ZZ
|
||||
.AS
|
||||
.so introduction.mm
|
||||
'\"The presentation will not dwell on the details of usage as much as the paper
|
||||
'\"but will focus on the available features of the \*(b) program
|
||||
'\"as well as its flexibility in supporting analyses of varied threat
|
||||
'\"mechanisms on \*(m) targets.
|
||||
.AE
|
||||
.MT 4
|
||||
.rm ZZ
|
||||
.SA 1
|
||||
@@ -1,37 +0,0 @@
|
||||
.TS
|
||||
allbox,center,tab(@);
|
||||
lb lb lb
|
||||
_ _ _
|
||||
l l l.
|
||||
record description@field format@field description
|
||||
run header@'1'@record number 1
|
||||
@1x,f9.4@attack azimuth (degrees)
|
||||
@1x,f8.4@attack elevation (degrees)
|
||||
@1x,f5.2@burst distance
|
||||
@1x,f10.2@projected area associated with burst point
|
||||
@1x,6a@units (mm,cm,inches,feet,meters)
|
||||
@1x,f9.6@ray solid angle (steradians)
|
||||
shotline header@'2'@record number 2
|
||||
@1x,f8.3@Y' coordinate of shotline
|
||||
@1x,f8.3@Z' coordinate of shotline
|
||||
shotline intersections@'3'@record number 3
|
||||
@1x,f8.2@X' coordinate of component intersection
|
||||
@1x,f8.2@line-of-sight thickness of component
|
||||
@1x,i4@component code number
|
||||
@1x,i2@space code
|
||||
@1x,f7.3@sine of fallback angle of exit normal
|
||||
@1x,f7.2@rotation angle of exit normal (degrees)
|
||||
@1x,f7.3@cosine of obliquity angle at entry
|
||||
@1x,a1@burst flag ('1' for yes, '0' for no)
|
||||
burst ray header@'4'@record number 4
|
||||
@1x,f8.3@azimuth angle WRT shotline (radians)
|
||||
@1x,f8.3@sine of elevation angle WRT shotline
|
||||
@1x,i6@sequential ray number for this burst point
|
||||
burst ray intersections@'5'@record number 5
|
||||
@1x,f10.3@distance to first contact with component
|
||||
@1x,f9.3@line-of-sight thickness of component
|
||||
@1x,f9.3@normal thickness of component
|
||||
@1x,i4@space code
|
||||
@1x,i4@component code number
|
||||
@1x,f6.3@cosine of obliquity angle at entry
|
||||
.TE
|
||||
@@ -1,995 +0,0 @@
|
||||
.\" ASI Note: PP was changed to P in this file; CS was commented out
|
||||
.\" Note the following line was added per Eric Raymond's advice for
|
||||
.\" use by doclifter:
|
||||
.MT 0
|
||||
.PH ""
|
||||
.PF "''\\\\nP''"
|
||||
.so defs.mm
|
||||
.so abstract.mm
|
||||
.so macros.mm
|
||||
.H 1 "User Interface"
|
||||
.H 2 "Program Invocation"
|
||||
In the examples below,
|
||||
the `$' symbol represents the \*(U)
|
||||
shell prompt.
|
||||
The general usage for the \*(b) program is as follows:
|
||||
.Ex "burst [-b]\fR"
|
||||
.P
|
||||
When \*(b) is used in the default mode,
|
||||
a full-screen, interactive, menu-driven interface is provided:
|
||||
.Ex burst
|
||||
In the interactive mode,
|
||||
commands are formatted by the menu system (see \fBHierarchical Menus\fR).
|
||||
The optional
|
||||
.I -b\^
|
||||
argument will suppress the full-screen terminal display in favor of a
|
||||
batch-oriented interface;
|
||||
when coupled with \*(U) file redirection and background processing,
|
||||
the user can submit the job and go on to other tasks.
|
||||
.Ex "burst \|\-b \|< \|input_file \|&"
|
||||
The user will typically want to redirect any diagnostics to a log file
|
||||
(see \fBError Log\fR).
|
||||
In either batch or interactive mode,
|
||||
the program will read commands (see \fBCommand Input\fR) from the standard
|
||||
input until an end of file is encountered.
|
||||
In batch mode,
|
||||
the program will exit after the last command is processed,
|
||||
but when run interactively the menu system will take over after the last
|
||||
command.
|
||||
The user must \fIquit\fR the program by exiting the top-level menu
|
||||
(see Table 2).
|
||||
It is recommended that the reader begin by running the \*(b)
|
||||
program interactively.
|
||||
The hierarchical menu system generates key word commands for the user by
|
||||
prompting him to make choices or enter values without prior knowledge of
|
||||
the commands and their syntax.
|
||||
As commands are generated,
|
||||
they are printed in the scrolling region so that the user can learn
|
||||
the syntax of the alternative mode of input without affecting his productivity.
|
||||
The more advanced user can circumvent the menu system by using a
|
||||
text editor to prepare input files.
|
||||
.sp
|
||||
.H 2 "Command Input"
|
||||
All commands to \*(b) are composed of one or more words connected by hyphens
|
||||
and each command may require one or more arguments that must be separated by
|
||||
either spaces or tabs.
|
||||
A line that begins with the `#' symbol is considered a comment and will be
|
||||
ignored.
|
||||
Each command must be on a separate line and may be supplied to the \*(b)
|
||||
program's standard input (i.e. using \*(U)
|
||||
.Ud sh 1
|
||||
file redirection) or can be generated from the hierarchical menus.
|
||||
In Table 1 below is a brief description of these commands; \fIflag\fR
|
||||
arguments have \fIyes\fR or \fIno\fR values, an \fIangle\fR is expressed in
|
||||
degrees as a floating-point quantity,
|
||||
\fIdistances\fR and coordinates such as \fIX, Y, Z, left, right\fR, etc.
|
||||
are also floating-point numbers,
|
||||
and \fIcount\fR represents an integer.
|
||||
Square brackets delimit optional arguments.
|
||||
For a detailed description of each command,
|
||||
refer to sections 2 through 7.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Key Word Commands"
|
||||
.so commands.mm
|
||||
.sp
|
||||
.DE
|
||||
.H 2 "Screen Layout"
|
||||
In interactive mode,
|
||||
the screen is divided into sections of one or more rows (lines) of text.
|
||||
.DF
|
||||
.so screen.mm
|
||||
.FG "Screen Layout"
|
||||
.sp
|
||||
.DE
|
||||
The top line,
|
||||
referred to as line 1,
|
||||
is reserved for
|
||||
CPU
|
||||
usage statistics.
|
||||
Starting on line 2,
|
||||
the hierarchical menu region spans 12 lines of the screen.
|
||||
Below the menu region is a line used for user input related errors and
|
||||
help messages that are generated by typing an `h' (see Table 2).
|
||||
Below that is a line used to prompt the user for input and to inform him
|
||||
of ongoing processing.
|
||||
The next line contains the program name and version number,
|
||||
and is intended as a divider between the scrolling window below it and the
|
||||
non-scrolling portion of the screen.
|
||||
Once ray tracing has begun,
|
||||
grid index ranges will appear inside square brackets to the right of the
|
||||
version number.
|
||||
The first number is the current horizontal index,
|
||||
and this is separated by a colon from the right-most index for the grid.
|
||||
After the comma,
|
||||
is the current vertical index,
|
||||
followed by the top-most index for the grid.
|
||||
As ray tracing commences,
|
||||
the current grid indices will reflect the current shotline being calculated
|
||||
as the grid is traversed in a left-to-right,
|
||||
bottom-to-top fashion.
|
||||
The scrolling window region takes up the remainder of the screen for the
|
||||
display of processed commands and processing-related errors (i.e. from the
|
||||
ray tracer).
|
||||
Figure 1 shows what the various sections of the screen are used for,
|
||||
however in practice,
|
||||
the status information,
|
||||
help message,
|
||||
and prompt would not be displayed concurrently.
|
||||
The screen-oriented interface is terminal independent;
|
||||
it doesn't use graphics per se
|
||||
but uses the terminal capabilities information database to control the
|
||||
manipulation of text characters.
|
||||
.sp
|
||||
.H 2 "Hierarchical Menus"
|
||||
Table 2 shows the key strokes used to manipulate the menus.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Hierarchical Menu Commands"
|
||||
.so hmkeys.mm
|
||||
.sp
|
||||
.DE
|
||||
The top-level menu looks like Figure 2.
|
||||
.DF
|
||||
.so topmenu.mm
|
||||
.FG "Top-Level Hierarchical Menu"
|
||||
.sp
|
||||
.DE
|
||||
Note that the \fIcurrent\fR entry will be highlighted.
|
||||
The `v' symbols at the bottom corners of the menu show that
|
||||
there are more entries below.
|
||||
Attempting to move the cursor past the bottom entry will cause the
|
||||
menu to scroll upwards as illustrated in Figure 3.
|
||||
.DF
|
||||
.so scrollmenu.mm
|
||||
.FG "Scrolled Menu"
|
||||
.sp
|
||||
.DE
|
||||
Note the `^' symbols at the top corners of the menu.
|
||||
These signify that there are now hidden entries above that can be
|
||||
scrolled down by advancing the cursor upwards past the top visible
|
||||
entry.
|
||||
If no scrolling is possible,
|
||||
that is,
|
||||
if no further entries exist,
|
||||
a `+' symbol will mark the corner of the menu.
|
||||
If a menu item is selected that has a sub-menu,
|
||||
the sub-menu will be drawn to the right of its parent menu as shown
|
||||
in Figure 4.
|
||||
.DF
|
||||
.so submenu.mm
|
||||
.FG "Sub-Menu Display"
|
||||
.sp
|
||||
.DE
|
||||
The menu system \fIremembers\fR the last item selected in a given
|
||||
menu;
|
||||
entering a menu that has been used before will cause
|
||||
the \fIcurrent\fR item to be the same as it was when that menu was last exited.
|
||||
If a menu has never been used,
|
||||
the top item will initially be \fIcurrent\fR.
|
||||
.H 2 "Scrolling Region"
|
||||
When running the \*(b) program interactively,
|
||||
all diagnostic output is, by default, printed in a scrolling text window
|
||||
at the bottom of the display.
|
||||
If the batch option (\fI\-b\fR) is used,
|
||||
these diagnostics will be printed on the standard error output of the
|
||||
program.
|
||||
If there is enough output the user may find it difficult
|
||||
to read it all before it scrolls out of sight.
|
||||
Also, the user may wish to save these diagnostics for later reference;
|
||||
overlap diagnostics from the ray tracer are useful in fixing errors in
|
||||
the geometry of the target description.
|
||||
The \*(b) program has a command called
|
||||
.Co error-file
|
||||
that will divert this output to a file (see \fBError Log\fR).
|
||||
Figure 5 shows three such overlap diagnostics.
|
||||
.DS
|
||||
.sp
|
||||
.so overlap.mm
|
||||
.FG "Overlap Diagnostics"
|
||||
.sp
|
||||
.DE
|
||||
The full path name of both regions is printed, the zero enclosed in double
|
||||
curly brackets is intended to discriminate between \fIinstances\fR\*F.
|
||||
.FS
|
||||
An \fIinstance\fR is a type of group in the \*(m) data base that has
|
||||
a \fIprototype\fR object as a member.
|
||||
Several \fIinstances\fR may reference the same \fIprototype\fR
|
||||
yet have different transformation matrices.
|
||||
Although these objects represent distinct geometric entities,
|
||||
they share the same path name,
|
||||
therefore the additional discriminant is necessary.
|
||||
.FE
|
||||
Theoretically,
|
||||
\fIisol\fR and \fIosol\fR are the names of the starting and ending solids
|
||||
associated with the boolean operations on the overlapping partition.
|
||||
In practice,
|
||||
these solid names are typically not helpful in diagnosing the problem,
|
||||
but the region names should be sufficient.
|
||||
The \fIdepth\fR is the line-of-sight thickness of the overlapping partition
|
||||
in millimeters.
|
||||
In parentheses,
|
||||
are printed the target coordinates of the intersection of the ray
|
||||
with the overlap.
|
||||
The \fIx-2\fR and \fIy1\fR reveal that the grid indices of the shotline are
|
||||
\fI-2, 1\fR; this means that the shotline was 2 cells to the left,
|
||||
and one cell above the grid origin.
|
||||
If \fIlvl\fR (meaning ray tracing recursion level) is \fIzero\fR,
|
||||
then the overlap resulted from a shotline,
|
||||
but if it is \fIone\fR,
|
||||
it could represent either a burst ray intersection or a probe to
|
||||
calculate the normal thickness of a component intersected by the shotline.
|
||||
The real purpose of the ray is stated last.
|
||||
.H 1 "Executing a Run"
|
||||
.Cs "/execute"
|
||||
The \*(b) program is designed to allow many options to be configured before
|
||||
any outputs are calculated.
|
||||
Unless otherwise stated in the individual command descriptions in this report,
|
||||
a given command will nullify any previous occurrence of the same directive
|
||||
until an
|
||||
.Co execute
|
||||
command is given.
|
||||
For instance, the command
|
||||
.Co "target-file"
|
||||
\ \fItank1\fR followed by
|
||||
.Co "target-file"
|
||||
\ \fItank2\fR will nullify the reference to \fItank1\fR.
|
||||
Once the input parameters are specified,
|
||||
the
|
||||
.Co execute
|
||||
command will start a \fIrun\fR.
|
||||
Many \fIruns\fR may occur during an instance of the \*(b) program.
|
||||
One such instance is referred to as a \fIsession\fR.
|
||||
Below are descriptions of commands for configuring the behavior of the
|
||||
\*(b) program.
|
||||
.Ce
|
||||
.H 1 "User Preferences"
|
||||
.H 2 "Units of Measure"
|
||||
.Cs /units
|
||||
The
|
||||
.Co units
|
||||
command will set the linear units for input and output.
|
||||
This command should be used before any scalar quantities such as coordinates,
|
||||
distances,
|
||||
or sizes are input.
|
||||
The units may be changed to accommodate input files of differing units,
|
||||
but the output from a particular run will reflect whatever the units were
|
||||
set to when the
|
||||
.Co execute
|
||||
command was given.
|
||||
One argument is expected out of the following list and must be spelled
|
||||
correctly:
|
||||
\fImillimeters\fR,
|
||||
\fIcentimeters\fR,
|
||||
\fImeters\fR,
|
||||
\fIinches\fR and \fIfeet\fR.
|
||||
The default units are \fImillimeters\fR.
|
||||
Angles are always expressed in degrees, not radians.
|
||||
.Ce
|
||||
.H 2 "Region Overlap Reporting"
|
||||
.Cs "/preferences/report-overlaps"
|
||||
It is considered an error if two \fIregions\fR in an \*(m) file occupy
|
||||
the same space; we call this an \fIoverlap\fR.
|
||||
The ray tracing library (\*(l)) will report \fIoverlapping regions\fR that are
|
||||
intersected by shotlines or burst rays to the \*(b) application and
|
||||
the program will,
|
||||
by default,
|
||||
print out any that have a line of sight thickness of at least 0.25 millimeters
|
||||
(see \fBError Log\fR).
|
||||
Although a target may only have several \fIoverlaps\fR,
|
||||
an error will be reported for each ray that intersects one of them,
|
||||
so the messages will typically be repetitious.
|
||||
Although these diagnostics are important for fixing problems in the geometric
|
||||
description of the target,
|
||||
the user may wish to proceed with a production run and the printing of these
|
||||
errors can slow the execution time considerably.
|
||||
A \fIyes\fR or \fIno\fR argument to this command will turn the diagnostics
|
||||
on or off.
|
||||
Regardless of whether or not individual \fIoverlaps\fR are reported,
|
||||
the total number detected will be logged.
|
||||
.Ce
|
||||
.H 1 "Shotlining Options"
|
||||
.Cs /shotlines
|
||||
\fIShotlining\fR is a technique whereby lines are described in the target
|
||||
coordinate system and information is requested about the geometry that
|
||||
intersects those lines in 3-space.
|
||||
This technique is useful for analysis programs that must simulate
|
||||
threat/target interactions,
|
||||
and therefore must sample the geometry along the threat path.
|
||||
Typically the lines are specified discretely,
|
||||
by a point and a direction,
|
||||
or a \fIgrid\fR of lines is generated that is
|
||||
oriented perpendicular to the direction of attack.
|
||||
A \fIgrid\fR is rectangular,
|
||||
but is subdivided along its height and width uniformly resulting in square
|
||||
cells.
|
||||
\fIGridding\fR techniques include passing a line called a \fIshotline\fR through
|
||||
the center of each cell,
|
||||
or alternatively,
|
||||
\fIdithering\fR each shotline's position within its respective cell's
|
||||
boundaries (see \fBDithering Shotlines\fR).
|
||||
.Ce
|
||||
.H 2 "Attack Direction"
|
||||
.Cs "/shotlines/attack-direction"
|
||||
The orientation of shotlines with respect to the coordinate system of the
|
||||
target are described by \fIazimuth\fR and \fIelevation\fR angles.
|
||||
These angles must be specified in degrees as floating-point numbers
|
||||
(see \fBGridding\fR).
|
||||
.Ce
|
||||
.H 2 "Gridding"
|
||||
.Cs "/shotlines/shotline location"
|
||||
The user is faced with several choices for generating shotlines;
|
||||
full-target envelope, partial envelopes, or discrete shots.
|
||||
No matter what shotlining method is used,
|
||||
a grid always exists as a frame of reference for specifying 2-dimensional
|
||||
coordinates in the plane normal to the direction of attack.
|
||||
This 2-dimensional coordinate system is a projection of the shotline
|
||||
coordinate system (also referred to as the \fIprimed\fR coordinate system).
|
||||
For the simple case of a zero azimuth, zero elevation attack,
|
||||
the
|
||||
.Ax \*(x) \*(y) \*(z)
|
||||
in the shotline coordinate system coincide
|
||||
with the
|
||||
.Ax \*(X) \*(Y) \*(Z)
|
||||
of the target coordinate system and the shotline direction is parallel to
|
||||
the \*(x)\*(A) and headed toward decreasing coordinates.
|
||||
Other orientations are described by rotating the
|
||||
.Ax \*(x) \*(y) \*(z)
|
||||
to keep the shotline direction always down the \*(x)\*(A).
|
||||
This transformation involves two rotations;
|
||||
first a rotation of the \fIprimed\fR coordinate system about the coincident
|
||||
\*(Z) and \*(z)\*(a) by the specified azimuthal angle,
|
||||
followed by a rotation about the new \*(y)\*(A) by the specified elevation
|
||||
angle.
|
||||
Since the grid is a 2-d projection of the shotline coordinate system,
|
||||
it has no \*(X) coordinate;
|
||||
if the user's viewpoint is from the direction of attack,
|
||||
the \*(y)\*(A) can be thought of as horizontal with increasing coordinates
|
||||
to the right,
|
||||
and the \*(z)\*(A) as vertical and increasing in the upward direction.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope"
|
||||
An \fIenvelope\fR refers to a grid that is dimensioned such that its
|
||||
rectangular area,
|
||||
projected normal to the grid,
|
||||
will cover optionally all or part of the target.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope/enclose-target"
|
||||
This option will generate a grid that is guaranteed to cover the entire
|
||||
target.
|
||||
Since the \*(m) modeler uses combinatorial solid geometry,
|
||||
the dimensions of the target are not known,
|
||||
therefore a worst case bounding rectangular parallel piped (RPP)
|
||||
is the only information available to the program and
|
||||
the grid may be larger than necessary.
|
||||
In addition,
|
||||
depending on the attack aspect,
|
||||
the presented area of some targets may not fill up a rectangular grid well.
|
||||
This should not be a problem since ray tracing outside the target
|
||||
boundaries is cheap, but if desired,
|
||||
the grid can be trimmed down with the partial envelope option described
|
||||
below.
|
||||
The grid origin is always aligned with the target origin.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope/enclose-portion"
|
||||
This option allows the user to generate a \fIsub-grid\fR by specifying the
|
||||
distances from the grid origin to the \fIsub-grid's\fR left, right, top,
|
||||
and bottom boundaries.
|
||||
.Ce
|
||||
.H 2 "Cell Size"
|
||||
.Cs "/shotlines/cell-size"
|
||||
The dimensions of a grid cell are input as floating-point values that
|
||||
represent the distances between the centers of adjacent cells.
|
||||
\fICell size\fR also expresses the projected area of influence
|
||||
associated with a shotline or burst ray.
|
||||
Therefore,
|
||||
\fIcell size\fR must be specified even when a grid will not be generated,
|
||||
such as with discrete shot or discrete burst point selection
|
||||
(see \fBInput Discrete Shots\fR and \fBInput Discrete Burst Points\fR).
|
||||
.Ce
|
||||
.H 2 "Dithering Shotlines"
|
||||
.Cs "/shotlines/dither-cells"
|
||||
When gridding,
|
||||
shotlines normally pass through the center of each cell,
|
||||
however,
|
||||
they may be also be \fIdithered\fR.
|
||||
If the user chooses the latter,
|
||||
2 random numbers are selected for each
|
||||
cell that are used to offset the shotline in both parametric
|
||||
directions of the grid plane,
|
||||
but within the respective cell's boundaries.
|
||||
.Ce
|
||||
.H 2 "Input Discrete Shots"
|
||||
.Cs "/shotlines/shotline location/discrete shots"
|
||||
The following options describe different ways to input explicit shot locations
|
||||
as an alternative to generating a grid.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system"
|
||||
If the user wants to fire at a known point on the target,
|
||||
he may wish to describe the shotline location in target coordinates.
|
||||
When coupled with the attack direction,
|
||||
each 3-dimensional coordinate uniquely specifies a shotline.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system/input-3d-shot"
|
||||
This option allows the user to type in a single shot location as an
|
||||
\*(X), \*(Y), and \*(Z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one shot will be run.
|
||||
No queueing of shots occurs in this mode;
|
||||
the last set of coordinates entered will be used.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system/read-3d-shot-file"
|
||||
A number of shots can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of target coordinates in the named file.
|
||||
The file should contain three floating-point numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system"
|
||||
Another way to describe a shot location is in the shotline coordinate
|
||||
system.
|
||||
Since the \*(x) location of the shot is irrelevant (the shotline is
|
||||
parallel to the \*(x)\*(A)) a shot may be specified as a
|
||||
\*(y) and \*(z) coordinate.
|
||||
These coordinates can also be referred to as horizontal and vertical grid
|
||||
offsets.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system/input-2d-shot"
|
||||
This option allows the user to type in a single shot location as a
|
||||
\*(y), and \*(z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one shot will be run.
|
||||
No queueing of shots occurs in this mode,
|
||||
the last set of grid offsets entered will be used.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system/read-2d-shot-file"
|
||||
A number of shots can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of grid offsets in the named file.
|
||||
The file should contain three floating-point numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.H 1 "Bursting Options"
|
||||
.Cs "/burst points"
|
||||
\fIBursting\fR is a technique for sampling a target's geometry with the use
|
||||
of ray tracing.
|
||||
As opposed to \fIshotlining\fR involving parallel rays,
|
||||
\fIbursting\fR employs a distribution of rays that emanate from a single
|
||||
point.
|
||||
The \*(b) program generates rays that approximate a uniform distribution
|
||||
over a user-specified solid angle (see \fBSampling Cone Half Angle\fR)
|
||||
and having a density (see \fBNumber of Sampling Rays\fR) that is also under
|
||||
control of the user.
|
||||
The user also has a choice between several mechanisms for setting up
|
||||
burst point locations depending on the particular threat he is attempting
|
||||
to emulate.
|
||||
.Ce
|
||||
.H 2 "Method of Locating Burst Point"
|
||||
.Cs "/burst points/bursting method"
|
||||
Depending on threat type,
|
||||
burst points may be located using two basic techniques.
|
||||
The first technique is simply to input the burst point coordinates.
|
||||
This method can be used to compare vulnerability analysis results with
|
||||
empirical results from the firing range or combat field.
|
||||
The second technique available to the user is to burst along a shotline.
|
||||
This option is used more for predicting the burst point location based
|
||||
on target geometry,
|
||||
given certain parameters that describe the target/threat interactions.
|
||||
.Ce
|
||||
.H 3 "Input Discrete Burst Points"
|
||||
.Cs "/burst points/bursting method/burst point coordinates"
|
||||
The input of explicit burst point coordinates can be accomplished
|
||||
either by typing them in one at a time or by reading a file
|
||||
of target \*(X), \*(Y), and \*(Z) coordinates.
|
||||
.Ce
|
||||
.Cs "/burst points/bursting method/burst point coordinates/burst-coordinates"
|
||||
This option allows the user to type in a single burst point location as an
|
||||
\*(X), \*(Y), and \*(Z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one burst point will be run.
|
||||
No queueing of burst points occurs in this mode,
|
||||
the last set of coordinates entered will be used.
|
||||
.Ce
|
||||
.Cs "/burst points/bursting method/burst point coordinates/read-burst-file"
|
||||
A number of burst points can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of target coordinates in the named file.
|
||||
The file should contain three numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.H 3 "Burst on Contact"
|
||||
.Cs "/burst points/bursting method/burst point coordinates/shotline-burst"
|
||||
The
|
||||
.Co shotline-burst
|
||||
directive can be given a \fIyes\fR or \fIno\fR argument to either enable
|
||||
or disable this method of generating burst points.
|
||||
When a \fIyes\fR argument is given,
|
||||
a second \fIyes\fR or \fIno\fR argument is also required
|
||||
(see \fBBurst on Armor\fR).
|
||||
Bursting along a shotline can be done different ways depending on the
|
||||
combination of several options.
|
||||
The location of the burst point is based on the triggering
|
||||
mechanism that is selected with the \fIburst distance\fR parameter.
|
||||
.Ce
|
||||
.H 4 "Burst on Armor"
|
||||
.sp
|
||||
If the \fIburst distance\fR parameter is set to a negative or zero value,
|
||||
then interior burst points will be generated (see \fBBurst Distance\fR).
|
||||
This method of bursting requires the input of \fIburst armor\fR idents and,
|
||||
by default, \fIburst air\fR idents are also required.
|
||||
If the user does not want to require that certain air be present to trigger
|
||||
a burst point,
|
||||
the
|
||||
.Co shotline-burst
|
||||
command has a second argument.
|
||||
When this second argument is set to \fIno\fR,
|
||||
bursting will occur as long as
|
||||
\fIburst armor\fR is followed by any air or void (empty space),
|
||||
and the \fIburst air\fR file is not required.
|
||||
For more information see \fBBurst Armor File\fR and \fBBurst Air File\fR.
|
||||
.Ce
|
||||
.H 4 "Ground Plane Bursting"
|
||||
.Cs "/burst points/bursting method/burst point coordinates/ground-plane"
|
||||
Ground plane bursting is a vehicle for evaluating the effect of
|
||||
fragmenting warheads on light-armored vehicles when they strike the ground
|
||||
in close proximity to the target.
|
||||
The
|
||||
.Co ground-plane
|
||||
command is only relevant when bursting along a shotline is selected.
|
||||
The ground is modeled as a rectangle lying in a plane parallel
|
||||
to the target \fIX-Y\fR plane with edges parallel to the \*(X) and \*(Y)
|
||||
axes.
|
||||
The grid will be enlarged to include the ground plane;
|
||||
it is important for efficiency to limit the size of the ground plane to
|
||||
match the range of the fragments that may be generated by the particular
|
||||
threat being modeled.
|
||||
When enabling this option,
|
||||
the
|
||||
.Co ground-plane
|
||||
command is given a \fIyes\fR argument
|
||||
followed by the height of the target above the ground,
|
||||
and the distances that the ground rectangle extends out positive \*(X),
|
||||
negative \*(X),
|
||||
positive \*(Y),
|
||||
and negative \*(Y) axes.
|
||||
.Ce
|
||||
.H 2 "Bursting Parameters"
|
||||
.Cs "/burst points/bursting parameters"
|
||||
The following parameters influence both the triggering mechanism for burst
|
||||
points,
|
||||
as well as the characteristics of the cone of rays generated from each
|
||||
point.
|
||||
.Ce
|
||||
.H 3 "Burst Distance"
|
||||
.Cs "/burst points/bursting parameters/burst-distance"
|
||||
The \fIburst distance\fR parameter is modeled after the \fBBDIST\fR parameter
|
||||
used by the Air Force's \*(G)\*F code.
|
||||
.FS
|
||||
The Air Force currently uses \*(G) to produce burst point libraries
|
||||
for \*(P) from \*(F) descriptions.
|
||||
.FE
|
||||
The role of this parameter is overloaded,
|
||||
however it was retained to aid \*(G) users in transitioning to the \*(b)
|
||||
program.
|
||||
If it is zero or negative,
|
||||
then \fIinterior bursting\fR is enabled,
|
||||
otherwise,
|
||||
if it is greater than zero, \fIexterior bursting\fR will occur,
|
||||
subject to certain conditions (see below).
|
||||
The magnitude of this parameter is used to offset the burst point location
|
||||
along the shotline relative to the geometry that triggered the burst.
|
||||
.Ce
|
||||
.H 4 "Interior Bursting"
|
||||
.sp
|
||||
\fIBurst armor\fR refers to a component whose ident code is found in
|
||||
the list input by the
|
||||
.Co burst-armor-file
|
||||
command.
|
||||
Similarly,
|
||||
\fIburst air\fR refers to a component whose ident code is found in the
|
||||
list input by the
|
||||
.Co burst-air-file
|
||||
directive.
|
||||
If \fIinterior bursting\fR is enabled
|
||||
and a \fIburst armor\fR component is encountered along a shotline
|
||||
that is immediately followed by \fIburst air\fR,
|
||||
then a burst point will be located the absolute value of \fIburst distance\fR
|
||||
beyond the exit of the shotline from the component.
|
||||
This means that if \fIburst distance\fR is zero,
|
||||
the burst point will lie at the \fIburst armor/air\fR interface,
|
||||
and if it's -5.5,
|
||||
the burst point will lie 5.5 units inside the air compartment from the
|
||||
back surface of the armor.
|
||||
.Ce
|
||||
.H 4 "Exterior Bursting"
|
||||
.sp
|
||||
If \fIburst distance\fR is greater than zero,
|
||||
the first component encountered along the shotline will trigger a
|
||||
burst point,
|
||||
regardless of its ident code,
|
||||
that will be located \fIburst distance\fR
|
||||
in front of the shotline \fIentry\fR point.
|
||||
This technique simulates the behavior of a fragmenting munition with
|
||||
a \fIstandoff\fR fuzing such that detonation is triggered before
|
||||
the collision of the warhead with the target.
|
||||
The \fIburst distance\fR is set to imitate the built in \fIstandoff\fR
|
||||
of the warhead.
|
||||
When employing \fIexterior bursting\fR methods,
|
||||
\fIburst armor\fR and \fIburst air\fR are not used.
|
||||
.sp
|
||||
.H 3 "Sampling Cone Half Angle"
|
||||
.Cs "/burst points/bursting parameters/cone-half-angle"
|
||||
To limit the solid angle within which burst rays will be generated,
|
||||
the user may specify a \fIcone half angle\fR.
|
||||
This angle represents the degrees (in floating point) from the \fIaxis\fR of
|
||||
the cone to its limiting surface.
|
||||
The default value for the \fIcone half angle\fR is 45 degrees.
|
||||
.Ce
|
||||
.H 3 "Deflected Sampling Cone"
|
||||
.Cs "/burst points/bursting parameters/deflect-spall-cone"
|
||||
The spall cone axis is,
|
||||
by default,
|
||||
aligned with the shotline.
|
||||
In reality,
|
||||
the center of mass of the spall cloud would be between the shotline direction
|
||||
and the exit normal of the shotline from the spalling component.
|
||||
By aligning the spall cone axis with a vector halfway between the shotline
|
||||
and the exit normal,
|
||||
a narrower cone half angle can be used and still sample within the solid
|
||||
angle of interest.
|
||||
This technique can therefore be used to cut down on the number of rays
|
||||
calculated without lowering the sampling density.
|
||||
The
|
||||
.Co deflect-spall-cone
|
||||
command takes a \fIyes\fR or \fIno\fR argument about whether or not
|
||||
to divert the cone axis.
|
||||
.Ce
|
||||
.H 3 "Number of Sampling Rays"
|
||||
.Cs "/burst points/bursting parameters/max-spall-rays"
|
||||
The sampling ray density within the spall cone is controlled by specifying
|
||||
the maximum number of rays desired.
|
||||
Due to the uniform distribution algorithm employed,
|
||||
the number of rays calculated will be slightly less.
|
||||
.Ce
|
||||
.H 3 "Maximum Barriers"
|
||||
.Cs "/burst points/bursting parameters/max-barriers"
|
||||
For munitions known to have limited penetration capability,
|
||||
the user may set a limit on the number of burst ray intersections reported.
|
||||
The effect of setting this parameter is to reduce the size of the
|
||||
burst point library (see \fBBurst Point Library\fR) by limiting the
|
||||
number of components that will be reported per burst ray.
|
||||
By default,
|
||||
up to 100 components are reported,
|
||||
as it is not expected that this number will be reached under normal
|
||||
circumstances.
|
||||
.Ce
|
||||
.H 1 "Input File Options"
|
||||
.H 2 "Target-Related Input Files"
|
||||
.Cs "/target files"
|
||||
This group of commands is for specification of target-specific input files.
|
||||
.Ce
|
||||
.H 3 "Target Data Base File"
|
||||
.Cs "/target files/target-file"
|
||||
The input of the target's \*(m) file is accomplished with this command.
|
||||
Note that only one data base may be read in during a given \fIsession\fR.
|
||||
If the user wishes to change the target once the
|
||||
.Co execute
|
||||
command has been given,
|
||||
he must exit the \*(b) program and start a new \fIsession\fR.
|
||||
.Ce
|
||||
.Cs "/target files/target-objects"
|
||||
After specifying the \*(m) file,
|
||||
the user must list all of the objects in the \*(m) hierarchy that he
|
||||
wishes to be included in his analysis.
|
||||
The objects must be listed as arguments to one
|
||||
.Co target-objects
|
||||
command with spaces or tabs as separators.
|
||||
Note that only one list of objects may be loaded per \fIsession\fR,
|
||||
however,
|
||||
they do not get loaded until the
|
||||
.Co execute
|
||||
command is given.
|
||||
.Ce
|
||||
.H 3 "Ident List Input Files"
|
||||
.sp
|
||||
\fIIdents\fR refer to the \fIregion ident\fR code from the \*(m) file.
|
||||
Lists of \fIidents\fR may be specified singly or as ranges.
|
||||
Individual \fIidents\fR must appear as one per line,
|
||||
but ranges are specified by two numbers on a line that are
|
||||
separated by one or more of the following characters: comma, hyphen, colon,
|
||||
semicolon, space, or tab.
|
||||
Figure 6 shows an example of such a file.
|
||||
.DS
|
||||
.sp
|
||||
.so ids.mm
|
||||
.FG "Ident List File Format"
|
||||
.sp
|
||||
.DE
|
||||
.Ce
|
||||
.H 4 "Burst-Armor and Burst-Air Ident Files"
|
||||
.sp
|
||||
.Cs "/target files/burst-armor-file"
|
||||
.Cs "/target files/burst-air-file"
|
||||
When interior burst points are to be generated along a shotline
|
||||
(see \fBInterior Bursting\fR) a file of \fIburst armor\fR idents and
|
||||
\fIburst air\fR idents must be input.
|
||||
If a shotline intersects a component whose \fIident\fR has been input
|
||||
as a \fIburst armor\fR and it is immediately followed by \fIburst air\fR
|
||||
a burst point will be triggered.
|
||||
.Ce
|
||||
.H 4 "Critical Component Idents"
|
||||
.Cs "/target files/critical-comp-file"
|
||||
Whether interior or exterior bursting is being employed,
|
||||
information about components hit by burst rays will only be output
|
||||
for rays that hit \fIcritical components\fR.
|
||||
The file name containing a list of \fIcritical component\fR idents must
|
||||
therefore be input by this command if burst points are to be generated.
|
||||
.Ce
|
||||
.H 3 "Color Mapping Input File"
|
||||
.Cs "/target files/color-file"
|
||||
This command allows users to assign colors to component idents for graphics
|
||||
options,
|
||||
in particular,
|
||||
the
|
||||
.Co image-file
|
||||
and
|
||||
.Co plot-file
|
||||
commands.
|
||||
The format of this file is 5 numbers per line separated by blanks or tabs.
|
||||
The first number is the low end of an ident range and the second number is
|
||||
the high end of the range (both numbers are inclusive).
|
||||
This range is mapped to the color specified by the last 3 numbers on the
|
||||
line that are red, green, and blue components of the color (values for
|
||||
these components must be between 0 and 255 inclusive).
|
||||
Figure 7 shows an example of such a file.
|
||||
.DS
|
||||
.sp
|
||||
.so cmap.mm
|
||||
.FG "Color Mapping File Format"
|
||||
.sp
|
||||
.DE
|
||||
.Ce
|
||||
.H 2 "Project-Related Input Files"
|
||||
.H 3 "Reading Session Files"
|
||||
.Cs "/project files/read-input-file"
|
||||
This command reads an \fIinput\fR file of commands.
|
||||
These files can be generated manually by using a text editor or
|
||||
saved from a \fIsession\fR file with the
|
||||
.Co write-input-file
|
||||
command.
|
||||
See the section called \fBCommand Input\fR for the format of this
|
||||
file.
|
||||
.Ce
|
||||
.H 3 "Shotline and Burst Point Input Files"
|
||||
.sp
|
||||
For an explanation of commands for reading in files of shotline or burst
|
||||
point coordinates,
|
||||
see the sections called \fBInput Discrete Shots\fR and
|
||||
\fBInput Discrete Burst Points\fR.
|
||||
.Ce
|
||||
.H 1 "Output File Options"
|
||||
.Cs "/project files"
|
||||
The following commands will turn on optional output.
|
||||
By default,
|
||||
no output is produced except error logging (see \fBError Log\fR),
|
||||
unless an output file is specified with the appropriate command.
|
||||
Any combination of output options may be specified for a particular run.
|
||||
Note that specifying an output file will cause an existing file with that
|
||||
name to be truncated to zero length.
|
||||
Therefore,
|
||||
only one such command should be entered per \fIsession\fR for a particular file
|
||||
name.
|
||||
Multiple runs during a \fIsession\fR will append to the same files if
|
||||
intervening commands to change the output file name are not given,
|
||||
except for the graphics files as explained below.
|
||||
Note that there is no way to append to a file created by a previous
|
||||
\fIsession\fR of the \*(b) program,
|
||||
but these files may be concatenated after the fact by using the
|
||||
\*(U)
|
||||
.Ud cat 1
|
||||
utility.
|
||||
.Ce
|
||||
.H 2 "Burst Point Library File"
|
||||
.Cs "/project files/burst-file"
|
||||
This command will open the named file for creating a burst point library.
|
||||
If the file exists,
|
||||
it will be truncated by this command.
|
||||
\fBAppendix A\fR describes the format for these files.
|
||||
.Ce
|
||||
.H 2 "Shotline File"
|
||||
.Cs "/project files/shotline-file"
|
||||
This command will open the named file for creating a shotline file.
|
||||
If the file exists,
|
||||
it will be truncated by this command.
|
||||
\fBAppendix B\fR describes the format for these files.
|
||||
.Ce
|
||||
.H 2 "\*(U) Plot File"
|
||||
.Cs "/project files/plot-file"
|
||||
This command generates a \*(U) plot file,
|
||||
using \*(B) extensions to the standard format.
|
||||
This option is useful for examining the shotline and burst ray information
|
||||
graphically as a three-dimensional vector plot.
|
||||
Due to constraints inherent in the \*(U) plot format,
|
||||
these plots must be displayed as a post-process step by using
|
||||
a \*(B) plotting utility such as \fBpl-sgi\fR or \fBpl-fb\fR.
|
||||
Because some of these display programs do not support multiple plots
|
||||
per file,
|
||||
the file name should be changed between runs.
|
||||
Table 3 describes the color mapping associated with these plots.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Color Key for \s-1UNIX\s0 \*(Tm Plots"
|
||||
.so plot.mm
|
||||
.sp
|
||||
.DE
|
||||
.P
|
||||
If the user has specified a color mapping file with the
|
||||
.Co color-file
|
||||
command,
|
||||
then those colors will be used rather than the above colors for
|
||||
all shotline/ray intersections.
|
||||
.Ce
|
||||
.H 2 "Frame Buffer Image"
|
||||
.Cs "/project files/image-file"
|
||||
This option will generate a color image that provides the user with
|
||||
immediate feedback about a run.
|
||||
The grid is displayed graphically and each cell location is dynamically
|
||||
color coded to show its current status.
|
||||
Table 4 describes the color mapping associated with the grid.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Color Key for Frame Buffer Image"
|
||||
.so fb.mm
|
||||
.sp
|
||||
.DE
|
||||
.P
|
||||
In addition to the above cell colors, hits on critical components by burst
|
||||
rays are depicted as a colored pixel projected into grid
|
||||
space from the intersection point where the ray enters the component.
|
||||
Colors for the components are mapped from ident numbers according to the
|
||||
table specified by the user with the
|
||||
.Co "/target files/color-file"
|
||||
directive and shaded using a lighting model illuminated from the viewing
|
||||
direction.
|
||||
.H 2 "Grid File"
|
||||
.Cs "/project files/grid-file"
|
||||
This command will store each shotline coordinate generated during the run
|
||||
as grid offsets.
|
||||
These files can later be read in to replicate a previous run's grid or discrete
|
||||
shots by using the
|
||||
.Co read-2d-shot-file
|
||||
command.
|
||||
This capability is especially useful when \fIdithered\fR shotlines have been
|
||||
used and it is desired that the same shotlines be used in another run.
|
||||
Note that the shotline intersection information is not saved,
|
||||
just the grid offsets for each shotline.
|
||||
.Ce
|
||||
.H 2 "Script File"
|
||||
.Cs "/project files/write-input-file"
|
||||
During a \fIsession\fR,
|
||||
all commands are saved in a temporary file.
|
||||
The
|
||||
.Co write-input-file
|
||||
command will create a \fIsnapshot\fR of this \fIsession\fR file,
|
||||
that can later be used to recreate the current \fIsession\fR
|
||||
up to the point when the file was written.
|
||||
The \fIsession\fR or \fIinput\fR files
|
||||
can later be used in one of two ways: either read in with the
|
||||
.Co read-input-file
|
||||
command,
|
||||
or supplied on the standard input of the \*(b) program.
|
||||
Note that the
|
||||
.Co write-input-file
|
||||
and
|
||||
.Co read-input-file
|
||||
commands will not be included in the \fIinput\fR files,
|
||||
but the commands read in by the latter \fIwill\fR.
|
||||
.Ce
|
||||
.H 2 "Error Log"
|
||||
.Cs "/project files/error-file"
|
||||
This command is useful to save errors in a log file and prevent copious
|
||||
ray tracer diagnostics from scrolling by on the screen.
|
||||
This option is especially useful if using the batch mode of execution
|
||||
so that the terminal is not tied up by program output.
|
||||
If no error log is specified,
|
||||
diagnostic messages will appear in the scrolling window or,
|
||||
if in batch mode,
|
||||
on the \*(b) program's standard error output.
|
||||
.Ce
|
||||
.H 2 "Histogram File"
|
||||
.Cs "/project files/histogram-file"
|
||||
This command generates a frequency histogram to the named file.
|
||||
The file format is simply one number per line; each number is a count
|
||||
of critical components hit by an individual burst ray.
|
||||
This file can easily be post-processed to display a histogram,
|
||||
for instance,
|
||||
how many rays hit zero, one, two, three, etc. components.
|
||||
.Ce
|
||||
.H 1 Conclusion
|
||||
There is a large, and rapidly growing, collection of highly detailed \*(m)
|
||||
models due to the widespread use of the highly portable \*(B) package.
|
||||
The \*(b) program gives the \*(F) community the option of analyzing \*(m)
|
||||
models.
|
||||
This, along with the \*(F) to \*(m) translator will permit an easy transition
|
||||
of the Air Force to the \*(B) system.
|
||||
Then,
|
||||
productivity in the target description arena,
|
||||
that has long been a bottleneck to the vulnerability and lethality analyst,
|
||||
will increase dramatically.
|
||||
Another benefit will be increased accuracy of results due to the superior
|
||||
detail and accuracy afforded by a true combinatorial solid geometry modeler.
|
||||
.H 1 Acknowledgments
|
||||
The author would like to thank Leonard E. Bruenning, Jr. of Sverdrup
|
||||
Technology, Inc. for his thorough, concise and well-illustrated
|
||||
documentation\*F of the requirements to be met by the \*(b) program
|
||||
and for his courteous and professional manner in fielding related questions.
|
||||
.FS
|
||||
Leonard E. Bruenning,
|
||||
"Interface Control Document for BURST Ray Generator Computer Program",
|
||||
\fBTechnical Report\fR,
|
||||
prepared for: Department of the Air Force,
|
||||
Armament Division,
|
||||
Eglin AFB,
|
||||
FL 32542-5000,
|
||||
14 December 1988.
|
||||
.FE
|
||||
.H 1 Appendices
|
||||
Both burst point library files and shotline files are composed
|
||||
of single-line records.
|
||||
Each line begins with a digit that identifies the type of record it represents.
|
||||
Both file formats are composed of one or more \fIruns\fR that begin with a
|
||||
\fIrun header\fR.
|
||||
Each shotline that intersects the target will result in a
|
||||
\fIshotline header\fR that is followed by one or
|
||||
more \fIshotline intersection\fR records.
|
||||
These record types exist for both file formats,
|
||||
but they do not contain the same information.
|
||||
Burst point library files have two additional record types,
|
||||
\fIburst ray headers\fR and \fIburst ray intersections\fR.
|
||||
If a burst point occurs along a shotline,
|
||||
the \fIburst ray header\fR will immediately follow that shotline's last
|
||||
intersection record.
|
||||
Each \fIburst ray header\fR records will be immediately followed by
|
||||
\fIburst ray intersection\fR records,
|
||||
one for each ray that strikes a \fIcritical component\fR.
|
||||
.bp
|
||||
.H 2 "Appendix A: Burst Point Library File Format"
|
||||
Below is a description of the format of the burst point library files that
|
||||
are generated if the
|
||||
.Co burst-file
|
||||
command is used.
|
||||
.DS
|
||||
.so bpl.mm
|
||||
.DE
|
||||
.bp
|
||||
.H 2 "Appendix B: Shotline File Format"
|
||||
Below is a description of the format of the shotline files that are
|
||||
generated if the
|
||||
.Co shotline-file
|
||||
command is used.
|
||||
.DS
|
||||
.so shotlines.mm
|
||||
.DE
|
||||
.de TX
|
||||
.ce
|
||||
TABLE OF CONTENTS \" define header for TOC page
|
||||
..
|
||||
.de TY \" suppress default TOC header
|
||||
..
|
||||
.TC
|
||||
.\" .CS
|
||||
@@ -1,12 +0,0 @@
|
||||
.TS
|
||||
center,box;
|
||||
l.
|
||||
4001 4003 255 255 0 # Fuel
|
||||
4050 4050 255 255 0 # Fuel
|
||||
8000 8001 255 100 255 # Ammo
|
||||
100 165 150 255 100 # Hull armor
|
||||
610 619 220 150 100 # Commander
|
||||
720 729 220 150 100 # Gunner
|
||||
830 839 220 150 100 # Loader
|
||||
940 949 220 150 100 # Driver
|
||||
.TE
|
||||
@@ -1,55 +0,0 @@
|
||||
.so defs.mm
|
||||
.ps -2
|
||||
.vs -2
|
||||
.TS
|
||||
center,allbox,tab(@);
|
||||
cb cb cb
|
||||
_ _ _
|
||||
cb ci c.
|
||||
COMMAND@ARGUMENTS@DESCRIPTION
|
||||
attack-direction@azim_angle elev_angle@specify azimuth and elevation of attack relative to target
|
||||
burst-air-file@file@input burst air idents from \fIfile\fR
|
||||
burst-armor-file@file@input burst armor idents from \fIfile\fR
|
||||
burst-coordinates@X Y Z@input single burst point location in target coordinates
|
||||
burst-distance@distance@offset burst point along shotline (see \fBBurst Distance\fR)
|
||||
burst-file@file@output burst point library to \fIfile\fR
|
||||
cell-size@distance@specify shotline separation (equidistant horizontal and vertical)
|
||||
color-file@file@input ident to color mapping from \fIfile\fR (for graphics)
|
||||
cone-half-angle@angle@specify limiting angle for spall ray generation
|
||||
critical-comp-file@file@input critical component idents from \fIfile\fR
|
||||
deflect-spall-cone@flag@deflect axis of spall cone half way towards exit normal
|
||||
dither-cells@flag@if \fIyes\fR, randomly offset shotline within grid cell
|
||||
enclose-target@@generate rectangular grid of shotlines for full target envelope
|
||||
enclose-portion@left right bottom top@T{
|
||||
generate partial envelope by specifying grid boundaries
|
||||
T}
|
||||
error-file@file@divert all diagnostics to \fIfile\fR
|
||||
execute@@initiate a run (no output produced without this command)
|
||||
grid-file@file@save shotline locations (Y' Z') in \fIfile\fR
|
||||
ground-plane@flag [Z +X -X +Y -Y]@T{
|
||||
if \fIyes\fR, burst on ground (see \fBGround Plane Bursting\fR).
|
||||
T}
|
||||
histogram-file@file@write hit frequency histogram to \fIfile\fR
|
||||
image-file@file@generate frame buffer image on specified \fIfile\fR or device
|
||||
input-2d-shot@Y' Z'@input single shotline location as grid offsets
|
||||
input-3d-shot@X Y Z@input single shotline location in target coordinates
|
||||
max-barriers@count@specify the maximum number of components to report along spall ray
|
||||
max-spall-rays@count@specify the desired number of spall rays generated per burst point
|
||||
plot-file@file@generate \*(U) plot in \fIfile\fR
|
||||
read-2d-shot-file@file@read shot locations from \fIfile\fR as grid offsets (see \fBinput-2d-shot\fR)
|
||||
read-3d-shot-file@file@read shot locations from \fIfile\fR in target coords. (see \fBinput-3d-shot\fR)
|
||||
read-burst-file@file@read burst point locations from \fIfile\fR (see \fBburst-coordinates\fR)
|
||||
read-input-file@file@read key word commands from \fIfile\fR
|
||||
report-overlaps@flag@if \fIyes\fR, log overlap diagnostics
|
||||
shotline-burst@flag [flag]@T{
|
||||
if \fIyes\fR, generate burst points along shotlines (see \fBBurst on Contact\fR).
|
||||
T}
|
||||
shotline-file@file@output shot line data to \fIfile\fR
|
||||
target-file@file@read \*(m) data base from \fIfile\fR
|
||||
target-objects@object0 [object1 object2 ...]@list objects from \*(m) data base to interrogate
|
||||
units@name@linear units (\fIinches,feet,millimeters,centimeters,meters\fR)
|
||||
write-input-file@file@save script of commands in \fIfile\fR
|
||||
#@@any line beginning with the `\fB#\fR' character is a comment
|
||||
.TE
|
||||
.ps +2
|
||||
.vs +2
|
||||
@@ -1,21 +0,0 @@
|
||||
.ds A) \fI axis\fR
|
||||
.ds a) \fI axes\fR
|
||||
.ds B) \fB\s-1BRL-CAD\s0\fR
|
||||
.ds b) \fBburst\fR
|
||||
.ds f) \fBlibfb\fR
|
||||
.ds F) \fB\s-1FASTGEN\s0\fR
|
||||
.ds G) \fB\s-1PGEN\s0\fR
|
||||
.ds l) \fBlibrt\fR
|
||||
.ds m) \fBmged\fR
|
||||
.ds p) \fBlibplot3\fR
|
||||
.ds P) \fB\s-1PDAM\s0\fR
|
||||
.ds S) \fB\s-1SHOTGEN\s0\fR
|
||||
.ds U) \s-1UNIX\s0 \*(Tm
|
||||
.ds X) \fIX\fR
|
||||
.ds Y) \fIY\fR
|
||||
.ds Z) \fIZ\fR
|
||||
.ds x) \fIX'\fR
|
||||
.ds y) \fIY'\fR
|
||||
.ds z) \fIZ'\fR
|
||||
.ds HF 3 3 3 3 3 3 3
|
||||
.ds HP +2 +2 +2 +2 +2 +2 +2
|
||||
@@ -1,15 +0,0 @@
|
||||
.TS
|
||||
center,allbox,tab(@);
|
||||
cb cb cb cb cb
|
||||
_ _ _ _ _
|
||||
lb ci ci ci l.
|
||||
COLOR@R@G@B@REPRESENTATION
|
||||
red@255@0@0@axis of grid
|
||||
black@0@0@0@grid cell boundaries
|
||||
blue@150@100@255@outside of grid
|
||||
lt grey@200@200@200@shot missed target
|
||||
white@255@255@255@shot hit target
|
||||
lt green@200@255@200@burst occurred but hit no critical components
|
||||
pink@255@200@200@burst occurred and hit some critical components
|
||||
purple@255@0@255@a ground burst occurred
|
||||
.TE
|
||||
@@ -1,12 +0,0 @@
|
||||
.TS
|
||||
center,allbox;
|
||||
cb cb
|
||||
_ _
|
||||
ci c.
|
||||
KEY FUNCTION
|
||||
u or ^P move cursor to item above the current item
|
||||
d or ^N move cursor to item below the current item
|
||||
h or ? print help message about the current item
|
||||
q exit the current menu without making a selection
|
||||
space select the current item
|
||||
.TE
|
||||
@@ -1,11 +0,0 @@
|
||||
.TS
|
||||
center,box;
|
||||
l.
|
||||
600-999
|
||||
1011
|
||||
4002-4050
|
||||
8000
|
||||
9001
|
||||
9004
|
||||
9005
|
||||
.TE
|
||||
@@ -1,53 +0,0 @@
|
||||
A joint-services sponsored program is currently establishing a Ballistic
|
||||
Research Laboratory-Computer Aided Design (\*(B))
|
||||
modeling capability at Eglin Air Force Base, Florida.
|
||||
Currently, the Air Force uses \*(F) to model target geometries using
|
||||
polygonal facets, two-dimensional plates, and some solid primitives.
|
||||
They also maintain compatibility with \*(S), a precursor to \*(F).
|
||||
These modelers are cumbersome to use by today's standards and the resultant
|
||||
descriptions,
|
||||
while taking an extremely long time to build,
|
||||
fall far short of the accuracy and information content of true
|
||||
combinatorial solid geometry models such as produced by
|
||||
the \fBM\fRultiple-device \fBG\fRraphics \fBED\fRitor (\*(m)),
|
||||
the \*(B) modeler.
|
||||
Along with this capability comes several key requirements,
|
||||
one of which will be addressed in this paper;
|
||||
an interface to Eglin AFB's Point Burst Damage Assessment Model (\*(P))
|
||||
from \*(B) solid models.
|
||||
.P
|
||||
The \*(b) program enables the user to direct ray tracing
|
||||
of the \*(m) models to prepare inputs to the
|
||||
\*(P) code in the form of shotline files and burst point library files.
|
||||
The program is capable of supporting analyses of varied threat
|
||||
mechanisms on \*(m) targets.
|
||||
The shotline and burst point library files are written in
|
||||
.SM ASCII
|
||||
and are supplemented with both shaded, color images
|
||||
and 3-d vector plots using the \*(B) frame buffer (\*(f)) and extended
|
||||
\*(U)
|
||||
.FS \*(Tm
|
||||
UNIX is a registered trademark of AT&T.
|
||||
.FE
|
||||
plot (\*(p)) libraries for portability to virtually all hardware
|
||||
platforms running the \*(U) operating system.
|
||||
The terminal-independent user interface employs hierarchical menus
|
||||
coupled with optional graphics displays facilitating ease of use and
|
||||
maximizing information feed back to the operator while permitting full
|
||||
featured use from any video terminal or window system.
|
||||
The menu-driven interface is coupled with an interpreter that
|
||||
accepts key word commands for batch input if the user wishes to
|
||||
detach the job to run unattended.
|
||||
These key word command files can either be prepared automatically from
|
||||
the user-selected parameters orchestrated by the menu system,
|
||||
typed in by hand with an editor,
|
||||
or perhaps generated from another process in a pipeline configuration.
|
||||
.P
|
||||
This paper is intended to serve a dual function,
|
||||
both as a technical memorandum,
|
||||
and as a user manual.
|
||||
Hopefully,
|
||||
not only will it help one appreciate why \*(b) was developed in the first place
|
||||
but will help readers decide whether they need to acquire it,
|
||||
and if so,
|
||||
how to use it.
|
||||
@@ -1,28 +0,0 @@
|
||||
'\" define macro for program usage examples
|
||||
.de Ex
|
||||
.sp
|
||||
.in +0.5i
|
||||
\fI$\ \\$1\fR
|
||||
.in -0.5i
|
||||
.sp
|
||||
..
|
||||
'\" define macro for naming coordinate axes
|
||||
.de Ax
|
||||
\\$1, \\$2, and \\$3\fI axes\fR
|
||||
..
|
||||
'\" define macro for naming commands
|
||||
.de Co
|
||||
\fB\\$1\fR
|
||||
..
|
||||
'\" define macros for command descriptions.
|
||||
.de Cs \" Start command description.
|
||||
.br
|
||||
\s-1\fB[menu reference:\\$1]\fR\s0
|
||||
.P
|
||||
..
|
||||
.de Ce \" End command description.
|
||||
.sp
|
||||
..
|
||||
.de Ud
|
||||
.BI \\$1 (\\$2)\^
|
||||
..
|
||||
@@ -1,48 +0,0 @@
|
||||
.so defs.mm
|
||||
.H 1 Introduction
|
||||
.H 1 "User Interface"
|
||||
.H 2 "Program Invocation"
|
||||
.H 2 "Command Input"
|
||||
.H 2 "Screen Layout"
|
||||
.H 2 "Hierarchical Menus"
|
||||
.H 2 "Scrolling Region"
|
||||
.H 1 "Shotlining Options"
|
||||
.H 2 "Attack Direction"
|
||||
.H 2 "Cell Size"
|
||||
.H 2 "Dithering"
|
||||
.H 2 "Gridding"
|
||||
.H 3 "Envelope"
|
||||
.H 4 "Enclose target"
|
||||
.H 4 "Enclose portion of target"
|
||||
.H 3 "Input shot coordinates"
|
||||
.H 4 "Target coordinate system"
|
||||
.H 5 "Type in 3-D coordinates"
|
||||
.H 5 "Read file of 3-D coordinates"
|
||||
.H 4 "Shotline coordinate system"
|
||||
.H 5 "Type in 2-D coordinates"
|
||||
.H 5 "Read file of 2-D coordinates"
|
||||
.H 1 "Bursting Options"
|
||||
.H 2 "Method of Locating Burst Point"
|
||||
.H 3 "Input burst point coordinates"
|
||||
.H 4 "Type in 3-D coordinates"
|
||||
.H 4 "Read file of 3-D coordinates"
|
||||
.H 3 "Burst on contact"
|
||||
.H 4 "Ground plane bursting"
|
||||
.H 4 "Burst on armor"
|
||||
.H 2 "Bursting Parameters"
|
||||
.H 3 "Burst distance"
|
||||
.H 3 "Sampling cone half angle"
|
||||
.H 3 "Deflected sampling cone"
|
||||
.H 3 "Number of sampling rays"
|
||||
.H 3 "Maximum barriers"
|
||||
.H 1 "Output Options"
|
||||
.H 2 "UNIX Plot File"
|
||||
.H 2 "Frame Buffer Image"
|
||||
.H 2 "Burst Point Library"
|
||||
.H 2 "Shotline File"
|
||||
.H 2 "Grid File"
|
||||
.H 2 "Script File"
|
||||
.H 2 "Error Log"
|
||||
.H 1 Conclusion
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
.TS
|
||||
center,box,tab(@);
|
||||
l.
|
||||
OVERLAP:
|
||||
reg=/component/turret/tur.ext/tur.armor/tur.bot{{0}} isol=s2,
|
||||
reg=/component/hull/hull.ext/hull.armor/r1.top{{0}} osol=ss4,
|
||||
depth 544.21mm at (-471.784,812.8,0) x-2 y1 lvl0 purpose=shotline
|
||||
_
|
||||
OVERLAP:
|
||||
reg=/component/turret/tur.ext/tur.ring{{0}} isol=ss2,
|
||||
reg=/component/turret/tur.ext/tur.armor/tur.bot{{0}} osol=s2,
|
||||
depth 25.39mm at (-418.907,812.8,0) x-2 y1 lvl1 purpose=normal thickness
|
||||
_
|
||||
OVERLAP:
|
||||
reg=/component/turret/tur.ext/tur.ring{{0}} isol=ss2,
|
||||
reg=/component/turret/tur.ext/tur.armor/tur.bot{{0}} osol=s2,
|
||||
depth 52.88mm at (-418.907,-812.8,0) x-2 y1 lvl1 purpose=spall ray
|
||||
.TE
|
||||
@@ -1,13 +0,0 @@
|
||||
.TS
|
||||
center,allbox,tab(@);
|
||||
cb cb cb cb cb
|
||||
_ _ _ _ _
|
||||
lb ci ci ci l.
|
||||
COLOR@R@G@B@REPRESENTATION
|
||||
yellow@255@255@0@grid cell centers
|
||||
red@255@0@0@burst cone
|
||||
blue@0@0@255@default component intersection
|
||||
lt blue@100@100@255@default outside air intersection
|
||||
lt green@100@255@100@default inside air intersection
|
||||
purple@255@0@255@default critical component intersection
|
||||
.TE
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
MASTER=burst
|
||||
#MASTER=debug
|
||||
|
||||
doclifter -h hints.txt -x -vvvv $MASTER.mm #2>t
|
||||
|
||||
STATUS=$?
|
||||
|
||||
echo "doclifter return value for '$MASTER' was '$STATUS'"
|
||||
@@ -1,54 +0,0 @@
|
||||
.TS
|
||||
center,box,tab(@);
|
||||
c0 l s s s.
|
||||
@0.97 user + 1.21 sys in 6 elapsed secs (16.1667%)
|
||||
.T&
|
||||
c0 c c c c
|
||||
c0 | c | c | c | c
|
||||
c0 | c | c | c | c
|
||||
c0 | c | _ | c | c
|
||||
c0 | c | c | c | c
|
||||
c0 | c | c | c | c
|
||||
c0 | c | c _ c
|
||||
c0 | c | c c c .
|
||||
@_@_@_@
|
||||
@units@bursting method@burst-distance
|
||||
@project files@\fBbursting parameters\fR@\fBcone-half-angle\fR
|
||||
@target files@@deflect-spall-cone
|
||||
@shotlines@@max-spall-rays
|
||||
@\fBburst points\fR@@max-barriers
|
||||
@comment
|
||||
@execute
|
||||
@preferences
|
||||
@_@
|
||||
.sp 2
|
||||
.T&
|
||||
c0 lb s s c
|
||||
c0 lb s s c
|
||||
c0 l s s s .
|
||||
@degrees from spall cone axis to limit burst rays
|
||||
@Cone angle ? (degrees)[45.000000]
|
||||
@___BURST (2.2)_______________________________________________
|
||||
.T&
|
||||
c0 l l.
|
||||
@error-file@tfiles/ktank.log
|
||||
@plot-file@tfiles/ktank.plot
|
||||
@image-file@/dev/sgi
|
||||
@units@inches
|
||||
@shotline-file@tfiles/ktank.shotlines
|
||||
@burst-file@tfiles/ktank.burst
|
||||
@burst-air-file@tfiles/ktank,air.ids
|
||||
@burst-armor-file@tfiles/ktank,armor.ids
|
||||
@critical-comp-file@tfiles/ktank,crit.ids
|
||||
@color-file@tfiles/ktank,colors
|
||||
@burst-distance@0
|
||||
@cell-size@16
|
||||
@attack-direction@0 0
|
||||
@max-spall-rays@50
|
||||
@cone-half-angle@45
|
||||
@target-file@/vld/moss/g/ktank.g
|
||||
@target-objects@component
|
||||
@report-overlaps@no
|
||||
@shotline-burst@yes yes
|
||||
@#ground-plane@yes 66 200 200 200 200
|
||||
.TE
|
||||
@@ -1,12 +0,0 @@
|
||||
.TS
|
||||
center;
|
||||
c c c.
|
||||
\d\s+6\s+4^\s-4\s-6\u _ \d\s+6\s+4^\s-4\s-6\u
|
||||
| target files |
|
||||
| shotlines |
|
||||
| burst points |
|
||||
| comment |
|
||||
| \fBexecute\fR |
|
||||
| preferences |
|
||||
\s+2+\s0 _ \s+2+\s0
|
||||
.TE
|
||||
@@ -1,29 +0,0 @@
|
||||
.TS
|
||||
center,allbox,tab(@);
|
||||
lb lb lb
|
||||
_ _ _
|
||||
l l l.
|
||||
record description@field format@field description
|
||||
run header@'1'@record number 1
|
||||
@1x,f9.4@attack azimuth in degrees
|
||||
@1x,f8.4@attack elevation in degrees
|
||||
@1x,f7.2@shotline separation
|
||||
@1x,f7.2@maximum Y' coordinate of target
|
||||
@1x,f7.2@minimum Y' coordinate of target
|
||||
@1x,f7.2@maximum Z' coordinate of target
|
||||
@1x,f7.2@minimum Z' coordinate of target
|
||||
@1x,6a@units (\fImm,cm,inches,feet,meters\fR)
|
||||
shotline header@'2'@record number 2
|
||||
@1x,f8.3@Y' coordinate of shotline
|
||||
@1x,f8.3@Z' coordinate of shotline
|
||||
shotline intersections@'3'@record number 3
|
||||
@1x,f8.2@X' coordinate of intersection
|
||||
@1x,f7.3@sine of fallback angle of exit normal
|
||||
@1x,f7.2@rotation angle of exit normal in degrees
|
||||
@1x,i4@component code number
|
||||
@1x,f8.2@normal thickness of component
|
||||
@1x,f8.2@line-of-sight thickness of component
|
||||
@1x,i2@space code following component
|
||||
@1x,f7.2@obliquity angle at entry to component in degrees
|
||||
@1x,f7.2@obliquity angle at exit from component in degrees
|
||||
.TE
|
||||
@@ -1,12 +0,0 @@
|
||||
.TS
|
||||
center,tab(@);
|
||||
c c c c c.
|
||||
\s+2+\s0@_@\s+2+\s0@_@\s+2+\s0
|
||||
|@units@|@\fBtarget-file\fR@|
|
||||
|@project files@|@target-objects@|
|
||||
|@\fBtarget files\fR@|@burst-air-file@|
|
||||
|@shotlines@|@burst-armor-file@|
|
||||
|@burst points@|@critical-comp-file@|
|
||||
|@comment@|@color-file@|
|
||||
\s+2v\s0@_@\s+2+\s0@_@\s+2+\s0
|
||||
.TE
|
||||
@@ -1,10 +0,0 @@
|
||||
.ce
|
||||
\fB``burst''; Air Force Vulnerability Analyses from BRL-CAD Models\fR
|
||||
.ce
|
||||
"\fIGary S. Moss"
|
||||
.sp
|
||||
.ce 4
|
||||
"\fRBRL-CAD Open Source"
|
||||
.sp
|
||||
.ce
|
||||
"moss@vmb.brl.mil"
|
||||
@@ -1,12 +0,0 @@
|
||||
.TS
|
||||
center;
|
||||
c c c.
|
||||
\s+2+\s0 _ \s+2+\s0
|
||||
| \fBunits\fR |
|
||||
| project files |
|
||||
| target files |
|
||||
| shotlines |
|
||||
| burst points |
|
||||
| comment |
|
||||
\s+2v\s0 _ \s+2v\s0
|
||||
.TE
|
||||
@@ -5465,20 +5465,11 @@ x delete character
|
||||
<entry>
|
||||
<link linkend="permute">permute</link>
|
||||
</entry>
|
||||
<entry>
|
||||
<link linkend="pl">pl</link>
|
||||
</entry>
|
||||
<entry>
|
||||
<link linkend="plot">plot</link>
|
||||
</entry>
|
||||
<entry>
|
||||
<link linkend="polybinout">polybinout</link>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<link linkend="pov">pov</link>
|
||||
</entry>
|
||||
<entry>
|
||||
<link linkend="prcolor">prcolor</link>
|
||||
</entry>
|
||||
@@ -11731,12 +11722,12 @@ foo.r_xpand/R
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
extrude – experimental.
|
||||
extrude
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
sketch – experimental.
|
||||
sketch
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@@ -12690,53 +12681,6 @@ foo.r_xpand/R
|
||||
<para>
|
||||
<emphasis role="strong"></emphasis>
|
||||
</para>
|
||||
<variablelist xml:id="pl">
|
||||
<varlistentry>
|
||||
<term>
|
||||
pl [<emphasis>-float</emphasis>] [<emphasis>-zclip</emphasis>]
|
||||
[<emphasis>-2d</emphasis>] [<emphasis>-grid</emphasis>]
|
||||
<emphasis>out_file</emphasis> | <quote>|</quote> filter
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The <quote>pl</quote> command creates a UNIX plot of the
|
||||
current MGED display. If an <emphasis>output_file</emphasis>
|
||||
is specified, the plot is stored in that file. If a
|
||||
<emphasis>filter</emphasis> is specified, the output is sent
|
||||
to that <emphasis>filter</emphasis>. The
|
||||
<emphasis>-float</emphasis> option requests a plot file with
|
||||
real numbers rather than integers. The
|
||||
<emphasis>-zclip</emphasis> option requests that the plot be
|
||||
clipped to the viewing cube in the Z-direction. The
|
||||
<emphasis>-2d</emphasis> option requests a two-dimensional
|
||||
plot (the default is 3D). The <emphasis>-grid</emphasis>
|
||||
option is intended to include a grid in the plot, but is
|
||||
currently not implemented. This command uses the
|
||||
<emphasis>dm-plot</emphasis> display manager. The
|
||||
<link linkend="plot">plot</link> command performs the same
|
||||
function, but does not use the <emphasis>dm-plot</emphasis>
|
||||
display manager.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
Examples:
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
mged> pl -float | pldebug
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
– Create a UNIX plot of the current MGED display and pipe the
|
||||
results to the <emphasis>pldebug</emphasis> command.
|
||||
</para>
|
||||
<para>
|
||||
<emphasis role="strong"></emphasis>
|
||||
</para>
|
||||
<variablelist xml:id="plot">
|
||||
<varlistentry>
|
||||
<term>
|
||||
@@ -12758,11 +12702,7 @@ foo.r_xpand/R
|
||||
<emphasis>-2d</emphasis> option requests a two-dimensional
|
||||
plot (the default is 3D). The <emphasis>-grid</emphasis>
|
||||
option is intended to include a grid in the plot, but is
|
||||
currently not implemented. This command does not use the
|
||||
<emphasis>dm-plot</emphasis> display manager. The
|
||||
<link linkend="pl">pl</link> command performs the same
|
||||
function, but does use the <emphasis>dm-plot</emphasis>
|
||||
display manager.
|
||||
currently not implemented.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -12784,36 +12724,6 @@ foo.r_xpand/R
|
||||
<para>
|
||||
<emphasis role="strong"></emphasis>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term xml:id="polybinout">
|
||||
polybinout file
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Store vlist polygons into polygon file (experimental).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
<emphasis role="strong"></emphasis>
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term xml:id="pov">
|
||||
pov args
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Set the point-of-view (experimental).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
<emphasis role="strong"></emphasis>
|
||||
</para>
|
||||
<variablelist xml:id="prcolor">
|
||||
<varlistentry>
|
||||
<term>
|
||||
|
||||
@@ -904,7 +904,7 @@ Engineering Company, 2002):</para>
|
||||
<para><option>-R refset_name</option> - specifies a desired reference set (which Unigraphics uses to provide additional control over assembly components), overriding the reference set specified in the Unigraphics model.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>-f</option> - facetizes all the geometry. If this option is not specified, the converter will attempt to create CSG equivalent geometry wherever possible. (Note that this option is experimental.)</para>
|
||||
<para><option>-f</option> - facetizes all the geometry. If this option is not specified, the converter will attempt to create CSG equivalent geometry wherever possible.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>-s</option> - lists all features that were attempted to convert to CSG. (This option and the <option>-f</option> option are mutually exclusive.)</para>
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
are combined using boolean operations to form regions of homogeneous material.
|
||||
</para>
|
||||
<para>
|
||||
The database is organized as a <emphasis>directed acyclic graph</emphasis> (DAG), which
|
||||
comprises
|
||||
The database is organized as a <emphasis>directed acyclic graph</emphasis> (DAG), which is
|
||||
comprised of:
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
@@ -107,7 +107,7 @@
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis>arcs</emphasis> - contain boolean operators and 4x4 homogeneous transformation matrices.</para>
|
||||
<para><emphasis>arcs</emphasis> - containing boolean operators and 4x4 homogeneous transformation matrices.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -1600,14 +1600,6 @@
|
||||
place of anameN+1 signals the end of the ASCII attribute data.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
PROPOSED: A second type of attribute has an ASCII key but a binary value.
|
||||
Such attributes follow the ASCII-valued ones after the double NULLs:
|
||||
<literallayout class="normal">anameN+1 NULL uintN <uintN binary bytes> [...0 or more binary attribute pairs]</literallayout>
|
||||
where, for each binary attribute pair, the uintN is of size AWid and is
|
||||
the length of the binary value for its ASCII key.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Every object in the database may have zero or more attributes
|
||||
attached to it; the meaning of these attributes will vary
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,8 @@ set(specifications_EN
|
||||
)
|
||||
ADD_DOCBOOK("HTML;PHP;PDF" specifications_EN specifications/en "")
|
||||
|
||||
CMAKEFILES(BRL_CAD_g_format_V6.xml)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
|
||||
@@ -18,6 +18,7 @@ set(man1_EN
|
||||
brlcad-config.xml
|
||||
brlcad.xml
|
||||
buffer.xml
|
||||
burst.xml
|
||||
bw-fb.xml
|
||||
bw-imp.xml
|
||||
bw-pix.xml
|
||||
@@ -93,6 +94,7 @@ set(man1_EN
|
||||
g-nff.xml
|
||||
g-nmg.xml
|
||||
g-obj.xml
|
||||
g-ply.xml
|
||||
g-raw.xml
|
||||
g-shell-rect.xml
|
||||
g-step.xml
|
||||
@@ -113,6 +115,7 @@ set(man1_EN
|
||||
gqa.xml
|
||||
halftone.xml
|
||||
hex.xml
|
||||
icv.xml
|
||||
iges-g.xml
|
||||
imgdims.xml
|
||||
ir-X.xml
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='gstl1'>
|
||||
<refmeta>
|
||||
<refentrytitle>G-PLY
|
||||
</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='software'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>g-ply</refname>
|
||||
<refpurpose> Stanford PLY exporter (BRL-CAD to PLY)</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<command>g-ply</command>
|
||||
<arg choice='opt'>-v</arg>
|
||||
<arg choice='opt'>-xX <replaceable>lvl</replaceable></arg>
|
||||
<arg choice='opt'>-a <replaceable>abs_tess_tol</replaceable></arg>
|
||||
<arg choice='opt'>-r <replaceable>rel_tess_tol</replaceable></arg>
|
||||
<arg choice='opt'>-n <replaceable>norm_tess_tol</replaceable></arg>
|
||||
<arg choice='opt'>-t <replaceable>type</replaceable></arg>
|
||||
<arg choice='opt'>-s</arg>
|
||||
<arg choice='opt'>-D <replaceable>dist_calc_tol</replaceable></arg>
|
||||
<arg choice='plain'>-o <replaceable>output_file_name</replaceable></arg>
|
||||
<arg choice='plain'><replaceable>database.g</replaceable></arg>
|
||||
<arg choice='plain' rep='repeat'><replaceable>object(s)</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<refsect1 xml:id='description'><title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>g-ply</command> converts the specified<emphasis remap='I'>object(s)</emphasis>
|
||||
from a BRL-CAD <emphasis remap='I'>database.g</emphasis> file to the
|
||||
<emphasis remap='I'>Stanfort PLY</emphasis> file format.
|
||||
</para>
|
||||
|
||||
<para>The following options are recognized.</para>
|
||||
<variablelist remap='TP'>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-o filename</option></term>
|
||||
<listitem><para>Specify output file name.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-s</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Write out one object per file, instead of merging individual objects into a single ply file.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-t</option> type (asc: ascii), (le: little endian), (be: big endian)</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify the type of PLY file to write.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-D#</option></term>
|
||||
<listitem>
|
||||
<para>Specify a calculational distance tolerance (mm). Any two vertices that are
|
||||
less than this distance apart will be treated as the same vertex.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-a#</option></term>
|
||||
<listitem><para>Specify the absolute tesselation tolerance.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-r#</option></term>
|
||||
<listitem><para>Specify the relative tesselation tolerance.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-n#</option></term>
|
||||
<listitem><para>Specify the surface-normal tesselation tolerance.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-x#</option></term>
|
||||
<listitem><para>Specify an RT debug flag.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-X#</option></term>
|
||||
<listitem><para>Specify an NMG debug flag.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-v</option></term>
|
||||
<listitem><para>Enable verbose output.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='example'>
|
||||
<title>EXAMPLE</title>
|
||||
<synopsis>
|
||||
$ g-ply -o <emphasis remap='I'>sample.ply sample.g sample_object</emphasis>
|
||||
</synopsis>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='diagnostics'>
|
||||
<title>DIAGNOSTICS</title>
|
||||
<para>Error messages are intended to be self-explanatory.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='author'>
|
||||
<title>AUTHOR</title>
|
||||
<para>BRL-CAD Team</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='copyright'>
|
||||
<title>COPYRIGHT</title>
|
||||
<para>
|
||||
This software is Copyright (c) 2003-2016 by the United States
|
||||
Government as represented by U.S. Army Research Laboratory.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='bug_reports'>
|
||||
<title>BUG REPORTS</title>
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='icv1'>
|
||||
<refmeta>
|
||||
<refentrytitle>ICV</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>icv</refname>
|
||||
<refpurpose>Convert images to and from various formats</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<command>icv</command>
|
||||
<arg choice='opt'>-h</arg>
|
||||
<arg choice='opt'>-i <replaceable>file</replaceable></arg>
|
||||
<arg choice='opt'>--input-format <replaceable>fmt</replaceable></arg>
|
||||
<arg choice='opt'>-o <replaceable>file</replaceable></arg>
|
||||
<arg choice='opt'>--output-format <replaceable>fmt</replaceable></arg>
|
||||
<arg choice='opt'>-w <replaceable>width</replaceable></arg>
|
||||
<arg choice='opt'><replaceable>input_file</replaceable></arg>
|
||||
<arg choice='opt'><replaceable>output_file</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<refsection xml:id='description'>
|
||||
<title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>icv</command> is a tool to convert images to and from a variety of
|
||||
image formats. Currently support formats include:
|
||||
|
||||
<table>
|
||||
<title>Supported ICV Image Formats</title>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Format</entry>
|
||||
<entry>Extension</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>PIX - pixel sequence of R/G/B values stored as unsigned chars.</entry>
|
||||
<entry>pix</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Double PIX - double precision pixel sequence</entry>
|
||||
<entry>dpix</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>Portable Network Graphics</entry>
|
||||
<entry>png</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>PPM - "lowest common denominator" Netbpm color iamge format</entry>
|
||||
<entry>ppm</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>BW - black and white image data</entry>
|
||||
<entry>bw</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>(TODO) Utah Raster Toolkit Run-Length Encoded (RLE)</entry>
|
||||
<entry>rle</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='options'>
|
||||
<title>OPTIONS</title>
|
||||
<para>
|
||||
File types will be deduced unless explicitly specfied with the <option>input-format</option>
|
||||
and/or <option>output-format</option> options.
|
||||
|
||||
For file types like PIX that do not encode dimensional information, <command>icv</command>
|
||||
will attempt to guess the image size based on various assumptions (a square image, known sizes
|
||||
for image displays, paper sizes at various dots-per-inch, etc.). If the users does know
|
||||
the correct image width and height, they may be specified with the <option>w</option> and
|
||||
<option>n</option> options.
|
||||
</para>
|
||||
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><option>-h</option>, <option>--help</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print help and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-i</option> <replaceable>file</replaceable>, <option>--input</option> <replaceable>file</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify an input file. If none is specified, the first non-option-related argument will be used as the input file name.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-o</option> <replaceable>file</replaceable>, <option>--output</option> <replaceable>file</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify an input file. If none is specified, the second non-option-related argument will be used as the output file name.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-w</option> <replaceable>#</replaceable>, <option>--width</option> <replaceable>#</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify the width of the input image. Useful for file types such as PIX that do not encode explicit size information.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-n</option> <replaceable>#</replaceable>, <option>--height</option> <replaceable>#</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify the height of the input image. Useful for file types such as PIX that do not encode explicit size information.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--input-format</option> <replaceable>fmt</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Explicitly specify input file format.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--output-format</option> <replaceable>fmt</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Explicitly specify output file format.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='example'>
|
||||
<title>EXAMPLE</title>
|
||||
<literallayout remap='RS'>
|
||||
icv -w 1024 -n 512 tank.pix tank.png
|
||||
</literallayout>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='see_also'>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>pix</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>bw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='author'>
|
||||
<title>AUTHOR</title>
|
||||
<para>
|
||||
Clifford Yapp
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='copyright'>
|
||||
<title>COPYRIGHT</title>
|
||||
<para>
|
||||
This software is Copyright (c) 1989-2016 by the United States
|
||||
Government as represented by U.S. Army Research Laboratory.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='bug_reports'>
|
||||
<title>BUG REPORTS</title>
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
|
||||
@@ -365,6 +365,13 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-z</option></term>
|
||||
<listitem>
|
||||
<para>Enables OpenCL accelerated raytracing (OpenCL must be enabled at compilation time for this option to be present.)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-A #</option></term>
|
||||
<listitem>
|
||||
|
||||
@@ -348,8 +348,7 @@ as a region.
|
||||
"matname" is either a NULL pointer, or a pointer to a string
|
||||
containing the material property name.
|
||||
"matparm" is either a NULL pointer, or a pointer to a string
|
||||
containing the material property parameter information,
|
||||
which is material-specific (and still experimental).
|
||||
containing the material property parameter information specific to that material.
|
||||
Color is passed as an array of three unsigned chars in "rgb".
|
||||
Color "inherit" is a boolean, and if true, the color and material
|
||||
properties will be passed from upper-level objects to lower-level
|
||||
|
||||
@@ -22,6 +22,8 @@ set_target_properties(attr_std_list_xml PROPERTIES FOLDER "DocBook")
|
||||
set(man5_EN
|
||||
dsp.xml
|
||||
${CMAKE_CURRENT_BINARY_DIR}/attributes.xml
|
||||
burst_point_library.xml
|
||||
burst_shotline_files.xml
|
||||
bw.xml
|
||||
cmap.xml
|
||||
pix.xml
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='burst_point_library'>
|
||||
<refmeta>
|
||||
<refentrytitle>Burst Point Library File Format</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>burst_point_library</refname>
|
||||
<refpurpose>Data output by the <command>burst-file</command> command from the burst tool.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsection xml:id='format'>
|
||||
<title>FORMAT</title>
|
||||
<para>
|
||||
|
||||
Burst point library files are composed of single-line records. Each line begins with a
|
||||
digit that identifies the type of record it represents. The file is composed of one or more runs that
|
||||
begin with a run header. Each shotline that intersects the target will result in a shotline header that is
|
||||
followed by one or more shotline intersection records. If a burst point occurs along a shotline, the burst ray header will
|
||||
immediately follow that shotline's last intersection record. Each burst ray header records will be
|
||||
immediately followed by burst ray intersection records, one for each ray that strikes a critical component.
|
||||
|
||||
<table>
|
||||
<title>Burst Point Library File Format</title>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Record Description</entry>
|
||||
<entry>Field Format</entry>
|
||||
<entry>Field Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<row>
|
||||
<entry>run header</entry>
|
||||
<entry>'1'</entry>
|
||||
<entry>record number 1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f9.4</entry>
|
||||
<entry>attack azimuth (degrees)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.4</entry>
|
||||
<entry>attack elevation (degrees)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f5.2</entry>
|
||||
<entry>burst distance</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f10.2</entry>
|
||||
<entry>projected area associated with burst point</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,6a</entry>
|
||||
<entry>units (mm,cm,inches,feet,meters)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f9.6</entry>
|
||||
<entry>ray solid angle (steradians)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>shotline header</entry>
|
||||
<entry>'2'</entry>
|
||||
<entry>record number 2</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>Y' coordinate of shotline</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>Z' coordinate of shotline</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>shotline intersections</entry>
|
||||
<entry>'3'</entry>
|
||||
<entry>record number 3</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.2</entry>
|
||||
<entry>X' coordinate of component intersection</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.2</entry>
|
||||
<entry>line-of-sight thickness of component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i4</entry>
|
||||
<entry>component code number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i2</entry>
|
||||
<entry>space code</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.3</entry>
|
||||
<entry>sine of fallback angle of exit normal</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>rotation angle of exit normal (degrees)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.3</entry>
|
||||
<entry>cosine of obliquity angle at entry</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,a1</entry>
|
||||
<entry>burst flag ('1' for yes, '0' for no)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>burst ray header</entry>
|
||||
<entry>'4'</entry>
|
||||
<entry>record number 4</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>azimuth angle WRT shotline (radians)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>sine of elevation angle WRT shotline</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i6</entry>
|
||||
<entry>sequential ray number for this burst point</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>burst ray intersections</entry>
|
||||
<entry>'5'</entry>
|
||||
<entry>record number 5</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f10.3</entry>
|
||||
<entry>distance to first contact with component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f9.3</entry>
|
||||
<entry>line-of-sight thickness of component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f9.3</entry>
|
||||
<entry>normal thickness of component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i4</entry>
|
||||
<entry>space code</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>ix,i4</entry>
|
||||
<entry>component code number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>ix,f6.3</entry>
|
||||
<entry>cosine of obliquity angle at entry</entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
</refsection>
|
||||
<refsection xml:id='see_also'>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>burst</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='author'>
|
||||
<title>AUTHOR</title>
|
||||
<para>BRL-CAD Team</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='copyright'>
|
||||
<title>COPYRIGHT</title>
|
||||
<para>
|
||||
This software is Copyright (c) 1989-2016 by the United States
|
||||
Government as represented by U.S. Army Research Laboratory.
|
||||
</para>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='bug_reports'>
|
||||
<title>BUG REPORTS</title>
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
@@ -0,0 +1,198 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='burst_shotline_5'>
|
||||
<refmeta>
|
||||
<refentrytitle>Burst Shotline File Format</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>burst_shotline_files</refname>
|
||||
<refpurpose>Data output by the <command>shotline-file</command> command from the burst tool.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsection xml:id='format'>
|
||||
<title>FORMAT</title>
|
||||
<para>
|
||||
|
||||
Burst shotline files are composed of single-line records. Each line begins with a
|
||||
digit that identifies the type of record it represents. The file is composed of one or more runs that
|
||||
begin with a run header. Each shotline that intersects the target will result in a shotline header that is
|
||||
followed by one or more shotline intersection records.
|
||||
|
||||
<table>
|
||||
<title>Shotline File Format</title>
|
||||
<tgroup cols="3">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Record Description</entry>
|
||||
<entry>Field Format</entry>
|
||||
<entry>Field Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<row>
|
||||
<entry>run header</entry>
|
||||
<entry>'1'</entry>
|
||||
<entry>record number 1</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f9.4</entry>
|
||||
<entry>attack azimuth (degrees)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.4</entry>
|
||||
<entry>attack elevation (degrees)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>shotline separation</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>maximum Y' coordinate of target</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>minimum Y' coordinate of target</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>maximum Z' coordinate of target</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>minimum Z' coordinate of target</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,6a</entry>
|
||||
<entry>units (mm,cm,inches,feet,meters)</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>shotline header</entry>
|
||||
<entry>'2'</entry>
|
||||
<entry>record number 2</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>Y' coordinate of shotline</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.3</entry>
|
||||
<entry>Z' coordinate of shotline</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>shotline intersections</entry>
|
||||
<entry>'3'</entry>
|
||||
<entry>record number 3</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.2</entry>
|
||||
<entry>X' coordinate of component intersection</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.3</entry>
|
||||
<entry>sine of fallback angle of exit normal</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>rotation angle of exit normal in degrees</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i4</entry>
|
||||
<entry>component code number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.2</entry>
|
||||
<entry>normal thickness of component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f8.2</entry>
|
||||
<entry>line-of-sight thickness of component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,i2</entry>
|
||||
<entry>space code following component</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>obliquity angle at entry to component in degrees</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry></entry>
|
||||
<entry>1x,f7.2</entry>
|
||||
<entry>obliquity angle at exit from component in degrees</entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
</refsection>
|
||||
<refsection xml:id='see_also'>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>burst</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='author'>
|
||||
<title>AUTHOR</title>
|
||||
<para>BRL-CAD Team</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='copyright'>
|
||||
<title>COPYRIGHT</title>
|
||||
<para>
|
||||
This software is Copyright (c) 1989-2016 by the United States
|
||||
Government as represented by U.S. Army Research Laboratory.
|
||||
</para>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='bug_reports'>
|
||||
<title>BUG REPORTS</title>
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>.
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
@@ -130,6 +130,7 @@ set(mann_EN
|
||||
loadtk.xml
|
||||
lookat.xml
|
||||
ls.xml
|
||||
lt.xml
|
||||
make.xml
|
||||
make_pnts.xml
|
||||
mater.xml
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
<article xmlns="http://docbook.org/ns/docbook" version="5.0">
|
||||
<title>MGED Commands - Manual Pages</title>
|
||||
<title>BRL-CAD Manual Pages</title>
|
||||
|
||||
|
||||
|
||||
<para>
|
||||
This is MGED's help system for commands available at the MGED
|
||||
prompt. To bring up the manual page for a specific command
|
||||
select it from the list to the left of this welcome message.
|
||||
</para>
|
||||
This is BRL-CAD's tool for viewing manual pages for commands. To bring up
|
||||
the manual page for a specific command select it from the list to the
|
||||
left of this welcome message.
|
||||
</para>
|
||||
<para>
|
||||
By default, the list will itemize GED commands if the man viewer is
|
||||
launched from MGED or Archer, and command line commands if the brlman
|
||||
program is run directly from the command line. To specify a specific
|
||||
section of manual pages to list with brlman, use the -S option on the
|
||||
command line to specify 1, 3, 5 or n (with n being GED commands.)
|
||||
</para>
|
||||
<para>
|
||||
These manual pages are written in Docbook format and displayed
|
||||
as HTML.
|
||||
|
||||
@@ -683,6 +683,21 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<variablelist>
|
||||
<cmdsynopsis>
|
||||
<command>csg</command>
|
||||
</cmdsynopsis>
|
||||
<varlistentry>
|
||||
<term></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Take the specified B-Rep and attempt to generate a CSG
|
||||
implicit boolean tree that will define the same solid
|
||||
shape.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='examples'>
|
||||
|
||||
+126
-103
@@ -1,134 +1,157 @@
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="draw">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>DRAW</refentrytitle>
|
||||
<manvolnum>nged</manvolnum>
|
||||
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
<refmeta>
|
||||
<refentrytitle>DRAW</refentrytitle>
|
||||
<manvolnum>nged</manvolnum>
|
||||
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>draw</refname>
|
||||
<refpurpose>Adds <emphasis>objects</emphasis>> to the display list so that they will appear on the
|
||||
<emphasis>MGED</emphasis> display. The <command>e</command> command is a synonym for <command>draw</command>.
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
<refnamediv xml:id="name">
|
||||
<refname>draw</refname>
|
||||
<refpurpose>Adds <emphasis>objects</emphasis>> to the display list so that they will appear on the
|
||||
<emphasis>MGED</emphasis> display. The <command>e</command> command is a synonym for <command>draw</command>.
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>draw</command>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>draw</command>
|
||||
|
||||
<arg choice="opt" rep="norepeat">-A <replaceable>attribute name/value pairs</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-s</arg>
|
||||
<arg choice="opt" rep="norepeat">-A -o<replaceable>attribute name/value pairs</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-C#/#/#</arg>
|
||||
<arg choice="opt" rep="norepeat">-L #</arg>
|
||||
<arg choice="opt" rep="norepeat"><replaceable>-m1</replaceable></arg>
|
||||
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-A <replaceable>attribute name/value pairs</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-s</arg>
|
||||
<arg choice="opt" rep="norepeat">-A -o<replaceable>attribute name/value pairs</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-C#/#/#</arg>
|
||||
<arg choice="opt" rep="norepeat">-L #</arg>
|
||||
<arg choice="opt" rep="norepeat">-R</arg>
|
||||
<arg choice="opt" rep="norepeat">-S</arg>
|
||||
<arg choice="opt" rep="norepeat"><replaceable>-m1</replaceable></arg>
|
||||
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>Adds <emphasis>objects</emphasis>> to the display list so that they will appear on the MGED display. The <command>e</command> command is a synonym for draw.
|
||||
<para>
|
||||
Adds <emphasis>objects</emphasis> to the display list so that they will appear on the
|
||||
MGED display. The <command>e</command> command is a synonym for draw.
|
||||
</para>
|
||||
<itemizedlist mark="bullet">
|
||||
<listitem>
|
||||
<para>
|
||||
<itemizedlist mark="bullet">
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-C</emphasis> option provides the user a way to specify a color that overrides all other
|
||||
color specifications including combination colors and region-id-based colors.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-s</emphasis> option specifies that subtracted and intersected objects should be drawn
|
||||
with shape lines rather than dot-dash lines.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-A</emphasis> option specifies that the arguments provided to this command are attribute
|
||||
name/value pairs, and only objects having the specified attributes and values are
|
||||
to be displayed. The default (without <emphasis>-o</emphasis>) is that only objects having all the
|
||||
specified attribute name/value pairs will be displayed.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-m1</emphasis> option will display BOTs shaded if the display manager is OpenGL and the
|
||||
zbuffer and lighting is enabled. To enable these settings, from the MGED GUI, choose
|
||||
"Modes/Display Manager/OpenGL", "Misc/Z-buffer" and "Misc/Lighting". If the zbuffer and lighting is
|
||||
already enabled, toggle them off then back on to ensure they are enabled.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-m1</emphasis> option will display BOTs shaded if the display manager is OpenGL and the
|
||||
zbuffer and lighting is enabled. To enable these settings, from the MGED GUI, choose
|
||||
"Modes/Display Manager/OpenGL", "Misc/Z-buffer" and "Misc/Lighting". If the zbuffer and lighting is
|
||||
already enabled, toggle them off then back on to ensure they are enabled.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-L</emphasis> option allows the user to specify a face count. BoT primitives with more
|
||||
faces than the user set threshold will be represented in wireframe drawing by their bounding boxes rather
|
||||
than the full BoT wireframe.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-M</emphasis> option tells draw to be "minimalist" by skipping subtraction objects when drawing.
|
||||
This is useful in situations where an object has many large objects subtracted from it but those objects have
|
||||
relatively minimal impact on the shape - this results in the wireframe bearing little resemablance to the
|
||||
evaluated shape.
|
||||
</para>
|
||||
</listitem>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-R</emphasis> option tells draw to not change the view size when drawing new objects.
|
||||
Without this flag, <command>draw</command> will automatically size the view to make the new object(s)
|
||||
visible when the view was previously empty.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <emphasis>-S</emphasis> option tells draw to be
|
||||
"simplified" by skipping subtraction objects when drawing, not
|
||||
drawing NMG interior surfaces, and potentially more. Skipping
|
||||
subtractions is useful in situations where an object has many
|
||||
large objects subtracted from it but those objects have
|
||||
relatively minimal impact on the shape. This results in the
|
||||
default wireframe bearing little resemablance to the evaluated
|
||||
shape.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="examples"><title>EXAMPLES</title>
|
||||
</itemizedlist>
|
||||
</refsection>
|
||||
|
||||
<para>The following examples show the use of the <command>draw</command> command to draw particular objects,
|
||||
to specify color, to draw with shape lines rather than dot-dash lines, and to limit the objects to be drawn
|
||||
to those having specific attribute names and value pairs.
|
||||
</para>
|
||||
<example><title>Draw specific objects in the <emphasis>MGED</emphasis> display.</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><prompt>mged></prompt> <userinput>draw object1 object2</userinput></term>
|
||||
<listitem>
|
||||
<para><emphasis>Object1</emphasis> and <emphasis>object2</emphasis> are drawn in the <emphasis>MGED</emphasis> display.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</example>
|
||||
|
||||
<example><title>Specify the color used to draw the object.</title>
|
||||
<refsection xml:id="examples">
|
||||
<title>EXAMPLES</title>
|
||||
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>draw -C 255/255/255 object2</userinput>
|
||||
The following examples show the use of the <command>draw</command> command to draw
|
||||
particular objects,
|
||||
to specify color, to draw with shape lines rather than dot-dash lines, and to limit the objects to be drawn
|
||||
to those having specific attribute names and value pairs.
|
||||
</para>
|
||||
<para>Object2 is drawn in white.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>Limit the objects to be drawn to those having specific attribute names and value pairs.
|
||||
</title>
|
||||
<example>
|
||||
<title>Draw specific objects in the <emphasis>MGED</emphasis> display.</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><prompt>mged></prompt> <userinput>draw object1 object2</userinput></term>
|
||||
<listitem>
|
||||
<para><emphasis>Object1</emphasis> and <emphasis>object2</emphasis> are drawn in the <emphasis>MGED</emphasis> display.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Specify the color used to draw the object.</title>
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>draw -C 255/255/255 object2</userinput>
|
||||
</para>
|
||||
<para>Object2 is drawn in white.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>Limit the objects to be drawn to those having specific attribute names and value pairs.</title>
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>draw -A -o Comment {First comment} Comment {Second comment}</userinput>
|
||||
</para>
|
||||
<para>
|
||||
Objects having a Comment attribute with a value of either "First comment" or "Second comment" are drawn.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="author">
|
||||
<title>AUTHOR</title>
|
||||
<para>BRL-CAD Team</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="bug_reports">
|
||||
<title>BUG REPORTS</title>
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>draw -A -o Comment {First comment} Comment {Second comment}</userinput>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>, or via the "cadbug.sh" script.
|
||||
</para>
|
||||
<para>Objects having a Comment attribute with a value of either "First comment" or "Second comment" are drawn.
|
||||
</para>
|
||||
</example>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
|
||||
|
||||
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
|
||||
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>, or via the "cadbug.sh" script.
|
||||
</para>
|
||||
</refsection>
|
||||
</refsection>
|
||||
</refentry>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>expand</refname>
|
||||
<refpurpose>Performs matching of the <emphasis>regular_expression</emphasis> with the names
|
||||
<refpurpose>Performs matching of the <emphasis>shell globbing pattern</emphasis> with the names
|
||||
of all the objects in the database. It returns all those that successfully match.
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
@@ -19,14 +19,14 @@ of all the objects in the database. It returns all those that successfully match
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>expand</command>
|
||||
|
||||
<arg choice="req" rep="norepeat"><replaceable>regular_expression</replaceable></arg>
|
||||
<arg choice="req" rep="norepeat"><replaceable>globbing_expression</replaceable></arg>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>Performs matching of the <emphasis>regular_expression</emphasis> with the names
|
||||
<para>Performs matching of the <emphasis>globbing_expression</emphasis> with the names
|
||||
of all the objects in the database. It returns all those that successfully match.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<command>lc</command>
|
||||
<group choice="opt" rep="norepeat">
|
||||
<arg choice="plain" rep="norepeat">-d</arg>
|
||||
<arg choice="plain" rep="norepeat">-m</arg>
|
||||
<arg choice="plain" rep="norepeat">-s</arg>
|
||||
</group>
|
||||
<arg choice="opt" rep="norepeat">-r</arg>
|
||||
@@ -69,6 +70,18 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-m</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies to list only regions with shared 'region_id' values where one
|
||||
or more of the objects in the set of objects defined by shared 'region_id'
|
||||
value reports a different 'material_id' and/or 'los'. Essentially, this
|
||||
allows users to quickly find and resolve inconsistent 'material_id' and
|
||||
'los' settings within a 'region_id' group.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-r</option></term>
|
||||
<listitem>
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="lt">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>LT</refentrytitle>
|
||||
<manvolnum>nged</manvolnum>
|
||||
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>lt</refname>
|
||||
<refpurpose>Generates a list of the child objects of a combination.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>lt</command>
|
||||
<arg choice="opt" rep="norepeat"><replaceable>char</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>
|
||||
The <command>lt</command> command generates a list of the children found
|
||||
in a combination object specified by the user. By default it will print
|
||||
a curly bracket bound set of objects and their boolean flags. If the <option>-c</option>
|
||||
option is specified, it will instead use the character supplied to the <option>-c</option>
|
||||
option as the separator in the list of objects. In the latter mode the
|
||||
boolean flags will not be printed.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="examples"><title>EXAMPLES</title>
|
||||
|
||||
<example><title>Tcl Output</title>
|
||||
<literallayout class="normal">
|
||||
mged> lt component
|
||||
{u bed} {u frame} {u cab} {u suspension} {u misc} {u power.train}
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
<example><title>CSV Output</title>
|
||||
<literallayout class="normal">
|
||||
mged> lt -c , component
|
||||
bed,frame,cab,suspension,misc,power.train
|
||||
</literallayout>
|
||||
</example>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="author"><title>AUTHOR</title>
|
||||
<para>BRL-CAD Team</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
|
||||
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <devs@brlcad.org>, or via the "cadbug.sh" script.
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
@@ -550,14 +550,10 @@
|
||||
<listitem>
|
||||
<para>
|
||||
The below operator applies the expression to every
|
||||
object above the current full path to that object,
|
||||
and returns TRUE if one or more of them satisfies
|
||||
the expression. E.g., searching with -below -name
|
||||
s\* on /component/region.r/start_comb.c/prim1.s
|
||||
would return TRUE for /component and
|
||||
/component/region.r as start_comb.c is below both of
|
||||
them, but would return FALSE for any deeper objects
|
||||
(i.e., prim1.s in this example).
|
||||
object below the matching object in the tree
|
||||
hierarchy. E.g. searching with -below -name start\*
|
||||
on /component/region.r/start_comb.c/prim1.s would
|
||||
return prim1.s, as the object below start_comb.c
|
||||
</para>
|
||||
<para>
|
||||
Optionally, inequality and equality constraints on
|
||||
@@ -581,12 +577,14 @@
|
||||
<listitem>
|
||||
<para>
|
||||
The above operator applies the expression to every
|
||||
object below the current object in the tree
|
||||
hierarchy. It finds objects that are above a given
|
||||
expression. In effect, it does a "mini-search" up
|
||||
the tree using the current object path as a starting
|
||||
point and returns TRUE if the expression is
|
||||
satisfied by one or more objects in the sub-tree.
|
||||
object above the current full path to that object,
|
||||
and returns TRUE if one or more of them satisfies
|
||||
the expression. E.g., searching with -above -name
|
||||
s\* on /component/region.r/start_comb.c/prim1.s
|
||||
would return TRUE for /component and
|
||||
/component/region.r as start_comb.c is below both of
|
||||
them, but would return FALSE for any deeper objects
|
||||
(i.e., prim1.s in this example).
|
||||
</para>
|
||||
<para>
|
||||
Optionally, inequality and equality constraints on
|
||||
@@ -850,6 +848,17 @@
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>Find All Combs Containing At Least One of Two Objects (dbfind)</title>
|
||||
|
||||
<para>
|
||||
<userinput>search |. ( -depth 0 -above=1 -name obj1 ) -or ( -depth 0 -above=1 -name obj2 ) </userinput>
|
||||
</para>
|
||||
<para>
|
||||
Prints all combs immediately above either obj1 or obj2. This more or less mimics the results of
|
||||
the dbfind command, although it will be somewhat slower (noticably so on large databases.)
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>Finding all Plate-Mode BoT Objects</title>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -129,9 +129,6 @@ on the command line.
|
||||
to view coordinates with perspective.
|
||||
</DD>
|
||||
<P>
|
||||
<DT><I>viewName</I> <A NAME="pov"><B>pov</B></A></DT>
|
||||
<DD>Set the point of view (experimental).</DD>
|
||||
<P>
|
||||
<DT><I>viewName</I> <A NAME="rmat"><B>rmat</B></A> [<I>matrix</I>]</DT>
|
||||
<DD>Set/get the rotation matrix.</DD>
|
||||
<P>
|
||||
|
||||
@@ -307,15 +307,9 @@
|
||||
<TD WIDTH="19%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#permute"><FONT SIZE=2>permute</FONT></A></TD>
|
||||
<TD WIDTH="20%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#pl"><FONT SIZE=2>pl</FONT></A></TD>
|
||||
<TD WIDTH="22%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#plot"><FONT SIZE=2>plot</FONT></A></TD>
|
||||
<TD WIDTH="21%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#polybinout"><FONT SIZE=2>polybinout</FONT></A></TD>
|
||||
</TR>
|
||||
<TR><TD WIDTH="18%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#pov"><FONT SIZE=2>pov</FONT></A></TD>
|
||||
<TD WIDTH="19%" VALIGN="MIDDLE">
|
||||
<TR><TD WIDTH="19%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#prcolor"><FONT SIZE=2>prcolor</FONT></A></TD>
|
||||
<TD WIDTH="20%" VALIGN="MIDDLE">
|
||||
<FONT SIZE=2><P></FONT><A HREF="#prefix"><FONT SIZE=2>prefix</FONT></A></TD>
|
||||
@@ -2385,16 +2379,6 @@ foo.r_xpand/R
|
||||
|
||||
</B><FONT SIZE=2><P>-- Rearrange the vertices of the currently edited <I>ARB</I> such that vertex #3 becomes vertex #1, vertex #2 remains #2, and vertex #1 becomes #3. </P></DIR>
|
||||
|
||||
<P><HR ALIGN="RIGHT"></P>
|
||||
</FONT><B><DL>
|
||||
<DT><A NAME="pl"></A>pl</B> [<I>-float</I>] [<I>-zclip</I>] [<I>-2d</I>] [<I>-grid</I>] <I>out_file</I> | "|" <I>filter</DT>
|
||||
</I><DD>The "pl" command creates a UNIX plot of the current MGED display. If an <I>output_file</I> is specified, the plot is stored in that file. If a <I>filter</I> is specified, the output is sent to that <I>filter</I>. The <I>-float</I> option requests a plot file with real numbers rather than integers. The <I>-zclip</I> option requests that the plot be clipped to the viewing cube in the Z-direction. The <I>-2d</I> option requests a two-dimensional plot (the default is 3D). The <I>-grid</I> option is intended to include a grid in the plot, but is currently not implemented. This command uses the <I>dm-plot</I> display manager. The <A HREF="#plot">plot</A> command performs the same function, but does not use the <I>dm-plot</I> display manager.</DD>
|
||||
<FONT SIZE=4><DT>Examples:</DT>
|
||||
</FONT><TT><DD>mged></TT> <B>pl -float | pldebug</DD>
|
||||
</DL><DIR>
|
||||
|
||||
</B><FONT SIZE=2><P>-- Create a UNIX plot of the current MGED display and pipe the results to the <I>pldebug</I> command.</P></DIR>
|
||||
|
||||
<P><HR ALIGN="RIGHT"></P>
|
||||
</FONT><B><DL>
|
||||
<DT><A NAME="plot"></A>plot</B> [<I>-float</I>] [<I>-zclip</I>] [<I>-2d</I>] [<I>-grid</I>] <I>out_file</I> | "|" <I>filter</DT>
|
||||
@@ -2405,15 +2389,6 @@ foo.r_xpand/R
|
||||
|
||||
</B><FONT SIZE=2><P>-- Create a UNIX plot of the current MGED display and pipe the results to the <I>pldebug</I> command. </P></DIR>
|
||||
|
||||
<P><HR ALIGN="RIGHT"></P>
|
||||
</FONT><B><DL>
|
||||
<DT><A NAME="polybinout"></A>polybinout</B> <I>file</DT>
|
||||
</I><DD>Store vlist polygons into polygon file (experimental).</DD>
|
||||
</DL>
|
||||
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
|
||||
</FONT><B><DL>
|
||||
<DT><A NAME="pov"></A>pov</B> <I>args</DT>
|
||||
</I><DD>Set the point-of-view (experimental).</DD>
|
||||
</DL>
|
||||
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
|
||||
</FONT><B><DL>
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
joint
|
||||
polybinout
|
||||
pov
|
||||
solids_on_ray
|
||||
|
||||
@@ -3827,7 +3827,6 @@
|
||||
*** [[file:../src/libged/comb_std.c][comb_std.c]]
|
||||
*** [[file:../src/libged/mater.c][mater.c]]
|
||||
*** [[file:../src/libged/prcolor.c][prcolor.c]]
|
||||
*** [[file:../src/libged/pov.c][pov.c]]
|
||||
*** [[file:../src/libged/inside.c][inside.c]]
|
||||
*** [[file:../src/libged/rot.c][rot.c]]
|
||||
*** [[file:../src/libged/bot_face_sort.c][bot_face_sort.c]]
|
||||
@@ -4097,7 +4096,6 @@
|
||||
*** [[file:../src/libged/nmg_mm.c][nmg_mm.c]]
|
||||
*** [[file:../src/libged/red.c][red.c]]
|
||||
*** [[file:../src/libged/nmg_kill_f.c][nmg_kill_f.c]]
|
||||
*** [[file:../src/libged/polybinout.c][polybinout.c]]
|
||||
*** [[file:../src/libged/zoom][zoom]]
|
||||
**** [[file:../src/libged/zoom/zoom.c][zoom.c]]
|
||||
*** [[file:../src/libged/pmodel2view.c][pmodel2view.c]]
|
||||
|
||||
+3
-3
@@ -44,8 +44,8 @@
|
||||
/** @file bg.h */
|
||||
/** @} */
|
||||
|
||||
#ifndef GM_H
|
||||
#define GM_H
|
||||
#ifndef BG_H
|
||||
#define BG_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
#include "bg/tri_ray.h"
|
||||
#include "bg/tri_tri.h"
|
||||
|
||||
#endif /* GM_H */
|
||||
#endif /* BG_H */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
|
||||
+3
-3
@@ -18,8 +18,8 @@
|
||||
* information.
|
||||
*/
|
||||
|
||||
#ifndef DVEC_H
|
||||
#define DVEC_H
|
||||
#ifndef BN_DVEC_H
|
||||
#define BN_DVEC_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -207,7 +207,7 @@ extern "C++" {
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif /* DVEC_H */
|
||||
#endif /* BN_DVEC_H */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
|
||||
+3
-3
@@ -30,8 +30,8 @@
|
||||
/** @{ */
|
||||
/** @file plot3.h */
|
||||
|
||||
#ifndef PLOT3_H
|
||||
#define PLOT3_H
|
||||
#ifndef BN_PLOT3_H
|
||||
#define BN_PLOT3_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -484,7 +484,7 @@ BN_EXPORT extern void BU_FORTRAN(f3vect, F3VECT)(FILE **fp,
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* PLOT3_H */
|
||||
#endif /* BN_PLOT3_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
|
||||
+3
-3
@@ -26,8 +26,8 @@
|
||||
/** @{ */
|
||||
/** @file spm.h */
|
||||
|
||||
#ifndef SPM_H
|
||||
#define SPM_H
|
||||
#ifndef BN_SPM_H
|
||||
#define BN_SPM_H
|
||||
|
||||
#include "common.h"
|
||||
#include "bn/defines.h"
|
||||
@@ -135,7 +135,7 @@ BN_EXPORT extern void bn_spm_dump(bn_spm_map_t *mp, int verbose);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* SPM_H */
|
||||
#endif /* BN_SPM_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
|
||||
+4
-4
@@ -57,13 +57,13 @@ BN_EXPORT extern int bn_decode_vect(vect_t v,
|
||||
BN_EXPORT extern int bn_decode_hvect(hvect_t v,
|
||||
const char *str);
|
||||
BN_EXPORT extern void bn_encode_mat(struct bu_vls *vp,
|
||||
const mat_t m);
|
||||
const mat_t m, int clamp);
|
||||
BN_EXPORT extern void bn_encode_quat(struct bu_vls *vp,
|
||||
const quat_t q);
|
||||
const quat_t q, int clamp);
|
||||
BN_EXPORT extern void bn_encode_vect(struct bu_vls *vp,
|
||||
const vect_t v);
|
||||
const vect_t v, int clamp);
|
||||
BN_EXPORT extern void bn_encode_hvect(struct bu_vls *vp,
|
||||
const hvect_t v);
|
||||
const hvect_t v, int clamp);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
+93
-110
@@ -67,41 +67,27 @@ extern "C++" {
|
||||
*/
|
||||
class BREP_EXPORT BBNode {
|
||||
public:
|
||||
BBNode();
|
||||
BBNode(const ON_BoundingBox &node);
|
||||
BBNode(CurveTree *ct);
|
||||
BBNode(CurveTree *ct, const ON_BoundingBox &node);
|
||||
BBNode(CurveTree *ct,
|
||||
explicit BBNode(const ON_BoundingBox &node, const CurveTree *ct = NULL);
|
||||
BBNode(const CurveTree *ct,
|
||||
const ON_BoundingBox &node,
|
||||
const ON_BrepFace *face,
|
||||
const ON_Interval &u,
|
||||
const ON_Interval &v,
|
||||
bool checkTrim = false,
|
||||
bool trimmed = false);
|
||||
bool checkTrim,
|
||||
bool trimmed);
|
||||
~BBNode();
|
||||
|
||||
/** List of all children of a given node */
|
||||
std::vector<BBNode *> *m_children;
|
||||
|
||||
/** Curve Tree associated with the parent Surface Tree */
|
||||
CurveTree *m_ctree;
|
||||
|
||||
/** Bounding Box */
|
||||
ON_BoundingBox m_node;
|
||||
|
||||
/** Test if this node is a leaf node in the hierarchy */
|
||||
bool isLeaf();
|
||||
bool isLeaf() const;
|
||||
|
||||
/** Return all leaves below this node that are leaf nodes */
|
||||
void getLeaves(std::list<BBNode *> &out_leaves);
|
||||
void getLeaves(std::list<const BBNode *> &out_leaves) const;
|
||||
|
||||
/** Functions to add and remove child nodes from this node. */
|
||||
void addChild(const ON_BoundingBox &child);
|
||||
void addChild(BBNode *child);
|
||||
void removeChild(BBNode *child);
|
||||
|
||||
/** Report the depth of this node in the hierarchy */
|
||||
int depth();
|
||||
int depth() const;
|
||||
|
||||
/** Get 2 points defining a bounding box
|
||||
*
|
||||
@@ -119,8 +105,28 @@ extern "C++" {
|
||||
* min
|
||||
* @endverbatim
|
||||
*/
|
||||
void GetBBox(float *min, float *max);
|
||||
void GetBBox(double *min, double *max);
|
||||
void GetBBox(float *min, float *max) const;
|
||||
void GetBBox(double *min, double *max) const;
|
||||
|
||||
/** Test whether a ray intersects the 3D bounding volume of the
|
||||
* node - if so, and node is not a leaf node, query children. If
|
||||
* leaf node, and intersects, add to list.
|
||||
*/
|
||||
bool intersectsHierarchy(const ON_Ray &ray, std::list<const BBNode *> &results) const;
|
||||
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt) const;
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v) const;
|
||||
int getLeavesBoundingPoint(const ON_3dPoint &pt, std::list<const BBNode *> &out) const;
|
||||
bool isTrimmed(const ON_2dPoint &uv, const BRNode **closest, double &closesttrim, double within_distance_tol) const;
|
||||
|
||||
void BuildBBox();
|
||||
bool prepTrims();
|
||||
|
||||
/** List of all children of a given node */
|
||||
std::vector<BBNode *> * const m_children;
|
||||
|
||||
/** Bounding Box */
|
||||
ON_BoundingBox m_node;
|
||||
|
||||
/** Surface Information */
|
||||
const ON_BrepFace *m_face;
|
||||
@@ -139,91 +145,43 @@ extern "C++" {
|
||||
/* Normal at the m_estimate point */
|
||||
ON_3dVector m_normal;
|
||||
|
||||
/** Test whether a ray intersects the 3D bounding volume of the
|
||||
* node - if so, and node is not a leaf node, query children. If
|
||||
* leaf node, and intersects, add to list.
|
||||
*/
|
||||
bool intersectedBy(ON_Ray &ray, double *tnear = NULL, double *tfar = NULL);
|
||||
bool intersectsHierarchy(ON_Ray &ray, std::list<BBNode *> &results);
|
||||
private:
|
||||
BBNode(const BBNode &source);
|
||||
BBNode &operator=(const BBNode &source);
|
||||
|
||||
void removeChild(BBNode *child);
|
||||
|
||||
bool intersectedBy(const ON_Ray &ray, double *tnear = NULL, double *tfar = NULL) const;
|
||||
|
||||
/** Report if a given uv point is within the uv boundaries defined
|
||||
* by a node.
|
||||
*/
|
||||
bool containsUV(const ON_2dPoint &uv);
|
||||
bool containsUV(const ON_2dPoint &uv) const;
|
||||
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v);
|
||||
int getLeavesBoundingPoint(const ON_3dPoint &pt, std::list<BBNode *> &out);
|
||||
bool isTrimmed(const ON_2dPoint &uv, BRNode **closest, double &closesttrim, double within_distance_tol) const;
|
||||
bool doTrimming() const;
|
||||
void getTrimsAbove(const ON_2dPoint &uv, std::list<const BRNode *> &out_leaves) const;
|
||||
|
||||
void getTrimsAbove(const ON_2dPoint &uv, std::list<BRNode *> &out_leaves) const;
|
||||
void BuildBBox();
|
||||
bool prepTrims();
|
||||
const BBNode *closer(const ON_3dPoint &pt, const BBNode *left, const BBNode *right) const;
|
||||
|
||||
private:
|
||||
BBNode *closer(const ON_3dPoint &pt, BBNode *left, BBNode *right);
|
||||
std::list<BRNode *> *m_trims_above;
|
||||
/** Curve Tree associated with the parent Surface Tree */
|
||||
const CurveTree * const m_ctree;
|
||||
|
||||
std::list<const BRNode *> * const m_trims_above;
|
||||
};
|
||||
|
||||
inline
|
||||
BBNode::BBNode()
|
||||
: m_ctree(NULL), m_face(NULL), m_checkTrim(true), m_trimmed(false)
|
||||
{
|
||||
m_children = new std::vector<BBNode *>();
|
||||
m_trims_above = new std::list<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
BBNode::BBNode(const ON_BoundingBox &node)
|
||||
: m_ctree(NULL), m_node(node), m_face(NULL), m_checkTrim(true), m_trimmed(false)
|
||||
{
|
||||
for (int i = 0; i < 3; i++) {
|
||||
double d = m_node.m_max[i] - m_node.m_min[i];
|
||||
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
|
||||
m_node.m_min[i] -= 0.001;
|
||||
m_node.m_max[i] += 0.001;
|
||||
}
|
||||
}
|
||||
m_children = new std::vector<BBNode *>();
|
||||
m_trims_above = new std::list<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
BBNode::BBNode(CurveTree *ct)
|
||||
: m_ctree(ct), m_face(NULL), m_checkTrim(true), m_trimmed(false)
|
||||
{
|
||||
m_children = new std::vector<BBNode *>();
|
||||
m_trims_above = new std::list<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
BBNode::BBNode(CurveTree *ct, const ON_BoundingBox &node)
|
||||
: m_ctree(ct), m_node(node), m_face(NULL), m_checkTrim(true), m_trimmed(false)
|
||||
{
|
||||
for (int i = 0; i < 3; i++) {
|
||||
double d = m_node.m_max[i] - m_node.m_min[i];
|
||||
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
|
||||
m_node.m_min[i] -= 0.001;
|
||||
m_node.m_max[i] += 0.001;
|
||||
}
|
||||
}
|
||||
m_children = new std::vector<BBNode *>();
|
||||
m_trims_above = new std::list<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
_BU_ATTR_ALWAYS_INLINE
|
||||
BBNode::BBNode(
|
||||
CurveTree *ct,
|
||||
const ON_BoundingBox &node,
|
||||
const ON_BrepFace *face,
|
||||
const ON_Interval &u,
|
||||
const ON_Interval &v,
|
||||
bool checkTrim /* = false */,
|
||||
bool trimmed /* = false */)
|
||||
: m_ctree(ct), m_node(node), m_face(face), m_u(u), m_v(v),
|
||||
m_checkTrim(checkTrim), m_trimmed(trimmed)
|
||||
BBNode::BBNode(const ON_BoundingBox &node, const CurveTree *ct) :
|
||||
m_children(new std::vector<BBNode *>),
|
||||
m_node(node),
|
||||
m_face(NULL),
|
||||
m_u(),
|
||||
m_v(),
|
||||
m_checkTrim(true),
|
||||
m_trimmed(false),
|
||||
m_estimate(),
|
||||
m_normal(),
|
||||
m_ctree(ct),
|
||||
m_trims_above(new std::list<const BRNode *>)
|
||||
{
|
||||
for (int i = 0; i < 3; i++) {
|
||||
double d = m_node.m_max[i] - m_node.m_min[i];
|
||||
@@ -232,15 +190,38 @@ extern "C++" {
|
||||
m_node.m_max[i] += 0.001;
|
||||
}
|
||||
}
|
||||
m_children = new std::vector<BBNode *>();
|
||||
m_trims_above = new std::list<BRNode *>();
|
||||
}
|
||||
|
||||
inline void
|
||||
BBNode::addChild(const ON_BoundingBox &child)
|
||||
{
|
||||
m_children->push_back(new BBNode(child));
|
||||
inline
|
||||
_BU_ATTR_ALWAYS_INLINE
|
||||
BBNode::BBNode(
|
||||
const CurveTree *ct,
|
||||
const ON_BoundingBox &node,
|
||||
const ON_BrepFace *face,
|
||||
const ON_Interval &u,
|
||||
const ON_Interval &v,
|
||||
bool checkTrim,
|
||||
bool trimmed):
|
||||
m_children(new std::vector<BBNode *>),
|
||||
m_node(node),
|
||||
m_face(face),
|
||||
m_u(u),
|
||||
m_v(v),
|
||||
m_checkTrim(checkTrim),
|
||||
m_trimmed(trimmed),
|
||||
m_estimate(),
|
||||
m_normal(),
|
||||
m_ctree(ct),
|
||||
m_trims_above(new std::list<const BRNode *>)
|
||||
{
|
||||
for (int i = 0; i < 3; i++) {
|
||||
double d = m_node.m_max[i] - m_node.m_min[i];
|
||||
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
|
||||
m_node.m_min[i] -= 0.001;
|
||||
m_node.m_max[i] += 0.001;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline void
|
||||
BBNode::addChild(BBNode *child)
|
||||
@@ -254,25 +235,27 @@ extern "C++" {
|
||||
BBNode::removeChild(BBNode *child)
|
||||
{
|
||||
std::vector<BBNode *>::iterator i;
|
||||
for (i = m_children->begin(); i < m_children->end(); ++i) {
|
||||
for (i = m_children->begin(); i != m_children->end();) {
|
||||
if (*i == child) {
|
||||
delete *i;
|
||||
m_children->erase(i);
|
||||
i = m_children->erase(i);
|
||||
} else {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline bool
|
||||
BBNode::isLeaf()
|
||||
BBNode::isLeaf() const
|
||||
{
|
||||
if (m_children->size() == 0) {
|
||||
if (m_children->empty()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline void
|
||||
BBNode::GetBBox(float *min, float *max)
|
||||
BBNode::GetBBox(float *min, float *max) const
|
||||
{
|
||||
min[0] = m_node.m_min[0];
|
||||
min[1] = m_node.m_min[1];
|
||||
@@ -283,7 +266,7 @@ extern "C++" {
|
||||
}
|
||||
|
||||
inline void
|
||||
BBNode::GetBBox(double *min, double *max)
|
||||
BBNode::GetBBox(double *min, double *max) const
|
||||
{
|
||||
min[0] = m_node.m_min[0];
|
||||
min[1] = m_node.m_min[1];
|
||||
@@ -294,7 +277,7 @@ extern "C++" {
|
||||
}
|
||||
|
||||
inline bool
|
||||
BBNode::intersectedBy(ON_Ray &ray, double *tnear_opt /* = NULL */, double *tfar_opt /* = NULL */)
|
||||
BBNode::intersectedBy(const ON_Ray &ray, double *tnear_opt /* = NULL */, double *tfar_opt /* = NULL */) const
|
||||
{
|
||||
double tnear = -DBL_MAX;
|
||||
double tfar = DBL_MAX;
|
||||
|
||||
+104
-92
@@ -53,37 +53,25 @@ extern "C++" {
|
||||
*/
|
||||
class BREP_EXPORT BRNode {
|
||||
public:
|
||||
BRNode();
|
||||
BRNode(const ON_BoundingBox &node);
|
||||
explicit BRNode(const ON_BoundingBox &node);
|
||||
BRNode(const ON_Curve *curve,
|
||||
int m_adj_face_index,
|
||||
int adj_face_index,
|
||||
const ON_BoundingBox &node,
|
||||
const ON_BrepFace *face,
|
||||
const ON_Interval &t,
|
||||
bool innerTrim = false,
|
||||
bool checkTrim = true,
|
||||
bool trimmed = false);
|
||||
bool innerTrim,
|
||||
bool checkTrim,
|
||||
bool trimmed);
|
||||
~BRNode();
|
||||
|
||||
/** List of all children of a given node */
|
||||
std::vector<BRNode *> *m_children;
|
||||
|
||||
/** Bounding Box */
|
||||
ON_BoundingBox m_node;
|
||||
|
||||
/** Node management functions */
|
||||
void addChild(const ON_BoundingBox &child);
|
||||
void addChild(BRNode *child);
|
||||
void removeChild(BRNode *child);
|
||||
|
||||
/** Test if this node is a leaf node (i.e. m_children is empty) */
|
||||
bool isLeaf();
|
||||
|
||||
/** Return a list of all nodes below this node that are leaf nodes */
|
||||
void getLeaves(std::list<BRNode *> &out_leaves);
|
||||
void getLeaves(std::list<const BRNode *> &out_leaves) const;
|
||||
|
||||
/** Report the depth of this node in the hierarchy */
|
||||
int depth();
|
||||
int depth() const;
|
||||
|
||||
/**
|
||||
* Get 2 points defining bounding box:
|
||||
@@ -99,51 +87,63 @@ extern "C++" {
|
||||
*/
|
||||
void GetBBox(fastf_t *min, fastf_t *max) const;
|
||||
|
||||
/** Surface Information */
|
||||
const ON_BrepFace *m_face;
|
||||
ON_Interval m_u;
|
||||
ON_Interval m_v;
|
||||
bool isTrimmed(const ON_2dPoint &uv, double &trimdist) const;
|
||||
|
||||
/** Trim Curve Information */
|
||||
const ON_Curve *m_trim;
|
||||
ON_Interval m_t;
|
||||
int m_adj_face_index;
|
||||
|
||||
/** Trimming Flags */
|
||||
bool m_checkTrim;
|
||||
bool m_trimmed;
|
||||
bool m_XIncreasing;
|
||||
bool m_Horizontal;
|
||||
bool m_Vertical;
|
||||
bool m_innerTrim;
|
||||
|
||||
ON_3dPoint m_estimate;
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v);
|
||||
fastf_t getLinearEstimateOfV(fastf_t u);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt) const;
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v) const;
|
||||
fastf_t getCurveEstimateOfV(fastf_t u, fastf_t tol) const;
|
||||
fastf_t getCurveEstimateOfU(fastf_t v, fastf_t tol) const;
|
||||
|
||||
bool isTrimmed(const ON_2dPoint &uv, double &trimdist) const;
|
||||
bool doTrimming() const;
|
||||
/** Bounding Box */
|
||||
ON_BoundingBox m_node;
|
||||
|
||||
/** Surface Information */
|
||||
ON_Interval m_v;
|
||||
|
||||
/** Trim Curve Information */
|
||||
int m_adj_face_index;
|
||||
|
||||
/** Trimming Flags */
|
||||
bool m_XIncreasing;
|
||||
bool m_Horizontal;
|
||||
bool m_Vertical;
|
||||
const bool m_innerTrim;
|
||||
|
||||
private:
|
||||
BRNode *closer(const ON_3dPoint &pt, BRNode *left, BRNode *right);
|
||||
BRNode(const BRNode &source);
|
||||
BRNode &operator=(const BRNode &source);
|
||||
|
||||
void removeChild(BRNode *child);
|
||||
|
||||
/** Test if this node is a leaf node (i.e. m_children is empty) */
|
||||
bool isLeaf() const;
|
||||
|
||||
bool doTrimming() const;
|
||||
|
||||
fastf_t getLinearEstimateOfV(fastf_t u) const;
|
||||
|
||||
const BRNode *closer(const ON_3dPoint &pt, const BRNode *left, const BRNode *right) const;
|
||||
|
||||
/** List of all children of a given node */
|
||||
std::vector<const BRNode *> * const m_children;
|
||||
|
||||
const ON_BrepFace * const m_face;
|
||||
ON_Interval m_u;
|
||||
|
||||
const ON_Curve * const m_trim;
|
||||
ON_Interval m_t;
|
||||
|
||||
const bool m_checkTrim;
|
||||
const bool m_trimmed;
|
||||
|
||||
const ON_3dPoint m_estimate;
|
||||
|
||||
fastf_t m_slope;
|
||||
fastf_t m_vdot;
|
||||
fastf_t m_bb_diag;
|
||||
ON_3dPoint m_start;
|
||||
ON_3dPoint m_end;
|
||||
};
|
||||
|
||||
inline
|
||||
BRNode::BRNode()
|
||||
{
|
||||
m_start = ON_3dPoint::UnsetPoint;
|
||||
m_end = ON_3dPoint::UnsetPoint;
|
||||
m_children = new std::vector<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
_BU_ATTR_ALWAYS_INLINE
|
||||
BRNode::BRNode(
|
||||
@@ -152,15 +152,29 @@ extern "C++" {
|
||||
const ON_BoundingBox &node,
|
||||
const ON_BrepFace *face,
|
||||
const ON_Interval &t,
|
||||
bool innerTrim /* = false */,
|
||||
bool checkTrim /* = true */,
|
||||
bool trimmed /* = false */)
|
||||
: m_node(node), m_face(face), m_trim(curve), m_t(t),
|
||||
m_adj_face_index(adj_face_index), m_checkTrim(checkTrim),
|
||||
m_trimmed(trimmed), m_innerTrim(innerTrim), m_slope(0.0), m_vdot(0.0)
|
||||
bool innerTrim,
|
||||
bool checkTrim,
|
||||
bool trimmed) :
|
||||
m_node(node),
|
||||
m_v(),
|
||||
m_adj_face_index(adj_face_index),
|
||||
m_XIncreasing(false),
|
||||
m_Horizontal(false),
|
||||
m_Vertical(false),
|
||||
m_innerTrim(innerTrim),
|
||||
m_children(new std::vector<const BRNode *>),
|
||||
m_face(face),
|
||||
m_u(),
|
||||
m_trim(curve),
|
||||
m_t(t),
|
||||
m_checkTrim(checkTrim),
|
||||
m_trimmed(trimmed),
|
||||
m_estimate(),
|
||||
m_slope(0.0),
|
||||
m_bb_diag(0.0),
|
||||
m_start(curve->PointAt(m_t[0])),
|
||||
m_end(curve->PointAt(m_t[1]))
|
||||
{
|
||||
m_start = curve->PointAt(m_t[0]);
|
||||
m_end = curve->PointAt(m_t[1]);
|
||||
/* check for vertical segments they can be removed from trims
|
||||
* above (can't tell direction and don't need
|
||||
*/
|
||||
@@ -209,28 +223,31 @@ extern "C++" {
|
||||
m_slope = (m_end[Y] - m_start[Y]) / (m_end[X] - m_start[X]);
|
||||
}
|
||||
m_bb_diag = DIST_PT_PT(m_start, m_end);
|
||||
m_children = new std::vector<BRNode *>();
|
||||
}
|
||||
|
||||
inline
|
||||
_BU_ATTR_ALWAYS_INLINE
|
||||
BRNode::BRNode(const ON_BoundingBox &node)
|
||||
: m_node(node)
|
||||
{
|
||||
m_adj_face_index = -99;
|
||||
m_checkTrim = true;
|
||||
m_trimmed = false;
|
||||
m_Horizontal = false;
|
||||
m_Vertical = false;
|
||||
m_XIncreasing = false;
|
||||
m_innerTrim = false;
|
||||
m_bb_diag = 0.0;
|
||||
m_slope = 0.0;
|
||||
m_vdot = 0.0;
|
||||
m_face = NULL;
|
||||
m_trim = NULL;
|
||||
m_start = ON_3dPoint::UnsetPoint;
|
||||
m_end = ON_3dPoint::UnsetPoint;
|
||||
BRNode::BRNode(const ON_BoundingBox &node) :
|
||||
m_node(node),
|
||||
m_v(),
|
||||
m_adj_face_index(-99),
|
||||
m_XIncreasing(false),
|
||||
m_Horizontal(false),
|
||||
m_Vertical(false),
|
||||
m_innerTrim(false),
|
||||
m_children(new std::vector<const BRNode *>),
|
||||
m_face(NULL),
|
||||
m_u(),
|
||||
m_trim(NULL),
|
||||
m_t(),
|
||||
m_checkTrim(true),
|
||||
m_trimmed(false),
|
||||
m_estimate(),
|
||||
m_slope(0.0),
|
||||
m_bb_diag(0.0),
|
||||
m_start(ON_3dPoint::UnsetPoint),
|
||||
m_end(ON_3dPoint::UnsetPoint)
|
||||
{
|
||||
for (int i = 0; i < 3; i++) {
|
||||
double d = m_node.m_max[i] - m_node.m_min[i];
|
||||
if (NEAR_ZERO(d, ON_ZERO_TOLERANCE)) {
|
||||
@@ -240,13 +257,6 @@ extern "C++" {
|
||||
}
|
||||
m_start = m_node.m_min;
|
||||
m_end = m_node.m_max;
|
||||
m_children = new std::vector<BRNode *>();
|
||||
}
|
||||
|
||||
inline void
|
||||
BRNode::addChild(const ON_BoundingBox &child)
|
||||
{
|
||||
m_children->push_back(new BRNode(child));
|
||||
}
|
||||
|
||||
inline void
|
||||
@@ -260,19 +270,21 @@ extern "C++" {
|
||||
inline void
|
||||
BRNode::removeChild(BRNode *child)
|
||||
{
|
||||
std::vector<BRNode *>::iterator i;
|
||||
for (i = m_children->begin(); i < m_children->end(); ++i) {
|
||||
std::vector<const BRNode *>::iterator i;
|
||||
for (i = m_children->begin(); i != m_children->end();) {
|
||||
if (*i == child) {
|
||||
delete *i;
|
||||
m_children->erase(i);
|
||||
i = m_children->erase(i);
|
||||
} else {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline bool
|
||||
BRNode::isLeaf()
|
||||
BRNode::isLeaf() const
|
||||
{
|
||||
if (m_children->size() == 0) {
|
||||
if (m_children->empty()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -298,8 +310,8 @@ extern "C++" {
|
||||
return m_checkTrim;
|
||||
}
|
||||
|
||||
extern bool sortX(BRNode *first, BRNode *second);
|
||||
extern bool sortY(BRNode *first, BRNode *second);
|
||||
extern bool sortX(const BRNode *first, const BRNode *second);
|
||||
extern bool sortY(const BRNode *first, const BRNode *second);
|
||||
|
||||
|
||||
} /* namespace brlcad */
|
||||
|
||||
+27
-22
@@ -46,39 +46,44 @@ extern "C++" {
|
||||
*/
|
||||
class BREP_EXPORT CurveTree {
|
||||
public:
|
||||
CurveTree(const ON_BrepFace *face);
|
||||
explicit CurveTree(const ON_BrepFace *face);
|
||||
~CurveTree();
|
||||
|
||||
BRNode *getRootNode() const;
|
||||
/**
|
||||
* Return just the leaves of the surface tree
|
||||
*/
|
||||
void getLeaves(std::list<const BRNode *> &out_leaves) const;
|
||||
void getLeavesAbove(std::list<const BRNode *> &out_leaves, const ON_Interval &u, const ON_Interval &v) const;
|
||||
void getLeavesAbove(std::list<const BRNode *> &out_leaves, const ON_2dPoint &pt, fastf_t tol) const;
|
||||
void getLeavesRight(std::list<const BRNode *> &out_leaves, const ON_2dPoint &pt, fastf_t tol) const;
|
||||
|
||||
private:
|
||||
CurveTree(const CurveTree &source);
|
||||
CurveTree &operator=(const CurveTree &source);
|
||||
|
||||
const BRNode *getRootNode() const;
|
||||
|
||||
/**
|
||||
* Calculate, using the surface bounding volume hierarchy, a uv
|
||||
* estimate for the closest point on the surface to the point in
|
||||
* 3-space.
|
||||
*/
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt) const;
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v) const;
|
||||
|
||||
/**
|
||||
* Return just the leaves of the surface tree
|
||||
*/
|
||||
void getLeaves(std::list<BRNode *> &out_leaves);
|
||||
void getLeavesAbove(std::list<BRNode *> &out_leaves, const ON_Interval &u, const ON_Interval &v);
|
||||
void getLeavesAbove(std::list<BRNode *> &out_leaves, const ON_2dPoint &pt, fastf_t tol);
|
||||
void getLeavesRight(std::list<BRNode *> &out_leaves, const ON_Interval &u, const ON_Interval &v);
|
||||
void getLeavesRight(std::list<BRNode *> &out_leaves, const ON_2dPoint &pt, fastf_t tol);
|
||||
int depth();
|
||||
void getLeavesRight(std::list<const BRNode *> &out_leaves, const ON_Interval &u, const ON_Interval &v) const;
|
||||
|
||||
private:
|
||||
bool getHVTangents(const ON_Curve *curve, ON_Interval &t, std::list<fastf_t> &list);
|
||||
bool isLinear(const ON_Curve *curve, double min, double max);
|
||||
BRNode *subdivideCurve(const ON_Curve *curve, int adj_face_index, double min, double max, bool innerTrim, int depth);
|
||||
BRNode *curveBBox(const ON_Curve *curve, int adj_face_index, ON_Interval &t, bool leaf, bool innerTrim, const ON_BoundingBox &bb);
|
||||
BRNode *initialLoopBBox();
|
||||
int depth() const;
|
||||
|
||||
const ON_BrepFace *m_face;
|
||||
BRNode *m_root;
|
||||
std::list<BRNode *> *m_sortedX;
|
||||
bool getHVTangents(const ON_Curve *curve, const ON_Interval &t, std::list<fastf_t> &list) const;
|
||||
bool isLinear(const ON_Curve *curve, double min, double max) const;
|
||||
BRNode *subdivideCurve(const ON_Curve *curve, int adj_face_index, double min, double max, bool innerTrim, int depth) const;
|
||||
BRNode *curveBBox(const ON_Curve *curve, int adj_face_index, const ON_Interval &t, bool isLeaf, bool innerTrim, const ON_BoundingBox &bb) const;
|
||||
BRNode *initialLoopBBox() const;
|
||||
|
||||
const ON_BrepFace * const m_face;
|
||||
BRNode * const m_root;
|
||||
std::list<const BRNode *> * const m_sortedX;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -145,9 +145,9 @@ __BEGIN_DECLS
|
||||
return true;
|
||||
}
|
||||
|
||||
BREP_EXPORT void brep_get_plane_ray(ON_Ray &r, plane_ray &pr);
|
||||
BREP_EXPORT void brep_r(const ON_Surface *surf, plane_ray &pr, pt2d_t uv, ON_3dPoint &pt, ON_3dVector &su, ON_3dVector &sv, pt2d_t R);
|
||||
BREP_EXPORT void brep_newton_iterate(plane_ray &pr, pt2d_t R, ON_3dVector &su, ON_3dVector &sv, pt2d_t uv, pt2d_t out_uv);
|
||||
BREP_EXPORT void brep_get_plane_ray(const ON_Ray &r, plane_ray &pr);
|
||||
BREP_EXPORT void brep_r(const ON_Surface* surf, const plane_ray& pr, pt2d_t uv, ON_3dPoint& pt, ON_3dVector& su, ON_3dVector& sv, pt2d_t R);
|
||||
BREP_EXPORT void brep_newton_iterate(const plane_ray& pr, pt2d_t R, const ON_3dVector& su, const ON_3dVector& sv, pt2d_t uv, pt2d_t out_uv);
|
||||
BREP_EXPORT void utah_ray_planes(const ON_Ray &r, ON_3dVector &p1, double &p1d, ON_3dVector &p2, double &p2d);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
+20
-20
@@ -54,16 +54,10 @@ extern "C++" {
|
||||
* SurfaceTree declaration
|
||||
*/
|
||||
class BREP_EXPORT SurfaceTree {
|
||||
private:
|
||||
bool m_removeTrimmed;
|
||||
|
||||
public:
|
||||
SurfaceTree();
|
||||
SurfaceTree(const ON_BrepFace *face, bool removeTrimmed = true, int depthLimit = BREP_MAX_FT_DEPTH, double within_distance_tol = BREP_EDGE_MISS_TOLERANCE);
|
||||
explicit SurfaceTree(const ON_BrepFace *face, bool removeTrimmed = true, int depthLimit = BREP_MAX_FT_DEPTH, double within_distance_tol = BREP_EDGE_MISS_TOLERANCE);
|
||||
~SurfaceTree();
|
||||
|
||||
CurveTree *ctree;
|
||||
|
||||
BBNode *getRootNode() const;
|
||||
|
||||
/**
|
||||
@@ -71,32 +65,38 @@ extern "C++" {
|
||||
* estimate for the closest point on the surface to the point in
|
||||
* 3-space.
|
||||
*/
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v);
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt) const;
|
||||
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v) const;
|
||||
|
||||
/**
|
||||
* Return surface
|
||||
*/
|
||||
const ON_Surface *getSurface();
|
||||
const ON_Surface *getSurface() const;
|
||||
int getSurfacePoint(const ON_3dPoint &pt, ON_2dPoint &uv, const ON_3dPoint &from, double tolerance = BREP_SAME_POINT_TOLERANCE) const;
|
||||
|
||||
/**
|
||||
* Return just the leaves of the surface tree
|
||||
*/
|
||||
void getLeaves(std::list<BBNode *> &out_leaves);
|
||||
int depth();
|
||||
void getLeaves(std::list<const BBNode *> &out_leaves) const;
|
||||
|
||||
const CurveTree *m_ctree;
|
||||
|
||||
private:
|
||||
bool isFlat(ON_Plane frames[]);
|
||||
bool isStraight(ON_Plane frames[]);
|
||||
bool isFlatU(ON_Plane frames[]);
|
||||
bool isFlatV(ON_Plane frames[]);
|
||||
BBNode *subdivideSurface(const ON_Surface *localsurf, const ON_Interval &u, const ON_Interval &v, ON_Plane frames[], int depth, int depthLimit, int prev_knot, double within_distance_tol);
|
||||
BBNode *surfaceBBox(const ON_Surface *localsurf, bool leaf, ON_Plane frames[], const ON_Interval &u, const ON_Interval &v, double within_distance_tol);
|
||||
SurfaceTree(const SurfaceTree &source);
|
||||
SurfaceTree &operator=(const SurfaceTree &source);
|
||||
|
||||
const ON_BrepFace *m_face;
|
||||
int depth() const;
|
||||
bool isFlat(const ON_Plane frames[9]) const;
|
||||
bool isStraight(const ON_Plane frames[9]) const;
|
||||
bool isFlatU(const ON_Plane frames[9]) const;
|
||||
bool isFlatV(const ON_Plane frames[9]) const;
|
||||
BBNode *subdivideSurface(const ON_Surface *localsurf, const ON_Interval &u, const ON_Interval &v, ON_Plane frames[9], int depth, int depthLimit, int prev_knot, double within_distance_tol) const;
|
||||
BBNode *surfaceBBox(const ON_Surface *localsurf, bool leaf, const ON_Plane frames[9], const ON_Interval &u, const ON_Interval &v, double within_distance_tol) const;
|
||||
|
||||
const bool m_removeTrimmed;
|
||||
const ON_BrepFace * const m_face;
|
||||
BBNode *m_root;
|
||||
std::queue<ON_Plane *> *f_queue;
|
||||
std::queue<ON_Plane *> * const m_f_queue;
|
||||
};
|
||||
|
||||
} /* namespace brlcad */
|
||||
|
||||
@@ -25,6 +25,10 @@
|
||||
|
||||
#include <stddef.h> /* for size_t */
|
||||
|
||||
#if defined(USE_BINARY_ATTRIBUTES)
|
||||
# include "bson.h"
|
||||
#endif
|
||||
|
||||
#include "bu/defines.h"
|
||||
#include "bu/magic.h"
|
||||
#include "bu/vls.h"
|
||||
|
||||
+4
-24
@@ -98,19 +98,6 @@
|
||||
#endif /* PATH_SEPARATOR */
|
||||
|
||||
|
||||
/**
|
||||
* @def BU_FLSTR
|
||||
*
|
||||
* Macro for getting a concatenated string of the current file and
|
||||
* line number. Produces something of the form: "filename.c"":""1234"
|
||||
*/
|
||||
#define bu_cpp_str(s) # s
|
||||
#define bu_cpp_xstr(s) bu_cpp_str(s)
|
||||
#define bu_cpp_glue(a, b) a ## b
|
||||
#define bu_cpp_xglue(a, b) bu_cpp_glue(a, b)
|
||||
#define BU_FLSTR __FILE__ ":" bu_cpp_xstr(__LINE__)
|
||||
|
||||
|
||||
/**
|
||||
* shorthand declaration of a printf-style functions
|
||||
*/
|
||||
@@ -133,22 +120,15 @@
|
||||
/**
|
||||
* shorthand declaration of a function that doesn't return
|
||||
*/
|
||||
#ifdef HAVE_NORETURN_ATTRIBUTE
|
||||
#if defined(HAVE_NORETURN_ATTRIBUTE) && defined(HAVE_ANALYZER_NORETURN_ATTRIBUTE)
|
||||
/* clang static analyzer is needing an additional flag set */
|
||||
# define _BU_ATTR_NORETURN __attribute__((__noreturn__)) __attribute__((analyzer_noreturn))
|
||||
#elif defined(HAVE_NORETURN_ATTRIBUTE)
|
||||
# define _BU_ATTR_NORETURN __attribute__((__noreturn__))
|
||||
#else
|
||||
# define _BU_ATTR_NORETURN
|
||||
#endif
|
||||
|
||||
/* For the moment, we need to specially flag some functions
|
||||
* for clang. It's not clear if we will always need to do
|
||||
* this, but for now this suppresses a lot of noise in the
|
||||
* reports */
|
||||
#ifdef HAVE_ANALYZER_NORETURN_ATTRIBUTE
|
||||
# define _BU_ATTR_ANALYZE_NORETURN __attribute__((analyzer_noreturn))
|
||||
#else
|
||||
# define _BU_ATTR_ANALYZE_NORETURN
|
||||
#endif
|
||||
|
||||
/**
|
||||
* shorthand declaration of a function that should always be inline
|
||||
*/
|
||||
|
||||
+7
-6
@@ -133,7 +133,7 @@ BU_EXPORT extern int bu_file_delete(const char *path);
|
||||
* 'matches' array, and followed by a terminating NULL entry.
|
||||
*
|
||||
* If '*matches' is NULL, the caller is expected to free the matches
|
||||
* array with bu_free_argv() If '*matches' is non-NULL (i.e., string
|
||||
* array with bu_argv_free() If '*matches' is non-NULL (i.e., string
|
||||
* array is already allocated or on the stack), the caller is expected
|
||||
* to ensure adequate entries are allocated and call bu_free_array()
|
||||
* to clean up. If 'matches' is NULL, no entries will be allocated or
|
||||
@@ -219,13 +219,14 @@ BU_EXPORT extern int bu_file_mime_int(const char *str);
|
||||
/**
|
||||
* Returns the number of directory entries for a given path matching
|
||||
* an optional glob pattern. If the caller provides a pointer to an
|
||||
* argv-style 'files' array, this function will allocate the array
|
||||
* with dynamically allocated strings for any matching file(s).
|
||||
* argv-style 'files' array, this function will dynamically allocate
|
||||
* an array of strings, filled with the sorted listing of matching
|
||||
* file(s).
|
||||
*
|
||||
* It is the caller's responsibility to free a non-NULL 'files' array
|
||||
* with bu_free_argv().
|
||||
* It is the caller's responsibility to free a non-NULL array with
|
||||
* bu_argv_free().
|
||||
*/
|
||||
BU_EXPORT extern size_t bu_dir_list(const char *path, const char *pattern, char ***files);
|
||||
BU_EXPORT extern size_t bu_file_list(const char *path, const char *pattern, char ***files);
|
||||
|
||||
/**
|
||||
* Call canonicalization routines to both expand and validate
|
||||
|
||||
@@ -46,6 +46,7 @@ __BEGIN_DECLS
|
||||
typedef struct bu_hash_entry bu_hash_entry;
|
||||
typedef struct bu_hash_tbl bu_hash_tbl;
|
||||
|
||||
|
||||
/**
|
||||
* Create and initialize a hash table. The input is the number of desired hash
|
||||
* bins. This number will be rounded up to the nearest power of two, or a
|
||||
@@ -53,6 +54,7 @@ typedef struct bu_hash_tbl bu_hash_tbl;
|
||||
*/
|
||||
BU_EXPORT extern bu_hash_tbl *bu_hash_create(unsigned long tbl_size);
|
||||
|
||||
|
||||
/**
|
||||
* Free all the memory associated with the specified hash table.
|
||||
*
|
||||
@@ -61,6 +63,7 @@ BU_EXPORT extern bu_hash_tbl *bu_hash_create(unsigned long tbl_size);
|
||||
*/
|
||||
BU_EXPORT extern void bu_hash_destroy(bu_hash_tbl *t);
|
||||
|
||||
|
||||
/**
|
||||
* Get the value stored in the hash table entry corresponding to the provided key
|
||||
*
|
||||
@@ -74,6 +77,7 @@ BU_EXPORT extern void bu_hash_destroy(bu_hash_tbl *t);
|
||||
*/
|
||||
BU_EXPORT extern void *bu_hash_get(const bu_hash_tbl *t, const uint8_t *key, size_t key_len);
|
||||
|
||||
|
||||
/**
|
||||
* Set the value stored in the hash table entry corresponding to the provided
|
||||
* key to val, or if no entry corresponding to the provided key exists create a
|
||||
@@ -99,6 +103,7 @@ BU_EXPORT extern void *bu_hash_get(const bu_hash_tbl *t, const uint8_t *key, siz
|
||||
*/
|
||||
BU_EXPORT extern int bu_hash_set(bu_hash_tbl *t, const uint8_t *key, size_t key_len, void *val);
|
||||
|
||||
|
||||
/**
|
||||
* Remove the hash table entry associated with key from the table.
|
||||
*
|
||||
@@ -108,6 +113,7 @@ BU_EXPORT extern int bu_hash_set(bu_hash_tbl *t, const uint8_t *key, size_t key_
|
||||
*/
|
||||
BU_EXPORT extern void bu_hash_rm(bu_hash_tbl *t, const uint8_t *key, size_t key_len);
|
||||
|
||||
|
||||
/**
|
||||
* Supports iteration of all the contents in a hash table.
|
||||
*
|
||||
@@ -131,6 +137,7 @@ BU_EXPORT extern void bu_hash_rm(bu_hash_tbl *t, const uint8_t *key, size_t key_
|
||||
*/
|
||||
BU_EXPORT extern bu_hash_entry *bu_hash_next(bu_hash_tbl *t, bu_hash_entry *p);
|
||||
|
||||
|
||||
/**
|
||||
* Supports iteration of all the contents in a hash table.
|
||||
*
|
||||
|
||||
+2
-2
@@ -177,7 +177,7 @@ BU_EXPORT extern void bu_bomb_add_hook(bu_hook_t func, void *clientdata);
|
||||
* This routine should never return unless there is a BU_SETJUMP()
|
||||
* handler registered.
|
||||
*/
|
||||
BU_EXPORT extern void bu_bomb(const char *str)_BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN;
|
||||
BU_EXPORT extern void bu_bomb(const char *str) _BU_ATTR_NORETURN;
|
||||
|
||||
/**
|
||||
* Semi-graceful termination of the application that doesn't cause a
|
||||
@@ -191,7 +191,7 @@ BU_EXPORT extern void bu_bomb(const char *str)_BU_ATTR_ANALYZE_NORETURN _BU_ATTR
|
||||
*
|
||||
* This routine should never return.
|
||||
*/
|
||||
BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) _BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
|
||||
BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) _BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
|
||||
|
||||
/**
|
||||
* @brief
|
||||
|
||||
+1
-1
@@ -247,7 +247,7 @@ __BEGIN_DECLS
|
||||
/**
|
||||
* Support routine for BU_CKMAG macro.
|
||||
*/
|
||||
BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const char *str, const char *file, int line) _BU_ATTR_ANALYZE_NORETURN;
|
||||
BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const char *str, const char *file, int line) _BU_ATTR_NORETURN;
|
||||
|
||||
|
||||
/** @brief Routines involved with handling "magic numbers" used to identify various in-memory data structures. */
|
||||
|
||||
+4
-13
@@ -84,15 +84,6 @@ BU_EXPORT extern void *bu_realloc(void *ptr,
|
||||
size_t siz,
|
||||
const char *str);
|
||||
|
||||
/**
|
||||
* overflow checking version of realloc for arrays, based on OpenBSD's
|
||||
* reallocarray.
|
||||
*/
|
||||
BU_EXPORT extern void *bu_reallocarray(void *optr,
|
||||
size_t nmemb,
|
||||
size_t size,
|
||||
const char *str);
|
||||
|
||||
/**
|
||||
* Print map of memory currently in use.
|
||||
*/
|
||||
@@ -222,7 +213,7 @@ BU_EXPORT extern int bu_shmget(int *shmid, char **shared_memory, int key, size_t
|
||||
#if 0
|
||||
#define BU_GET(_ptr, _type) _ptr = (_type *)bu_heap_get(sizeof(_type))
|
||||
#else
|
||||
#define BU_GET(_ptr, _type) _ptr = (_type *)bu_calloc(1, sizeof(_type), #_type " (BU_GET) " BU_FLSTR)
|
||||
#define BU_GET(_ptr, _type) _ptr = (_type *)bu_calloc(1, sizeof(_type), #_type " (BU_GET) " CPP_FILELINE)
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -236,7 +227,7 @@ BU_EXPORT extern int bu_shmget(int *shmid, char **shared_memory, int key, size_t
|
||||
#if 0
|
||||
#define BU_PUT(_ptr, _type) *(uint8_t *)(_type *)(_ptr) = /*zap*/ 0; bu_heap_put(_ptr, sizeof(_type)); _ptr = NULL
|
||||
#else
|
||||
#define BU_PUT(_ptr, _type) do { *(uint8_t *)(_type *)(_ptr) = /*zap*/ 0; bu_free(_ptr, #_type " (BU_PUT) " BU_FLSTR); _ptr = NULL; } while (0)
|
||||
#define BU_PUT(_ptr, _type) do { *(uint8_t *)(_type *)(_ptr) = /*zap*/ 0; bu_free(_ptr, #_type " (BU_PUT) " CPP_FILELINE); _ptr = NULL; } while (0)
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -244,13 +235,13 @@ BU_EXPORT extern int bu_shmget(int *shmid, char **shared_memory, int key, size_t
|
||||
* Not intended for performance-critical code. Release memory
|
||||
* acquired with bu_free() or BU_FREE() to dealloc and set NULL.
|
||||
*/
|
||||
#define BU_ALLOC(_ptr, _type) _ptr = (_type *)bu_calloc(1, sizeof(_type), #_type " (BU_ALLOC) " BU_FLSTR)
|
||||
#define BU_ALLOC(_ptr, _type) _ptr = (_type *)bu_calloc(1, sizeof(_type), #_type " (BU_ALLOC) " CPP_FILELINE)
|
||||
|
||||
/**
|
||||
* Convenience macro for deallocating a single structure allocated on
|
||||
* the heap (with bu_malloc(), bu_calloc(), BU_ALLOC()).
|
||||
*/
|
||||
#define BU_FREE(_ptr, _type) do { bu_free(_ptr, #_type " (BU_FREE) " BU_FLSTR); _ptr = (_type *)NULL; } while (0)
|
||||
#define BU_FREE(_ptr, _type) do { bu_free(_ptr, #_type " (BU_FREE) " CPP_FILELINE); _ptr = (_type *)NULL; } while (0)
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
+1
-1
@@ -176,7 +176,7 @@ BU_EXPORT extern int bu_path_component(struct bu_vls *component,
|
||||
* Given a path string, separate the path elements into a dynamically
|
||||
* allocated argv array with the path separators removed. It is the
|
||||
* caller's responsibility to free the array that is returned as well
|
||||
* as all elements in the array using bu_free_argv() or manually
|
||||
* as all elements in the array using bu_argv_free() or manually
|
||||
* calling bu_free().
|
||||
*/
|
||||
BU_EXPORT extern char **bu_argv_from_path(const char *path, int *ac);
|
||||
|
||||
+12
-10
@@ -93,14 +93,17 @@ typedef struct bu_ptbl bu_ptbl_t;
|
||||
/*
|
||||
* For those routines that have to "peek" into the ptbl a little bit.
|
||||
*/
|
||||
#define BU_PTBL_BASEADDR(ptbl) ((ptbl)->buffer)
|
||||
#define BU_PTBL_LASTADDR(ptbl) ((ptbl)->buffer + (ptbl)->end - 1)
|
||||
#define BU_PTBL_END(ptbl) ((ptbl)->end)
|
||||
#define BU_PTBL_LEN(ptbl) ((size_t)(ptbl)->end)
|
||||
#define BU_PTBL_GET(ptbl, i) ((ptbl)->buffer[(i)])
|
||||
#define BU_PTBL_LEN(ptbl) (((uintptr_t)(ptbl) != (uintptr_t)NULL)?(size_t)(ptbl)->end:0)
|
||||
#define BU_PTBL_TEST(ptbl) (((uintptr_t)(ptbl) != (uintptr_t)NULL)?(ptbl)->l.magic == BU_PTBL_MAGIC:0)
|
||||
#define BU_PTBL_GET(ptbl, i) ((ptbl)->buffer[(i)])
|
||||
#define BU_PTBL_SET(ptbl, i, val) ((ptbl)->buffer[(i)] = (long*)(val))
|
||||
#define BU_PTBL_TEST(ptbl) ((ptbl)->l.magic == BU_PTBL_MAGIC)
|
||||
#define BU_PTBL_CLEAR_I(_ptbl, _i) ((_ptbl)->buffer[(_i)] = (long *)0)
|
||||
|
||||
/** DEPRECATED */
|
||||
#define BU_PTBL_END(ptbl) ((ptbl)->end)
|
||||
/** DEPRECATED */
|
||||
#define BU_PTBL_BASEADDR(ptbl) (((uintptr_t)(ptbl) != (uintptr_t)NULL)?(ptbl)->buffer:NULL)
|
||||
/** DEPRECATED */
|
||||
#define BU_PTBL_LASTADDR(ptbl) (((uintptr_t)(ptbl) != (uintptr_t)NULL)?(ptbl)->buffer + (ptbl)->end - 1:NULL)
|
||||
|
||||
/**
|
||||
* A handy way to visit all the elements of the table is:
|
||||
@@ -227,10 +230,9 @@ BU_EXPORT extern void bu_pr_ptbl(const char *title,
|
||||
int verbose);
|
||||
|
||||
/**
|
||||
* truncate a bu_ptbl
|
||||
* truncate a bu_ptbl to the specified size.
|
||||
*/
|
||||
BU_EXPORT extern void bu_ptbl_trunc(struct bu_ptbl *tbl,
|
||||
int end);
|
||||
BU_EXPORT extern void bu_ptbl_trunc(struct bu_ptbl *tbl, size_t end);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
+8
-8
@@ -44,7 +44,7 @@ __BEGIN_DECLS
|
||||
* file name and line number of any erroneous callers.
|
||||
*/
|
||||
BU_EXPORT extern size_t bu_strlcatm(char *dst, const char *src, size_t size, const char *label);
|
||||
#define bu_strlcat(dst, src, size) bu_strlcatm(dst, src, size, BU_FLSTR)
|
||||
#define bu_strlcat(dst, src, size) bu_strlcatm(dst, src, size, CPP_FILELINE)
|
||||
|
||||
/**
|
||||
* copies one string into another, returning the length of the dst
|
||||
@@ -54,7 +54,7 @@ BU_EXPORT extern size_t bu_strlcatm(char *dst, const char *src, size_t size, con
|
||||
* file name and line number of any erroneous callers.
|
||||
*/
|
||||
BU_EXPORT extern size_t bu_strlcpym(char *dst, const char *src, size_t size, const char *label);
|
||||
#define bu_strlcpy(dst, src, size) bu_strlcpym(dst, src, size, BU_FLSTR)
|
||||
#define bu_strlcpy(dst, src, size) bu_strlcpym(dst, src, size, CPP_FILELINE)
|
||||
|
||||
/**
|
||||
* Given a string, allocate enough memory to hold it using
|
||||
@@ -65,7 +65,7 @@ BU_EXPORT extern size_t bu_strlcpym(char *dst, const char *src, size_t size, con
|
||||
* number that can be used when bu debugging is enabled.
|
||||
*/
|
||||
BU_EXPORT extern char *bu_strdupm(const char *cp, const char *label);
|
||||
#define bu_strdup(s) bu_strdupm(s, BU_FLSTR)
|
||||
#define bu_strdup(s) bu_strdupm(s, CPP_FILELINE)
|
||||
|
||||
/**
|
||||
* Compares two strings for equality. It performs the comparison more
|
||||
@@ -304,10 +304,10 @@ BU_EXPORT extern int bu_argv_from_tcl_list(const char *list_str,
|
||||
/**
|
||||
* Deallocate all strings in a given argv array and the array itself
|
||||
*
|
||||
* This call presumes the array has been allocated with bu_dup_argv()
|
||||
* This call presumes the array has been allocated with bu_argv_dup()
|
||||
* or bu_argv_from_path().
|
||||
*/
|
||||
BU_EXPORT extern void bu_free_argv(size_t argc, char *argv[]);
|
||||
BU_EXPORT extern void bu_argv_free(size_t argc, char *argv[]);
|
||||
|
||||
/**
|
||||
* free up to argc elements of memory allocated to an array without
|
||||
@@ -321,9 +321,9 @@ BU_EXPORT extern void bu_free_array(size_t argc, char *argv[], const char *str);
|
||||
* Duplicate an argv array by duplicating all strings and the array
|
||||
* itself. It is the caller's responsibility to free the array
|
||||
* returned including all elements in the array by calling bu_free()
|
||||
* or bu_free_argv().
|
||||
* or bu_argv_free().
|
||||
*/
|
||||
BU_EXPORT extern char **bu_dup_argv(size_t argc, const char *argv[]);
|
||||
BU_EXPORT extern char **bu_argv_dup(size_t argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Combine two argv arrays into one new (duplicated) argv array.
|
||||
@@ -335,7 +335,7 @@ BU_EXPORT extern char **bu_dup_argv(size_t argc, const char *argv[]);
|
||||
* the insert argument is the position where the insertArgv array
|
||||
* elements will be merged with the specified argv array.
|
||||
*/
|
||||
BU_EXPORT extern char **bu_dupinsert_argv(int insert, size_t insertArgc, const char *insertArgv[], size_t argc, const char *argv[]);
|
||||
BU_EXPORT extern char **bu_argv_dupinsert(int insert, size_t insertArgc, const char *insertArgv[], size_t argc, const char *argv[]);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ bu_uuid_create(uint8_t uuid[STATIC_ARRAY(16)], size_t nbytes, uint8_t *bytes);
|
||||
|
||||
/**
|
||||
* This is a convenience UUID comparison routine compatible with
|
||||
* stdlib sorting functions (e.g., qsort()). The function expects
|
||||
* stdlib sorting functions (e.g., bu_sort()). The function expects
|
||||
* both left and right UUIDs to be uint8_t[16] arrays.
|
||||
*
|
||||
* Returns:
|
||||
|
||||
+65
-8
@@ -59,7 +59,7 @@
|
||||
|
||||
/* make sure lrint() is provided */
|
||||
# if !defined(__cplusplus) && !defined(HAVE_LRINT) && defined(HAVE_WORKING_LRINT_MACRO)
|
||||
# define lrint(_x) (((_x) < 0.0) ? ceil((_x)-0.5) : floor((_x)+0.5))
|
||||
# define lrint(_x) (((_x) < 0.0) ? (long int)ceil((_x)-0.5) : (long int)floor((_x)+0.5))
|
||||
# define HAVE_LRINT 1
|
||||
# elif !defined(__cplusplus) && defined(HAVE_LRINT) && !defined(HAVE_DECL_LRINT)
|
||||
long int lrint(double x);
|
||||
@@ -69,12 +69,14 @@ long int lrint(double x);
|
||||
#endif /* BRLCADBUILD & HAVE_CONFIG_H */
|
||||
|
||||
/* provide declaration markers for header externals */
|
||||
#ifdef __cplusplus
|
||||
# define __BEGIN_DECLS extern "C" { /**< if C++, set to extern "C" { */
|
||||
# define __END_DECLS } /**< if C++, set to } */
|
||||
#else
|
||||
# define __BEGIN_DECLS /**< if C++, set to extern "C" { */
|
||||
# define __END_DECLS /**< if C++, set to } */
|
||||
#ifndef __BEGIN_DECLS
|
||||
# ifdef __cplusplus
|
||||
# define __BEGIN_DECLS extern "C" { /**< if C++, set to extern "C" { */
|
||||
# define __END_DECLS } /**< if C++, set to } */
|
||||
# else
|
||||
# define __BEGIN_DECLS /**< if C++, set to extern "C" { */
|
||||
# define __END_DECLS /**< if C++, set to } */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -311,7 +313,7 @@ typedef ptrdiff_t ssize_t;
|
||||
* have to add it for them
|
||||
*/
|
||||
#if defined(_MSC_VER) && defined(__STDC__)
|
||||
#include <tchar.h>
|
||||
# include <tchar.h>
|
||||
/* MSVC++ misses this. */
|
||||
typedef _TCHAR TCHAR;
|
||||
#endif
|
||||
@@ -392,6 +394,61 @@ typedef ptrdiff_t ssize_t;
|
||||
#define EXTERNVARINIT
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide canonical preprocessor stringification.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_STR(abc) => "abc"
|
||||
*/
|
||||
#ifndef CPP_STR
|
||||
# define CPP_STR(x) # x
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide canonical preprocessor expanded stringification.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_XSTR(abc) => "123"
|
||||
*/
|
||||
#ifndef CPP_XSTR
|
||||
# define CPP_XSTR(x) CPP_STR(x)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide canonical preprocessor concatenation.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_GLUE(abc, 123) => abc123
|
||||
* CPP_STR(CPP_GLUE(abc, 123)) => "CPP_GLUE(abc, 123)"
|
||||
* CPP_XSTR(CPP_GLUE(abc, 123)) => "abc123"
|
||||
* #define abc123 "xyz"
|
||||
* CPP_GLUE(abc, 123) => abc123 => "xyz"
|
||||
*/
|
||||
#ifndef CPP_GLUE
|
||||
# define CPP_GLUE(a, b) a ## b
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide canonical preprocessor expanded concatenation.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_XGLUE(abc, 123) => 123123
|
||||
* CPP_STR(CPP_XGLUE(abc, 123)) => "CPP_XGLUE(abc, 123)"
|
||||
* CPP_XSTR(CPP_XGLUE(abc, 123)) => "123123"
|
||||
*/
|
||||
#ifndef CPP_XGLUE
|
||||
# define CPP_XGLUE(a, b) CPP_GLUE
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide the current filename and linenumber as a static
|
||||
* preprocessor string in "file"":""line" format (e.g., "file:123").
|
||||
*/
|
||||
#ifndef CPP_FILELINE
|
||||
# define CPP_FILELINE __FILE__ ":" CPP_XSTR(__LINE__)
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* COMMON_H */
|
||||
|
||||
/** @} */
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
25
|
||||
26
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0
|
||||
1
|
||||
|
||||
+3
-3
@@ -29,8 +29,8 @@
|
||||
* example).
|
||||
*
|
||||
*/
|
||||
#ifndef BVIEW_H
|
||||
#define BVIEW_H
|
||||
#ifndef DM_BVIEW_H
|
||||
#define DM_BVIEW_H
|
||||
|
||||
#include "common.h"
|
||||
#include "bu/list.h"
|
||||
@@ -312,7 +312,7 @@ struct view_obj {
|
||||
};
|
||||
#define VIEW_OBJ_NULL ((struct view_obj *)0)
|
||||
|
||||
#endif /* BVIEW_H */
|
||||
#endif /* DM_BVIEW_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef DM_DM_DESIGN_H
|
||||
#define DM_DM_DESIGN_H
|
||||
|
||||
/* Display Manager Types */
|
||||
#define DM_TYPE_BAD -1
|
||||
#define DM_TYPE_NULL 0
|
||||
@@ -201,7 +204,7 @@ DM_EXPORT extern int dm_set_type(dm_s *dmp, int dm_t);
|
||||
DM_EXPORT extern int dm_get_image(dm_s *dmp, icv_image_t *image);
|
||||
DM_EXPORT extern int dm_get_obj_image(dm_s *dmp, const char *handle, icv_image_t *image);
|
||||
|
||||
#endif /* DM_H */
|
||||
#endif /* DM_DM_DESIGN_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
/** @file dm_xvars.h
|
||||
*
|
||||
*/
|
||||
#ifndef DM_XVARS_H
|
||||
#define DM_XVARS_H
|
||||
#ifndef DM_DM_XVARS_H
|
||||
#define DM_DM_XVARS_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -83,7 +83,7 @@ struct dm_xvars {
|
||||
int devbuttonrelease;
|
||||
};
|
||||
|
||||
#endif /* DM_XVARS_H */
|
||||
#endif /* DM_DM_XVARS_H */
|
||||
/** @} */
|
||||
/*
|
||||
* Local Variables:
|
||||
|
||||
+3
-1
@@ -118,7 +118,8 @@ struct gcv_opts
|
||||
/**
|
||||
* Assign default option values.
|
||||
*/
|
||||
void gcv_opts_default(struct gcv_opts *gcv_options);
|
||||
GCV_EXPORT void
|
||||
gcv_opts_default(struct gcv_opts *gcv_options);
|
||||
|
||||
|
||||
/**
|
||||
@@ -182,6 +183,7 @@ struct gcv_plugin {
|
||||
*/
|
||||
GCV_EXPORT const struct bu_ptbl *gcv_list_filters(void);
|
||||
|
||||
GCV_EXPORT const struct gcv_plugin *gcv_plugin_info();
|
||||
|
||||
/**
|
||||
* Perform a filtering operation on a gcv_context.
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ GED_EXPORT extern int ged_rtwizard(struct ged *gedp, int argc, const char *argv[
|
||||
GED_EXPORT extern int ged_preview(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Save keyframe in file (experimental)
|
||||
* Save keyframe in file
|
||||
*/
|
||||
GED_EXPORT extern int ged_savekey(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
|
||||
@@ -70,17 +70,6 @@ GED_EXPORT extern void dl_erasePathFromDisplay(struct bu_list *hdlp,
|
||||
int allow_split,
|
||||
struct solid *freesolid);
|
||||
GED_EXPORT extern struct display_list *dl_addToDisplay(struct bu_list *hdlp, struct db_i *dbip, const char *name);
|
||||
/* When finalized, this stuff belongs in a header file of its own */
|
||||
struct polygon_header {
|
||||
uint32_t magic; /* magic number */
|
||||
int ident; /* identification number */
|
||||
int interior; /* >0 => interior loop, gives ident # of exterior loop */
|
||||
vect_t normal; /* surface normal */
|
||||
unsigned char color[3]; /* Color from containing region */
|
||||
int npts; /* number of points */
|
||||
};
|
||||
#define POLYGON_HEADER_MAGIC 0x8623bad2
|
||||
GED_EXPORT extern void dl_polybinout(struct bu_list *hdlp, struct polygon_header *ph, FILE *fp);
|
||||
|
||||
GED_EXPORT extern int invent_solid(struct bu_list *hdlp, struct db_i *dbip, void (*callback_create)(struct solid *), void (*callback_free)(unsigned int, int), char *name, struct bu_list *vhead, long int rgb, int copy, fastf_t transparency, int dmode, struct solid *freesolid, int csoltab);
|
||||
|
||||
@@ -121,11 +110,6 @@ GED_EXPORT extern int ged_plot(struct ged *gedp, int argc, const char *argv[]);
|
||||
GED_EXPORT extern int ged_png(struct ged *gedp, int argc, const char *argv[]);
|
||||
GED_EXPORT extern int ged_screen_grab(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Write out polygons (binary) of the currently displayed geometry.
|
||||
*/
|
||||
GED_EXPORT extern int ged_polybinout(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Create a postscript file of the view.
|
||||
*/
|
||||
|
||||
@@ -161,11 +161,6 @@ GED_EXPORT extern int ged_pmat(struct ged *gedp, int argc, const char *argv[]);
|
||||
*/
|
||||
GED_EXPORT extern int ged_pmodel2view(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Set point of view
|
||||
*/
|
||||
GED_EXPORT extern int ged_pov(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Get/set the view orientation using a quaternion
|
||||
*/
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LIGHT_H
|
||||
#define LIGHT_H
|
||||
#ifndef OPTICAL_LIGHT_H
|
||||
#define OPTICAL_LIGHT_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
@@ -90,7 +90,7 @@ OPTICAL_EXPORT extern void light_obs(struct application *ap, struct shadework *s
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* LIGHT_H */
|
||||
#endif /* OPTICAL_LIGHT_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
/** @file plastic.h
|
||||
*
|
||||
*/
|
||||
#ifndef PLASTIC_H
|
||||
#define PLASTIC_H
|
||||
#ifndef OPTICAL_PLASTIC_H
|
||||
#define OPTICAL_PLASTIC_H
|
||||
|
||||
#define PL_NULL ((struct phong_specific *)0)
|
||||
#define PL_O(m) offsetof(struct phong_specific, m)
|
||||
@@ -43,7 +43,7 @@ struct phong_specific {
|
||||
};
|
||||
|
||||
extern struct bu_structparse phong_parse[];
|
||||
#endif
|
||||
#endif /* OPTICAL_PLASTIC_H */
|
||||
/** @} */
|
||||
/*
|
||||
* Local Variables:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user