Compare commits
694
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6cc14f1596 | ||
|
|
51e94328ff | ||
|
|
0130d99d32 | ||
|
|
ab130d7882 | ||
|
|
b933702ac2 | ||
|
|
4b017f4003 | ||
|
|
2d2d6c8afa | ||
|
|
c9b772ee84 | ||
|
|
4d2249c81e | ||
|
|
9bb26b2102 | ||
|
|
3ff33239b9 | ||
|
|
eb17eda081 | ||
|
|
7d29c3e701 | ||
|
|
4d1bcb8db5 | ||
|
|
b749b685b2 | ||
|
|
830619553b | ||
|
|
14f1f3f31a | ||
|
|
c41c01bfb9 | ||
|
|
3d4b95532d | ||
|
|
fd64bf5bad | ||
|
|
84159389e7 | ||
|
|
58ad069612 | ||
|
|
6bdaa84a89 | ||
|
|
4afc77883f | ||
|
|
bb8590df4f | ||
|
|
d51b1cfb89 | ||
|
|
6373fcc722 | ||
|
|
761f101951 | ||
|
|
b2cf42f47c | ||
|
|
6d781ae70c | ||
|
|
c49d1d697e | ||
|
|
f1a4b20a32 | ||
|
|
7d5462dce8 | ||
|
|
0c2667ad75 | ||
|
|
cad2545bc6 | ||
|
|
09b034afd1 | ||
|
|
4981dcd247 | ||
|
|
cafc3eed44 | ||
|
|
01441ddedd | ||
|
|
dedf967ed9 | ||
|
|
4fb5d489e0 | ||
|
|
a0c447bc80 | ||
|
|
eec76b3f08 | ||
|
|
274fa798c1 | ||
|
|
3dc198874f | ||
|
|
8098b001fa | ||
|
|
d594e144e7 | ||
|
|
b0649b5370 | ||
|
|
a2d9462fa5 | ||
|
|
1540762f7d | ||
|
|
bea8449ba7 | ||
|
|
f839539e7b | ||
|
|
5d929065e4 | ||
|
|
f48723cf3a | ||
|
|
a5399f923b | ||
|
|
45165c4a3d | ||
|
|
31faa7c5c0 | ||
|
|
f1d54e1d8f | ||
|
|
6a973ff683 | ||
|
|
e344f614ce | ||
|
|
ed8ee0c482 | ||
|
|
435458a808 | ||
|
|
288d5d66c9 | ||
|
|
e4fa8b76fb | ||
|
|
ae0cb6a17c | ||
|
|
61bb7f6a40 | ||
|
|
51fc0b0808 | ||
|
|
569eb6791e | ||
|
|
2da7ac68cd | ||
|
|
03f1277aba | ||
|
|
64929a3200 | ||
|
|
a49269facb | ||
|
|
34b97a29c9 | ||
|
|
36f3abc02e | ||
|
|
03ead520f3 | ||
|
|
730f44162e | ||
|
|
a1a9c4847b | ||
|
|
260e750d09 | ||
|
|
291a0d75ab | ||
|
|
1e899fdc04 | ||
|
|
081b2e58d4 | ||
|
|
b18d64f9f0 | ||
|
|
78b66b117c | ||
|
|
6d3de77b4b | ||
|
|
95abf7a100 | ||
|
|
2ad3c3f7f9 | ||
|
|
d6ead7d047 | ||
|
|
3c462a5dfa | ||
|
|
aae0fb71ca | ||
|
|
82765de6eb | ||
|
|
5d524a878d | ||
|
|
852f545d4d | ||
|
|
806e791a4c | ||
|
|
ea5d155b0c | ||
|
|
7e1875abc6 | ||
|
|
97e5046796 | ||
|
|
592b9e68bb | ||
|
|
e073a6a694 | ||
|
|
1c07f950d8 | ||
|
|
ab8fb7fbf0 | ||
|
|
de85d76bc4 | ||
|
|
9f94126766 | ||
|
|
a3e593ed4e | ||
|
|
d66c1c2ca8 | ||
|
|
fc64d05f3a | ||
|
|
fd9adc6d66 | ||
|
|
7092bec8dd | ||
|
|
6b64273e33 | ||
|
|
2499417d75 | ||
|
|
cb9bb57929 | ||
|
|
936e64b98d | ||
|
|
24622ea534 | ||
|
|
71c52c026c | ||
|
|
4658fd9e64 | ||
|
|
03bdbcc8ec | ||
|
|
658fa011b3 | ||
|
|
64029526a9 | ||
|
|
c4fbe5d511 | ||
|
|
2639333671 | ||
|
|
be2611ca97 | ||
|
|
9fb67bd6bd | ||
|
|
a6cc7d3278 | ||
|
|
dd43f0d356 | ||
|
|
a21e165d06 | ||
|
|
1c026e8e34 | ||
|
|
f50fb8b232 | ||
|
|
f9ebeed397 | ||
|
|
d53706c272 | ||
|
|
764daebad7 | ||
|
|
74052e46aa | ||
|
|
90e3a7e068 | ||
|
|
bced8ab8cb | ||
|
|
826e107ecd | ||
|
|
4a4041c354 | ||
|
|
7f7a28e041 | ||
|
|
8159c7bf7a | ||
|
|
b2d45fb553 | ||
|
|
e05d18c952 | ||
|
|
ee0cb62f33 | ||
|
|
98c35b6131 | ||
|
|
d662d6fbb0 | ||
|
|
22ce3b9e67 | ||
|
|
f232ad9c28 | ||
|
|
634fba4aac | ||
|
|
3ec75fed74 | ||
|
|
039610eadc | ||
|
|
9db1493f75 | ||
|
|
cf9ff54128 | ||
|
|
5cccfb483a | ||
|
|
3f1f4abc44 | ||
|
|
374f9165fa | ||
|
|
03617e02eb | ||
|
|
d3d7f90a38 | ||
|
|
e4d1bd1ea3 | ||
|
|
eb5d4b5568 | ||
|
|
d31f38d3ed | ||
|
|
84e5b7e434 | ||
|
|
1cff8a1416 | ||
|
|
ae49e8dd29 | ||
|
|
f7d884db0c | ||
|
|
d97fdd0119 | ||
|
|
b340b07f23 | ||
|
|
9b6a0f0069 | ||
|
|
2a99e5ee8a | ||
|
|
22007c42ec | ||
|
|
7652add335 | ||
|
|
5c1cf853e4 | ||
|
|
e20d146111 | ||
|
|
a8bf0a12cd | ||
|
|
a05b0d33b7 | ||
|
|
c68066bf5f | ||
|
|
246e6ad68d | ||
|
|
e0d141e156 | ||
|
|
93e805ec31 | ||
|
|
68f3357fe5 | ||
|
|
fc1926d11c | ||
|
|
6e0a6fa91b | ||
|
|
43476a2c26 | ||
|
|
b59c27ce4c | ||
|
|
cd5ae91c05 | ||
|
|
71b1f7a3c6 | ||
|
|
54947587f8 | ||
|
|
153488c48f | ||
|
|
fe77151e69 | ||
|
|
274d4cc2a1 | ||
|
|
617e2e8f21 | ||
|
|
633680cb32 | ||
|
|
e140e5f723 | ||
|
|
cc26d42870 | ||
|
|
c4b14ef938 | ||
|
|
846678c5ac | ||
|
|
2b9a0a03b4 | ||
|
|
ae8f5dd64c | ||
|
|
f6f1a09da7 | ||
|
|
369cd00dcf | ||
|
|
a929ce348e | ||
|
|
9a9cbf6004 | ||
|
|
2191fe3623 | ||
|
|
89fe174a67 | ||
|
|
957c26014c | ||
|
|
3f5b4dda53 | ||
|
|
92a7163087 | ||
|
|
943f9edfe9 | ||
|
|
7b6afed752 | ||
|
|
7e5de9d7d9 | ||
|
|
17a618a3b8 | ||
|
|
472ec8ae94 | ||
|
|
aabd9ab2ec | ||
|
|
852fba1492 | ||
|
|
7c73576eeb | ||
|
|
09ec35ffa0 | ||
|
|
5f091ba78d | ||
|
|
961569453f | ||
|
|
4c7669c302 | ||
|
|
ac1a123ee6 | ||
|
|
610339ea5b | ||
|
|
49db60d494 | ||
|
|
5f5249c6d8 | ||
|
|
047dd7f643 | ||
|
|
21a2644aa9 | ||
|
|
d52ac128a3 | ||
|
|
020844a020 | ||
|
|
00136fe7e9 | ||
|
|
cd4b741a66 | ||
|
|
12bb3de984 | ||
|
|
aafb0192e9 | ||
|
|
69585ef2ba | ||
|
|
85f6a36983 | ||
|
|
eac0ada72a | ||
|
|
eaba70e3cd | ||
|
|
8d7557f148 | ||
|
|
495a0fa47c | ||
|
|
3c0ac6bc8c | ||
|
|
74143d72f5 | ||
|
|
189ddbd4c3 | ||
|
|
2237b2aa35 | ||
|
|
73d7fd8dbd | ||
|
|
61ca896b63 | ||
|
|
88a7b70e24 | ||
|
|
37d3a47dba | ||
|
|
23d4e354f2 | ||
|
|
f25c39ebab | ||
|
|
b5c562d39b | ||
|
|
ae4ef01250 | ||
|
|
1090941e88 | ||
|
|
a327a0b00e | ||
|
|
dc70156784 | ||
|
|
90b92ad637 | ||
|
|
9a02610bb6 | ||
|
|
110d1a0273 | ||
|
|
e3cde2a014 | ||
|
|
746184357d | ||
|
|
8eb62b788b | ||
|
|
aae1615fad | ||
|
|
c4f719e6c3 | ||
|
|
edd8d9dad1 | ||
|
|
e204b783d4 | ||
|
|
12e152a35d | ||
|
|
078960161d | ||
|
|
45ceb70bdb | ||
|
|
daa4c3023e | ||
|
|
1a8d545908 | ||
|
|
0795bcb01e | ||
|
|
4360644591 | ||
|
|
fbe895409c | ||
|
|
29a46d43ca | ||
|
|
12559fb96d | ||
|
|
f07e65e762 | ||
|
|
b67b98ab74 | ||
|
|
8e0843d861 | ||
|
|
87c6279375 | ||
|
|
e662206c41 | ||
|
|
6d3e3c4ecd | ||
|
|
2c2e991462 | ||
|
|
4a1b21736e | ||
|
|
07b597765e | ||
|
|
18ae5dc8fc | ||
|
|
7496eb3ddc | ||
|
|
cdad7bab53 | ||
|
|
604c8551e0 | ||
|
|
51a9154641 | ||
|
|
bada1ae84c | ||
|
|
e63767f0d9 | ||
|
|
f16fc63541 | ||
|
|
542c86cc1c | ||
|
|
8cac9a0df6 | ||
|
|
d002304da1 | ||
|
|
ef8c3643c9 | ||
|
|
31f11b8e75 | ||
|
|
2af03db628 | ||
|
|
6d2a840d21 | ||
|
|
9d2587487d | ||
|
|
b063fd1bf1 | ||
|
|
0a4c552be1 | ||
|
|
d59a5c7f42 | ||
|
|
c4dcdc34ec | ||
|
|
9c819878a1 | ||
|
|
2c85224cc6 | ||
|
|
21a1ca6e4a | ||
|
|
f9a9878153 | ||
|
|
0b9bc9cc4b | ||
|
|
d05078ac98 | ||
|
|
f60b5ca15e | ||
|
|
152b8908b8 | ||
|
|
9ad179d73e | ||
|
|
741c846f62 | ||
|
|
0647e25528 | ||
|
|
9afac44b7e | ||
|
|
37b53fd095 | ||
|
|
ca127c0c36 | ||
|
|
b8f72eabe2 | ||
|
|
292201841a | ||
|
|
a4fa580abe | ||
|
|
de64063c78 | ||
|
|
f851a2e513 | ||
|
|
5e9a7e9b94 | ||
|
|
963cfd8f57 | ||
|
|
55efd5a249 | ||
|
|
5d60723c77 | ||
|
|
79959ba674 | ||
|
|
03c52aad94 | ||
|
|
0f183eff8c | ||
|
|
e088dbd093 | ||
|
|
ba248a9429 | ||
|
|
43076c7739 | ||
|
|
6d4b1ac186 | ||
|
|
43a267ad1e | ||
|
|
3c7627c7c6 | ||
|
|
bd32c3e5d3 | ||
|
|
61d2590144 | ||
|
|
b3c5e08c22 | ||
|
|
fdab9d195d | ||
|
|
c57fbf0c0a | ||
|
|
25c2baf0ef | ||
|
|
0a12b853ad | ||
|
|
9c4ad27e03 | ||
|
|
cc22b18faf | ||
|
|
32a0877a20 | ||
|
|
251ffaccaa | ||
|
|
71d4f90093 | ||
|
|
93123a42e5 | ||
|
|
258cec8f1e | ||
|
|
469f4af1d3 | ||
|
|
6200df24a7 | ||
|
|
b1009a4fc3 | ||
|
|
65b3d02971 | ||
|
|
67fd942fc3 | ||
|
|
d315970ce3 | ||
|
|
4e80e69b23 | ||
|
|
36d3266509 | ||
|
|
a40e0c77c5 | ||
|
|
c8ada24f43 | ||
|
|
1eb79e5f4e | ||
|
|
6cdfc5aa51 | ||
|
|
29cb67d216 | ||
|
|
db2f98657f | ||
|
|
139017eb43 | ||
|
|
a499483f2b | ||
|
|
ad11eb69f1 | ||
|
|
1b11a38232 | ||
|
|
55a4cd0a83 | ||
|
|
3442e7c57d | ||
|
|
eff511fd56 | ||
|
|
50f27261ae | ||
|
|
25441b4e2c | ||
|
|
5bf90d62ad | ||
|
|
a924ab45ac | ||
|
|
bc0ba220e9 | ||
|
|
c16706fc61 | ||
|
|
7e0c826807 | ||
|
|
bb6c04b566 | ||
|
|
b8dc5345e3 | ||
|
|
d8d285f5eb | ||
|
|
6278a2772f | ||
|
|
e75e89819c | ||
|
|
ebb949bcf9 | ||
|
|
3490700e07 | ||
|
|
b19fcd25df | ||
|
|
a44f877faf | ||
|
|
55342f9691 | ||
|
|
816ff87bf9 | ||
|
|
e66af599f9 | ||
|
|
afc093be42 | ||
|
|
fea21b51b9 | ||
|
|
06cf75b9c4 | ||
|
|
518e5e2ec6 | ||
|
|
770945c87d | ||
|
|
c188f4134b | ||
|
|
66f6becdc7 | ||
|
|
d3f7c4c2a9 | ||
|
|
c4d97b1395 | ||
|
|
f6800ff12d | ||
|
|
e4c0b34562 | ||
|
|
47ca428ca4 | ||
|
|
704e97c844 | ||
|
|
f5f000e915 | ||
|
|
bd95c316ca | ||
|
|
40c321008a | ||
|
|
c0d371dd0b | ||
|
|
519133b93c | ||
|
|
27d79f6ccf | ||
|
|
c9aa039f1d | ||
|
|
4e423bfaed | ||
|
|
a7565014cd | ||
|
|
ae83c90aef | ||
|
|
ce41ea46de | ||
|
|
7b4417aed6 | ||
|
|
2348c57a5f | ||
|
|
941b47ad71 | ||
|
|
e27a639e5a | ||
|
|
119b567d47 | ||
|
|
600fca47a3 | ||
|
|
bf2cf9c154 | ||
|
|
5dfca4c744 | ||
|
|
591afdd0ee | ||
|
|
0f74fd92e5 | ||
|
|
c932902603 | ||
|
|
3dc23a713c | ||
|
|
c80ddb18f1 | ||
|
|
ee60ca4556 | ||
|
|
9b5ed3e224 | ||
|
|
cc34471562 | ||
|
|
f3bbaafde9 | ||
|
|
7a9c0346d4 | ||
|
|
73c30d9920 | ||
|
|
402027be2e | ||
|
|
19ed8fadd8 | ||
|
|
b561fa2e55 | ||
|
|
2baf649afc | ||
|
|
ba6adade14 | ||
|
|
ed447ae08e | ||
|
|
b05b266192 | ||
|
|
9339a722f5 | ||
|
|
147206519a | ||
|
|
fb025fbf9a | ||
|
|
9ed177d29d | ||
|
|
1883d5d04a | ||
|
|
b71508520c | ||
|
|
50ed34a3c2 | ||
|
|
a3dda2fa82 | ||
|
|
6daa188863 | ||
|
|
a1970511d0 | ||
|
|
584c09763d | ||
|
|
6783f994d7 | ||
|
|
d3b7a34f2f | ||
|
|
6efed6a5a1 | ||
|
|
f8ad945a1f | ||
|
|
880db1450c | ||
|
|
a260a7a2b1 | ||
|
|
69f575af2e | ||
|
|
c0c3080130 | ||
|
|
d1f44a445e | ||
|
|
4dea61af44 | ||
|
|
03369138b4 | ||
|
|
f4c83269b6 | ||
|
|
7c2442c5f0 | ||
|
|
b3ee6f3368 | ||
|
|
e7b1eb8513 | ||
|
|
093ee526fb | ||
|
|
c112696807 | ||
|
|
41b0a9c9cd | ||
|
|
6eb885ebe3 | ||
|
|
f4c32a0768 | ||
|
|
031de1279a | ||
|
|
ff59365603 | ||
|
|
ececfd49f2 | ||
|
|
a27c03d09a | ||
|
|
5b70209935 | ||
|
|
b7440723cc | ||
|
|
2ca8db0acc | ||
|
|
13f903d086 | ||
|
|
d696236534 | ||
|
|
57ddca3001 | ||
|
|
5cbbce837b | ||
|
|
f9f63ba04a | ||
|
|
6ac66a5d75 | ||
|
|
ddaac92b15 | ||
|
|
2aada86240 | ||
|
|
0a8fabaace | ||
|
|
94f8074b5f | ||
|
|
b4afbede0a | ||
|
|
899fef2d47 | ||
|
|
7e5103d0bf | ||
|
|
e70b19ec66 | ||
|
|
344b338ee7 | ||
|
|
e035511084 | ||
|
|
b7463dc593 | ||
|
|
5928709ebb | ||
|
|
881b92e509 | ||
|
|
baecad56c2 | ||
|
|
6cd5b87e61 | ||
|
|
e68e5af50b | ||
|
|
4cae111bcf | ||
|
|
5cc60909b9 | ||
|
|
2e4a1e26ac | ||
|
|
a13cedc7e9 | ||
|
|
fd2837e77a | ||
|
|
fe82825c67 | ||
|
|
c83ec745d6 | ||
|
|
01f0d3b7ef | ||
|
|
5b952cf1f5 | ||
|
|
5dbf5275e5 | ||
|
|
a359dac988 | ||
|
|
acae7e2a2b | ||
|
|
053763e59f | ||
|
|
29b85a298d | ||
|
|
7928c8344d | ||
|
|
95be1f3205 | ||
|
|
d918287150 | ||
|
|
f11979b3fe | ||
|
|
a091c957dc | ||
|
|
ce4d493109 | ||
|
|
43468943e5 | ||
|
|
454f09b53c | ||
|
|
9b02cc353f | ||
|
|
3a1645b062 | ||
|
|
8aa4e2e0d4 | ||
|
|
217e1a0b96 | ||
|
|
9978f20d4a | ||
|
|
baceab0e10 | ||
|
|
ad4857e26c | ||
|
|
33f40adea6 | ||
|
|
0d0f9e6739 | ||
|
|
5bfe74b9c2 | ||
|
|
88e0c44fe5 | ||
|
|
71a1619e27 | ||
|
|
eb746089e6 | ||
|
|
4b0b5cfc1b | ||
|
|
aa87c69581 | ||
|
|
7d05d1ee8d | ||
|
|
3ac240768f | ||
|
|
d40460194d | ||
|
|
7a3c7c0254 | ||
|
|
4431812196 | ||
|
|
bcce9ea1ea | ||
|
|
d1ce91cbd3 | ||
|
|
132a41b607 | ||
|
|
884aa14698 | ||
|
|
23fe522ce2 | ||
|
|
958debb97b | ||
|
|
8dcbfafc72 | ||
|
|
2621519205 | ||
|
|
cf41190757 | ||
|
|
dea172cf6c | ||
|
|
85249b4ba2 | ||
|
|
1cabf78ad2 | ||
|
|
490e800cc1 | ||
|
|
34cf7eb834 | ||
|
|
7afca78f04 | ||
|
|
10bd7a8595 | ||
|
|
977ea727c8 | ||
|
|
c9fe21154b | ||
|
|
34654aeedc | ||
|
|
398c4a52cf | ||
|
|
104c33ebf2 | ||
|
|
4428831eeb | ||
|
|
a47a5277dd | ||
|
|
99e236b56d | ||
|
|
8512d418c6 | ||
|
|
206b9dbd0c | ||
|
|
b7c6ffce9a | ||
|
|
cfee248907 | ||
|
|
dc1162cb81 | ||
|
|
501490d85a | ||
|
|
5102a86b73 | ||
|
|
9905f2019c | ||
|
|
3a1a6de723 | ||
|
|
f4d184b574 | ||
|
|
1629cfcd36 | ||
|
|
d737604e3b | ||
|
|
3f44f2e124 | ||
|
|
8f784988e2 | ||
|
|
11ee1cfea7 | ||
|
|
7c8e222547 | ||
|
|
53789575e1 | ||
|
|
7bd7e3a448 | ||
|
|
61ed137aa1 | ||
|
|
13ea76fedc | ||
|
|
de1b9c381f | ||
|
|
dd28da365b | ||
|
|
d822d4e778 | ||
|
|
6f736e35c7 | ||
|
|
dbe3282e0e | ||
|
|
868ac73b96 | ||
|
|
6f13605a21 | ||
|
|
441f140983 | ||
|
|
9883d764d8 | ||
|
|
a7256d2698 | ||
|
|
457f597524 | ||
|
|
1a517acf0d | ||
|
|
a280e2924d | ||
|
|
7a6eedf837 | ||
|
|
010fbfe965 | ||
|
|
a76a651c06 | ||
|
|
40195b5dd7 | ||
|
|
33746a1f93 | ||
|
|
63637973db | ||
|
|
3635656abb | ||
|
|
cc66132901 | ||
|
|
03cc10e3f0 | ||
|
|
49e3b07f90 | ||
|
|
261f6b7317 | ||
|
|
cdd5ff8947 | ||
|
|
0dd059863f | ||
|
|
8a1929142a | ||
|
|
572b16a108 | ||
|
|
f42d830ad8 | ||
|
|
7c1002e590 | ||
|
|
37058c9697 | ||
|
|
b34b6dbc32 | ||
|
|
be71af5ff3 | ||
|
|
1237abe9a6 | ||
|
|
2a3aae0918 | ||
|
|
24cbca2fe8 | ||
|
|
933b2d1357 | ||
|
|
2514f78775 | ||
|
|
a968fa25ae | ||
|
|
3b3021ac4b | ||
|
|
672ade5c12 | ||
|
|
4f2b136925 | ||
|
|
1d099b79ff | ||
|
|
e1b964b510 | ||
|
|
2c5b66d28b | ||
|
|
887d34b464 | ||
|
|
0e486a27d3 | ||
|
|
08fea08aad | ||
|
|
c7d73eff02 | ||
|
|
019d40a64b | ||
|
|
2ee8f75c82 | ||
|
|
6eae5bd81b | ||
|
|
a1c47a6e83 | ||
|
|
82f6a16963 | ||
|
|
4ba2420c2f | ||
|
|
743aa4c59e | ||
|
|
a1807a399e | ||
|
|
66903221b2 | ||
|
|
cb697dcbb4 | ||
|
|
78f5032ba9 | ||
|
|
2ae2e93c2b | ||
|
|
efc7aafdfa | ||
|
|
85e21caa08 | ||
|
|
8a8c484296 | ||
|
|
cf221db2f8 | ||
|
|
ecd86f2eef | ||
|
|
9e23c957a6 | ||
|
|
45ab2cc9fe | ||
|
|
3dc95c12bd | ||
|
|
9bafb1d2f5 | ||
|
|
c9a4ad1635 | ||
|
|
a45eddf9f9 | ||
|
|
8a34d28dd6 | ||
|
|
5dd549aab5 | ||
|
|
99aed5df05 | ||
|
|
f1bcaaea0e | ||
|
|
0dd4e6e062 | ||
|
|
f9308750c8 | ||
|
|
74db998015 | ||
|
|
24b13f4b7d | ||
|
|
e440ce09c5 | ||
|
|
5e996d6106 | ||
|
|
2b4963e4d9 | ||
|
|
c2081eeef1 | ||
|
|
ba833fd55d | ||
|
|
979e827c40 | ||
|
|
ff4aef4a9c | ||
|
|
a2a4bfe9f7 | ||
|
|
e3c321dff6 | ||
|
|
46f212b081 | ||
|
|
293f90a965 | ||
|
|
47e3815027 | ||
|
|
76c3568104 | ||
|
|
414dd77e5d | ||
|
|
4f324621d8 | ||
|
|
b5078f78f2 | ||
|
|
bb540008d5 | ||
|
|
eca984f69c | ||
|
|
78e7aa44f0 | ||
|
|
6316c1ca4a | ||
|
|
7becbab82e | ||
|
|
29808146b4 | ||
|
|
abde1ec2dc | ||
|
|
d72f75e2ab | ||
|
|
310d976f03 | ||
|
|
d3407eb2e0 | ||
|
|
26c7ca6508 | ||
|
|
25611737b7 | ||
|
|
af0250a589 | ||
|
|
3d3ec3d66a | ||
|
|
d01a593719 | ||
|
|
6ff8434e61 | ||
|
|
021ac0456b | ||
|
|
f00dd42be0 | ||
|
|
47a0bd7bb8 | ||
|
|
72dad385b7 |
@@ -111,7 +111,7 @@ Hanes, Jeff
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Johnson, Christopher T. <cjohnson@cyberpaladin.com>
|
||||
Johnson, Christopher T.
|
||||
nicknames cjohnson
|
||||
1989 February
|
||||
Cray Research, Inc.
|
||||
@@ -119,7 +119,7 @@ Geometric Solutions, Inc.
|
||||
Paladin Software
|
||||
JRMTech, Inc.
|
||||
|
||||
Butler, Lee A. <butler@arl.army.mil>
|
||||
Butler, Lee A.
|
||||
nicknames butler, lbutler
|
||||
1989 July
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
@@ -131,7 +131,7 @@ nicknames pjt
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Markowski, Michael J. <michael.markowski@arl.army.mil>
|
||||
Markowski, Michael J.
|
||||
nicknames mmark, mm
|
||||
1991 June
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
@@ -141,7 +141,7 @@ nicknames gdurf
|
||||
1992 August
|
||||
ARL Student Hire / Carnegie Mellon University
|
||||
|
||||
Anderson, John R. <jra@arl.army.mil>
|
||||
Anderson, John R.
|
||||
nicknames jra, johnranderson
|
||||
1993 May
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
@@ -178,7 +178,7 @@ nicknames tranese
|
||||
2001 March
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Hartley, Robert F. <hartley@vt.edu>
|
||||
Hartley, Robert F.
|
||||
nicknames hartley
|
||||
2002 August
|
||||
ARL Student Hire / Virginia Tech
|
||||
@@ -189,7 +189,7 @@ nicknames twingy, justin
|
||||
Quantum Research International, Inc.
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Greenwald, Erik <erikg@arl.army.mil> **
|
||||
Greenwald, Erik
|
||||
nicknames erikg, erikgreenwald
|
||||
2003 November
|
||||
U.S. Army Research Laboratory
|
||||
@@ -213,12 +213,12 @@ nicknames indianlarry
|
||||
SURVICE Engineering, Inc.
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Weiss, Richard **
|
||||
Weiss, Richard
|
||||
nicknames r_weiss
|
||||
2008 December
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Browder, Thomas M. Jr. **
|
||||
Browder, Thomas M. Jr.
|
||||
nicknames tbrowder2
|
||||
2008 June
|
||||
ManTech International Corporation
|
||||
@@ -230,7 +230,7 @@ nicknames n_reed
|
||||
ARL Student Hire / University of Maryland, Baltimore County
|
||||
Quantum Research International, Inc.
|
||||
|
||||
Moore, Jr., Carl G. **
|
||||
Moore, Jr., Carl G.
|
||||
nicknames cmoore, carlmoore
|
||||
2011 October
|
||||
U.S. Army Research Laboratory
|
||||
@@ -243,7 +243,7 @@ Weaver, Earl P.
|
||||
1980
|
||||
U.S. Army Ballistic Research Laboratory
|
||||
|
||||
Davisson, Edwin O. **
|
||||
Davisson, Edwin O.
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Rogers, David
|
||||
@@ -263,7 +263,7 @@ U.S. Army Research Laboratory
|
||||
Kregel, Dwayne **
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Weaver, Stephanie 'Rain' **
|
||||
Weaver, Stephanie 'Rain'
|
||||
2009 June
|
||||
ARL Student Hire / Bridgewater College
|
||||
|
||||
@@ -898,11 +898,21 @@ nicknames lois221
|
||||
2019 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Suthar, Rishabh
|
||||
nicknames yamhai, rishabhsuthar32
|
||||
2020 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Vaidya, Sahil
|
||||
nicknames sahilvaidya99
|
||||
2020 April
|
||||
ARL Student Hire / University of Texas at Austin
|
||||
|
||||
Das, Sumagna
|
||||
nicknames sumagnadas
|
||||
2020 May
|
||||
Open Source
|
||||
|
||||
|
||||
SPECIAL THANKS
|
||||
--------------
|
||||
|
||||
@@ -15,6 +15,9 @@ on-going issues.
|
||||
Recent Bugs
|
||||
-----------
|
||||
|
||||
* fbclear -c appears to hang indefinitely inside pkg_bwaitfor,
|
||||
possible protocol mismatch or capability removed/changed in fbserv.
|
||||
|
||||
* dbupgrade -r produces an invalid rhc with the default v5 rhc produced
|
||||
by MGED with "make rhc rhc"
|
||||
|
||||
@@ -233,9 +236,6 @@ Recent Bugs
|
||||
book-keeping is fuxored or the db_lookup is returning NULL (or isn't
|
||||
yet performed).
|
||||
|
||||
* idents command is reporting a bogus region count in the region
|
||||
output table listing (first column).
|
||||
|
||||
* src/librt/primitives/bot/g_bot_include.c:rt_bot_bbox() routine isn't
|
||||
calculating the bbox correctly
|
||||
|
||||
|
||||
@@ -127,6 +127,24 @@ generally listed for reference.
|
||||
Items marked with a "'" (single quote) are undocumented and may be
|
||||
removed at any time.
|
||||
|
||||
7.32
|
||||
----
|
||||
include/bg/chull.h
|
||||
All functions returning point arrays instead of index arrays.
|
||||
Will be replaced by similarly named functions returning
|
||||
indexes into provided points array, to allow the caller
|
||||
to decide if new arrays are needed. [deprecated 7.32]
|
||||
bg_polyline_2d_chull, bg_2d_chull, bg_3d_coplanar_chull,
|
||||
bg_3d_chull
|
||||
|
||||
MGED gui
|
||||
The following will be removed from MGED's menu bar (unused
|
||||
features, can be accomplished another way, or will be exposed
|
||||
only as lower level settings when there are sensible defaults
|
||||
that are seldom changed.)
|
||||
|
||||
Settings->Mouse Behavior->Pick Raytrace-Object(s)
|
||||
|
||||
7.30
|
||||
----
|
||||
~/.density
|
||||
@@ -354,6 +372,7 @@ include/raytrace.h
|
||||
*** OBSOLETED CHANGES ***
|
||||
**********************************************************************
|
||||
(reverse chronological order)
|
||||
|
||||
7.30.2
|
||||
------
|
||||
ray tracing tools
|
||||
@@ -1527,3 +1546,8 @@ s/wdb_pipept/wdb_pipe_pnt/g
|
||||
renamed points from pt to pnt for consistency [7.30]
|
||||
s/proe-brl/creo-brl/g
|
||||
replaced by newer creo plugin [7.30]
|
||||
|
||||
7.32
|
||||
----
|
||||
s/facetall.sh/mged -c facetize/g
|
||||
replaced by more improved facetize command [7.30]
|
||||
|
||||
+68
-40
@@ -1294,6 +1294,9 @@ option(BRLCAD_INSTALL_EXAMPLE_GEOMETRY "Install the example BRL-CAD geometry fil
|
||||
# we've indicated we *don't* want an X11 build
|
||||
if(NOT BRLCAD_ENABLE_AQUA AND NOT BRLCAD_ENABLE_MINIMAL)
|
||||
include(FindX11)
|
||||
if (X11_Xrender_FOUND)
|
||||
CONFIG_H_APPEND(BRLCAD "#define HAVE_XRENDER 1\n")
|
||||
endif (X11_Xrender_FOUND)
|
||||
endif(NOT BRLCAD_ENABLE_AQUA AND NOT BRLCAD_ENABLE_MINIMAL)
|
||||
|
||||
# make sure Xi is included in the list of X11 libs
|
||||
@@ -1381,6 +1384,10 @@ mark_as_advanced(BRLCAD_ENABLE_BULLET)
|
||||
option(BRLCAD_ENABLE_GDAL "Enable features requiring the Geospatial Data Abstraction Library" ON)
|
||||
mark_as_advanced(BRLCAD_ENABLE_GDAL)
|
||||
|
||||
# Enable features requiring STEPcode library
|
||||
option(BRLCAD_ENABLE_STEP "Enable features requiring the STEP support libraries" ON)
|
||||
mark_as_advanced(BRLCAD_ENABLE_STEP)
|
||||
|
||||
# Enable features requiring Qt
|
||||
option(BRLCAD_ENABLE_QT "Enable features requiring Qt" OFF)
|
||||
mark_as_advanced(BRLCAD_ENABLE_QT)
|
||||
@@ -2933,17 +2940,11 @@ if(NOT HAVE_SNPRINTF)
|
||||
endif(HAVE__SNPRINTF)
|
||||
endif(NOT HAVE_SNPRINTF)
|
||||
|
||||
# So far I haven't been able to come up with a reliable self contained
|
||||
# test for this, but libbu's #2 realpath test triggers a stack smash
|
||||
# on some linux systems. For the moment, fall back on OpenBSD's
|
||||
# userspace implementation, which does seem to work. Once we can
|
||||
# get a self-contained reproduction of this failure, put it below
|
||||
# and we can use the system realpath again.
|
||||
if(HAVE_REALPATH)
|
||||
#check_c_source_runs("#include<limits.h>\n#include <stdlib.h>\nint main() { char dir[512]; const char *d = \"/tmp/REALPATH_TEST_PATH\"; d = (const char *)realpath(d, dir); return 0; }" HAVE_WORKING_REALPATH)
|
||||
#if(HAVE_WORKING_REALPATH)
|
||||
# CONFIG_H_APPEND(BRLCAD "#define HAVE_WORKING_REALPATH 1\n")
|
||||
#endif(HAVE_WORKING_REALPATH)
|
||||
#check_c_source_runs("#include<limits.h>\n#include <stdlib.h>\nint main() { char dir[PATH_MAX]; const char *d = \"/tmp/REALPATH_TEST_PATH\"; d = (const char *)realpath(d, dir); return 0; }" HAVE_WORKING_REALPATH)
|
||||
#if(HAVE_WORKING_REALPATH)
|
||||
# CONFIG_H_APPEND(BRLCAD "#define HAVE_WORKING_REALPATH 1\n")
|
||||
#endif(HAVE_WORKING_REALPATH)
|
||||
endif(HAVE_REALPATH)
|
||||
|
||||
# GetFullPathName
|
||||
@@ -3567,26 +3568,45 @@ if(NOT BRLCAD_IS_SUBBUILD)
|
||||
endif(CPACK_RPM_PACKAGE_RELEASE)
|
||||
|
||||
if(WIN32)
|
||||
set(CPACK_GENERATOR NSIS)
|
||||
set(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
|
||||
set(CPACK_NSIS_INSTALL_DIRECTORY "BRL-CAD ${BRLCAD_VERSION}")
|
||||
set(CPACK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
|
||||
set(CPACK_DATA_DIR "${DATA_DIR}")
|
||||
set(CPACK_DOC_DIR "${DOC_DIR}")
|
||||
# There is a bug in NSI that does not handle full unix paths properly. Make
|
||||
# sure there is at least one set of four (4) backslashes.
|
||||
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
|
||||
set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
|
||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
|
||||
set(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
|
||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||
if(BRLCAD_ENABLE_WIX)
|
||||
find_package(NSIS)
|
||||
if (NSIS_FOUND)
|
||||
set(CPACK_GENERATOR ${CPACK_GENERATOR} NSIS)
|
||||
set(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
|
||||
set(CPACK_NSIS_INSTALL_DIRECTORY "BRL-CAD ${BRLCAD_VERSION}")
|
||||
set(CPACK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
|
||||
set(CPACK_DATA_DIR "${DATA_DIR}")
|
||||
set(CPACK_DOC_DIR "${DOC_DIR}")
|
||||
# There is a bug in NSIS that does not handle full unix paths properly. Make
|
||||
# sure there is at least one set of four (4) backslashes.
|
||||
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
|
||||
set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
|
||||
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
|
||||
set(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
|
||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||
endif (NSIS_FOUND)
|
||||
find_package(Wix)
|
||||
if (Wix_FOUND)
|
||||
# User report that this version of the installer also supports
|
||||
# non-graphical installation with the /passive option.
|
||||
#
|
||||
# Note: for WiX, start menu shortcuts and desktop icons are handled with
|
||||
# properties set on targets. (At the moment, this is not true for NSIS -
|
||||
# it uses entries in the misc/CMake/NSIS.template.in file.)
|
||||
#
|
||||
# If we need to get fancier about this, look at the following:
|
||||
# https://github.com/Kitware/CMake/blob/master/CMakeCPackOptions.cmake.in#L216
|
||||
# https://github.com/Kitware/CMake/tree/master/Utilities/Release/WiX
|
||||
set(CPACK_GENERATOR ${CPACK_GENERATOR} WIX)
|
||||
set(CPACK_WIX_LICENSE_RTF "${CMAKE_SOURCE_DIR}/misc/wix/License.rtf")
|
||||
set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_product.ico")
|
||||
set(CPACK_WIX_PROGRAM_MENU_FOLDER "BRL-CAD ${BRLCAD_VERSION}")
|
||||
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_banner.bmp")
|
||||
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_dialog.bmp")
|
||||
endif(BRLCAD_ENABLE_WIX)
|
||||
endif (Wix_FOUND)
|
||||
if (NOT CPACK_GENERATOR)
|
||||
# If nothing else, make a zip file
|
||||
set(CPACK_GENERATOR ZIP)
|
||||
endif (NOT CPACK_GENERATOR)
|
||||
if(CMAKE_CL_64)
|
||||
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win64")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "BRL-CAD ${BRLCAD_VERSION} win64")
|
||||
@@ -3624,9 +3644,16 @@ if(NOT BRLCAD_IS_SUBBUILD)
|
||||
CMAKEFILES(.gitignore)
|
||||
endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.gitignore)
|
||||
|
||||
# List any files which may exist for CI testing for distcheck. TODO -
|
||||
# this should be a fixed list, but until we go live with the Git repo
|
||||
# use file(GLOB_RECURSE) instead
|
||||
file(GLOB_RECURSE GITHUB_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ".github/*")
|
||||
CMAKEFILES(${GITHUB_FILES})
|
||||
|
||||
# Handle some toplevel distclean listings
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/CMakeCache.txt")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/cmakefiles.cmake")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/brlcadexec.cmake")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/install_manifest.txt")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/OPTIONS")
|
||||
@@ -3637,6 +3664,7 @@ if(NOT BRLCAD_IS_SUBBUILD)
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/include/brlcad_config.h.in")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/CMakeDoxyfile.in")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake")
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/CPackProperties.cmake")
|
||||
foreach(clearpattern ${DISTCLEAN_OUTFILES})
|
||||
DISTCLEAN("${CMAKE_BINARY_DIR}/${clearpattern}")
|
||||
endforeach(clearpattern ${DISTCLEAN_OUTFILES})
|
||||
@@ -3676,6 +3704,7 @@ mark_as_advanced(EXECUTABLE_OUTPUT_PATH)
|
||||
mark_as_advanced(LIBRARY_OUTPUT_PATH)
|
||||
mark_as_advanced(CMAKE_CXX_COMPILER)
|
||||
mark_as_advanced(CMAKE_C_COMPILER)
|
||||
mark_as_advanced(CMAKE_AR)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# If options have been defined that we are going to document, by now they've
|
||||
@@ -3699,7 +3728,7 @@ function(DIFF_FILE filename)
|
||||
string(REGEX REPLACE "\r?\n" "" NEW_STR "${BIN_STR}")
|
||||
if(NOT "${OLD_STR}" STREQUAL "${NEW_STR}")
|
||||
set(CONFIG_FATAL_ERROR 1 PARENT_SCOPE)
|
||||
message("\n\"${BRLCAD_SOURCE_DIR}/${filename}\" is out of date. An updated version has been generated at \"${BRLCAD_BINARY_DIR}/${filename}.new\"\nTo clear this warning, replace \"${BRLCAD_SOURCE_DIR}/${filename}\" with \"${BRLCAD_BINARY_DIR}/${filename}.new\"\n")
|
||||
message("\nERROR: \"${BRLCAD_SOURCE_DIR}/${filename}\" is out of date. An updated version has been generated at \"${BRLCAD_BINARY_DIR}/${filename}.new\"\nTo clear this, replace \"${BRLCAD_SOURCE_DIR}/${filename}\" with \"${BRLCAD_BINARY_DIR}/${filename}.new\" or find the source of the difference.\n")
|
||||
endif(NOT "${OLD_STR}" STREQUAL "${NEW_STR}")
|
||||
endfunction(DIFF_FILE filename)
|
||||
|
||||
@@ -3725,7 +3754,7 @@ file(APPEND "${CMAKE_BINARY_DIR}/configure.new" "${CONFIG_SUFFIX}")
|
||||
DIFF_FILE(configure)
|
||||
|
||||
if(CONFIG_FATAL_ERROR)
|
||||
message(FATAL_ERROR "Configure haulted.")
|
||||
message(FATAL_ERROR "Configure haulted because INSTALL and/or configure script are out of date.")
|
||||
endif(CONFIG_FATAL_ERROR)
|
||||
|
||||
|
||||
@@ -3737,25 +3766,18 @@ DISTCLEAN("${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_end.c")
|
||||
get_property(CMAKE_DISTCLEAN_TARGET_LIST GLOBAL PROPERTY CMAKE_DISTCLEAN_TARGET_LIST)
|
||||
list(REMOVE_DUPLICATES CMAKE_DISTCLEAN_TARGET_LIST)
|
||||
configure_file("${BRLCAD_CMAKE_DIR}/distclean.cmake.in" "${BRLCAD_BINARY_DIR}/distclean.cmake" @ONLY)
|
||||
if("${CMAKE_GENERATOR}" MATCHES "Make")
|
||||
if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
|
||||
add_custom_target(distclean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running make clean..."
|
||||
COMMAND ${CMAKE_COMMAND} -E chdir "${BRLCAD_BINARY_DIR}" $(MAKE) clean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running make clean... done."
|
||||
COMMAND ${CMAKE_COMMAND} -P "${BRLCAD_BINARY_DIR}/distclean.cmake"
|
||||
)
|
||||
elseif("${CMAKE_GENERATOR}" MATCHES "Ninja")
|
||||
else ("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
|
||||
add_custom_target(distclean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running make clean..."
|
||||
COMMAND ${CMAKE_COMMAND} -E chdir "${BRLCAD_BINARY_DIR}" ninja -t clean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running make clean... done."
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running clean target..."
|
||||
COMMAND ${CMAKE_COMMAND} --build ${BRLCAD_BINARY_DIR} --target clean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Running clean target... done."
|
||||
COMMAND ${CMAKE_COMMAND} -P "${BRLCAD_BINARY_DIR}/distclean.cmake"
|
||||
)
|
||||
else("${CMAKE_GENERATOR}" MATCHES "Make")
|
||||
add_custom_target(distclean
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "Not implemented for generator ${CMAKE_GENERATOR}"
|
||||
)
|
||||
endif("${CMAKE_GENERATOR}" MATCHES "Make")
|
||||
endif ("${CMAKE_GENERATOR}" MATCHES "Visual Studio")
|
||||
if(TARGET distclean)
|
||||
set_target_properties(distclean PROPERTIES FOLDER "Compilation Utilities")
|
||||
endif(TARGET distclean)
|
||||
@@ -3767,6 +3789,12 @@ list(REMOVE_DUPLICATES CMAKE_IGNORE_FILES)
|
||||
string(REPLACE ";" "\n" CMAKE_IGNORE_FILES "${CMAKE_IGNORE_FILES}")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake" "${CMAKE_IGNORE_FILES}")
|
||||
|
||||
get_property(BRLCAD_EXEC_FILES GLOBAL PROPERTY BRLCAD_EXEC_FILES)
|
||||
list(REMOVE_DUPLICATES BRLCAD_EXEC_FILES)
|
||||
list(SORT BRLCAD_EXEC_FILES)
|
||||
string(REPLACE ";" "\n" BRLCAD_EXEC_FILES "${BRLCAD_EXEC_FILES}")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/brlcadexec.cmake" "${BRLCAD_EXEC_FILES}")
|
||||
|
||||
#Done with all really time-consuming steps - do the configure time delta
|
||||
if(NOT BRLCAD_IS_SUBBUILD)
|
||||
execute_process(COMMAND "${CMAKE_BINARY_DIR}/CMakeTmp/dreport" "Elapsed configuration time: " "${CONFIG_DELTA_START}")
|
||||
|
||||
@@ -10,17 +10,81 @@ descriptive text that emphasizes or further describes significant
|
||||
changes made. See document footer for additional details.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 20XX-XX-XX Release 7.3X.X ---
|
||||
--- 2020-xx-xx Release 7.32.2 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* added MGED stat command for reporting of object info - Cliff Yapp
|
||||
* corrected examples in gdiff man page - Cliff Yapp
|
||||
* fixed help message for -F option on gdiff command - Cliff Yapp
|
||||
* fixed mged -c bomb attaching to graphical displays - Sean Morrison
|
||||
* fixed titlebar bug opening .g with filename spaces - Sean Morrison
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2020-09-14 Release 7.32.0 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This major release of BRL-CAD introduces significant updates to core
|
||||
library infrastructure. The update includes restructuring of nearly
|
||||
all of BRL-CAD's display infrastructure in preparation for upcoming
|
||||
significant GUI changes. This release also fixes over fifty of
|
||||
BRL-CAD's command-line utilities so they work properly on Windows.
|
||||
This is likely the last major release of BRL-CAD on Subversion
|
||||
infrastructure with BRL-CAD's imminent migration to Git.
|
||||
|
||||
* added basic example to remrt man page - Cliff Yapp, Sean Morrison
|
||||
* added new 'nburst' version of classic burst tool - Cliff Yapp
|
||||
* added 'bot set' command for low level BoT manipulation - Cliff Yapp
|
||||
* report semantic strings for 'bot get' mode/orientation - Cliff Yapp
|
||||
* added new manual page for the libicv library - Sumagna Das
|
||||
* added -size filter to MGED search command - Cliff Yapp
|
||||
* upgraded Tcl/Tk from 8.5.19 to 8.6.10 - Cliff Yapp
|
||||
* bundled zlib & libpng use API prefix and library suffix - Cliff Yapp
|
||||
* extensive improvements to OpenCL ray trace pipeline - Rishabh Suthar
|
||||
* improved rtweight density value warnings - Sean Morrison, Cliff Yapp
|
||||
* added perception-based hdtv and hdr modes for pix-bw - Sean Morrison
|
||||
* fixed semi-transparent DM and FB windows on Linux - Cliff Yapp
|
||||
* improved rtweight manual page - Sean Morrison
|
||||
* added line reporting TCP listening port to remrt output - Cliff Yapp
|
||||
* added help options support (-h,-?) to asc2dsp and g2asc - Cliff Yapp
|
||||
* fixed crash when drawing a VOL with missing data - Cliff Yapp
|
||||
* facetall.sh script is replaced by MGED facetize command - Cliff Yapp
|
||||
* dynamic LIBGED command loading in MGED & Archer - Cliff Yapp
|
||||
* removed MGED "Display Manager" switching menu options - Cliff Yapp
|
||||
* dynamic LIBDM display manager loading in MGED & Archer - Cliff Yapp
|
||||
* fixed 'idents' crash when running in a read-only dir - Sean Morrison
|
||||
* fixed fb tools w/ redirected files and cv on Windows - Sean Morrison
|
||||
* expanded 'bo' command docs with a DSP input example - Sean Morrison
|
||||
* fixed 'in' making joint, superell, & script objects - Sean Morrison
|
||||
* Creo converter always writes out CREO_NAME attribute - Sean Morrison
|
||||
* improved gdiff -F filtering option behavior - Cliff Yapp
|
||||
* improved gdiff command verbosity reporting options - Cliff Yapp
|
||||
* improved Combination Editor button behaviors in MGED - Sean Morrison
|
||||
* added 'asc' geometry import and export support to gcv - Cliff Yapp
|
||||
* consistent usage taxonomy for ident-related commands - Sean Morrison
|
||||
* added units label to the Archer in-scene scale graphic - Cliff Yapp
|
||||
* added framebuffer capture option to screengrab command - Cliff Yapp
|
||||
* added framebuffer writing option to overlay command - Cliff Yapp
|
||||
* added tree search option to 'whichid' and 'whichair' - Cliff Yapp
|
||||
* changed 'whichid' and 'whichair' to print ranges of unused IDs
|
||||
- Nick Reed, Cliff Yapp
|
||||
* improved output path sorting of search command - Cliff Yapp
|
||||
* added "bot extrude" command for making ARB6s from bots - Cliff Yapp
|
||||
* added 3dm-g failure message about supported versions - Cliff Yapp
|
||||
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
|
||||
* added MGED 'dm type' subcommand for reporting DM type - Cliff Yapp
|
||||
* improved vdeck input support for Windows text files - Sean Morrison
|
||||
* fixed MGED 'plot' & 'brep plot' commands on Windows - Sean Morrison
|
||||
* fixed numerous image utilities reading binary input files on Windows
|
||||
- Sean Morrison, Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2020-07-24 Release 7.30.10 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* added 3dm-g failure message about supported versions - Cliff Yapp
|
||||
* fixed MGED "in" command support for datums - Sean Morrison
|
||||
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -44,9 +108,11 @@ changes made. See document footer for additional details.
|
||||
* fixed transparent drawing in MGED - Nick Reed
|
||||
* fixed solid NURBS brep intersection testing - Cliff Yapp
|
||||
* removed extra blank line after commands in MGED GUI - Sean Morrison
|
||||
* minor improvement to NURBS ray tracing performance - Sean Morrison
|
||||
* added "plate" object type filter to search command - Cliff Yapp
|
||||
* fixed latent logging bug during facetize on Windows - Bob Parker
|
||||
* fixed bug closing rt framebuffer windows on Windows - Sean Morrison
|
||||
* added EBM support for reading from database objects - Jeffrey Liu
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -61,9 +127,13 @@ changes made. See document footer for additional details.
|
||||
* changed mged escape key binding to reset mouse mode - Sean Morrison
|
||||
* removed default xXyYzZ0 rate rotation key bindings - Sean Morrison
|
||||
* improved tessellation of nearly coplanar surfaces - John Anderson
|
||||
* fixed display of annotations on Windows - Daniel Roßberg
|
||||
* fixed annotations display on Windows - Daniel Roßberg, Ali Haydar
|
||||
* fixed rtedge and rtwizard occlusion object edge bug - Sean Morrison
|
||||
* rt* tools no longer force outputs to be read-only - Sean Morrison
|
||||
* fixed bug listing annotations with short label strings - Ali Haydar
|
||||
* improved support for label placement in annotations - Ali Haydar
|
||||
* fixed bug in annotation object bounding box calculation - Ali Haydar
|
||||
* fixed an annotation leader line bug affecting display - Ali Haydar
|
||||
* fixed 'burst' crash when run without options - Sean Morrison
|
||||
* changed rtweight to not truncate long pathnames - Sean Morrison
|
||||
* added new ball bearing example geometry model - Sean Morrison
|
||||
@@ -83,9 +153,9 @@ changes made. See document footer for additional details.
|
||||
- Sean Morrison, Cliff Yapp
|
||||
* added a copy subcommand to MGED's attr command - Cliff Yapp
|
||||
* fixed a locking condition in MGED's rtcheck command - Cliff Yapp
|
||||
* added support for >=< prefixes for mater -d get options Cliff Yapp
|
||||
* added support for >=< prefixes for mater -d get options - Cliff Yapp
|
||||
* fixed brlman lookup location of html manual pages - Cliff Yapp
|
||||
* fixed rt -t top-to-bottom parallel rendering option Sean Morrison
|
||||
* fixed rt -t top-to-bottom parallel rendering option - Sean Morrison
|
||||
* added a 'flip' normals command to MGED's brep command - Cliff Yapp
|
||||
* added rtweight support for in-.g density information - Cliff Yapp
|
||||
* improved usability of vol primitives w/ missing data - Sean Morrison
|
||||
@@ -192,7 +262,7 @@ methodologies and usability enhancements.
|
||||
* improved 'idents' command portability - Daniel Ramirez, Cliff Yapp
|
||||
* changed remrt/rtsrv to no longer report overlaps - Sean Morrison
|
||||
* improved GUI of MGED's Overlap Tool - Saran Narayan
|
||||
* fixed geometry directory building bug in remrt/rtsrv - Sean Morrison
|
||||
* fixed geopmetry directory building bug in remrt/rtsrv - Sean Morrison
|
||||
* fixed gcv problem with full paths on Windows - Cliff Yapp
|
||||
* removed precision limitation in NIRT input parsing - Cliff Yapp
|
||||
* added new example geometry models: chess and die pieces - Jeff Sieu
|
||||
@@ -273,6 +343,7 @@ and address portability issues.
|
||||
* fix rtedge foreground/background color options - Jon Engbert
|
||||
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
|
||||
* fixed xpush bug leaving stray top-level objects - Nick Reed
|
||||
* removed MGED wrapper 'mged.bat' batch script on Windows - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -326,7 +397,7 @@ performance ray tracing pipeline.
|
||||
* 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
|
||||
* fixed issue preserving color/shader info with 3dm-g - 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
|
||||
@@ -340,7 +411,7 @@ performance ray tracing pipeline.
|
||||
* removed any-png.sh - use pix tools - Sean Morrison
|
||||
* removed librtserver interface - Cliff Yapp
|
||||
* removed MGED per_line command - Sean Morrison
|
||||
* updated MGED tops command: default to -g -u behavior- Sean Morrison
|
||||
* updated MGED tops command: default to -g -u behavior - Sean Morrison
|
||||
* removed MGED -n option; use -c instead - Sean Morrison
|
||||
* removed MGED commands pl, pov and polybinout - Sean Morrison
|
||||
* removed UtahRLE image tools - Cliff Yapp
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
BRL-CAD
|
||||
Release 7.32.0
|
||||
Release 7.32.2
|
||||
http://brlcad.org/
|
||||
|
||||
BRL-CAD is a powerful cross-platform open source combinatorial
|
||||
|
||||
@@ -18,13 +18,39 @@ tasks as they are completed.
|
||||
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
|
||||
-------------------------------------------------
|
||||
|
||||
* The embedded framebuffer for the X display manager is not working
|
||||
with Tcl/Tk 8.6 - it brings down mged with an Xerror when it tries
|
||||
to XFlush after X24_blit.
|
||||
* Release Testing, final commit reviews
|
||||
|
||||
|
||||
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
|
||||
-------------------------------------------------------
|
||||
|
||||
* The following will be removed from MGED's menu bar (unused
|
||||
features, can be accomplished another way, or will be exposed
|
||||
only as lower level settings when there are sensible defaults
|
||||
that are seldom changed.)
|
||||
|
||||
ViewRing menu and entries.
|
||||
Modes->Persistent Sweep Rectangle
|
||||
Modes->Collaborate
|
||||
Modes->Rateknobs
|
||||
Modes->Display Lists
|
||||
Misc->Keystroke Forwarding
|
||||
Misc->Depth Cueing
|
||||
Misc->Z Buffer
|
||||
Misc->Lighting
|
||||
Settings->Mouse Behavior->Sweep Raytrace-Rectangle
|
||||
Settings->Mouse Behavior->Sweep Paint-Rectangle
|
||||
Settings->Mouse Behavior->Sweep Zoom-Rectangle
|
||||
Settings->Apply To->Local Panes
|
||||
Settings->Apply To->Listed Panes
|
||||
Settings->Framebuffer->Rectangle Area
|
||||
|
||||
* The embedded framebuffer for the X display manager is not working
|
||||
with Tcl/Tk 8.6 - it brings down mged with an Xerror when it tries
|
||||
to XFlush after X24_blit. Better solution is to replace the X
|
||||
dm/fb with a cross platform software rasterizing solution of some
|
||||
sort.
|
||||
|
||||
* Implement new behavior for quit command in MGED - if bu_subprocess
|
||||
commands are running, by default refuse to quit and print out a
|
||||
list of currently running processes and instructions on how to abort
|
||||
@@ -146,9 +172,26 @@ THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
|
||||
THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
-----------------------------------
|
||||
|
||||
* audit/fix all of the src/util and src/fb utilities to ensure they
|
||||
set binary mode (setmode O_BINARY) when writing out files. at quick
|
||||
glance, there are many (about 50) that still do not.
|
||||
* bot -V check solid bot.s visualizations don't show up if bot.s is
|
||||
first drawn in MGED - should properly "overlay" them so the user
|
||||
doesn't have to first erase the solid from the scene visual.
|
||||
|
||||
* MGED's startup directory is inconsistent and sometimes problematic.
|
||||
If the current working directory is read-only (e.g., a default
|
||||
system install and opening one of the sample .g files), then
|
||||
numerous commands the write out to the current path will fail (e.g.,
|
||||
"idents file.log"). Review startup path behavior and consider using
|
||||
$HOME or some other system path, unless started on the command-line.
|
||||
|
||||
* rtwizard's reopening of the database is causing db_dircheck
|
||||
"Duplicate of..." errors when opening read-only .g files.
|
||||
|
||||
* procedural studio box generation allowing for specification of size,
|
||||
shape, material, and lighting characteristics
|
||||
|
||||
* verify all of the src/util utilities behave correctly on Windows
|
||||
with respect to mode (i.e. correctly using setmode/O_BINARY when
|
||||
performing file I/O.)
|
||||
|
||||
* the osgl libdm backend has what appears to be an off-by-one-pixel
|
||||
error in the x and y directions with respect to mouse placement.
|
||||
@@ -1151,9 +1194,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
|
||||
http://support.echoview.com/WebHelp/Reference/File_formats/
|
||||
Export_file_formats/Volume_data_set_file_formats.htm
|
||||
|
||||
* turn geometry converters and image converters into libraries
|
||||
(started as libraries libgcv and libicv)
|
||||
|
||||
* add support for querying geometry properties to library including
|
||||
computing surface area and weight/mass.
|
||||
|
||||
@@ -2310,8 +2350,15 @@ INFRASTRUCTURE
|
||||
|
||||
|
||||
THESE BREAK PROTOCOL OR ARE BACKWARDS-INCOMPATIBLE
|
||||
(i.e., v6 database format)
|
||||
--------------------------------------------------
|
||||
|
||||
* support matrices over any object, including over top-level combs
|
||||
without affecting members and including over primitives so they may
|
||||
optionally retain a local coordinate system even after a push
|
||||
operation this also will allow primitives like the torus support
|
||||
non-uniform scaling.
|
||||
|
||||
* change convention of using 'u', '+', and '-' for unions,
|
||||
intersections, and subtractions respectively to symbols that
|
||||
unambiguously describe the underlying CSG operation.
|
||||
@@ -2359,11 +2406,6 @@ THESE BREAK PROTOCOL OR ARE BACKWARDS-INCOMPATIBLE
|
||||
* remove the storage of the never-implemented keypoint parameter for
|
||||
extrude objects.
|
||||
|
||||
* have all primitives record a transformation matrix so that they may
|
||||
retain a local coordinate system even after pushed matrices. this
|
||||
also will allow primitives like the torus to support non-uniform
|
||||
scaling.
|
||||
|
||||
* rename 'part' primitive to 'pill' or remove it entirely in favor of
|
||||
a more generalized metaprimitive primitive.
|
||||
|
||||
@@ -2415,6 +2457,18 @@ FUNCTIONALITY NEEDED TO SPEED UP RAYTRACING
|
||||
* write and use kdtree - make traversal cache coherent
|
||||
|
||||
|
||||
GEOMETRY MODELS
|
||||
---------------
|
||||
|
||||
* CSG shaderball
|
||||
|
||||
* solid teapot
|
||||
|
||||
* studio box
|
||||
|
||||
* CSG lightcycle
|
||||
|
||||
|
||||
DOCUMENTATION
|
||||
-------------
|
||||
|
||||
@@ -2460,6 +2514,7 @@ DOCUMENTATION
|
||||
dsel
|
||||
dstats
|
||||
dwin
|
||||
gcv
|
||||
ihist
|
||||
imod
|
||||
isst
|
||||
@@ -2570,11 +2625,6 @@ DOCUMENTATION
|
||||
doc/docbook/presentations/en/intro-to-tcltk.xml
|
||||
doc/docbook/specifications/en/BRL_CAD_g_format_V5.xml
|
||||
|
||||
* improve rtweight documentation, explain how it computes its
|
||||
"centroid" (as it's not the center of bounding box of all objects,
|
||||
it's the geometric centoid that that takes booleans into
|
||||
consideration).
|
||||
|
||||
* write up some documentation on other build tools besides make -
|
||||
CMake supports other generators, wouldn't hurt to detail how to
|
||||
trigger builds in them (MSVC is partially covered, make sure to
|
||||
|
||||
+20
-7
@@ -11,17 +11,26 @@ set(BARK_SOURCES
|
||||
run.c
|
||||
clean.c
|
||||
)
|
||||
BRLCAD_ADDEXEC(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL)
|
||||
BRLCAD_ADDEXEC(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL TEST_USESDATA)
|
||||
|
||||
configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/benchmark" COPYONLY)
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/benchmark" DESTINATION ${BIN_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/run.sh $<TARGET_FILE_DIR:bark>/benchmark
|
||||
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/run.sh
|
||||
)
|
||||
add_custom_target(benchmark_cp ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done)
|
||||
set_target_properties(benchmark_cp PROPERTIES FOLDER "Benchmark")
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/bin/benchmark COPYONLY)
|
||||
DISTCLEAN(${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/${BIN_DIR}/benchmark)
|
||||
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/benchmark COPYONLY)
|
||||
DISTCLEAN(${CMAKE_BINARY_DIR}/${BIN_DIR}/benchmark)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"---\")\n")
|
||||
@@ -38,32 +47,36 @@ CMAKEFILES(
|
||||
|
||||
if(SH_EXEC AND TARGET m35.g)
|
||||
# CTest enabled short run of the benchmark suite
|
||||
add_test(NAME benchmark COMMAND ${SH_EXEC} "${CMAKE_BINARY_DIR}/bin/benchmark" run TIMEFRAME=1)
|
||||
add_test(NAME benchmark COMMAND ${SH_EXEC} "$<TARGET_FILE_DIR:bark>/benchmark" run TIMEFRAME=1)
|
||||
set_tests_properties(benchmark PROPERTIES LABELS "Benchmark")
|
||||
add_custom_target(benchmark-check
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} -L Benchmark --output-on-failure
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp benchmark_cp
|
||||
)
|
||||
add_dependencies(benchmark-check bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
set_target_properties(benchmark-check PROPERTIES FOLDER "Benchmark")
|
||||
if(TARGET check)
|
||||
add_dependencies(check benchmark-check)
|
||||
endif(TARGET check)
|
||||
|
||||
# Full run of the benchmark suite
|
||||
add_custom_target(benchmark
|
||||
COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark run
|
||||
COMMAND ${SH_EXEC} $<TARGET_FILE_DIR:bark>/benchmark run
|
||||
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake"
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp benchmark_cp
|
||||
)
|
||||
add_dependencies(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
set_target_properties(benchmark PROPERTIES FOLDER "Benchmark")
|
||||
|
||||
# benchmark cleanup targets
|
||||
add_custom_target(benchmark-clean
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean
|
||||
)
|
||||
set_target_properties(benchmark-clean PROPERTIES FOLDER "Benchmark")
|
||||
add_custom_target(benchmark-clobber
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
|
||||
)
|
||||
set_target_properties(benchmark-clobber PROPERTIES FOLDER "Benchmark")
|
||||
endif(SH_EXEC AND TARGET m35.g)
|
||||
|
||||
# Local Variables:
|
||||
|
||||
+47
-25
@@ -70,25 +70,29 @@ LC_ALL=C
|
||||
|
||||
# commands that this script expects
|
||||
for __cmd in echo pwd ; do
|
||||
echo "test" | $__cmd > /dev/null 2>&1
|
||||
out=`echo "test" | $__cmd 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
echo "INTERNAL ERROR: $__cmd command is required"
|
||||
echo " (output was [$out])"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
echo "test" | grep "test" > /dev/null 2>&1
|
||||
out=`echo "test" | grep "test" 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
echo "INTERNAL ERROR: grep command is required"
|
||||
echo " (output was [$out])"
|
||||
exit 1
|
||||
fi
|
||||
echo "test" | tr "test" "test" > /dev/null 2>&1
|
||||
out=`echo "test" | tr "test" "test" 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
echo "INTERNAL ERROR: tr command is required"
|
||||
echo " (output was [$out])"
|
||||
exit 1
|
||||
fi
|
||||
echo "test" | sed "s/test/test/" > /dev/null 2>&1
|
||||
out=`echo "test" | sed "s/test/test/" 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
echo "INTERNAL ERROR: sed command is required"
|
||||
echo " (output was [$out])"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -391,12 +395,14 @@ fi
|
||||
|
||||
# where to write results
|
||||
LOGFILE=run-$$-benchmark.log
|
||||
touch "$LOGFILE"
|
||||
if test -e $LOGFILE ; then
|
||||
echo "WARNING: $LOGFILE already exists. Appending."
|
||||
else
|
||||
touch "$LOGFILE"
|
||||
fi
|
||||
if test ! -w "$LOGFILE" ; then
|
||||
if test ! "x$LOGFILE" = "x/dev/null" ; then
|
||||
echo "ERROR: Unable to log to $LOGFILE"
|
||||
fi
|
||||
LOGFILE=/dev/null
|
||||
echo "WARNING: Unable to log to $LOGFILE"
|
||||
LOGFILE=
|
||||
fi
|
||||
|
||||
VERBOSE_ECHO=:
|
||||
@@ -415,7 +421,13 @@ fi
|
||||
$ECHO "B R L - C A D B E N C H M A R K"
|
||||
$ECHO "================================="
|
||||
$ECHO "Running $THIS on `date`"
|
||||
$ECHO "Logging output to $LOGFILE"
|
||||
if test "x$LOGFILE" != "x" ; then
|
||||
$ECHO "Logging output to $LOGFILE"
|
||||
elif test "x$QUIET" != "x" ; then
|
||||
$ECHO "Logging output to STDOUT"
|
||||
else
|
||||
$ECHO "Logging output is OFF"
|
||||
fi
|
||||
$ECHO "`uname -a 2>&1`"
|
||||
$ECHO
|
||||
|
||||
@@ -584,8 +596,11 @@ else
|
||||
$ECHO "Using [$ELP] for ELP"
|
||||
fi
|
||||
|
||||
# more sanity checks, make sure the binaries and scripts run
|
||||
eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT > /dev/null 2>&1
|
||||
# stop git shell & msys2 arg manipulation
|
||||
export MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL="-F/dev/debug"
|
||||
|
||||
# sanity check: make sure $RT runs
|
||||
out=`eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT 2>&1`
|
||||
ret=$?
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
@@ -593,25 +608,30 @@ if test ! "x${ret}" = "x0" ; then
|
||||
"$RT"
|
||||
$ECHO
|
||||
$ECHO "ERROR: RT does not seem to work as expected"
|
||||
$ECHO " (output was [$out])"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# create a temporary file named "null", fopen("/dev/null") does not work on
|
||||
# windows (using cygwin), so punt.
|
||||
> null
|
||||
eval \"$CMP\" null null >/dev/null 2>&1
|
||||
rm -f null
|
||||
|
||||
# sanity check: make sure $CMP runs
|
||||
echo "" > tmp1
|
||||
echo "" > tmp2
|
||||
out=`echo "" | eval \"$CMP\" tmp1 tmp2 2>&1`
|
||||
ret=$?
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "ERROR: CMP does not seem to work as expected"
|
||||
$ECHO " (output was [$out])"
|
||||
rm -f tmp1 tmp2
|
||||
exit 2
|
||||
fi
|
||||
eval \"$ELP\" 0 > /dev/null 2>&1
|
||||
rm -f tmp1 tmp2
|
||||
|
||||
# sanity check: make sure $ELP runs
|
||||
out=`eval \"$ELP\" 0 2>&1`
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "ERROR: ELP does not seem to work as expected"
|
||||
$ECHO " (output was [$out])"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
@@ -671,7 +691,8 @@ $ECHO
|
||||
|
||||
|
||||
# if expr works, let the user know about how long this might take
|
||||
if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
|
||||
zero=`expr 1 - 1 2>&1`
|
||||
if test "x$zero" = "x0" ; then
|
||||
mintime="`expr 6 \* $TIMEFRAME`"
|
||||
if test $mintime -lt 1 ; then
|
||||
mintime=0 # zero is okay
|
||||
@@ -693,6 +714,7 @@ if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
|
||||
$ECHO
|
||||
else
|
||||
$ECHO "WARNING: expr is unavailable, unable to compute statistics"
|
||||
$ECHO " (output of 1 - 1 was [$zero])"
|
||||
$ECHO
|
||||
fi
|
||||
|
||||
@@ -859,13 +881,13 @@ sqrt ( ) {
|
||||
if test "x$sqrt_number" = "x" ; then
|
||||
$ECHO "ERROR: cannot compute the square root of nothing" 1>&2
|
||||
exit 1
|
||||
elif test $sqrt_number -lt 0 > /dev/null 2>&1 ; then
|
||||
elif test $sqrt_number -lt 0 ; then
|
||||
$ECHO "ERROR: square root of negative numbers is only in your imagination" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sqrt_have_dc=yes
|
||||
echo "1 1 + p" | dc >/dev/null 2>&1
|
||||
out=`echo "1 1 + p" | dc 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
sqrt_have_dc=no
|
||||
fi
|
||||
@@ -875,7 +897,7 @@ sqrt ( ) {
|
||||
sqrt_root=`echo "$sqrt_number v p" | dc`
|
||||
else
|
||||
sqrt_have_bc=yes
|
||||
echo "1 + 1" | bc >/dev/null 2>&1
|
||||
out=`echo "1 + 1" | bc 2>&1`
|
||||
if test ! "x$?" = "x0" ; then
|
||||
sqrt_have_bc=no
|
||||
fi
|
||||
@@ -1225,13 +1247,13 @@ perf ( ) {
|
||||
|
||||
# see if we have a calculator
|
||||
perf_have_dc=yes
|
||||
echo "1 1 + p" | dc >/dev/null 2>&1
|
||||
out=`echo "1 1 + p" | dc 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
perf_have_dc=no
|
||||
fi
|
||||
|
||||
perf_have_bc=yes
|
||||
echo "1 + 1" | bc >/dev/null 2>&1
|
||||
out=`echo "1 + 1" | bc 2>&1`
|
||||
if test ! x$? = x0 ; then
|
||||
perf_have_bc=no
|
||||
fi
|
||||
|
||||
+20
-14
@@ -97,25 +97,31 @@ function(ADD_G_TARGET in_model folder)
|
||||
endif(${MODEL_TYPE} STREQUAL "fg4")
|
||||
|
||||
if(${MODEL_TYPE} STREQUAL "stp")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} > ${log_file} 2>&1
|
||||
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
if (BRLCAD_ENABLE_STEP)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} > ${log_file} 2>&1
|
||||
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
else (BRLCAD_ENABLE_STEP)
|
||||
CMAKEFILES(${CMAKE_CURRENT_SOURCE_DIR}/${in_model})
|
||||
endif (BRLCAD_ENABLE_STEP)
|
||||
endif(${MODEL_TYPE} STREQUAL "stp")
|
||||
|
||||
if(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
|
||||
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
|
||||
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
|
||||
if(NOT ${MODEL_TYPE} STREQUAL "stp" OR BRLCAD_ENABLE_STEP)
|
||||
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
|
||||
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
|
||||
|
||||
# Install logic
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
# Install logic
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
|
||||
# Clean-up
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
|
||||
DISTCLEAN("${log_file}")
|
||||
# Clean-up
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
|
||||
DISTCLEAN("${log_file}")
|
||||
endif(NOT ${MODEL_TYPE} STREQUAL "stp" OR BRLCAD_ENABLE_STEP)
|
||||
endif(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
|
||||
|
||||
endfunction(ADD_G_TARGET in_model folder)
|
||||
|
||||
+4
-6
@@ -4,16 +4,15 @@ verbose_add_subdirectory(doc legal)
|
||||
|
||||
set(documentation_DATA
|
||||
BRL-CAD.bib
|
||||
GITHUB
|
||||
IDEAS
|
||||
PROJECTS
|
||||
README.Linux
|
||||
README.MacOSX
|
||||
README.Windows
|
||||
README.other/README.AIX
|
||||
README.other/README.BSD
|
||||
README.other/README.IRIX
|
||||
README.other/README.Solaris
|
||||
README.other/README.VAX
|
||||
README.BSD
|
||||
README.Solaris
|
||||
README.VAX
|
||||
checklist.txt
|
||||
description.txt
|
||||
notes/TODO.BREP
|
||||
@@ -208,7 +207,6 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
|
||||
|
||||
CMAKEFILES(
|
||||
CMakeLists.txt
|
||||
README.other/README.OSCON-2014
|
||||
STARTERS
|
||||
STRATEGY
|
||||
notes/bsd_semaphore_bug.txt
|
||||
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
Notes about development with the Github hosting platform.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Using Github Actions to iteratively debug problems.
|
||||
|
||||
Github's runners (build platforms for it's Actions CI system) offer a way to
|
||||
test platforms we don't otherwise have access to. Sometimes, if we need to
|
||||
iteratively test inputs being supplied to tools on those platforms to diagnose
|
||||
a problem, the full configure/build/test cycle can be a very slow way to
|
||||
proceed.
|
||||
|
||||
A way forward in this case is to create a temporary local repository with a
|
||||
checking of the binary version of BRL-CAD used for the specific platform in
|
||||
question, along with test inputs and an action defined to run the specific test
|
||||
in question. (REMEMBER - github repos are public, so only define and use inputs
|
||||
suitable for public consumption!)
|
||||
|
||||
For the below example, we created a repository with the Windows binary install
|
||||
and a README file explaining what the test is doing:
|
||||
|
||||
-rw-rw-r-- 1 user user 72 Sep 23 17:52 README
|
||||
drwxrwxr-x 3 user user 12288 Sep 24 07:41 bin
|
||||
drwxrwxr-x 4 user user 4096 Sep 23 17:49 libexec
|
||||
drwxrwxr-x 13 user user 4096 Sep 23 17:50 lib
|
||||
drwxrwxr-x 5 user user 4096 Sep 23 17:49 include
|
||||
drwxrwxr-x 16 user user 4096 Sep 23 17:50 share
|
||||
drwxrwxr-x 8 user user 4096 Sep 24 07:42 .git
|
||||
drwxrwxr-x 3 user user 4096 Sep 23 17:53 .github
|
||||
|
||||
Then, in the .github/workflows directory we create a .yml file to trigger the
|
||||
test whenever we push a change. For this example we were wanting to test the
|
||||
benchmark script, so we create a .github/workflows/benchmark.yml file with the
|
||||
following contents:
|
||||
|
||||
name: benchhmark
|
||||
on: [push]
|
||||
jobs:
|
||||
bench:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
# https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
|
||||
- run: echo '::add-path::{C:\Program Files\Git\bin}'
|
||||
- run: sh.exe ./bin/benchmark run
|
||||
|
||||
This allowed developers to iteratively adjust the bin/benchmark shell script
|
||||
and test the results in the compilation Windows environment, *without* having
|
||||
to perform the full compilation cycle on Windows each time. Once a working
|
||||
benchmark script was identified it was added back to the primary repository and
|
||||
the test repo deleted.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Debugging flags can be added to the actions environment for a given repo:
|
||||
|
||||
https://github.community/t/ci-access-to-shell-session/17250
|
||||
|
||||
(Note: the "Secrets" label is misleading in this particular case - that is
|
||||
the mechanism by which the values are introduced into the runner environment,
|
||||
but there are no actual secrets contained in the values of the debugging
|
||||
variables.)
|
||||
+53
-4
@@ -53,10 +53,10 @@ you will be able to compile BRL-CAD.
|
||||
|
||||
Following the build instructions in the INSTALL file. You will need:
|
||||
|
||||
gcc (3+, e.g. 4.0.3)
|
||||
g++ (3+, e.g. 4.0.3)
|
||||
gcc (6+, e.g. 6.0.3)
|
||||
g++ (6+, e.g. 6.0.3)
|
||||
make (e.g. gnu make 3.8.0)
|
||||
cmake (2.8.8 or newer)
|
||||
cmake (3.0.2 or newer)
|
||||
|
||||
All three of those have implicit dependencies on other packages.
|
||||
|
||||
@@ -89,9 +89,13 @@ should be deleted and recreated for each new attempt at package
|
||||
generation.
|
||||
|
||||
|
||||
Redhat/Fedora
|
||||
Redhat/CentOS/Fedora
|
||||
-------------
|
||||
|
||||
If you don't already have the necessary development tools:
|
||||
|
||||
yum install gcc gcc-c++ cmake
|
||||
|
||||
Development packages for building on Redhat/Fedora platforms:
|
||||
|
||||
yum install libX11-devel
|
||||
@@ -101,12 +105,49 @@ Development packages for building on Redhat/Fedora platforms:
|
||||
yum install fontconfig-devel # optional
|
||||
yum install mesa-libGL-devel # optional
|
||||
|
||||
If you wish to create rpm packages, you'll need rpmbuild
|
||||
|
||||
yum install rpm-build # optional
|
||||
|
||||
When setting up older versions for building BRL-CAD, it is sometimes
|
||||
necessary to install some non-default compilation tools in addition to the
|
||||
usual dependencies. (The default toolchain is sometimes too old to
|
||||
properly build BRL-CAD, if the compilers don't support sufficiently modern
|
||||
standards.) The following example is for CentOS 7:
|
||||
|
||||
yum install centos-release-scl
|
||||
yum install devtoolset-7
|
||||
|
||||
Then to run within that environment:
|
||||
|
||||
scl enable devtoolset-7 bash
|
||||
|
||||
|
||||
The CMake version is often too old as well. One way forward is to download the
|
||||
source code and bootstrap it (do this within the devtoolset enabled bash):
|
||||
|
||||
sudo yum install openssl-devel
|
||||
|
||||
curl -L -o cmake-3.18.2.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz
|
||||
tar -xvf cmake-3.18.2.tar.gz
|
||||
cd cmake-3.18.2
|
||||
./bootstrap --prefix=/opt/cmake
|
||||
make -j3 && make install
|
||||
export PATH=/opt/cmake/bin
|
||||
|
||||
From there, with the devtoolset enabled and the PATH set to include the new
|
||||
CMake, it should be possible to proceed normally with the build.
|
||||
|
||||
-------
|
||||
|
||||
To determine what particular version of Redhat or Fedora you are
|
||||
using, check these files:
|
||||
|
||||
cat /etc/redhat-release
|
||||
cat /etc/fedora-release
|
||||
|
||||
-------
|
||||
|
||||
Note there is a supported rpm package generation script in file
|
||||
'sh/make_rpm.sh' which can only function on a Fedora or openSUSE
|
||||
system. It can be used like so:
|
||||
@@ -119,6 +160,14 @@ system. It can be used like so:
|
||||
It is also possible to create an RPM package using CPack with the
|
||||
make package build target, on systems with the proper RPM tools.
|
||||
|
||||
-------
|
||||
|
||||
One issue encountered running CentOS in VirtualBox - networking
|
||||
is off by default. To enable, look for a file in
|
||||
/etc/sysconfig/network-scripts/ called something like enp0s3 and
|
||||
set ONBOOT=yes (see https://unix.stackexchange.com/a/79273)
|
||||
|
||||
|
||||
PPC64 Linux
|
||||
-----------
|
||||
|
||||
|
||||
+64
-45
@@ -3,57 +3,23 @@ BRL-CAD on Windows README
|
||||
|
||||
The usual way to build BRL-CAD for Windows is to use the CMake build
|
||||
system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
|
||||
Recent versions of both (as of this writing, MSVC 2013 and CMake
|
||||
2.8.12+) are recommended. If generating an installer, the Nullsoft
|
||||
Scriptable Install System (NSIS) tool is also required.
|
||||
Recent versions of both are recommended. If generating an installer,
|
||||
the following options are available and supported:
|
||||
|
||||
In principle, BRL-CAD can be built using CMake and environments like
|
||||
Cygwin and/or Mingw/Msys, but the latter is largely untested and
|
||||
Nullsoft Scriptable Install System (NSIS) - generates a. .exe installer
|
||||
|
||||
WiX Toolset - generates an MSI installer.
|
||||
|
||||
These tools must be installed separately - they are not included with
|
||||
CMake or Visual Studio.
|
||||
|
||||
Note: In principle BRL-CAD can be built using CMake and environments
|
||||
like Cygwin and/or Mingw/Msys, but they are largely untested and
|
||||
infrequently supported. Enhancements or bug reports are welcome.
|
||||
|
||||
Visual Studio
|
||||
-------------
|
||||
|
||||
=== Notes on Windows 10 with latest SDK ===
|
||||
Because Tk before 8.6.8 cannot be built with the latest Windows SDK
|
||||
(naming conflicts; see [1]), an earlier one (10.0.15063.0 is the
|
||||
last working version) is needed (available at [2]).
|
||||
|
||||
Targets `tk`, `tkstub` and `libfb` need to be changed to use this SDK
|
||||
(right click on a target -> Configuration Properties -> General;
|
||||
select the SDK in Windows SDK Version).
|
||||
|
||||
Compilation is then unchanged from the below.
|
||||
|
||||
[1]: https://core.tcl.tk/tk/tktview?name=3d34589aa0
|
||||
[2]: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
|
||||
|
||||
===========================================
|
||||
|
||||
=== Notes on Visual Studio 14 2015 ===
|
||||
|
||||
In order to build this version (required to build the Creo 3 converter)
|
||||
with CMake, you must ensure that Microsoft's "rc.exe" program is
|
||||
installed and findable by CMake.
|
||||
|
||||
To install "rc.exe", run or re-run the Visual Studio installer and enable
|
||||
Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
|
||||
the "Common Tools" section.
|
||||
|
||||
The extensibility tools can become unselected by default in some
|
||||
configurations. Verify "rc.exe" is installed in:
|
||||
|
||||
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
|
||||
|
||||
Add that directory to your "Path" user variable so CMake will be able to
|
||||
locate the rc executable.
|
||||
|
||||
See:
|
||||
https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
|
||||
|
||||
======================================
|
||||
|
||||
|
||||
To build with CMake and Visual Studio, the first step is to obtain the
|
||||
BRL-CAD sources and create a build directory. In principle, it is not
|
||||
*required* to have a separate build directory, but with Windows and
|
||||
@@ -93,6 +59,59 @@ You may want to produce an NSIS installer. If so, locate a target
|
||||
named PACKAGE and run it. The end result should be an .exe file
|
||||
capable of installing BRL-CAD.
|
||||
|
||||
Working with MSI files
|
||||
----------------------
|
||||
|
||||
The WiX Toolset's MSI file, in addition to the standard interactive
|
||||
graphical install, also supports a command line based silent
|
||||
install. (See, for example, https://stackoverflow.com/a/25230485)
|
||||
|
||||
msiexec.exe /i c:\BRL-CAD-7.32.0_win64.msi /QN /L*V "C:\Temp\brlcad_install.log"
|
||||
|
||||
The logging step is not required but is recommended to allow for
|
||||
easier understanding of any issues that might arise.
|
||||
|
||||
===========================================
|
||||
|
||||
=== Setting a specific SDK version ===
|
||||
|
||||
If a particular version of the Windows SDK is needed, it is specified
|
||||
with CMAKE_SYSTEM_VERSION (for example, to use 10.0.15063.0 the user
|
||||
would define a New Entry in the CMake GUI before running configure,
|
||||
make the variable CMAKE_SYSTEM_VERSION as a string type, and assign the
|
||||
value of 10.0.15063.0.)
|
||||
|
||||
Note that for this to work the SDK version in question must be
|
||||
installed on the system. To see what versions are installed,
|
||||
look for Windows SDK installs in the "Apps & Features" Setup
|
||||
interface.
|
||||
|
||||
===========================================
|
||||
|
||||
=== Notes on Visual Studio 14 2015 ===
|
||||
|
||||
In order to build this version (required to build the Creo 3 converter)
|
||||
with CMake, you must ensure that Microsoft's "rc.exe" program is
|
||||
installed and findable by CMake.
|
||||
|
||||
To install "rc.exe", run or re-run the Visual Studio installer and enable
|
||||
Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
|
||||
the "Common Tools" section.
|
||||
|
||||
The extensibility tools can become unselected by default in some
|
||||
configurations. Verify "rc.exe" is installed in:
|
||||
|
||||
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
|
||||
|
||||
Add that directory to your "Path" user variable so CMake will be able to
|
||||
locate the rc executable.
|
||||
|
||||
See:
|
||||
https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
|
||||
|
||||
======================================
|
||||
|
||||
|
||||
MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
|
||||
-----
|
||||
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
BRL-CAD on AIX README
|
||||
=====================
|
||||
|
||||
Dec. 15, 2011 - As of this date, it has been some time since an AIX
|
||||
build of BRL-CAD has been tested, and thus far it has NOT been tested
|
||||
b with the new CMake build system.
|
||||
|
||||
Kitware provides an AIX powerpc binary for CMake, see
|
||||
http://www.cmake.org/cmake/resources/software.html
|
||||
|
||||
|
||||
Building BRL-CAD under AIX is fairly straightforward using a correctly
|
||||
installed version on the GCC compiler. If, however, you are using the
|
||||
IBM Visual Age compiler, then there are additional manual compilation
|
||||
steps that will be necessary. In particular, the IBM compiler and
|
||||
associated standard C library headers are inconsistent with respect to
|
||||
ANSI/POSIX compliance compiler options.
|
||||
|
||||
The IBM compiler supports a variety of compliance options, the two of
|
||||
particular relevance to building BRL-CAD (in terms of being the close
|
||||
to obtaining a functional compile) are the strict compliance
|
||||
(-qlanglvl=stdc89) or "extended" compliance (-qlanglvl=extc89) modes.
|
||||
Problems encountered in our build environment using strict compliance
|
||||
does mostly work though we ran into errors in the standard C library
|
||||
headers.
|
||||
|
||||
Using the "extended" compliance mode resolved the standard C library
|
||||
header issues, but introduces problems in the compilation of BRL-CAD
|
||||
as the compiler then disables the provision of the __STDC__
|
||||
preprocessor symbol. BRL-CAD then defaults back to K&R mode, which
|
||||
the compiler verbosely refuses to compile. The "quick fix" that has
|
||||
been used in the past is to simply swap the compiler between the two
|
||||
modes as when one fails (e.g. strict), the other usually succeeds
|
||||
(e.g. extended). Barring that working, you can use extended mode and
|
||||
define __STDC__ manually.
|
||||
@@ -1,51 +0,0 @@
|
||||
BRL-CAD on IRIX README
|
||||
======================
|
||||
|
||||
Building on IRIX is one of the most tricky platforms to support
|
||||
without installing up-to-date compilation tools. That said, the build
|
||||
has and should work just fine with either the MIPSPro or GCC
|
||||
compilers. The best performance is usually achieved with the MIPSPro
|
||||
compiler, whereas GCC will compile faster with less fuss.
|
||||
|
||||
Kitware provides CMake binaries for IRIX64 platforms:
|
||||
http://www.cmake.org/cmake/resources/software.html
|
||||
|
||||
|
||||
Parallel building
|
||||
-----------------
|
||||
For parallel compilation on IRIX, the -P option enables parallel
|
||||
build mode and the PARALLEL environment variable sets the number
|
||||
of CPUs (default is two):
|
||||
|
||||
PARALLEL=4 make -P
|
||||
|
||||
|
||||
Potential problems you may encounter
|
||||
------------------------------------
|
||||
|
||||
Symptom: MIPSPro linker reports symbol(s) missing
|
||||
|
||||
Description: There's a known bug in the MIPSpro linker involving
|
||||
rpaths that are too long (namely longer than 255 characters) so care
|
||||
should be taken to not compile in directories that are too deep. The
|
||||
way this bug is usually seen is that the build will fail during
|
||||
compilation where unresolved symbols are reported during linking,
|
||||
symbols that are correctly included in the libraries being linked.
|
||||
|
||||
Workaround: It is usually sufficient to retry the compile from a
|
||||
shorter path. (e.g., /tmp instead of /some/deep/path/to/brlcad)
|
||||
|
||||
---
|
||||
|
||||
Symptom: GCC crashes during compilation with internal errors
|
||||
|
||||
Description: Certain versions of the gcc compiler are known to crash
|
||||
with internal error messages, for example on src/mged/animedit.c, when
|
||||
using optimization flags (i.e. -O3).
|
||||
|
||||
Workaround: Compile in whatever directory is failing with -O0 instead:
|
||||
cd src/mged
|
||||
sed -i "s/ -O3 / -O0 /g" CMakeFiles/mged.dir/flags.make
|
||||
make
|
||||
cd ../..
|
||||
make
|
||||
@@ -1,53 +0,0 @@
|
||||
BRL-CAD: A Vibrant Open Source Model
|
||||
|
||||
+ intro
|
||||
|
||||
- speaker
|
||||
|
||||
- old vs. new (Rurel's joke about old farmer and his young farmhand)
|
||||
|
||||
+ overview
|
||||
|
||||
- history, players
|
||||
|
||||
Mike Muuss [author of ping]
|
||||
|
||||
- license
|
||||
|
||||
- languages (Ohloh stats)
|
||||
|
||||
+ important technical features
|
||||
|
||||
- database format
|
||||
|
||||
- tools
|
||||
|
||||
- libraries
|
||||
|
||||
- use of other FOSS libraries
|
||||
|
||||
- road map
|
||||
|
||||
+ other features
|
||||
|
||||
+ community
|
||||
|
||||
- players (Ohloh stats)
|
||||
|
||||
+ process
|
||||
|
||||
- Source Forge
|
||||
|
||||
- API changes
|
||||
|
||||
- deprecation policy
|
||||
|
||||
- release procedures
|
||||
|
||||
- version control
|
||||
|
||||
- bug tracking
|
||||
|
||||
- policy
|
||||
|
||||
- outreach
|
||||
@@ -6,6 +6,7 @@ set(man1_EN
|
||||
asc2dsp.xml
|
||||
asc2g.xml
|
||||
benchmark.xml
|
||||
bolt.xml
|
||||
brlman.xml
|
||||
bot_dump.xml
|
||||
brep_simple.xml
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>rt</command>
|
||||
<command>asc2dsp</command>
|
||||
<arg choice="plain" rep="norepeat"><replaceable>file.asc</replaceable></arg>
|
||||
<arg choice="plain" rep="norepeat"><replaceable>file.dsp</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
|
||||
@@ -0,0 +1,190 @@
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="bolt1">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>BOLT</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>bolt</refname>
|
||||
<refpurpose>
|
||||
Creates a BRL-CAD .g file containing bolts.
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>bolt</command>
|
||||
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>
|
||||
<command>bolt</command> is a program to create a BRL-CAD data base of
|
||||
one of four different kinds of bolts. Up to twenty-six bolts of one type
|
||||
and size may be created. <command>bolt</command> uses libwdb to create a
|
||||
database file. This program may be run interactively or the user may
|
||||
specify options on a command line. If the user chooses to run the program
|
||||
interactively he answers the questions as the program prompts him. Below
|
||||
are the options that can be used on the command line.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
|
||||
<refsection xml:id="options"><title>OPTIONS</title>
|
||||
|
||||
<variablelist remap="TP">
|
||||
<varlistentry>
|
||||
<term><option>-o#</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Type of bolt to be created: 1=>bolt head; 2=>bolt head and washer; 3=>bolt
|
||||
head, washer, and bolt stem; and 4=>bolt head and bolt stem.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-f </option><replaceable>name.g</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
BRL-CAD file name.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-n #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
The number of bolts to be created. This number must be less than or equal to
|
||||
26 (or it will be set to 26).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-hd #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Diameter of bolt head, flat edge to flat edge, in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-hh #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Height of bolt head in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-wd #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Diameter of washer in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-wh #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Height of washer in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-sd #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Diameter of bolt stem in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-sh #</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Height of bolt stem in millimeters.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="examples"><title>EXAMPLES</title>
|
||||
|
||||
<example><title>Interactive <command>bolt</command> Session</title>
|
||||
|
||||
<para>
|
||||
<literallayout class="normal">
|
||||
$ bolt
|
||||
Enter option:
|
||||
1 - bolt head
|
||||
2 - bolt head & washer
|
||||
3 - bolt head, washer, & stem
|
||||
4 - bolt head & stem
|
||||
1
|
||||
Enter name of mged file to be created (25 char max).
|
||||
bolt.g
|
||||
Enter the number of bolts to be created (26 max).
|
||||
3
|
||||
Enter diameter (flat edge to flat edge) & height of bolt head.
|
||||
30 10
|
||||
|
||||
option: 1 - bolt head
|
||||
file: bolt.g
|
||||
head diameter: 30.000000, & height: 10.000000
|
||||
washer diameter: 0.000000, & height: 0.000000
|
||||
stem diameter: 0.000000, & height: 0.000000
|
||||
number of bolts: 3
|
||||
</literallayout>
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>Single-Line <command>bolt</command> Command</title>
|
||||
|
||||
<para>
|
||||
<userinput>bolt -o1 -fbolt.g -n3 -hd30 -hh10</userinput>
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
Both examples produce the same output - the bolt heads (option 1)
|
||||
are created with a diameter of 30mm and a height of 10mm in a database
|
||||
file called bolt.g.
|
||||
</para>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="author"><title>AUTHOR</title>
|
||||
<para>Susan A. Coates</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="copyright"><title>COPYRIGHT</title>
|
||||
|
||||
<para>
|
||||
This software is Copyright (c) 2005-2020 United States Government as
|
||||
represented by the U.S. Army Research Laboratory.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="see_also"><title>SEE ALSO</title>
|
||||
|
||||
<para>
|
||||
handle(1), window(1), window_frame(1), gastank(1)
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
|
||||
|
||||
<para>
|
||||
Reports of bugs or problems should be submitted via electronic
|
||||
mail to <email>devs@brlcad.org</email>
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
@@ -119,22 +119,22 @@ A eto.s
|
||||
|
||||
<example><title>Alternate Diffing Result Outputs</title>
|
||||
<para>
|
||||
The <option>v</option> provides various styles of output, as follows:
|
||||
The <option>v</option> and <option>q</option> options provide various styles of output, as follows:
|
||||
</para>
|
||||
<para>
|
||||
<option>-v 0</option> (no output except the return code):
|
||||
<option>-qq</option> (no output except the return code):
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 0 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -qq moss.g moss2.g</userinput>
|
||||
</computeroutput>
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>-v 1</option>:
|
||||
<option>-q</option>:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 1 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -q moss.g moss2.g</userinput>
|
||||
Added:
|
||||
tgc_new.s, eto.s
|
||||
|
||||
@@ -149,10 +149,10 @@ platform.r, ellipse.s, light.r, _GLOBAL, cone.s, cone.r, box.s, tor.r
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>-v 2</option> (default):
|
||||
(default):
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 2 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff moss.g moss2.g</userinput>
|
||||
M platform.r
|
||||
M ellipse.s
|
||||
M light.r
|
||||
@@ -170,10 +170,10 @@ A eto.s
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<option>-v 3</option>:
|
||||
<option>-v</option>:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 3 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v moss.g moss2.g</userinput>
|
||||
- "platform.r" tree(p): l platform.s
|
||||
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
|
||||
- "ellipse.s" C(p): 0 8.980256080627000869753829 8.980256080627000869753829
|
||||
@@ -205,16 +205,17 @@ A tgc_new.s
|
||||
A eto.s
|
||||
</computeroutput>
|
||||
</literallayout>
|
||||
Verbosity 3 is a more detailed version of the previous setting, with each parameter in the modified objects reported in detail. '-' lines
|
||||
show what was removed for a given attribute or parameter, and '+' lines contain the data that replaced them.
|
||||
The first elevated verbosity level is a more detailed version of the previous setting, with
|
||||
each parameter in the modified objects reported in detail. '-' lines show what was removed
|
||||
for a given attribute or parameter, and '+' lines contain the data that replaced them.
|
||||
</para>
|
||||
|
||||
|
||||
<para>
|
||||
<option>-v 4</option>:
|
||||
<option>-vv</option>:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 4 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -vv moss.g moss2.g</userinput>
|
||||
- "platform.r" tree(p): l platform.s
|
||||
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
|
||||
- "ellipse.s" C(p): 0 8.980256080627000869753829 8.980256080627000869753829
|
||||
@@ -261,7 +262,7 @@ A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988
|
||||
A "eto.s" DB5_MINORTYPE(p): eto
|
||||
</computeroutput>
|
||||
</literallayout>
|
||||
Verbosity 4 is a fully detailed diff that contains all information added or removed.
|
||||
The second elevation of the verbosity level is a fully detailed diff that contains all information added or removed.
|
||||
</para>
|
||||
|
||||
</example>
|
||||
@@ -323,7 +324,7 @@ all.g
|
||||
difference constitutes "too small" is up to the user - in this example, we will use 30 millimeters:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 3 -t 30.0 moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v -t 30.0 moss.g moss2.g</userinput>
|
||||
- "platform.r" tree(p): l platform.s
|
||||
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
|
||||
- "light.r" tree(p): l LIGHT
|
||||
@@ -363,7 +364,7 @@ A eto.s
|
||||
Note that this option will work at all levels of verbosity:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto" moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -vv -F "-type eto" moss.g moss2.g</userinput>
|
||||
A "eto.s" r_d(p): 1.724149328000026404339451
|
||||
A "eto.s" r(p): 13.79319462400021123471561
|
||||
A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
|
||||
@@ -381,7 +382,7 @@ A "eto.s" DB5_MINORTYPE(p): eto
|
||||
filter with ell types added to the accepted list produces the following:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -vv -F "-type eto -or -type ell" moss.g moss2.g</userinput>
|
||||
- "ellipse.s" C(p): 0 8.980256080627000869753829 8.980256080627000869753829
|
||||
+ "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
|
||||
- "ellipse.s" A(p): 14.87607192992999927128039 0 0
|
||||
@@ -404,7 +405,7 @@ A "eto.s" DB5_MINORTYPE(p): eto
|
||||
If we now add the tolerance filter, we see ellipse.s is filtered out:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 4 -t 30.0 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -vv -t 30.0 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
|
||||
D "LIGHT" C(p): 0 0 2.539999961852999810218989
|
||||
D "LIGHT" B(p): 0 2.539999961852999810218989 0
|
||||
D "LIGHT" A(p): 2.539999961852999810218989 0 0
|
||||
@@ -481,7 +482,7 @@ A(R) ellipse2.r
|
||||
To delve deeper into the nature of the changes, we increase the verbosity with the <option>v</option> option:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v 3 moss2.g moss.g moss3.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v moss2.g moss.g moss3.g</userinput>
|
||||
M(L) "platform.r" tree(p): - {l platform.s} {l cone.s}
|
||||
M(L) "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
|
||||
M(L) "ellipse.s" A(p): 5.559274328313033919357622 0 0
|
||||
@@ -534,7 +535,7 @@ C ell.s
|
||||
However, closer inspection reveals that this conflict is different than the one reported above for the eto.s object:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v3 ell_1.g ell_0.g ell_2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v ell_1.g ell_0.g ell_2.g</userinput>
|
||||
C(LM!=RM) ell.s
|
||||
</computeroutput>
|
||||
</literallayout>
|
||||
@@ -543,7 +544,7 @@ C(LM!=RM) ell.s
|
||||
parameters. Indeed a full verbosity inspection:
|
||||
<literallayout>
|
||||
<computeroutput>
|
||||
<prompt>~:</prompt><userinput> gdiff -v4 ell_1.g ell_0.g ell_2.g</userinput>
|
||||
<prompt>~:</prompt><userinput> gdiff -vv ell_1.g ell_0.g ell_2.g</userinput>
|
||||
M(R) "ell.s" C(p): 0 0 300
|
||||
C(A) "ell.s" B(p): 0 500 0
|
||||
C(L) "ell.s" B(p): 0 510 0
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<arg choice='opt'>-w <replaceable>width</replaceable></arg>
|
||||
<arg choice='opt'>-n <replaceable>height</replaceable></arg>
|
||||
<arg choice='opt'>
|
||||
<arg choice='opt'>-e <replaceable>ntsc|crt</replaceable></arg>
|
||||
<arg choice='opt'>-e <replaceable>ntsc|crt|hdtv|hdr|avg</replaceable></arg>
|
||||
<arg choice='opt'>
|
||||
<arg choice='opt'><arg choice='plain'>-R </arg><replaceable>r_weight</replaceable></arg>
|
||||
<arg choice='opt'><arg choice='plain'>-G </arg><replaceable>g_weight</replaceable></arg>
|
||||
@@ -64,15 +64,39 @@ choices include:</para>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>ntsc</emphasis></term>
|
||||
<listitem>
|
||||
<para> weighting used is based on the NTSC primaries and the
|
||||
D6500 alignment white.</para>
|
||||
<para>Weighting used is based on the NTSC primaries and white
|
||||
alignment. Conforming with Rec.ITU-R BT.601-7, this uses
|
||||
0.299/0.587/0.114 RGB weights. This gives a simplified linear
|
||||
conversion of perceived luminance that reflects human physiological
|
||||
sensitivity to green and least to blue.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>crt</emphasis></term>
|
||||
<listitem>
|
||||
<para>weighting scheme used will be for "typical" CRT phosphor chromaticities
|
||||
and the D6500 white.</para>
|
||||
<para>Weighting scheme matches "historic" CRT phosphor chromaticities
|
||||
and a D6500 white alignment. Uses 0.26/0.66/0.08 RGB weights.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>hdtv</emphasis></term>
|
||||
<listitem>
|
||||
<para>Weighting scheme matches "modern" HDTV display chromacities.
|
||||
Uses 0.2126/0.7152/0.0722 RGB weights per Rec.ITU-R BT.709</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>hdr</emphasis></term>
|
||||
<listitem>
|
||||
<para>Weighting scheme matches high dynamic range (HDR) chromacities.
|
||||
Uses 0.2627/0.6780/0.0593 RGB weights per Rec.ITU-R BT.2020</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>avg</emphasis></term>
|
||||
<listitem>
|
||||
<para>Weighting scheme simply takes the average of all three values
|
||||
(i.e., R + G + B / 3.0).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
@@ -96,15 +120,10 @@ are 1.0 divided by the number of colors selected.</para>
|
||||
<para>will equally blend the red and blue color planes; because -G is omitted, the green color plane is not considered.
|
||||
(Had "-G0.0" been included in this example, the three colors would have been weighted equally, as in the default condition.)</para>
|
||||
|
||||
<para>pix-bw -R0.30 -G0.59 -B0.11 < <emphasis remap='I'>file.pix</emphasis> > <emphasis remap='I'>file.bw</emphasis></para>
|
||||
<para>pix-bw -R0.3 -G0.6 -B0.1 < <emphasis remap='I'>file.pix</emphasis> > <emphasis remap='I'>file.bw</emphasis></para>
|
||||
<para>
|
||||
has the same effect as the
|
||||
<option>-ntsc</option>
|
||||
flag.
|
||||
<!-- .br -->
|
||||
[The
|
||||
<option>-crt</option>
|
||||
weights are: 0.26, 0.66, 0.08]</para>
|
||||
applies weights close to the <option>-ntsc</option> flag.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
|
||||
|
||||
+500
-353
@@ -1,391 +1,538 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- lifted from troff+man by doclifter -->
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='remrt1'>
|
||||
<refmeta>
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="remrt1">
|
||||
<refmeta>
|
||||
<refentrytitle>REMRT
|
||||
</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>remrt</refname>
|
||||
<refpurpose>network distributed (remote) ray-trace dispatcher</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<command>remrt</command>
|
||||
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
|
||||
<arg choice='plain'><replaceable>model.g</replaceable></arg>
|
||||
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
|
||||
<refnamediv>
|
||||
<refname>remrt</refname>
|
||||
<refpurpose>network distributed (remote) ray-trace dispatcher</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<command>remrt</command>
|
||||
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
|
||||
<arg choice='plain'><replaceable>model.g</replaceable></arg>
|
||||
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<refsect1 xml:id='description'><title>DESCRIPTION</title>
|
||||
<para><command>remrt</command>
|
||||
is intended to be an entirely plug-compatible replacement for
|
||||
the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program.
|
||||
While
|
||||
<emphasis remap='I'>rt</emphasis>
|
||||
can operate on more than one processor of a shared memory MIMD style
|
||||
multi-processor, it can not spread the work out across the network.
|
||||
<command>remrt</command>
|
||||
and its companion program
|
||||
<citerefentry><refentrytitle>rtsrv</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
implement a
|
||||
<citerefentry><refentrytitle>libpkg</refentrytitle><manvolnum>3</manvolnum></citerefentry>-based
|
||||
protocol for distributing the task of ray-traced rendering out
|
||||
to an arbitrary number of processors on the network.
|
||||
Those processors can be from an arbitrary mix of vendors,
|
||||
with differing instruction sets and data representations,
|
||||
operating at widely different speeds.</para>
|
||||
<refsection xml:id='description'><title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>remrt</command> is intended to be an entirely plug-compatible replacement for
|
||||
the <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program. While <emphasis remap='I'>rt</emphasis> can operate on more than one processor
|
||||
of a shared memory MIMD style multi-processor, it can not spread the work out across the network.
|
||||
<command>remrt</command> and its companion program
|
||||
<citerefentry><refentrytitle>rtsrv</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
implement a
|
||||
<citerefentry><refentrytitle>libpkg</refentrytitle><manvolnum>3</manvolnum></citerefentry>-based
|
||||
protocol for distributing the task of ray-traced rendering out to an arbitrary number of
|
||||
processors on the network. Those processors can be from an arbitrary mix of vendors, with
|
||||
differing instruction sets and data representations, operating at widely different speeds.
|
||||
</para>
|
||||
|
||||
<para><command>remrt</command>
|
||||
provides two levels of fault-tolerance in its distributed computation.
|
||||
First, any
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
processor which fails (or whose network link fails) will have its work
|
||||
reassigned automatically by
|
||||
<command>remrt</command>
|
||||
to other processors, so that the failure of that processor does not
|
||||
hold up the progress of the computation.
|
||||
On a regular interval
|
||||
<command>remrt</command>
|
||||
attempts to restart computation on failed processors marked "active",
|
||||
so that when failed systems become available again they are
|
||||
put back to work.
|
||||
Second,
|
||||
<command>remrt</command>
|
||||
offers a form of "checkpoint-restart" by carefully writing all
|
||||
received pixel data immediately to disk. If the machine running
|
||||
<command>remrt</command>
|
||||
should fail, when
|
||||
<command>remrt</command>
|
||||
is restarted, it will determine what work remains to be done and
|
||||
restart all the
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
processes on the remote machines.</para>
|
||||
<para>
|
||||
<command>remrt</command> provides two levels of fault-tolerance in its distributed
|
||||
computation. First, any <emphasis remap='I'>rtsrv</emphasis> processor which fails (or whose
|
||||
network link fails) will have its work reassigned automatically by <command>remrt</command>
|
||||
to other processors, so that the failure of that processor does not hold up the progress of
|
||||
the computation. On a regular interval <command>remrt</command> attempts to restart computation
|
||||
on failed processors marked "active", so that when failed systems become available again they are
|
||||
put back to work. Second, <command>remrt</command> offers a form of "checkpoint-restart" by
|
||||
carefully writing all received pixel data immediately to disk. If the machine running
|
||||
<command>remrt</command> should fail, when <command>remrt</command> is restarted, it will
|
||||
determine what work remains to be done and restart all the <emphasis remap='I'>rtsrv</emphasis>
|
||||
processes on the remote machines.
|
||||
</para>
|
||||
|
||||
<para><command>remrt</command>
|
||||
takes exactly the same set of command line arguments as
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||
For a full discussion of those options, consult the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
manual page.
|
||||
From within
|
||||
<citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
the
|
||||
<command>remrt</command>
|
||||
program can be run from the current
|
||||
<emphasis remap='I'>mged</emphasis>
|
||||
view by giving the
|
||||
<emphasis remap='I'>mged</emphasis>
|
||||
command</para>
|
||||
<para>
|
||||
<command>remrt</command>
|
||||
takes exactly the same set of command line arguments as
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||
For a full discussion of those options, consult the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
manual page. From within
|
||||
<citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
the <command>remrt</command> program can be run from the current
|
||||
<emphasis remap='I'>mged</emphasis> view by giving the
|
||||
<emphasis remap='I'>mged</emphasis>
|
||||
command</para>
|
||||
|
||||
<literallayout remap='.nf'>
|
||||
rrt remrt -M -s###
|
||||
</literallayout> <!-- .fi -->
|
||||
<literallayout remap='.nf'>
|
||||
rrt remrt -M -s###
|
||||
</literallayout> <!-- .fi -->
|
||||
|
||||
<para>where "###" is the image resolution desired.</para>
|
||||
<para>
|
||||
where "###" is the image resolution desired.
|
||||
</para>
|
||||
|
||||
<para><command>remrt</command>
|
||||
depends on the Berkeley
|
||||
<emphasis remap='I'>rsh (1)</emphasis>
|
||||
remote shell command and the user's corresponding ".rhosts" file
|
||||
to automatically initiate remote computation.</para>
|
||||
<para>
|
||||
<command>remrt</command> depends on the Berkeley <emphasis remap='I'>rsh (1)</emphasis>
|
||||
remote shell command and the user's corresponding ".rhosts" file to automatically
|
||||
initiate remote computation.
|
||||
</para>
|
||||
|
||||
<para><command>remrt</command>
|
||||
requires a control file called ".remrtrc" which specifies
|
||||
a few essential parameters of the server machines (network hosts)
|
||||
that are to participate in the distributed computation.
|
||||
The ".remrtrc" file contains a list of normal
|
||||
<command>remrt</command>
|
||||
commands which are to be executed before distributed processing
|
||||
is to begin.
|
||||
This can be useful for establishing a variety of user-specific
|
||||
defaults.
|
||||
However, the most important command to provide is a "host"
|
||||
command to describe each of the remote hosts that will (or may)
|
||||
participate in the distributed computation.
|
||||
Here is a sample ".remrt" file:</para>
|
||||
<para>
|
||||
<command>remrt</command>
|
||||
requires a control file called ".remrtrc" which specifies a few essential parameters
|
||||
of the server machines (network hosts) that are to participate in the distributed
|
||||
computation. The ".remrtrc" file contains a list of normal <command>remrt</command>
|
||||
commands which are to be executed before distributed processing is to begin.
|
||||
This can be useful for establishing a variety of user-specific defaults. However,
|
||||
the most important command to provide is a "host" command to describe each of the
|
||||
remote hosts that will (or may) participate in the distributed computation.
|
||||
Here is a sample ".remrt" file:
|
||||
</para>
|
||||
|
||||
<!-- .in +5 -->
|
||||
<!-- .in +5 -->
|
||||
|
||||
<literallayout remap='.nf'>
|
||||
host wolf passive cd /tmp/cad/.remrt.4d
|
||||
host voyage always cd /tmp/cad/.remrt.4d
|
||||
host whiz hacknight convert /tmp
|
||||
</literallayout> <!-- .fi -->
|
||||
<literallayout remap='.nf'>
|
||||
host wolf passive cd /tmp/cad/.remrt.4d
|
||||
host voyage always cd /tmp/cad/.remrt.4d
|
||||
host whiz hacknight convert /tmp
|
||||
</literallayout> <!-- .fi -->
|
||||
|
||||
<!-- .in -->
|
||||
<!-- .in -->
|
||||
|
||||
<para>The first argument to the "host" command is the name of the
|
||||
server machine.
|
||||
It will be converted to a fully qualified name by calling
|
||||
<citerefentry><refentrytitle>gethostbyname</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and
|
||||
<citerefentry><refentrytitle>gethostbyaddr</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
|
||||
<para>
|
||||
The first argument to the "host" command is the name of the server machine.
|
||||
It will be converted to a fully qualified name by calling
|
||||
<citerefentry><refentrytitle>gethostbyname</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and
|
||||
<citerefentry><refentrytitle>gethostbyaddr</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||
</para>
|
||||
|
||||
<para>The second argument to the "host" command describes "when" this
|
||||
machine should be used.</para>
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>always</emphasis></term>
|
||||
<listitem>
|
||||
<para>says that whenever this host is not participating in the computation,
|
||||
repeated attempts should be made (every 5 minutes) to start an
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
process on that machine.
|
||||
This option is most useful for machines where the system administrator
|
||||
and/or owner of the machine won't mind your using the machine at any
|
||||
time. (Note that
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
runs at the lowest priority by default, so this isn't too terribly
|
||||
uncivilized. But be polite and ask first.)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>night</emphasis></term>
|
||||
<listitem>
|
||||
<para>indicates that the machine should only be used during
|
||||
the night and on weekends.
|
||||
Night extends from 1800 through 0000 to 0800.
|
||||
Saturday and Sunday are considered to be in night time for the entire day.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>hacknight</emphasis></term>
|
||||
<listitem>
|
||||
<para>indicates that the machine is owned by a late-night "hacker",
|
||||
and can be used while that hacker is likely to be asleep.
|
||||
Hacking tends to run from 1300 through 0000 to 0400, so
|
||||
<emphasis remap='B'>hacknight</emphasis>
|
||||
is the time period from 0400 to 1300.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>passive</emphasis></term>
|
||||
<listitem>
|
||||
<para>indicates that
|
||||
<command>remrt</command>
|
||||
should never attempt to initiate an
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
process on this machine, but if the user should happen to start
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
manually on the machine and direct it to join the computational fray,
|
||||
then the necessary information will be available.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>If an unlisted machine should join the fray, it will be added</term>
|
||||
<listitem>
|
||||
<para>with a "when" value of
|
||||
<emphasis remap='B'>passive</emphasis>
|
||||
and a "where" value of
|
||||
<emphasis remap='B'>convert</emphasis>.
|
||||
When an
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
passes from night into day, it is automatically terminated by
|
||||
<command>remrt</command>
|
||||
at the appointed time.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
The second argument to the "host" command describes "when" this machine should be used.
|
||||
</para>
|
||||
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>always</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
says that whenever this host is not participating in the computation,
|
||||
repeated attempts should be made (every 5 minutes) to start an
|
||||
<emphasis remap='I'>rtsrv</emphasis> process on that machine.
|
||||
This option is most useful for machines where the system administrator
|
||||
and/or owner of the machine won't mind your using the machine at any
|
||||
time. (Note that <emphasis remap='I'>rtsrv</emphasis>
|
||||
runs at the lowest priority by default, so this isn't too terribly
|
||||
uncivilized. But be polite and ask first.)
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>night</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
indicates that the machine should only be used during
|
||||
the night and on weekends. Night extends from 1800 through 0000 to 0800.
|
||||
Saturday and Sunday are considered to be in night time for the entire day.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>hacknight</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
indicates that the machine is owned by a late-night "hacker",
|
||||
and can be used while that hacker is likely to be asleep.
|
||||
Hacking tends to run from 1300 through 0000 to 0400, so
|
||||
<emphasis remap='B'>hacknight</emphasis>
|
||||
is the time period from 0400 to 1300.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>passive</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
indicates that <command>remrt</command> should never attempt to initiate an
|
||||
<emphasis remap='I'>rtsrv</emphasis> process on this machine, but if the
|
||||
user should happen to start <emphasis remap='I'>rtsrv</emphasis>
|
||||
manually on the machine and direct it to join the computational fray,
|
||||
then the necessary information will be available.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>If an unlisted machine should join the fray, it will be added</term>
|
||||
<listitem>
|
||||
<para>
|
||||
with a "when" value of <emphasis remap='B'>passive</emphasis>
|
||||
and a "where" value of <emphasis remap='B'>convert</emphasis>.
|
||||
When an <emphasis remap='I'>rtsrv</emphasis>
|
||||
passes from night into day, it is automatically terminated by
|
||||
<command>remrt</command> at the appointed time.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>The third argument to the "host" command is the "where" parameter,
|
||||
which indicates where the BRL-CAD ".g" file (and any related texture
|
||||
maps) can be found.</para>
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>cd</emphasis></term>
|
||||
<listitem>
|
||||
<para>indicates that the
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
program should change directory
|
||||
<citerefentry><refentrytitle>cd</refentrytitle><manvolnum>2</manvolnum></citerefentry>
|
||||
to the indicated directory path, and should just read the
|
||||
data files in that directory as
|
||||
<emphasis remap='I'>rt</emphasis>
|
||||
normally would.
|
||||
This can be used to specify NFS or RFS mounted remote directories,
|
||||
or static copies of the binary database file(s) needed to perform
|
||||
the ray-tracing.
|
||||
This is the most efficient way of operating
|
||||
<emphasis remap='I'>rtsrv</emphasis>,
|
||||
but it also requires some manual preparation on the part of the user
|
||||
to install all the required files in the designated location.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>convert</emphasis></term>
|
||||
<listitem>
|
||||
<para>indicates that
|
||||
<command>remrt</command>
|
||||
should send across an ASCII machine-independent version of the
|
||||
".g" database file using the command:</para>
|
||||
<para>
|
||||
The third argument to the "host" command is the "where" parameter,
|
||||
which indicates where the BRL-CAD ".g" file (and any related texture
|
||||
maps) can be found.
|
||||
</para>
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>cd</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
indicates that the <emphasis remap='I'>rtsrv</emphasis>
|
||||
program should change directory
|
||||
<citerefentry><refentrytitle>cd</refentrytitle><manvolnum>2</manvolnum></citerefentry>
|
||||
to the indicated directory path, and should just read the
|
||||
data files in that directory as <emphasis remap='I'>rt</emphasis>
|
||||
normally would. This can be used to specify NFS or RFS mounted remote
|
||||
directories, or static copies of the binary database file(s) needed
|
||||
to perform the ray-tracing. This is the most efficient way of operating
|
||||
<emphasis remap='I'>rtsrv</emphasis>,
|
||||
but it also requires some manual preparation on the part of the user
|
||||
to install all the required files in the designated location.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap='B'>convert</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
indicates that <command>remrt</command> should send across an ASCII
|
||||
machine-independent version of the ".g" database file using the command:
|
||||
</para>
|
||||
|
||||
<literallayout remap='.nf'>
|
||||
asc2g < file.g | rsh host 'cd directory; g2asc > file.g'
|
||||
</literallayout> <!-- .fi -->
|
||||
<literallayout remap='.nf'>
|
||||
asc2g < file.g | rsh host 'cd directory; g2asc > file.g'
|
||||
</literallayout> <!-- .fi -->
|
||||
|
||||
<para>before starting up the
|
||||
<emphasis remap='I'>rtsrv</emphasis>
|
||||
program in that same directory.
|
||||
This relieves the user of the burden of setting up the ".g"
|
||||
database file, but suffers from several drawbacks.
|
||||
First, the transmission of a large database can take a noticeable
|
||||
amount of time.
|
||||
Second, should the server host go down and then re-join the fray,
|
||||
the database will be sent again, because
|
||||
<command>remrt</command>
|
||||
has no easy way to tell if the previous ".g" file is still intact
|
||||
after the crash/restart.
|
||||
Third,
|
||||
<command>remrt</command>
|
||||
has no way to tell what auxiliary files might be needed for this ".g"
|
||||
file, and thus can not send them automatically.
|
||||
If the ".g" file references height field, extruded bit-map, or volumetric
|
||||
solids, the associated data files will not be present on a
|
||||
<emphasis remap='B'>convert</emphasis>
|
||||
mode server. The same applies for texture map and bump map files.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
before starting up the <emphasis remap='I'>rtsrv</emphasis>
|
||||
program in that same directory. This relieves the user of the burden of
|
||||
setting up the ".g" database file, but suffers from several drawbacks.
|
||||
First, the transmission of a large database can take a noticeable
|
||||
amount of time.
|
||||
Second, should the server host go down and then
|
||||
re-join the fray, the database will be sent again, because
|
||||
<command>remrt</command>
|
||||
has no easy way to tell if the previous ".g" file is still intact
|
||||
after the crash/restart.
|
||||
Third, <command>remrt</command> has no way to tell what auxiliary files
|
||||
might be needed for this ".g" file, and thus can not send them automatically.
|
||||
If the ".g" file references height field, extruded bit-map, or volumetric
|
||||
solids, the associated data files will not be present on a
|
||||
<emphasis remap='B'>convert</emphasis>
|
||||
mode server. The same applies for texture map and bump map files.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para><command>remrt</command>
|
||||
uses several different strategies for optimizing the dispatching of work.
|
||||
These can be controlled by the "allocate" command.
|
||||
If "allocate frame" has been specified,
|
||||
then the work allocation method is
|
||||
a "free for all", allocating work from one frame at a time
|
||||
to all servers as they become ready for more.
|
||||
This maximizes the CPU overhead for prepping (because all CPUs will
|
||||
prep all frames), but it also provides the shortest wall-clock time
|
||||
to getting the first frame finished.
|
||||
This mode is recommended for demonstrations, and other situations
|
||||
where people are sitting around waiting for results to appear on the screen.</para>
|
||||
<para>
|
||||
<command>remrt</command>
|
||||
uses several different strategies for optimizing the dispatching of work.
|
||||
These can be controlled by the "allocate" command. If "allocate frame" has
|
||||
been specified, then the work allocation method is a "free for all",
|
||||
allocating work from one frame at a time to all servers as they become ready
|
||||
for more. This maximizes the CPU overhead for prepping (because all CPUs will
|
||||
prep all frames), but it also provides the shortest wall-clock time
|
||||
to getting the first frame finished. This mode is recommended for demonstrations,
|
||||
and other situations where people are sitting around waiting for results
|
||||
to appear on the screen.
|
||||
</para>
|
||||
|
||||
<para>If the
|
||||
"allocate load" command has been given, then new servers
|
||||
will not be assigned to a given frame unless there is at least
|
||||
enough work remaining on that frame to require
|
||||
10 percent of that server's measured performance capacity.
|
||||
Otherwise the server is started on a subsequent frame.</para>
|
||||
<para>
|
||||
If the
|
||||
"allocate load" command has been given, then new servers will not be assigned to
|
||||
a given frame unless there is at least enough work remaining on that frame to
|
||||
require 10 percent of that server's measured performance capacity.
|
||||
Otherwise the server is started on a subsequent frame.
|
||||
</para>
|
||||
|
||||
<para>If the "allocate movie" command is given, then each server is
|
||||
allocated a whole frame to do. This minimizes the CPU time
|
||||
spent in the overhead of prepping the frame, and tends to maximize overall
|
||||
throughput, at the price of making you wait a long time for the first
|
||||
frame to finish.
|
||||
This mode is best used when crunching out large numbers of frames
|
||||
for an animation.
|
||||
(See also the
|
||||
<citerefentry><refentrytitle>scriptsort</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
command for a clever power-of-two script rearrangement technique first
|
||||
proposed by Jim Blinn).</para>
|
||||
<para>
|
||||
If the "allocate movie" command is given, then each server is allocated a whole
|
||||
frame to do. This minimizes the CPU time spent in the overhead of prepping the
|
||||
frame, and tends to maximize overall throughput, at the price of making you
|
||||
wait a long time for the first frame to finish. This mode is best used when
|
||||
crunching out large numbers of frames for an animation.
|
||||
(See also the
|
||||
<citerefentry><refentrytitle>scriptsort</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
command for a clever power-of-two script rearrangement technique first
|
||||
proposed by Jim Blinn).
|
||||
</para>
|
||||
|
||||
<para>The output can be stored either in a file, or sent to the current
|
||||
framebuffer, the same as with
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
|
||||
<para>
|
||||
The output can be stored either in a file, or sent to the current
|
||||
framebuffer, the same as with
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||
</para>
|
||||
|
||||
<para>When
|
||||
<command>remrt</command>
|
||||
is run without command line arguments, it enters an interactive
|
||||
mode. In this mode, the current framebuffer can be assigned and
|
||||
released, frames can be added to the list of pending work, and
|
||||
many other control and status commands can be used.</para>
|
||||
<para>
|
||||
When <command>remrt</command> is run without command line arguments, it enters
|
||||
an interactive mode. In this mode, the current framebuffer can be assigned and
|
||||
released, frames can be added to the list of pending work, and many other control
|
||||
and status commands can be used.
|
||||
</para>
|
||||
|
||||
<para>Normally
|
||||
<command>remrt</command>
|
||||
runs in a batch mode, taking all its information from the
|
||||
command line, the script file on stdin, and the ".remrtrc" file.
|
||||
If you wish to issue an interactive-style command to
|
||||
<command>remrt</command>
|
||||
while it is running in batch mode, this can be accomplished by
|
||||
giving an extra argument to
|
||||
<emphasis remap='I'>rtsrv</emphasis>,
|
||||
which will simply pass on the command and exit.
|
||||
For example:</para>
|
||||
<para>
|
||||
Normally <command>remrt</command> runs in a batch mode, taking all its information
|
||||
from the command line, the script file on stdin, and the ".remrtrc" file.
|
||||
If you wish to issue an interactive-style command to <command>remrt</command>
|
||||
while it is running in batch mode, this can be accomplished by
|
||||
giving an extra argument to <emphasis remap='I'>rtsrv</emphasis>,
|
||||
which will simply pass on the command and exit.
|
||||
</para>
|
||||
<para>
|
||||
For example:
|
||||
</para>
|
||||
|
||||
<literallayout remap='.nf'>
|
||||
<literallayout remap='.nf'>
|
||||
rtsrv server_host 4446 status
|
||||
</literallayout> <!-- .fi -->
|
||||
</literallayout> <!-- .fi -->
|
||||
|
||||
<para>would send the command "status" to the
|
||||
<command>remrt</command>
|
||||
process running on the machine called "server_host" and listening
|
||||
at port 4446.
|
||||
4446 is the port used by the first copy of
|
||||
<command>remrt</command>
|
||||
running on a machine. If a second copy of
|
||||
<command>remrt</command>
|
||||
is started while the first one continues to run, it
|
||||
will be assigned port 4447. One is added to the port number
|
||||
repeatedly until an available port is found.
|
||||
Normally you do not need to worry about which port is being used,
|
||||
unless you wish to send commands there directly.
|
||||
The
|
||||
<citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
command can sometimes be useful to track down which ports are being used.</para>
|
||||
</refsect1>
|
||||
<para>
|
||||
would send the command "status" to the <command>remrt</command>
|
||||
process running on the machine called "server_host" and listening
|
||||
at port 4446. 4446 is the port used by the first copy of
|
||||
<command>remrt</command> running on a machine. If a second copy of
|
||||
<command>remrt</command> is started while the first one continues to run, it
|
||||
will be assigned port 4447. One is added to the port number repeatedly
|
||||
until an available port is found. Normally you do not need to worry about
|
||||
which port is being used, unless you wish to send commands there directly.
|
||||
The <citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
command can sometimes be useful to track down which ports are being used.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
|
||||
<para><citerefentry><refentrytitle>rtsrv</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>scriptsort</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>brlcad</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>lgt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>pix-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rtray</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rtpp</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>ray</refentrytitle><manvolnum>5V</manvolnum></citerefentry>, <citerefentry><refentrytitle>pix</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
|
||||
</refsect1>
|
||||
<refsection>
|
||||
<example>
|
||||
<title>Performing a Basic remrt/rtsrv Raytrace</title>
|
||||
<para>
|
||||
The following steps will set up a local (single machine) example remrt session.
|
||||
This does not utilize the full power of the remrt system, but will illustrate
|
||||
how the individual pieces relate to each other. Rather than use rsh, each
|
||||
process will be launched manually.
|
||||
</para>
|
||||
<para>
|
||||
Launch an <command>fbserv</command> instance on the desired port and with the desired type
|
||||
(we will use port 0 and /dev/X for a Linux-based X11 rendering - windows users can try /dev/wgl.)
|
||||
For a somewhat larger render we specify a size of 2048 pixels square.
|
||||
</para>
|
||||
<para>
|
||||
<userinput>fbserv -s2048 -p0 -F/dev/X</userinput>
|
||||
</para>
|
||||
<para>
|
||||
If an graphical framebuffer was specified, a window should appear. Otherwise, fbserv will silently
|
||||
wait for input.
|
||||
</para>
|
||||
<para>
|
||||
In MGED, set up the scene you wish to render and then save a script with <command>saveview</command>
|
||||
</para>
|
||||
<para>
|
||||
<userinput>saveview remrt.rt</userinput>
|
||||
</para>
|
||||
<para>
|
||||
Edit the script and replace the <command>rt</command> command with <command>remrt</command>. Replace
|
||||
the output file specification (<option>-o filename</option>) with a -F0 option to point the render
|
||||
to the fbserv started in the previous step. Also add a -s2048 option to specify a rendering size to
|
||||
match that provided to the fbserv.
|
||||
</para>
|
||||
<para>
|
||||
Run the script to launch remrt. You should see output indicating the program has launched. (Note:
|
||||
the port number printed by the default output is not useful - you want to use 4446 by default to
|
||||
connect to remrt.)
|
||||
</para>
|
||||
<para>
|
||||
<userinput>./remrt.rt</userinput>
|
||||
<literallayout>
|
||||
08/22 21:51:41 machinename BRL-CAD Release 7.30.0 Network-Distributed RT (REMRT)
|
||||
Sat, 22 Aug 2020 11:24:22 -0400, Compilation 1
|
||||
user@machinename
|
||||
|
||||
<refsect1 xml:id='diagnostics'><title>DIAGNOSTICS</title>
|
||||
<para>Numerous error conditions are possible.
|
||||
Descriptive messages are printed on standard error.</para>
|
||||
</refsect1>
|
||||
pkg_permserver(rtsrv, 8): unknown service
|
||||
08/22 21:51:41 Automatic REMRT on machine
|
||||
08/23 21:51:41 Assigned LIBPKG permport 24081
|
||||
08/23 21:51:41 Listening at TCP port 4446
|
||||
08/23 21:51:41 Reading script on stdin
|
||||
08/22 21:51:41 Starting to scan animation script
|
||||
08/22 21:51:41 Animation script loaded
|
||||
08/22 21:51:41 Worker assignment interval=5 seconds:
|
||||
Server Last Last Average Cur Machine
|
||||
State Lump Elapsed pix/sec Frame Name
|
||||
-------- ----- ------- ------- ----- -------------
|
||||
08/22 21:51:41 Seeking servers to start
|
||||
</literallayout>
|
||||
</para>
|
||||
<para>
|
||||
Note that it is seeking servers - we have not given <command>remrt</command> any instructions on
|
||||
how to start its own. To start a server and see the system work, we set up a local directory
|
||||
containing the same .g file we used to set up the scene, and from that directory run <command>rtsrv</command>.
|
||||
(For these purposes we also add the <option>-d</option> so we can see more of what is happening.
|
||||
Without this option, if anything isn't set up correctly rtsrv can fail with cryptic errors.)
|
||||
</para>
|
||||
<para>
|
||||
<userinput>rtsrv -d machinename 4446</userinput>
|
||||
</para>
|
||||
<para>
|
||||
If successful, both <command>remrt</command> and <command>rtsrv</command> will being producing output.
|
||||
The <command>rtsrv</command> will be more verbose, and should look like the following:
|
||||
|
||||
<refsect1 xml:id='see_also2'><title>SEE ALSO</title>
|
||||
<para>M. Muuss,
|
||||
"<emphasis remap='I'>Workstations</emphasis>,
|
||||
<emphasis remap='I'>Networking</emphasis>,
|
||||
<emphasis remap='I'>Distributed Graphics</emphasis>,
|
||||
<emphasis remap='I'>and Parallel Processing</emphasis>",
|
||||
in "<emphasis remap='I'>Computer Graphics Techniques</emphasis>: <emphasis remap='I'>Theory and Practice</emphasis>",
|
||||
ed: Rogers & Earnshaw,
|
||||
Springer Verlag, New York, pages 409-472</para>
|
||||
</refsect1>
|
||||
<literallayout>
|
||||
PIXELS fr=0 pix=3588096..3592191, rays=3712, cpu=0.153336
|
||||
ph_enqueue: 3592192 3596287 0
|
||||
PIXELS fr=0 pix=3592192..3596287, rays=3856, cpu=0.143813
|
||||
ph_enqueue: 3596288 3600383 0
|
||||
PIXELS fr=0 pix=3596288..3600383, rays=3456, cpu=0.145104
|
||||
ph_enqueue: 3600384 3604479 0
|
||||
PIXELS fr=0 pix=3600384..3604479, rays=4032, cpu=0.145221
|
||||
ph_enqueue: 3604480 3608575 0
|
||||
PIXELS fr=0 pix=3604480..3608575, rays=3776, cpu=0.141353
|
||||
ph_enqueue: 3608576 3612671 0
|
||||
PIXELS fr=0 pix=3608576..3612671, rays=3696, cpu=0.13579
|
||||
ph_enqueue: 3612672 3616767 0
|
||||
</literallayout>
|
||||
</para>
|
||||
<para>
|
||||
Upon completion, remrt will notify the user and exit. For this examle, the full remrt output is:
|
||||
<literallayout>
|
||||
08/22 21:51:41 machinename BRL-CAD Release 7.31.0 Network-Distributed RT (REMRT)
|
||||
Sat, 22 Aug 2020 11:24:22 -0400, Compilation 1
|
||||
user@machinename
|
||||
|
||||
<refsect1 xml:id='bugs'><title>BUGS</title>
|
||||
<para>Most deficiencies observed while using the
|
||||
<command>remrt</command>
|
||||
program are usually with the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program, with which it shares a substantial amount of common code,
|
||||
or with the
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
library.
|
||||
If a frame fails to render properly, try processing it on a single
|
||||
machine using
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
to determine if the problem is in the ray-tracing side of things,
|
||||
or the distributed computation side of things.</para>
|
||||
pkg_permserver(rtsrv, 8): unknown service
|
||||
08/22 21:51:41 Automatic REMRT on machinename
|
||||
08/22 21:51:41 Listening at port 24081, reading script on stdin
|
||||
08/22 21:51:41 Starting to scan animation script
|
||||
08/22 21:51:41 Animation script loaded
|
||||
08/22 21:51:41 Worker assignment interval=5 seconds:
|
||||
Server Last Last Average Cur Machine
|
||||
State Lump Elapsed pix/sec Frame Name
|
||||
-------- ----- ------- ------- ----- -------------
|
||||
08/22 21:51:41 Seeking servers to start
|
||||
host_lookup_by_hostent(localhost) got localhost?
|
||||
08/22 21:54:32 127.0.0.1: using 12 of 12 cpus
|
||||
08/22 21:54:32 127.0.0.1 dirbuild OK (Output from STEP converter step-g.)
|
||||
08/22 21:54:32 127.0.0.1: process_cmd 'opt -w2048 -n2048 -H0 -p0 -U0 -J0 -A0.4 -l0 -E1.41421 -x0 -X0 -T5.000000e-04/0.000000e+00'
|
||||
08/22 21:54:32 127.0.0.1: Using tolerance 0
|
||||
08/22 21:54:32 127.0.0.1: process_cmd 'viewsize 9.86571722597487e+02'
|
||||
08/22 21:54:32 127.0.0.1: process_cmd 'orientation 2.48097349045873e-01 4.76590573266048e-01 7.48097349045873e-01 3.89434830518390e-01'
|
||||
08/22 21:54:32 127.0.0.1: process_cmd 'eye_pt 1.01790192500394e+04 6.80791388110900e+03 5.76220366705708e+03'
|
||||
08/22 21:54:32 127.0.0.1: process_cmd 'clean'
|
||||
08/22 21:54:33 127.0.0.1: BRL-CAD Release 7.31.0 The BRL-CAD Optical Shader Library
|
||||
Sat, 22 Aug 2020 11:24:22 -0400, Compilation 1
|
||||
user@machinename
|
||||
08/22 21:54:33 127.0.0.1: PREP: cpu = 9.7e-05 sec, elapsed = 0.000109 sec
|
||||
parent: 0.0user 0.0sys 0:00real 0% i+d maxrss +pf csw
|
||||
children: 0.0user 0.0sys 0:00real 0% i+d maxrss +pf csw
|
||||
08/22 21:54:33 127.0.0.1: NUBSP: 0 cut, 1 box (1 empty)
|
||||
08/22 21:54:33 127.0.0.1 gettrees OK (Document)
|
||||
08/22 21:54:34 127.0.0.1: shade_inputs(Brep_1.s) flip N xy=1292, 238 ID_BREP surf=125 dot=0.422618
|
||||
08/22 21:54:34 127.0.0.1: center: 10236.048570366667 7005.4508761769466 5419.0434225048521
|
||||
08/22 21:54:34 127.0.0.1: dir: -0.74240387650610384 -0.51983679072568423 -0.42261826174069994
|
||||
08/22 21:54:35 127.0.0.1: shade_inputs(Brep_1.s) flip N xy=1090, 331 ID_BREP surf=37 dot=0.422618
|
||||
08/22 21:54:35 127.0.0.1: center: 10276.352963334217 6914.8807626523731 5459.6463522037802
|
||||
08/22 21:54:35 127.0.0.1: dir: -0.74240387650610384 -0.51983679072568423 -0.42261826174069994
|
||||
08/22 21:55:58 127.0.0.1: shade_inputs(Brep_1.s) flip N xy=1069, 1335 ID_BREP surf=171 dot=0.422618
|
||||
08/22 21:55:58 127.0.0.1: center: 10114.720787667989 6789.3550779060624 5897.983356695433
|
||||
08/22 21:55:58 127.0.0.1: dir: -0.74240387650610384 -0.51983679072568423 -0.42261826174069994
|
||||
08/22 21:56:16 Frame 0 DONE: 103.085 elapsed sec, 3890128 rays/1189.42 cpu sec
|
||||
08/22 21:56:16 RTFM=37737.1 rays/sec (3270.61 rays/cpu sec)
|
||||
08/22 21:56:16 All work done!
|
||||
08/22 21:56:16 Task accomplished
|
||||
</literallayout>
|
||||
|
||||
</refsect1>
|
||||
The framebuffer started in the beginning will now hold the image results. To save those
|
||||
results to a file, the <command>fb-png</command> is used:
|
||||
</para>
|
||||
<para>
|
||||
<userinput>fb-png -F0 -s2048 image.png</userinput>
|
||||
</para>
|
||||
</example>
|
||||
</refsection>
|
||||
|
||||
<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) 1994-2020 by the United States
|
||||
Government as represented by U.S. Army Research Laboratory.</para>
|
||||
</refsect1>
|
||||
<refsection xml:id='see_also'><title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>rtsrv</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>scriptsort</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>brlcad</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>lgt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>pix-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>rtray</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>rtpp</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>ray</refentrytitle><manvolnum>5V</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>pix</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
|
||||
<para>Reports of bugs or problems should be submitted via electronic
|
||||
mail to <email>devs@brlcad.org</email></para>
|
||||
</refsect1>
|
||||
<refsection xml:id='diagnostics'>
|
||||
<title>DIAGNOSTICS</title>
|
||||
<para>
|
||||
Numerous error conditions are possible.
|
||||
Descriptive messages are printed on standard error.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='see_also2'>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
M. Muuss,
|
||||
"<emphasis remap='I'>Workstations</emphasis>,
|
||||
<emphasis remap='I'>Networking</emphasis>,
|
||||
<emphasis remap='I'>Distributed Graphics</emphasis>,
|
||||
<emphasis remap='I'>and Parallel Processing</emphasis>",
|
||||
in "<emphasis remap='I'>Computer Graphics Techniques</emphasis>: <emphasis remap='I'>Theory and Practice</emphasis>",
|
||||
ed: Rogers & Earnshaw,
|
||||
Springer Verlag, New York, pages 409-472
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id='bugs'>
|
||||
<title>BUGS</title>
|
||||
<para>
|
||||
Most deficiencies observed while using the <command>remrt</command> program are usually
|
||||
with the <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program, with which it shares a substantial amount of common code, or with the
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
library. If a frame fails to render properly, try processing it on a single machine using
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
to determine if the problem is in the ray-tracing side of things, or the distributed
|
||||
computation side of things.
|
||||
</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) 1994-2020 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 <email>devs@brlcad.org</email>
|
||||
</para>
|
||||
</refsection>
|
||||
</refentry>
|
||||
|
||||
|
||||
@@ -1,163 +1,170 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- lifted from troff+man by doclifter -->
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='rtweight1'>
|
||||
<refmeta>
|
||||
<refmeta>
|
||||
<refentrytitle>RTWEIGHT
|
||||
</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
</refentrytitle>
|
||||
<manvolnum>1</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>rtweight</refname>
|
||||
<refpurpose>Calculate weight, centroid and volume data for an mged model, using raytracing</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<refnamediv>
|
||||
<refname>rtweight</refname>
|
||||
<refpurpose>Calculate mass, centroid, and volume of geometry using raytracing</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<cmdsynopsis>
|
||||
<command>rtweight</command>
|
||||
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
|
||||
<arg choice='plain'><replaceable>model.g</replaceable></arg>
|
||||
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<refsect1 xml:id='description'><title>DESCRIPTION</title>
|
||||
<para>
|
||||
<command>rtweight</command> operates on the indicated <emphasis
|
||||
remap='I'>objects</emphasis> in <emphasis
|
||||
remap='I'>model.g</emphasis>. Material density information and
|
||||
region line of sight (LOS) thickness measurements obtained via ray
|
||||
tracing are used to calculate the mass for each region encountered.
|
||||
It will calculate and report volume of the objects specified. With
|
||||
material properties, it will also report per-region mass information
|
||||
as well as the overall geometric centroid. All calculations take
|
||||
any Boolean operations into consideration.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>rtweight</command> can either use density information
|
||||
stored directly in a .g database or read a density file specified by
|
||||
the <option>-d</option> option.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If using a density file the file must contain lines with the
|
||||
material number, density in g/cc, and material name, each separated
|
||||
by some white space. See the
|
||||
<citerefentry><refentrytitle>gqa</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
manual page for more information about defining and managing density
|
||||
information.
|
||||
</para>
|
||||
|
||||
<para>The following options are recognized.</para>
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><option>-s#</option></term>
|
||||
<listitem>
|
||||
<para>Number of rays to fire in X and Y directions (square grid).
|
||||
Default is 512 (512x512). Conflicts with
|
||||
<option>-g</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-g#</option></term>
|
||||
<listitem>
|
||||
<para>Distance between rays in the X and Y directions in
|
||||
millimeters. Conflicts with <option>-s</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-a#</option></term>
|
||||
<listitem>
|
||||
<para>Select azimuth in degrees. Used with
|
||||
<option>-e</option>
|
||||
and conflicts with
|
||||
<option>-M</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-e#</option></term>
|
||||
<listitem>
|
||||
<para>Select elevation in degrees. Used with
|
||||
<option>-a</option>
|
||||
and conflicts with
|
||||
<option>-M</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-d file</option></term>
|
||||
<listitem>
|
||||
<para>Read density information from the specified file.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-M</option></term>
|
||||
<listitem>
|
||||
<para>Read model2view matrix from standard input.
|
||||
Conflicts with
|
||||
<option>-a</option>
|
||||
and
|
||||
<option>-e</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-r</option></term>
|
||||
<listitem>
|
||||
<para>Report individual region weights by region path name and
|
||||
also by region id number. The default only prints the total
|
||||
weight for all the objects specified.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-o file</option></term>
|
||||
<listitem>
|
||||
<para>Send the output to a specified file. The default is to
|
||||
standard output.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-P#</option></term>
|
||||
<listitem>
|
||||
<para>Specify the maximum number of processors (in a
|
||||
multi-processor system) to be used for this execution. The
|
||||
default is the maximum number for the machine.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para><command>rtweight</command> also accepts all other options
|
||||
that the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program implements, such as for non-square views, perspective,
|
||||
etc.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
|
||||
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='diagnostics'><title>DIAGNOSTICS</title>
|
||||
<para>Numerous error conditions are possible. Descriptive messages
|
||||
are printed on standard error (file descriptor 2).</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='bugs'><title>BUGS</title>
|
||||
<para>Most deficiencies observed while using the
|
||||
<command>rtweight</command>
|
||||
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
|
||||
<arg choice='plain'><replaceable>model.g</replaceable></arg>
|
||||
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
|
||||
program are usually with the
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
package instead.</para>
|
||||
</refsect1>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
<refsect1 xml:id='author'><title>AUTHOR</title>
|
||||
<para>James E. Hunt</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
|
||||
<para>This software is Copyright (c) 1991-2020 United States Government as
|
||||
represented by the U.S. Army Research Laboratory.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='description'><title>DESCRIPTION</title>
|
||||
<para><command>rtweight</command>
|
||||
operates on the indicated
|
||||
<emphasis remap='I'>objects</emphasis>
|
||||
in
|
||||
<emphasis remap='I'>model.g</emphasis>
|
||||
to calculate the volume and centroid of each region encountered along
|
||||
rays. Material density information
|
||||
and region line of sight (LOS) thickness estimates are used to calculate
|
||||
the mass for each region.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<command>rtweight</command> can either use density information stored
|
||||
directly in a .g database or read a density
|
||||
file specified by the <option>-d</option> option.
|
||||
</para>
|
||||
<para>
|
||||
If using a density file the file must contain lines with the material
|
||||
number, density in g/cc, and material name, each separated by some
|
||||
white space. See the <citerefentry><refentrytitle>gqa</refentrytitle><manvolnum>1</manvolnum></citerefentry> manual page for more information about defining
|
||||
and managing density information.
|
||||
</para>
|
||||
|
||||
<para>The following options are recognized.</para>
|
||||
<variablelist remap='TP'>
|
||||
<varlistentry>
|
||||
<term><option>-s#</option></term>
|
||||
<listitem>
|
||||
<para>Number of rays to fire in X and Y directions (square grid).
|
||||
Default is 512 (512x512). Conflicts with
|
||||
<option>-g</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-g#</option></term>
|
||||
<listitem>
|
||||
<para>Distance between rays in the X and Y directions in millimeters. Conflicts with
|
||||
<option>-s</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-a#</option></term>
|
||||
<listitem>
|
||||
<para>Select azimuth in degrees. Used with
|
||||
<option>-e</option>
|
||||
and conflicts with
|
||||
<option>-M</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-e#</option></term>
|
||||
<listitem>
|
||||
<para>Select elevation in degrees. Used with
|
||||
<option>-a</option>
|
||||
and conflicts with
|
||||
<option>-M</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-d file</option></term>
|
||||
<listitem>
|
||||
<para>Read density information from the specified file.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-M</option></term>
|
||||
<listitem>
|
||||
<para>Read model2view matrix from standard input.
|
||||
Conflicts with
|
||||
<option>-a</option>
|
||||
and
|
||||
<option>-e</option></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-r</option></term>
|
||||
<listitem>
|
||||
<para>Report individual region weights by region path name and also by region
|
||||
id number. The default only prints the total weight for all the objects
|
||||
specified.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-o file</option></term>
|
||||
<listitem>
|
||||
<para>Send the output to a specified file. The default is to standard output.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-P#</option></term>
|
||||
<listitem>
|
||||
<para>Specify the maximum number of processors (in a multi-processor system) to be
|
||||
used for this execution. The default is the maximum number for the machine.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para><command>rtweight</command>
|
||||
also accepts all other options that the
|
||||
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
||||
program implements, such as for non-square views, perspective, etc.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
|
||||
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='diagnostics'><title>DIAGNOSTICS</title>
|
||||
<para>Numerous error conditions are possible.
|
||||
Descriptive messages are printed on standard error (file descriptor 2).</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='bugs'><title>BUGS</title>
|
||||
<para>Most deficiencies observed while using the
|
||||
<command>rtweight</command>
|
||||
program are usually with the
|
||||
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
package instead.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='author'><title>AUTHOR</title>
|
||||
<para>James E. Hunt</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
|
||||
<para>This software is Copyright (c) 1991-2020 United States Government as
|
||||
represented by the 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 <email>devs@brlcad.org</email></para>
|
||||
</refsect1>
|
||||
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
|
||||
<para>Reports of bugs or problems should be submitted via electronic
|
||||
mail to <email>devs@brlcad.org</email></para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ set(man3_EN
|
||||
librt.xml
|
||||
libwdb.xml
|
||||
redblack.xml
|
||||
libicv.xml
|
||||
)
|
||||
|
||||
# Some DocBook man pages generate multiple output files, if they
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- lifted from troff+man by doclifter -->
|
||||
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='librt3'>
|
||||
<refmeta>
|
||||
<refentrytitle>LIBICV
|
||||
</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>libicv</refname>
|
||||
<refpurpose>library for image processing in BRL-CAD</refpurpose>
|
||||
</refnamediv>
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id='synopsis'>
|
||||
<para>This file seems to be out of date with the sources.
|
||||
Consult the headers for up-to-date information.
|
||||
Use the below interface documentation at your own discretion.
|
||||
</para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
|
||||
<para>Reports of bugs or problems should be submitted via electronic
|
||||
mail to <email>devs@brlcad.org</email></para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
@@ -195,6 +195,7 @@ set(mann_EN
|
||||
size.xml
|
||||
solids.xml
|
||||
sph-part.xml
|
||||
stat.xml
|
||||
status.xml
|
||||
summary.xml
|
||||
sv.xml
|
||||
|
||||
@@ -17,33 +17,29 @@
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>bo</command>
|
||||
<group choice="req" rep="norepeat">
|
||||
<arg choice="opt" rep="norepeat">-i {type}</arg>
|
||||
<arg choice="opt" rep="norepeat">-i u {type}</arg>
|
||||
<arg choice="opt" rep="norepeat">-o</arg>
|
||||
</group>
|
||||
<arg choice="req" rep="norepeat"><replaceable>{destination} {source}</replaceable></arg>
|
||||
<arg choice="req" rep="norepeat"><replaceable>destination</replaceable></arg> <arg choice="req" rep="norepeat"><replaceable>source</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>
|
||||
Used to create or retrieve binary opaque objects. Currently,
|
||||
only uniform binary objects (arrays of values) are
|
||||
supported. One of <emphasis>-i</emphasis> or
|
||||
<emphasis>-o</emphasis> must be
|
||||
specified. The <emphasis>-i</emphasis> is for "input," or
|
||||
creating a binary object, and the <emphasis>-o</emphasis> option
|
||||
is used for "output," or retrieving a binary
|
||||
object. The <emphasis>type</emphasis> argument must be supplied
|
||||
when <emphasis>-i</emphasis> is used, to indicate the type of
|
||||
uniform binary object to be created. On input,
|
||||
the <emphasis>destination</emphasis> is the name of the object
|
||||
to be created, and the source is the path to a file containing
|
||||
the values in the local host format. On
|
||||
Used to create or export binary opaque objects. One of
|
||||
<emphasis>-i</emphasis> or <emphasis>-o</emphasis> must be
|
||||
specified to input or output data respectively. The
|
||||
<emphasis>-i</emphasis> option will create a binary object, and
|
||||
the <emphasis>-o</emphasis> option will write out a binary
|
||||
object's data. Currently, only uniform binary objects (arrays of
|
||||
values) are supported on input. On input, the
|
||||
<emphasis>destination</emphasis> is the name of the object to be
|
||||
created, and the source is the path to a file to read. On
|
||||
output, <emphasis>destination</emphasis> is the path to a file
|
||||
to receive the contents of the binary object whose name appears
|
||||
in <emphasis>source</emphasis>. The
|
||||
<emphasis>type</emphasis> may be one of:
|
||||
to write out with the contents of the binary object specified as
|
||||
the <emphasis>source</emphasis>. The <emphasis>type</emphasis>
|
||||
may be one of:
|
||||
|
||||
<simplelist type="vert">
|
||||
<member>f -> float</member>
|
||||
@@ -77,6 +73,12 @@
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>Import data for a displacement map (DSP) object</title>
|
||||
|
||||
<para><prompt>mged></prompt> <userinput>bo -i u S dsp.data /path/to/file.dsp</userinput></para>
|
||||
<para>This imports a file named <emphasis>file.dsp</emphasis> that contains DSP data, i.e., raw data in unsigned short (16-bit) format. The data is saved in the .g database into an object named <emphasis>dsp.data</emphasis>. When creating a DSP, this <emphasis>dsp.data</emphasis> object can be specified as the data source.</para>
|
||||
</example>
|
||||
|
||||
<example><title>Copy the contents of a particular binary object into a specified file.</title>
|
||||
|
||||
<para><prompt>mged></prompt> <userinput>bo -o /home/jim/cmds.html cmds</userinput></para>
|
||||
|
||||
@@ -51,7 +51,27 @@
|
||||
<emphasis remap="I">before</emphasis> the paths and are used to control settings
|
||||
that apply globally to <command>search</command>'s behavior and reporting during
|
||||
the execution of the search.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The results of the search command will be sorted according to David Koelle's
|
||||
"alphanum" algorithm, which is basically a human-intuitive ordering for
|
||||
strings with letters and numbers. For example, a result returning d1.r, d10.r and d2.r
|
||||
will be sorted as:
|
||||
|
||||
<literallayout>
|
||||
d1.r
|
||||
d2.r
|
||||
d10.r
|
||||
</literallayout>
|
||||
|
||||
instead of the default ASCII character ordering, which would look like:
|
||||
|
||||
<literallayout>
|
||||
d1.r
|
||||
d10.r
|
||||
d2.r
|
||||
</literallayout>
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
@@ -423,6 +443,14 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-size</emphasis> <emphasis remap="I">[>/</=]size</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
True if the size of the object is within the range specified. NOTE: for combs, extrudes, and other composite objects this filter considers <emphasis>only</emphasis> the object definition itself, not its related elements.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-stdattr</emphasis></term>
|
||||
<listitem>
|
||||
|
||||
@@ -0,0 +1,219 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="STATFORMAT" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<refmeta>
|
||||
<refentrytitle>STAT</refentrytitle>
|
||||
<manvolnum>nged</manvolnum>
|
||||
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
|
||||
<refmiscinfo class="manual">BRL-CAD</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>stat</refname>
|
||||
<refpurpose>
|
||||
report information about objects in a BRL-CAD database
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>stat</command>
|
||||
<arg choice="opt" rep="norepeat">-h</arg>
|
||||
<arg choice="opt" rep="norepeat">-?</arg>
|
||||
<arg choice="opt" rep="norepeat">-r</arg>
|
||||
<arg choice="opt" rep="norepeat">-F <replaceable>string</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-C <replaceable>type1[,type2]...</replaceable></arg>
|
||||
<arg choice="opt" rep="norepeat">-S <replaceable>type1[,type2]...</replaceable></arg>
|
||||
<arg choice="req">glob pattern</arg>
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
|
||||
<refsection xml:id="stat_overview"><info><title>Overview</title></info>
|
||||
|
||||
<para>
|
||||
The GED <command>stat</command> command reports information about objects in
|
||||
a BRL-CAD .g file. It produces a tabular output, with options for user configurability
|
||||
and sorting.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Available types reflect geometry object data:
|
||||
|
||||
<table frame="all"> <title>STAT Information Keys - Core Object Info</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colwidth="1in" colname="c1"/>
|
||||
<colspec colwidth="4in" colname="c2"/>
|
||||
<tbody>
|
||||
<row> <entry>name</entry> <entry>Object database name (for example, "primitive.s")</entry> </row>
|
||||
<row> <entry>uses</entry> <entry>Number of uses, from instancing</entry> </row>
|
||||
<row> <entry>size</entry> <entry>Size of database object</entry> </row>
|
||||
<row> <entry>refs</entry> <entry>Number of times object is referenced by COMBs</entry> </row>
|
||||
<row> <entry>flags</entry> <entry>Flags</entry> </row>
|
||||
<row> <entry>major_type</entry> <entry>Object major type</entry> </row>
|
||||
<row> <entry>minor_type</entry> <entry>Object minor type</entry> </row>
|
||||
<row> <entry>type</entry> <entry>Object type (short name)</entry> </row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In addition to the above standard keys, attributes may also be specified. If the desired attribute happens
|
||||
to have the same name as one of the above standard keys, the prefix "attr:" may be added to denote an attribute.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="search_options"><title>OPTIONS</title>
|
||||
|
||||
<variablelist remap="TP">
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-h or -?</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print help and exit.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-r</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Print raw values, instead of human friendly strings (for example, 5195952 for a size instead of 5.0M).
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-F</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specify <command>search</command> style filters to trim down what is reported in <command>stat</command> output.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-C</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Supply a comma separated list of column specifiers or attribute keys to define the table layout for <command>stat</command>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-S</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Supply a comma separated list of column specifiers or attribute keys to specify a sorting priority for <command>stat</command>.
|
||||
Priority is left to right - sorting will be performed first based on the leftmost specifier, and subsequent specifiers
|
||||
will be used to resolve any ties. To revers the ordering decisions for a given column, prefix the specifier with a "!"
|
||||
character.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="examples"><title>EXAMPLES</title>
|
||||
|
||||
<example><title>Default Output</title>
|
||||
<para>
|
||||
<userinput>stat *</userinput>
|
||||
</para>
|
||||
<literallayout>
|
||||
Object Name uses References Flags Type Size
|
||||
----------------------- ------ ------------ ------- -------- ------
|
||||
Default 0 1 2 comb 288B
|
||||
NIST_MBE_PMI_7-10.3dm 0 0 2 comb 264B
|
||||
Solid1.r 0 1 6 region 280B
|
||||
Solid1.r.s 0 1 1 brep 859K
|
||||
Solid1_2.r 0 1 6 region 280B
|
||||
Solid1_2.r.s 0 1 1 brep 672K
|
||||
Solid1_3.r 0 1 6 region 280B
|
||||
Solid1_3.r.s 0 1 1 brep 431K
|
||||
Solid1_4.r 0 1 6 region 280B
|
||||
Solid1_4.r.s 0 1 1 brep 771K
|
||||
_GLOBAL 0 0 8 96B
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
<example><title>Sorting by Size</title>
|
||||
<para>
|
||||
<userinput>stat -S "size" *</userinput>
|
||||
</para>
|
||||
<literallayout>
|
||||
Object Name uses References Flags Type Size
|
||||
----------------------- ------ ------------ ------- -------- ------
|
||||
_GLOBAL 0 0 8 96B
|
||||
NIST_MBE_PMI_7-10.3dm 0 0 2 comb 264B
|
||||
Solid1_2.r 0 1 6 region 280B
|
||||
Solid1_3.r 0 1 6 region 280B
|
||||
Solid1.r 0 1 6 region 280B
|
||||
Solid1_4.r 0 1 6 region 280B
|
||||
Default 0 1 2 comb 288B
|
||||
Solid1_3.r.s 0 1 1 brep 431K
|
||||
Solid1_2.r.s 0 1 1 brep 672K
|
||||
Solid1_4.r.s 0 1 1 brep 771K
|
||||
Solid1.r.s 0 1 1 brep 859K
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
<example><title>Sorting by Size, Reversed Order</title>
|
||||
<para>
|
||||
<userinput>stat -S "!size" *</userinput>
|
||||
</para>
|
||||
<literallayout>
|
||||
Object Name uses References Flags Type Size
|
||||
----------------------- ------ ------------ ------- -------- ------
|
||||
Solid1.r.s 0 1 1 brep 859K
|
||||
Solid1_4.r.s 0 1 1 brep 771K
|
||||
Solid1_2.r.s 0 1 1 brep 672K
|
||||
Solid1_3.r.s 0 1 1 brep 431K
|
||||
Default 0 1 2 comb 288B
|
||||
Solid1_3.r 0 1 6 region 280B
|
||||
Solid1.r 0 1 6 region 280B
|
||||
Solid1_2.r 0 1 6 region 280B
|
||||
Solid1_4.r 0 1 6 region 280B
|
||||
NIST_MBE_PMI_7-10.3dm 0 0 2 comb 264B
|
||||
_GLOBAL 0 0 8 96B
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
<example><title>Filtering by Type</title>
|
||||
<para>
|
||||
<userinput>stat -F "-type brep" *</userinput>
|
||||
</para>
|
||||
<literallayout>
|
||||
Object Name uses References Flags Type Size
|
||||
-------------- ------ ------------ ------- ------ ------
|
||||
Solid1.r.s 0 1 1 brep 859K
|
||||
Solid1_2.r.s 0 1 1 brep 672K
|
||||
Solid1_3.r.s 0 1 1 brep 431K
|
||||
Solid1_4.r.s 0 1 1 brep 771K
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
<example><title>Custom Columns</title>
|
||||
<para>
|
||||
<userinput>stat -C "name,type,size,color" *</userinput>
|
||||
</para>
|
||||
<literallayout>
|
||||
Object Name Type Size color
|
||||
----------------------- -------- ------ -------------
|
||||
Default comb 288B 0/0/0
|
||||
NIST_MBE_PMI_7-10.3dm comb 264B 0/0/0
|
||||
Solid1.r region 280B 153/231/254
|
||||
Solid1.r.s brep 859K
|
||||
Solid1_2.r region 280B 255/206/142
|
||||
Solid1_2.r.s brep 672K
|
||||
Solid1_3.r region 280B 237/255/168
|
||||
Solid1_3.r.s brep 431K
|
||||
Solid1_4.r region 280B 178/178/178
|
||||
Solid1_4.r.s brep 771K
|
||||
_GLOBAL 96B
|
||||
</literallayout>
|
||||
</example>
|
||||
|
||||
</refsection>
|
||||
|
||||
</refentry>
|
||||
@@ -9,42 +9,99 @@
|
||||
|
||||
<refnamediv xml:id="name">
|
||||
<refname>whichair</refname>
|
||||
<refpurpose>Lists all the regions that use one of the air codes specified.</refpurpose>
|
||||
<refpurpose>Reports information relating to usag of air codes on regions.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<!-- body begins here -->
|
||||
<refsynopsisdiv xml:id="synopsis">
|
||||
<cmdsynopsis sepchar=" ">
|
||||
<command>whichair</command>
|
||||
|
||||
<arg choice="opt" rep="norepeat"><replaceable>options ...</replaceable></arg>
|
||||
<arg choice="req" rep="norepeat"><replaceable>air_codes</replaceable></arg>
|
||||
|
||||
</cmdsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsection xml:id="description"><title>DESCRIPTION</title>
|
||||
|
||||
<para>Lists all the regions that use one of the air codes specified.
|
||||
The <command>eac</command> command will perform a similar search, but will draw the qualifying regions
|
||||
in the MGED display rather than listing them. Regions that have nonzero ident
|
||||
numbers will not be listed by this command.
|
||||
<para>
|
||||
|
||||
Reports information about the usage of the <emphasis>air_codes</emphasis> property
|
||||
by regions in a .g file. Its default mode is to report which regions in a .g file
|
||||
are using one or a range of region_id values. If a root object is specified, it
|
||||
will report that result only for the regions in the tree of the root object.
|
||||
|
||||
If the <option>U</option> is specified, the reporting is inverted and the command
|
||||
will report the ranges of <emphasis>unused</emphasis> aircodes rather than the regions
|
||||
using various aircodes.
|
||||
</para>
|
||||
<para>
|
||||
The <command>eac</command> command will perform a similar search, but will draw
|
||||
the qualifying regions in the MGED display rather than listing them.
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="search_options"><title>OPTIONS</title>
|
||||
|
||||
<variablelist remap="TP">
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">-U</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Report unused aircode ranges.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><emphasis remap="B" role="bold">--root objname</emphasis></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Limit reporting to regions in the CSG tree below <emphasis>objname</emphasis>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</para>
|
||||
</refsection>
|
||||
|
||||
<refsection xml:id="examples"><title>EXAMPLES</title>
|
||||
|
||||
<para>The example shows the use of the <command>whichair</command> command to list all the regions that use one of the air codes specified.
|
||||
<para>
|
||||
For these examples the geometry file used is the standard <emphasis>m35.g</emphasis>
|
||||
included with BRL-CAD.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Report all regions using air codes between 7 and 10.</title>
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>whichair 7-10</userinput>
|
||||
<literallayout class="normal">
|
||||
Region[s] with air code 7:
|
||||
r11
|
||||
r13
|
||||
r15
|
||||
Region[s] with air code 8:
|
||||
r25
|
||||
r27
|
||||
r29
|
||||
r31
|
||||
r33
|
||||
r35
|
||||
</literallayout>
|
||||
</para>
|
||||
</example>
|
||||
|
||||
<example><title>List all regions that use the specified air codes.</title>
|
||||
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>whichair 2 3</userinput>
|
||||
</para>
|
||||
<para>Lists all regions in the current database that have <emphasis>air codes</emphasis> of 2 or 3.
|
||||
</para>
|
||||
</example>
|
||||
<example>
|
||||
<title>Report all unused aircode ranges in the database between 1 and 10.</title>
|
||||
<para>
|
||||
<prompt>mged></prompt><userinput>whichair -U 1-10</userinput>
|
||||
<literallayout class="normal">
|
||||
Unused air codes:
|
||||
1-3
|
||||
5
|
||||
9-10
|
||||
</literallayout>
|
||||
</para>
|
||||
</example>
|
||||
|
||||
</refsection>
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ set(embedded_licenses
|
||||
clipper.txt
|
||||
db_faa-info.txt
|
||||
db_nist-info.txt
|
||||
damlev.txt
|
||||
dehumanize.txt
|
||||
delaunator.txt
|
||||
DejaVu_Fonts.txt
|
||||
@@ -17,11 +18,11 @@ set(embedded_licenses
|
||||
Eigen.txt
|
||||
fnmatch.txt
|
||||
fontstash.txt
|
||||
fort.txt
|
||||
gct.txt
|
||||
gecode.txt
|
||||
gdal_gcv_plugin1.txt
|
||||
gdal_gcv_plugin2.txt
|
||||
glm.txt
|
||||
halfedge.txt
|
||||
humanize.txt
|
||||
hv3.txt
|
||||
@@ -37,7 +38,6 @@ set(embedded_licenses
|
||||
mt19937ar.txt
|
||||
naca.txt
|
||||
normalize.txt
|
||||
nurbs_fit.txt
|
||||
obr.txt
|
||||
OpenNURBS.txt
|
||||
osg.txt
|
||||
@@ -45,7 +45,6 @@ set(embedded_licenses
|
||||
ParaView.txt
|
||||
pbrt.txt
|
||||
point_in_polygon.txt
|
||||
point_in_polyhedron.txt
|
||||
polygonizer.txt
|
||||
pstdint.txt
|
||||
qsort.txt
|
||||
@@ -64,6 +63,7 @@ set(embedded_licenses
|
||||
sscanf.txt
|
||||
stb_truetype.txt
|
||||
STIX_Font_License_2010.txt
|
||||
strnstr.txt
|
||||
tcl.txt
|
||||
tcllib.txt
|
||||
tinythread.txt
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
Copyright (C) 2019 Robert Jacobson. Released under the MIT license.
|
||||
|
||||
Based on "Iosifovich", Copyright (C) 2019 Frederik Hertzum, which is
|
||||
licensed under the MIT license: https://bitbucket.org/clearer/iosifovich.
|
||||
|
||||
The MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
|
||||
https://github.com/rljacobson/Levenshtein
|
||||
|
||||
file:/src/libbu/damlevlim.cpp
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
================================================================================
|
||||
OpenGL Mathematics (GLM)
|
||||
--------------------------------------------------------------------------------
|
||||
GLM is licensed under The Happy Bunny License or MIT License
|
||||
libfort
|
||||
|
||||
BRL-CAD will use glm under the standard MIT license
|
||||
MIT License
|
||||
|
||||
================================================================================
|
||||
The MIT License
|
||||
--------------------------------------------------------------------------------
|
||||
Copyright (c) 2005 - G-Truc Creation
|
||||
Copyright (c) 2017 - 2020 Seleznev Anton
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -17,13 +11,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
file:/src/libged/stat/fort.c
|
||||
file:/src/libged/stat/fort.h
|
||||
@@ -1,314 +0,0 @@
|
||||
================================================================================
|
||||
OpenGL Mathematics (GLM)
|
||||
--------------------------------------------------------------------------------
|
||||
GLM is licensed under The Happy Bunny License or MIT License
|
||||
|
||||
BRL-CAD will use glm under the standard MIT license
|
||||
|
||||
================================================================================
|
||||
The MIT License
|
||||
--------------------------------------------------------------------------------
|
||||
Copyright (c) 2005 - G-Truc Creation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
file:/src/qged/display/glm/glm/common.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_features.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_fixes.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_noise.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_swizzle.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_swizzle_func.hpp
|
||||
file:/src/qged/display/glm/glm/detail/_vectorize.hpp
|
||||
file:/src/qged/display/glm/glm/detail/compute_common.hpp
|
||||
file:/src/qged/display/glm/glm/detail/compute_vector_relational.hpp
|
||||
file:/src/qged/display/glm/glm/detail/glm.cpp
|
||||
file:/src/qged/display/glm/glm/detail/qualifier.hpp
|
||||
file:/src/qged/display/glm/glm/detail/setup.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_float.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_half.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat2x2.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat2x3.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat2x4.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat3x2.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat3x3.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat3x4.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat4x2.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat4x3.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_mat4x4.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_quat.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_vec1.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_vec2.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_vec3.hpp
|
||||
file:/src/qged/display/glm/glm/detail/type_vec4.hpp
|
||||
file:/src/qged/display/glm/glm/exponential.hpp
|
||||
file:/src/qged/display/glm/glm/ext.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_clip_space.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_common.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double2x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double3x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_double4x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float2x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float3x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_float4x4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int2x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int3x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_int4x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_projection.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_relational.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_transform.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint2x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint3x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/matrix_uint4x4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_common.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_double.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_double_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_exponential.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_float.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_float_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_geometric.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_relational.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_transform.hpp
|
||||
file:/src/qged/display/glm/glm/ext/quaternion_trigonometric.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_common.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_constants.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_int_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_integer.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_packing.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_relational.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_uint_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/scalar_ulp.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool1.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool1_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_bool4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_common.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double1.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double1_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_double4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float1.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float1_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float2_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float3_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_float4_precision.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int1.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int1_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_int4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_integer.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_packing.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_relational.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint1.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint1_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint2.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint2_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint3.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint3_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint4.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_uint4_sized.hpp
|
||||
file:/src/qged/display/glm/glm/ext/vector_ulp.hpp
|
||||
file:/src/qged/display/glm/glm/fwd.hpp
|
||||
file:/src/qged/display/glm/glm/geometric.hpp
|
||||
file:/src/qged/display/glm/glm/glm.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/bitfield.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/color_space.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/constants.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/epsilon.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/integer.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/matrix_access.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/matrix_integer.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/matrix_inverse.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/matrix_transform.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/noise.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/packing.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/quaternion.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/random.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/reciprocal.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/round.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/type_aligned.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/type_precision.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/type_ptr.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/ulp.hpp
|
||||
file:/src/qged/display/glm/glm/gtc/vec1.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/associated_min_max.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/bit.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/closest_point.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/color_encoding.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/color_space.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/color_space_YCoCg.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/common.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/compatibility.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/component_wise.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/dual_quaternion.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/easing.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/euler_angles.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/extend.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/extended_min_max.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/exterior_product.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/fast_exponential.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/fast_square_root.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/fast_trigonometry.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/functions.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/gradient_paint.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/handed_coordinate_space.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/hash.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/integer.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/intersect.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/io.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/log_base.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_cross_product.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_decompose.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_factorisation.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_interpolation.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_major_storage.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_operation.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_query.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/matrix_transform_2d.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/mixed_product.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/norm.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/normal.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/normalize_dot.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/number_precision.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/optimum_pow.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/orthonormalize.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/perpendicular.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/polar_coordinates.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/projection.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/quaternion.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/range.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/raw_data.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/rotate_normalized_axis.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/rotate_vector.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/scalar_multiplication.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/scalar_relational.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/spline.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/std_based_type.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/string_cast.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/texture.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/transform.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/transform2.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/type_aligned.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/type_trait.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/vec_swizzle.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/vector_angle.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/vector_query.hpp
|
||||
file:/src/qged/display/glm/glm/gtx/wrap.hpp
|
||||
file:/src/qged/display/glm/glm/integer.hpp
|
||||
file:/src/qged/display/glm/glm/mat2x2.hpp
|
||||
file:/src/qged/display/glm/glm/mat2x3.hpp
|
||||
file:/src/qged/display/glm/glm/mat2x4.hpp
|
||||
file:/src/qged/display/glm/glm/mat3x2.hpp
|
||||
file:/src/qged/display/glm/glm/mat3x3.hpp
|
||||
file:/src/qged/display/glm/glm/mat3x4.hpp
|
||||
file:/src/qged/display/glm/glm/mat4x2.hpp
|
||||
file:/src/qged/display/glm/glm/mat4x3.hpp
|
||||
file:/src/qged/display/glm/glm/mat4x4.hpp
|
||||
file:/src/qged/display/glm/glm/matrix.hpp
|
||||
file:/src/qged/display/glm/glm/packing.hpp
|
||||
file:/src/qged/display/glm/glm/simd/common.h
|
||||
file:/src/qged/display/glm/glm/simd/exponential.h
|
||||
file:/src/qged/display/glm/glm/simd/geometric.h
|
||||
file:/src/qged/display/glm/glm/simd/integer.h
|
||||
file:/src/qged/display/glm/glm/simd/matrix.h
|
||||
file:/src/qged/display/glm/glm/simd/neon.h
|
||||
file:/src/qged/display/glm/glm/simd/packing.h
|
||||
file:/src/qged/display/glm/glm/simd/platform.h
|
||||
file:/src/qged/display/glm/glm/simd/trigonometric.h
|
||||
file:/src/qged/display/glm/glm/simd/vector_relational.h
|
||||
file:/src/qged/display/glm/glm/trigonometric.hpp
|
||||
file:/src/qged/display/glm/glm/vec2.hpp
|
||||
file:/src/qged/display/glm/glm/vec3.hpp
|
||||
file:/src/qged/display/glm/glm/vec4.hpp
|
||||
file:/src/qged/display/glm/glm/vector_relational.hpp
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
Copyright (c) 2011, Thomas Mörwald, Jonathan Balzer, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Thomas Mörwald or Jonathan Balzer nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
file:/src/libbrep/opennurbs_fit.cpp
|
||||
file:/src/libbrep/opennurbs_fit.h
|
||||
@@ -1,35 +0,0 @@
|
||||
Original python implementation from
|
||||
https://github.com/mdickinson/polyhedron
|
||||
|
||||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2019, Mark Dickinson
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
file:/src/libbg/trimesh_pt_in.c
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2005-2018 Rich Felker
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
file:/regress/repository/strnstr.c
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file aabb_ray.h */
|
||||
/** @addtogroup aabb_ray */
|
||||
/** @addtogroup bg_aabb_ray */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file chull.h */
|
||||
/** @addtogroup chull */
|
||||
/** @addtogroup bg_chull */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
+4
-4
@@ -19,8 +19,8 @@
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file polygon.h */
|
||||
/** @addtogroup lineseg */
|
||||
/* @file lseg.h */
|
||||
/** @addtogroup bg_lseg */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
@@ -41,14 +41,14 @@ __BEGIN_DECLS
|
||||
* question if c is non-NULL.
|
||||
*/
|
||||
BG_EXPORT double
|
||||
bg_lseg_pt_dist_sq(point_t *c, const point_t P0, const point_t P1, const point_t Q);
|
||||
bg_distsq_lseg3_pt(point_t *c, const point_t P0, const point_t P1, const point_t Q);
|
||||
|
||||
/* Compute the closest points on the line segments P0->P1 and Q0->Q1. Returns
|
||||
* the distance squared between the closest points and (optionally) the closest
|
||||
* points in question (c1 is the point on P0->P1, c2 is the point on Q0->Q1).
|
||||
*/
|
||||
BG_EXPORT double
|
||||
bg_lseg_lseg_dist_sq(point_t *c1, point_t *c2,
|
||||
bg_distsq_lseg3_lseg3(point_t *c1, point_t *c2,
|
||||
const point_t P0, const point_t P1, const point_t Q0, const point_t Q1);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file obr.h */
|
||||
/** @addtogroup obr */
|
||||
/** @addtogroup bg_obr */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file pointgen.h */
|
||||
/** @addtogroup pointgen */
|
||||
/** @addtogroup bg_pointgen */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file polygon.h */
|
||||
/** @addtogroup polygon */
|
||||
/** @addtogroup bg_polygon */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file polygon_types.h */
|
||||
/** @addtogroup polygon */
|
||||
/** @addtogroup bg_polygon */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -50,8 +50,8 @@
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file sbsr.h */
|
||||
/** @addtogroup sbsr */
|
||||
/* @file spsr.h */
|
||||
/** @addtogroup bg_surf_recon_spsr */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
+4
-3
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file tri_pt.h */
|
||||
/** @addtogroup tri_pt */
|
||||
/** @addtogroup bg_tri_pt */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
@@ -39,8 +39,9 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* The parameter closest_pt is optional = if supplied, it will hold the closest point found.
|
||||
* The return value is the stance between TP and closest_pt */
|
||||
/* The parameter closest_pt is optional = if supplied, it will hold the closest
|
||||
* point found. The return value is the distance between TP and the closest_pt
|
||||
* to TP on the triangle. */
|
||||
BG_EXPORT extern double bg_tri_closest_pt(
|
||||
point_t *closest_pt,
|
||||
const point_t TP,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file tri_ray.h */
|
||||
/** @addtogroup tri_ray */
|
||||
/** @addtogroup bg_tri_ray */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file tri_tri.h */
|
||||
/** @addtogroup tri_tri */
|
||||
/** @addtogroup bg_tri_tri */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
|
||||
+1
-17
@@ -20,7 +20,7 @@
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* @file trimesh.h */
|
||||
/** @addtogroup trimesh */
|
||||
/** @addtogroup bg_trimesh */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
@@ -172,22 +172,6 @@ BG_EXPORT extern int bg_trimesh_3d_gc(int **ofaces, int *n_ofaces, point_t **opn
|
||||
const int *ifaces, int n_ifaces, const point_t *ipnts);
|
||||
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* Low level per-face contribution to inside/outside test, used if
|
||||
* calling codes prefer to construct their own test with their own
|
||||
* mesh containers.
|
||||
*/
|
||||
BG_EXPORT int
|
||||
bg_ptm_triangle_chain(point_t v1, point_t v2, point_t v3, point_t tp, int *exact_flag);
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* Report if point tp is inside or outside of the trimesh.
|
||||
*/
|
||||
BG_EXPORT int
|
||||
bg_trimesh_pt_in(point_t tp, int num_faces, int *faces, int num_vertices, point_t *pts);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* BG_TRIMESH_H */
|
||||
|
||||
+2
-2
@@ -127,13 +127,13 @@ typedef fastf_t mat3_t[9];
|
||||
(o)[7] = (i)[9];\
|
||||
(o)[8] = (i)[10];}
|
||||
|
||||
/* tilde matrix: [M]a = v X a */
|
||||
/** tilde matrix: [M]a = v X a */
|
||||
#define MAKE_TILDE(m, v) {\
|
||||
MAT3ZERO(m);\
|
||||
m[1]= -v[2]; m[2]=v[1]; m[3]= v[2];\
|
||||
m[5]= -v[0]; m[6]= -v[1]; m[7]= v[0];}
|
||||
|
||||
/* a = Ix Iy Iz b = Ixy Ixz Iyz*/
|
||||
/** a = Ix Iy Iz b = Ixy Ixz Iyz*/
|
||||
#define INERTIAL_MAT3(m, a, b) {\
|
||||
(m)[0] = (a)[0]; (m)[1] = -(b)[0]; (m)[2] = -(b)[1];\
|
||||
(m)[3] = -(b)[0]; (m)[4] = (a)[1]; (m)[5] = -(b)[2];\
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* "complex number" data type: */
|
||||
/** "complex number" data type */
|
||||
typedef struct bn_complex {
|
||||
double re; /**< @brief real part */
|
||||
double im; /**< @brief imaginary part */
|
||||
|
||||
+9
-4
@@ -26,10 +26,10 @@
|
||||
#include <math.h>
|
||||
extern "C++" {
|
||||
/* Hide iostream from Doxygen with cond */
|
||||
/* @cond */
|
||||
/** @cond */
|
||||
#include <iostream>
|
||||
#include <ostream>
|
||||
/* @endcond */
|
||||
/** @endcond */
|
||||
}
|
||||
|
||||
/* Needed for fastf_t definition */
|
||||
@@ -131,7 +131,7 @@ private:
|
||||
#define VEC_ALIGN
|
||||
|
||||
/* Doxygen doesn't like these includes... */
|
||||
/* @cond */
|
||||
/** @cond */
|
||||
/*#undef __SSE2__*/ // Test FPU version
|
||||
#if defined(__SSE2__) && defined(__GNUC__) && defined(HAVE_EMMINTRIN_H) && defined(HAVE_EMMINTRIN)
|
||||
# define __x86_vector__
|
||||
@@ -741,7 +741,7 @@ operator<<(std::ostream& out, const vec2d& v)
|
||||
}
|
||||
|
||||
#endif
|
||||
/* @endcond */
|
||||
/** @endcond */
|
||||
|
||||
inline bool vequals(const vec2d& a, const vec2d& b) {
|
||||
return
|
||||
@@ -752,9 +752,14 @@ inline bool vequals(const vec2d& a, const vec2d& b) {
|
||||
// 2x2 row-major matrix
|
||||
typedef fastf_t mat2d_t[4] VEC_ALIGN;
|
||||
|
||||
/* Hide from Doxygen with cond */
|
||||
/** @cond */
|
||||
|
||||
// 2d point
|
||||
typedef fastf_t pt2d_t[2] VEC_ALIGN;
|
||||
|
||||
/** @endcond */
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// MATH / VECTOR ops
|
||||
inline
|
||||
|
||||
+2
-3
@@ -18,9 +18,9 @@
|
||||
* information.
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/** @addtogroup noise
|
||||
/**
|
||||
* @addtogroup noise
|
||||
*
|
||||
* @brief
|
||||
* These noise functions provide mostly random noise at the integer
|
||||
@@ -137,7 +137,6 @@ BN_EXPORT extern double bn_noise_turb(point_t point,
|
||||
double octaves);
|
||||
|
||||
/**
|
||||
*
|
||||
* From "Texturing and Modeling, A Procedural Approach" 2nd ed
|
||||
*/
|
||||
BN_EXPORT extern double bn_noise_mf(point_t point,
|
||||
|
||||
+31
-31
@@ -43,51 +43,51 @@
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
#define MAXPTS 4 /* All we need are 4 points */
|
||||
#define pl_A pl_points[0] /* Synonym for A point */
|
||||
#define MAXPTS 4 /**< All we need are 4 points */
|
||||
#define pl_A pl_points[0] /**< Synonym for A point */
|
||||
|
||||
struct plane_specific {
|
||||
size_t pl_npts; /* number of points on plane */
|
||||
point_t pl_points[MAXPTS]; /* Actual points on plane */
|
||||
vect_t pl_Xbasis; /* X (B-A) vector (for 2d coords) */
|
||||
vect_t pl_Ybasis; /* Y (C-A) vector (for 2d coords) */
|
||||
vect_t pl_N; /* Unit-length Normal (outward) */
|
||||
fastf_t pl_NdotA; /* Normal dot A */
|
||||
fastf_t pl_2d_x[MAXPTS]; /* X 2d-projection of points */
|
||||
fastf_t pl_2d_y[MAXPTS]; /* Y 2d-projection of points */
|
||||
fastf_t pl_2d_com[MAXPTS]; /* pre-computed common-term */
|
||||
struct plane_specific *pl_forw; /* Forward link */
|
||||
char pl_code[MAXPTS+1]; /* Face code string. Decorative. */
|
||||
size_t pl_npts; /**< number of points on plane */
|
||||
point_t pl_points[MAXPTS]; /**< Actual points on plane */
|
||||
vect_t pl_Xbasis; /**< X (B-A) vector (for 2d coords) */
|
||||
vect_t pl_Ybasis; /**< Y (C-A) vector (for 2d coords) */
|
||||
vect_t pl_N; /**< Unit-length Normal (outward) */
|
||||
fastf_t pl_NdotA; /**< Normal dot A */
|
||||
fastf_t pl_2d_x[MAXPTS]; /**< X 2d-projection of points */
|
||||
fastf_t pl_2d_y[MAXPTS]; /**< Y 2d-projection of points */
|
||||
fastf_t pl_2d_com[MAXPTS]; /**< pre-computed common-term */
|
||||
struct plane_specific *pl_forw; /**< Forward link */
|
||||
char pl_code[MAXPTS+1]; /**< Face code string. Decorative. */
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* Describe the tri_specific structure.
|
||||
*/
|
||||
struct tri_specific {
|
||||
point_t tri_A; /* triangle vertex (A) */
|
||||
vect_t tri_BA; /* B - A (second point) */
|
||||
vect_t tri_CA; /* C - A (third point) */
|
||||
vect_t tri_wn; /* facet normal (non-unit) */
|
||||
vect_t tri_N; /* unit normal vector */
|
||||
fastf_t *tri_normals; /* unit vertex normals A, B, C (this is malloced storage) */
|
||||
int tri_surfno; /* solid specific surface number */
|
||||
struct tri_specific *tri_forw; /* Next facet */
|
||||
point_t tri_A; /**< triangle vertex (A) */
|
||||
vect_t tri_BA; /**< B - A (second point) */
|
||||
vect_t tri_CA; /**< C - A (third point) */
|
||||
vect_t tri_wn; /**< facet normal (non-unit) */
|
||||
vect_t tri_N; /**< unit normal vector */
|
||||
fastf_t *tri_normals; /**< unit vertex normals A, B, C (this is malloced storage) */
|
||||
int tri_surfno; /**< solid specific surface number */
|
||||
struct tri_specific *tri_forw; /**< Next facet */
|
||||
};
|
||||
|
||||
typedef struct tri_specific tri_specific_double;
|
||||
|
||||
/*
|
||||
/**
|
||||
* A more memory conservative version
|
||||
*/
|
||||
struct tri_float_specific {
|
||||
float tri_A[3]; /* triangle vertex (A) */
|
||||
float tri_BA[3]; /* B - A (second point) */
|
||||
float tri_CA[3]; /* C - A (third point) */
|
||||
float tri_wn[3]; /* facet normal (non-unit) */
|
||||
float tri_N[3]; /* unit normal vector */
|
||||
signed char *tri_normals; /* unit vertex normals A, B, C (this is malloced storage) */
|
||||
int tri_surfno; /* solid specific surface number */
|
||||
struct tri_float_specific *tri_forw;/* Next facet */
|
||||
float tri_A[3]; /**< triangle vertex (A) */
|
||||
float tri_BA[3]; /**< B - A (second point) */
|
||||
float tri_CA[3]; /**< C - A (third point) */
|
||||
float tri_wn[3]; /**< facet normal (non-unit) */
|
||||
float tri_N[3]; /**< unit normal vector */
|
||||
signed char *tri_normals; /**< unit vertex normals A, B, C (this is malloced storage) */
|
||||
int tri_surfno; /**< solid specific surface number */
|
||||
struct tri_float_specific *tri_forw;/**< Next facet */
|
||||
};
|
||||
|
||||
typedef struct tri_float_specific tri_specific_float;
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* This could be larger, or even dynamic... */
|
||||
#define BN_MAX_POLY_DEGREE 6 /* Maximum Poly Order */
|
||||
#define BN_MAX_POLY_DEGREE 6 /**< Maximum Poly Order */
|
||||
|
||||
/**
|
||||
* Polynomial data type
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ BN_EXPORT extern const float bn_rand_table[BN_RAND_TABSIZE];
|
||||
#define BN_RANDHALF(_i) (bn_rand_table[ _i = (_i+1) % BN_RAND_TABSIZE ]-0.5)
|
||||
#define BN_RANDHALF_INIT(_p) _p = bn_rand_table
|
||||
|
||||
#define BN_RANDHALFTABSIZE 16535 /* Powers of two give streaking */
|
||||
#define BN_RANDHALFTABSIZE 16535 /**< Powers of two give streaking */
|
||||
BN_EXPORT extern int bn_randhalftabsize;
|
||||
|
||||
/**
|
||||
|
||||
@@ -82,7 +82,7 @@ BN_EXPORT extern void tp_setup(void);
|
||||
__END_DECLS
|
||||
|
||||
#endif /* BN_VECTFONT_H */
|
||||
/** @} */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: C
|
||||
|
||||
+1
-1
@@ -325,7 +325,7 @@ BN_EXPORT extern void bn_vlist_to_uplot(FILE *fp,
|
||||
__END_DECLS
|
||||
|
||||
#endif /* BN_VLIST_H */
|
||||
/** @} */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: C
|
||||
|
||||
@@ -15,7 +15,6 @@ set(brep_headers
|
||||
BRLCAD_MANAGE_FILES(brep_headers ${INCLUDE_DIR}/brlcad/brep)
|
||||
|
||||
CMAKEFILES(CMakeLists.txt)
|
||||
CMAKEFILES(cdt2.h)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
/* C D T . H
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2004-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* version 2.1 as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this file; see the file named COPYING for more
|
||||
* information.
|
||||
*/
|
||||
/** @{ */
|
||||
/** @file brep/cdt.h */
|
||||
/** @addtogroup brep_util
|
||||
*
|
||||
* @brief
|
||||
* Constrained Delaunay Triangulation of brep solids.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef BREP_CDT_H
|
||||
#define BREP_CDT_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include "bg/defines.h"
|
||||
#include "brep/defines.h"
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Container that holds the state of a triangulation */
|
||||
struct brep_cdt_impl;
|
||||
struct brep_cdt {
|
||||
struct brep_cdt_impl *i;
|
||||
struct bu_vls *msgs;
|
||||
};
|
||||
|
||||
/* Create and initialize a CDT state with default tolerances. bv
|
||||
* must be a pointer to an ON_Brep object. */
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_create(struct brep_cdt **cdt, void *bv, const char *objname);
|
||||
|
||||
/* Destroy a CDT state */
|
||||
extern BREP_EXPORT void
|
||||
brep_cdt_destroy(struct brep_cdt *s);
|
||||
|
||||
extern BREP_EXPORT const char *
|
||||
brep_cdt_objname(struct brep_cdt *s);
|
||||
|
||||
/* Set/get the CDT tolerances. */
|
||||
extern BREP_EXPORT void
|
||||
brep_cdt_tol_set(struct brep_cdt *s, const struct bg_tess_tol *t);
|
||||
extern BREP_EXPORT void
|
||||
brep_cdt_tol_get(struct bg_tess_tol *t, const struct brep_cdt *s);
|
||||
|
||||
/* Return a pointer to the ON_Brep associated with state s. */
|
||||
extern BREP_EXPORT void *
|
||||
brep_cdt_brep_get(struct brep_cdt *s);
|
||||
|
||||
/* Given a state, produce a triangulation. Returns 0 if a solid, valid
|
||||
* triangulation was produced, 1 if a triangulation was produced but it
|
||||
* isn't solid, and -1 if no triangulation could be produced. If faces is
|
||||
* non-null, the triangulation will only attempt to triangulate the
|
||||
* specified face(s) and the return code will be the number of successfully
|
||||
* triangulated faces. If the CDT tolerances have been updated since the
|
||||
* last Tessellate call, the old tessellation information will be replaced. */
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_triangulate(struct brep_cdt *s, int face_cnt, int *faces, long flags);
|
||||
|
||||
/* The default triangulation attempts to satisfy a number of mesh quality constraints,
|
||||
* which slows the triangulation process. The following flags allow the caller to
|
||||
* disable them to trade off increased speed for lower quality mesh outputs */
|
||||
#define BG_CDT_NO_WATERTIGHT 0x1 /**< @brief Disable watertight meshing. */
|
||||
#define BG_CDT_NO_EDGE_OPTIMIZE 0x2 /**< @brief Disable distortion correction near face edges. */
|
||||
#define BG_CDT_NO_VALIDITY 0x4 /**< @brief Disable triangle validity checking. */
|
||||
|
||||
/* Given a state, report the status of its triangulation. -4 indicate an
|
||||
* unsuitable ON_Brep is present, -3 indicates a failed attempt on a
|
||||
* theoretically usable ON_Brep, -2 indicates a non-solid result is present
|
||||
* after an attempt to process all faces, -1 indicates a state which no attempt
|
||||
* has been made, 0 indicates a solid, valid full brep triangulation is
|
||||
* present, and >0 indicates the number of faces has been triangulated short of
|
||||
* processing the full brep, in case a partial list had been supplied to
|
||||
* brep_cdt_triangulate. */
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_status(struct brep_cdt *s);
|
||||
|
||||
/* Construct a vlist plot from the triangulation. Modes are:
|
||||
*
|
||||
* 0 - shaded 3D triangles
|
||||
* 1 - 3D triangle wireframe
|
||||
* 2 - 2D triangle wireframe (from parametric space)
|
||||
*
|
||||
* Returns 0 if vlist was successfully generated, else -1
|
||||
*/
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_vlist(
|
||||
struct bn_vlblock *vbp,
|
||||
struct bu_list *vlfree,
|
||||
struct bu_color *c,
|
||||
int mode,
|
||||
struct brep_cdt *s);
|
||||
|
||||
/* Given two or more triangulation states, refine them to clear any face
|
||||
* overlaps introduced by the triangulation. If any of the states are
|
||||
* un-tessellated, first perform the tessellation indicated by the state
|
||||
* settings and then proceed to resolve after all states have an initial
|
||||
* tessellation. Returns 0 if no changes were needed, the number of
|
||||
* updated CDT states if changes were made, and -1 if one or more
|
||||
* unresolvable overlaps were encountered. Individual CDT states may
|
||||
* subsequently be queried for other information about their specific
|
||||
* states with other function calls - this function returns only the
|
||||
* overall result. */
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_ovlp_resolve(struct brep_cdt **s_a, int s_cnt, double lthreshold, int timeout);
|
||||
|
||||
/* Retrieve the face, vertex and normal information from a tessellation state
|
||||
* in the form of integer and fastf_t arrays. */
|
||||
extern BREP_EXPORT int
|
||||
brep_cdt_mesh(
|
||||
int **faces, int *fcnt, fastf_t **vertices, int *vcnt,
|
||||
int **face_normals, int *fn_cnt, fastf_t **normals, int *ncnt,
|
||||
struct brep_cdt *s, int exp_face_cnt, int *exp_faces
|
||||
);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif /* BREP_CDT_H */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
@@ -32,9 +32,11 @@
|
||||
#include "common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
// @cond SKIP_C++_INCLUDE
|
||||
extern "C++" {
|
||||
# include <map>
|
||||
}
|
||||
// @endcond
|
||||
#endif
|
||||
|
||||
#include "brep/defines.h"
|
||||
|
||||
@@ -43,15 +43,7 @@ extern "C++" {
|
||||
/* don't let opennurbs include windows.h */
|
||||
#define ON_NO_WINDOWS 1
|
||||
|
||||
/* NOTE: we re-define read/write due to the archive_mode enum that
|
||||
* shadows the system symbols. we undefine when done to not interfere
|
||||
* with app code.
|
||||
*/
|
||||
#define read on_read
|
||||
#define write on_write
|
||||
#include "opennurbs.h"
|
||||
#undef read
|
||||
#undef write
|
||||
|
||||
}
|
||||
/* @endcond */
|
||||
|
||||
@@ -34,9 +34,11 @@
|
||||
#include "bnetwork.h" /* Needed for ntohl and htonl */
|
||||
|
||||
#ifdef __cplusplus
|
||||
// @cond SKIP_C++_INCLUDE
|
||||
extern "C++" {
|
||||
# include <cstring>
|
||||
}
|
||||
// @endcond
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
+17
-17
@@ -38,7 +38,7 @@ __BEGIN_DECLS
|
||||
*
|
||||
*/
|
||||
/** @{ */
|
||||
|
||||
/** @file bu/app.h */
|
||||
|
||||
/**
|
||||
* DEPRECATED: This routine is replaced by bu_getcwd().
|
||||
@@ -228,22 +228,22 @@ BU_EXPORT extern const char *bu_brlcad_root(const char *rhs, int fail_quietly);
|
||||
|
||||
|
||||
typedef enum {
|
||||
BU_DIR_CURR=1, /* (unknown) current working directory */
|
||||
BU_DIR_INIT, /* (unknown) initial working directory */
|
||||
BU_DIR_BIN, /* (read-only) user executables (bin) */
|
||||
BU_DIR_LIB, /* (read-only) object libraries (lib) */
|
||||
BU_DIR_LIBEXEC, /* (read-only) object libraries (libexec) */
|
||||
BU_DIR_INCLUDE, /* (read-only) C/C++ header files (include) */
|
||||
BU_DIR_DATA, /* (read-only) data files (share) */
|
||||
BU_DIR_DOC, /* (read-only) documentation, (DATA/doc) */
|
||||
BU_DIR_MAN, /* (read-only) manual pages, (DATA/man) */
|
||||
BU_DIR_TEMP, /* (read/write) temporary files (TEMP) */
|
||||
BU_DIR_HOME, /* (read/write) user home directory (HOME) */
|
||||
BU_DIR_CACHE, /* (read/write) user cache directory (BU_CACHE_DIR) */
|
||||
BU_DIR_CONFIG, /* (read/write) user config directory (HOME/.app) */
|
||||
BU_DIR_EXT, /* (n/a) optional executable extension */
|
||||
BU_DIR_LIBEXT, /* (n/a) optional library extension */
|
||||
BU_DIR_END
|
||||
BU_DIR_CURR=1, /**< (unknown) current working directory */
|
||||
BU_DIR_INIT, /**< (unknown) initial working directory */
|
||||
BU_DIR_BIN, /**< (read-only) user executables (bin) */
|
||||
BU_DIR_LIB, /**< (read-only) object libraries (lib) */
|
||||
BU_DIR_LIBEXEC, /**< (read-only) object libraries (libexec) */
|
||||
BU_DIR_INCLUDE, /**< (read-only) C/C++ header files (include) */
|
||||
BU_DIR_DATA, /**< (read-only) data files (share) */
|
||||
BU_DIR_DOC, /**< (read-only) documentation, (DATA/doc) */
|
||||
BU_DIR_MAN, /**< (read-only) manual pages, (DATA/man) */
|
||||
BU_DIR_TEMP, /**< (read/write) temporary files (TEMP) */
|
||||
BU_DIR_HOME, /**< (read/write) user home directory (HOME) */
|
||||
BU_DIR_CACHE, /**< (read/write) user cache directory (BU_CACHE_DIR) */
|
||||
BU_DIR_CONFIG, /**< (read/write) user config directory (HOME/.app) */
|
||||
BU_DIR_EXT, /**< (n/a) optional executable extension */
|
||||
BU_DIR_LIBEXT, /**< (n/a) optional library extension */
|
||||
BU_DIR_END /**< always the last entry, for iterators */
|
||||
} bu_dir_t;
|
||||
|
||||
|
||||
|
||||
+2
-4
@@ -30,8 +30,6 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/** @addtogroup bu_color
|
||||
* @brief
|
||||
* Support for storing and manipulating color data.
|
||||
@@ -74,7 +72,7 @@ typedef struct bu_color bu_color_t;
|
||||
|
||||
|
||||
|
||||
/* random color generating methods */
|
||||
/** random color generating methods */
|
||||
typedef enum {
|
||||
BU_COLOR_RANDOM = 0,
|
||||
BU_COLOR_RANDOM_LIGHTENED
|
||||
@@ -94,7 +92,7 @@ BU_EXPORT extern int bu_color_rand(struct bu_color *c, bu_color_rand_t type);
|
||||
|
||||
#if 0
|
||||
|
||||
/*
|
||||
/**
|
||||
* Refactoring points:
|
||||
* color command (set specified color)
|
||||
* src/libged/color.c
|
||||
|
||||
+4
-2
@@ -53,7 +53,8 @@ struct bu_column_state {
|
||||
|
||||
#define BU_COLUMN_ALL -1
|
||||
|
||||
/* Generate an output string based on the specified layout and contents in the
|
||||
/**
|
||||
* Generate an output string based on the specified layout and contents in the
|
||||
* bu_column_state s. Return the number of items printed, or -1 if there is
|
||||
* an error.
|
||||
*
|
||||
@@ -74,7 +75,8 @@ struct bu_column_state {
|
||||
* Row suffix: none
|
||||
* Fill order: column first
|
||||
*
|
||||
* */
|
||||
*
|
||||
*/
|
||||
BU_EXPORT extern int bu_column_print(struct bu_vls *o, struct bu_column_state *s);
|
||||
|
||||
/**
|
||||
|
||||
@@ -68,22 +68,6 @@
|
||||
# endif /* DIR_SEPARATOR_2 */
|
||||
#endif /* DIR_SEPARATOR */
|
||||
|
||||
/**
|
||||
* Maximum length of a filesystem path. Typically defined in a system
|
||||
* file but if it isn't set, we create it.
|
||||
*/
|
||||
#ifndef MAXPATHLEN
|
||||
# ifdef PATH_MAX
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# else
|
||||
# ifdef _MAX_PATH
|
||||
# define MAXPATHLEN _MAX_PATH
|
||||
# else
|
||||
# define MAXPATHLEN 1024
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* set to the path list separator character
|
||||
*/
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ BU_EXPORT extern void *bu_dlsym(void *path, const char *symbol);
|
||||
BU_EXPORT extern int bu_dlclose(void *handle);
|
||||
BU_EXPORT extern const char *bu_dlerror(void);
|
||||
|
||||
/** } */
|
||||
/** @} */
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
+3
-3
@@ -36,9 +36,9 @@ __BEGIN_DECLS
|
||||
|
||||
|
||||
typedef enum {
|
||||
BU_LITTLE_ENDIAN = 1234, /* LSB first: i386, VAX order */
|
||||
BU_BIG_ENDIAN = 4321, /* MSB first: 68000, IBM, network order */
|
||||
BU_PDP_ENDIAN = 3412 /* LSB first in word, MSW first in long */
|
||||
BU_LITTLE_ENDIAN = 1234, /**< LSB first: i386, VAX order */
|
||||
BU_BIG_ENDIAN = 4321, /**< MSB first: 68000, IBM, network order */
|
||||
BU_PDP_ENDIAN = 3412 /**< LSB first in word, MSW first in long */
|
||||
} bu_endian_t;
|
||||
|
||||
|
||||
|
||||
+3
-1
@@ -166,7 +166,9 @@ BU_EXPORT extern char *bu_file_realpath(const char *path, char *resolved_path);
|
||||
|
||||
/**
|
||||
* Windows corecrt_io.h defines an lseek and an _lseeki64, with different function
|
||||
* signatures, that cause trouble when we try to simply #define lseek _lseeki64.
|
||||
* signatures, that cause trouble when we try to simply define it à la:
|
||||
*
|
||||
* #define lseek _lseeki64.
|
||||
*
|
||||
* Similarly, _ftelli64 has a problematic signature.
|
||||
*/
|
||||
|
||||
+7
-7
@@ -29,7 +29,7 @@
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/** @addtogroup bu_glob
|
||||
/** @addtogroup bu_experimental
|
||||
*
|
||||
* NOTE - the glob API below is a work in progress - until this notice is
|
||||
* removed it should not be considered functional, much less stable!
|
||||
@@ -67,10 +67,10 @@ struct bu_stat {
|
||||
*/
|
||||
struct bu_glob_context {
|
||||
|
||||
#define BU_GLOB_APPEND 0x0001 /* Append to output from previous call. */
|
||||
#define BU_GLOB_NOSORT 0x0020 /* Don't sort. */
|
||||
#define BU_GLOB_NOESCAPE 0x2000 /* Disable backslash escaping. */
|
||||
#define BU_GLOB_ALTDIRFUNC 0x0040 /* use alternate functions. */
|
||||
#define BU_GLOB_APPEND 0x0001 /**< Append to output from previous call. */
|
||||
#define BU_GLOB_NOSORT 0x0020 /**< Don't sort. */
|
||||
#define BU_GLOB_NOESCAPE 0x2000 /**< Disable backslash escaping. */
|
||||
#define BU_GLOB_ALTDIRFUNC 0x0040 /**< use alternate functions. */
|
||||
int gl_flags; /**< flags customizing globbing behavior */
|
||||
|
||||
/* Return values */
|
||||
@@ -88,8 +88,8 @@ struct bu_glob_context {
|
||||
int (*gl_lstat)(const char *, struct bu_stat *, struct bu_glob_context *);
|
||||
int (*gl_stat)(const char *, struct bu_stat *, struct bu_glob_context *);
|
||||
|
||||
#define BU_GLOB_NOMATCH (-1) /* No match. */
|
||||
#define BU_GLOB_ABORTED (-2) /* Unignored error. */
|
||||
#define BU_GLOB_NOMATCH (-1) /**< No match. */
|
||||
#define BU_GLOB_ABORTED (-2) /**< Unignored error. */
|
||||
int (*gl_errfunc)(const char *, int, struct bu_glob_context *);
|
||||
|
||||
/* For caller use */
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** @addtogroup bu_interrupt
|
||||
/** @addtogroup bu_env
|
||||
*
|
||||
* @brief Routines for managing signals.
|
||||
*
|
||||
|
||||
+6
-1
@@ -209,6 +209,7 @@ __BEGIN_DECLS
|
||||
/* misc */
|
||||
|
||||
#define ANIMATE_MAGIC 0x414e4963 /**< ANIc */
|
||||
#define BVIEW_MAGIC 0x62766965 /**< bvie */
|
||||
#define CURVE_BEZIER_MAGIC 0x62657a69 /**< bezi */
|
||||
#define CURVE_CARC_MAGIC 0x63617263 /**< carc */
|
||||
#define CURVE_LSEG_MAGIC 0x6c736567 /**< lseg */
|
||||
@@ -217,6 +218,7 @@ __BEGIN_DECLS
|
||||
#define DB5_RAW_INTERNAL_MAGIC 0x64357269 /**< d5ri */
|
||||
#define DBI_MAGIC 0x57204381 /**< W C? */
|
||||
#define DB_FULL_PATH_MAGIC 0x64626670 /**< dbfp */
|
||||
#define DM_MAGIC 0x444d4d4d /**< DMMM */
|
||||
#define LIGHT_MAGIC 0xdbddbdb7 /**< ???? */
|
||||
#define MF_MAGIC 0x55968058 /**< U??X */
|
||||
#define PIXEL_EXT_MAGIC 0x50787400 /**< Pxt */
|
||||
@@ -240,7 +242,10 @@ __BEGIN_DECLS
|
||||
# define BU_CKMAG(_ptr, _magic, _str) (void)(_ptr)
|
||||
#else
|
||||
# define BU_CKMAG(_ptr, _magic, _str) do { \
|
||||
if (UNLIKELY(((uintptr_t)(_ptr) == 0) || ((uintptr_t)(_ptr) & (sizeof((uintptr_t)(_ptr))-1)) || *((const uint32_t *)(_ptr)) != (uint32_t)(_magic))) { \
|
||||
if (UNLIKELY(( ((uintptr_t)(_ptr) == 0) /* non-zero pointer */ \
|
||||
|| ((uintptr_t)(_ptr) & (sizeof((uintptr_t)(_ptr))-1)) /* aligned ptr */ \
|
||||
|| (*((const uint32_t *)(_ptr)) != (uint32_t)(_magic)) /* matches value */ \
|
||||
))) { \
|
||||
bu_badmagic((const uint32_t *)(_ptr), (uint32_t)(_magic), _str, __FILE__, __LINE__); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
+9
-10
@@ -29,11 +29,10 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
/**
|
||||
* @addtogroup bu_mime
|
||||
/** @addtogroup bu_mime
|
||||
*
|
||||
* @brief Functions generated by the mime.cmake script - see the
|
||||
* @brief
|
||||
* Functions generated by the mime.cmake script - see the
|
||||
* generated files mime.c and mime_types.h for the resulting C code
|
||||
* and mime type declarations
|
||||
*
|
||||
@@ -46,11 +45,11 @@ __BEGIN_DECLS
|
||||
* the majority of geometry formats) are added there instead of
|
||||
* changing mime.types.
|
||||
*/
|
||||
/** { */
|
||||
|
||||
/** @{ */
|
||||
/** @file bu/mime.h */
|
||||
|
||||
/**
|
||||
* Use the file extension to attempt to determine the media type
|
||||
* @brief Use the file extension to attempt to determine the media type
|
||||
* of the file within the specified context.
|
||||
*
|
||||
* returns -1 if no match was found, or an integer if a result
|
||||
@@ -61,7 +60,7 @@ BU_EXPORT extern int bu_file_mime(const char *ext, bu_mime_context_t context);
|
||||
|
||||
|
||||
/**
|
||||
* Given a mime type and a context, return the file extension(s)
|
||||
* @brief Given a mime type and a context, return the file extension(s)
|
||||
* associated with that type.
|
||||
*
|
||||
* returns NULL if no match was found, or a comma separated string
|
||||
@@ -72,7 +71,7 @@ BU_EXPORT extern const char *bu_file_mime_ext(int t, bu_mime_context_t context);
|
||||
|
||||
|
||||
/**
|
||||
* Given a mime type and a context, return a human readable string
|
||||
* @brief Given a mime type and a context, return a human readable string
|
||||
* spelling out the type (corresponding to the enum string in
|
||||
* source code.)
|
||||
*
|
||||
@@ -83,7 +82,7 @@ BU_EXPORT extern const char *bu_file_mime_str(int t, bu_mime_context_t context);
|
||||
|
||||
|
||||
/**
|
||||
* Given a string produced by bu_file_mime_str, convert it back into
|
||||
* @brief Given a string produced by bu_file_mime_str, convert it back into
|
||||
* integer form.
|
||||
*
|
||||
* returns -1 if no match was found, or an integer if a result
|
||||
|
||||
@@ -18,10 +18,6 @@
|
||||
* information.
|
||||
*/
|
||||
|
||||
/** @ingroup parallel */
|
||||
/** @{ */
|
||||
/** @file include/bu/parallel.h */
|
||||
/** @} */
|
||||
#ifndef BU_PARALLEL_H
|
||||
#define BU_PARALLEL_H
|
||||
|
||||
@@ -33,7 +29,7 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** @addtogroup bu_thread
|
||||
/** @addtogroup bu_parallel
|
||||
* @brief
|
||||
* Thread based parallelism routines.
|
||||
*/
|
||||
|
||||
+22
-16
@@ -18,10 +18,6 @@
|
||||
* information.
|
||||
*/
|
||||
|
||||
/** @ingroup process */
|
||||
/** @{ */
|
||||
/** @file include/bu/process.h */
|
||||
/** @} */
|
||||
#ifndef BU_PROCESS_H
|
||||
#define BU_PROCESS_H
|
||||
|
||||
@@ -32,6 +28,14 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** @addtogroup bu_process
|
||||
*
|
||||
* @brief
|
||||
* Routines for process and sub-process management.
|
||||
*/
|
||||
/** @{ */
|
||||
/** @file bu/process.h */
|
||||
|
||||
/**
|
||||
* returns the process ID of the calling process
|
||||
*/
|
||||
@@ -48,10 +52,11 @@ BU_EXPORT extern int bu_terminate(int process);
|
||||
/* Wrappers for using subprocess execution */
|
||||
struct bu_process;
|
||||
|
||||
#define BU_PROCESS_STDIN 0
|
||||
#define BU_PROCESS_STDOUT 1
|
||||
#define BU_PROCESS_STDERR 2
|
||||
|
||||
typedef enum {
|
||||
BU_PROCESS_STDIN,
|
||||
BU_PROCESS_STDOUT,
|
||||
BU_PROCESS_STDERR
|
||||
} bu_process_io_t;
|
||||
|
||||
/**
|
||||
* Open and return a FILE pointer associated with the specified file
|
||||
@@ -66,7 +71,7 @@ struct bu_process;
|
||||
* FIXME: misnomer, this does not open a process. Probably doesn't
|
||||
* need to exist; just call fdopen().
|
||||
*/
|
||||
BU_EXPORT extern FILE *bu_process_open(struct bu_process *pinfo, int fd);
|
||||
BU_EXPORT extern FILE *bu_process_open(struct bu_process *pinfo, bu_process_io_t d);
|
||||
|
||||
|
||||
/**
|
||||
@@ -75,19 +80,20 @@ BU_EXPORT extern FILE *bu_process_open(struct bu_process *pinfo, int fd);
|
||||
* FIXME: misnomer, this does not close a process. Probably doesn't
|
||||
* need to exist; just call fclose().
|
||||
*/
|
||||
BU_EXPORT extern void bu_process_close(struct bu_process *pinfo, int fd);
|
||||
BU_EXPORT extern void bu_process_close(struct bu_process *pinfo, bu_process_io_t d);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve the pointer to the input (0), output (1), or error (2) file
|
||||
* descriptor associated with the process. To use this in calling code, the
|
||||
* caller must cast the supplied pointer to the file handle type of the
|
||||
* calling code's specific platform.
|
||||
* Retrieve the pointer to the input (BU_PROCESS_STDIN), output
|
||||
* (BU_PROCESS_STDOUT), or error (BU_PROCESS_STDERR) file descriptor associated
|
||||
* with the process. To use this in calling code, the caller must cast the
|
||||
* supplied pointer to the file handle type of the calling code's specific
|
||||
* platform.
|
||||
*
|
||||
* FIXME: void pointer casting is bad. this function probably
|
||||
* shouldn't exist.
|
||||
*/
|
||||
BU_EXPORT void *bu_process_fd(struct bu_process *pinfo, int fd);
|
||||
BU_EXPORT void *bu_process_fd(struct bu_process *pinfo, bu_process_io_t d);
|
||||
|
||||
|
||||
/**
|
||||
@@ -127,7 +133,7 @@ BU_EXPORT int bu_process_args(const char **cmd, const char * const **argv, struc
|
||||
* FIXME: arg ordering and input/output grouping is wrong. partially
|
||||
* redundant with bu_process_fd() and/or bu_process_open().
|
||||
*/
|
||||
BU_EXPORT extern int bu_process_read(char *buff, int *count, struct bu_process *pinfo, int fd, int n);
|
||||
BU_EXPORT extern int bu_process_read(char *buff, int *count, struct bu_process *pinfo, bu_process_io_t d, int n);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -346,6 +346,14 @@ BU_EXPORT extern char **bu_argv_dup(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[]);
|
||||
|
||||
/**
|
||||
* Calculate the Damarau Levenshtein edit distance between two strings. When
|
||||
* max_dist is defined, calculation will terminate once that distance is reached
|
||||
* and max_dist will be returned. When max_dist is 0, the calculation will
|
||||
* proceed up to an internally defined calculation limit. */
|
||||
BU_EXPORT unsigned long
|
||||
bu_editdist(const char *s1, const char *s2, unsigned long max_dist);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ __BEGIN_DECLS
|
||||
/** @{ */
|
||||
/** @file bu/tbl.h */
|
||||
|
||||
/*
|
||||
/**
|
||||
* this is pulled from num.c where the guts to the table printer
|
||||
* currently resides, moved here for easy reference.
|
||||
*
|
||||
|
||||
+19
-6
@@ -37,29 +37,38 @@ __BEGIN_DECLS
|
||||
/** @file bu/units.h */
|
||||
|
||||
/**
|
||||
* Given a string representation of a unit of distance (e.g., "feet"),
|
||||
* return the multiplier which will convert that unit into the default
|
||||
* unit for the dimension (millimeters for length, mm^3 for volume,
|
||||
* and grams for mass.)
|
||||
* Convert the provided string into a units conversion factor.
|
||||
*
|
||||
* Given a string for a unit of length (e.g., "feet", "yd"), volume
|
||||
* (e.g., "cm^3", "cu yards"), or mass (e.g., "kg", "grain", or "oz")
|
||||
* return the multiplier (aka conversion factor) that converts the
|
||||
* unit into the default (millimeters for length, mm^3 for volume, and
|
||||
* grams for mass.) Values may be optionally specified with the unit
|
||||
* (e.g., "5ft") to get the conversion factor for a particular
|
||||
* quantity.
|
||||
*
|
||||
* Returns 0.0 on error and >0.0 on success
|
||||
*/
|
||||
BU_EXPORT extern double bu_units_conversion(const char *str);
|
||||
|
||||
|
||||
/**
|
||||
* Given a conversion factor to mm, search the table to find what unit
|
||||
* this represents.
|
||||
*
|
||||
* To accommodate floating point fuzz, a "near miss" is allowed. The
|
||||
* algorithm depends on the table being sorted small-to-large.
|
||||
* To accommodate floating point fuzz, a "near miss" is allowed.
|
||||
*
|
||||
* Returns -
|
||||
* char* units string
|
||||
* NULL No known unit matches this conversion factor.
|
||||
*/
|
||||
BU_EXPORT extern const char *bu_units_string(const double mm);
|
||||
|
||||
|
||||
/** undocumented */
|
||||
BU_EXPORT extern struct bu_vls *bu_units_strings_vls(void);
|
||||
|
||||
|
||||
/**
|
||||
* Given a conversion factor to mm, search the table to find the
|
||||
* closest matching unit.
|
||||
@@ -70,6 +79,7 @@ BU_EXPORT extern struct bu_vls *bu_units_strings_vls(void);
|
||||
*/
|
||||
BU_EXPORT extern const char *bu_nearest_units_string(const double mm);
|
||||
|
||||
|
||||
/**
|
||||
* Given a string of the form "25cm" or "5.2ft" returns the
|
||||
* corresponding distance in mm.
|
||||
@@ -80,6 +90,7 @@ BU_EXPORT extern const char *bu_nearest_units_string(const double mm);
|
||||
*/
|
||||
BU_EXPORT extern double bu_mm_value(const char *s);
|
||||
|
||||
|
||||
/**
|
||||
* Used primarily as a hooked function for bu_structparse tables to
|
||||
* allow input of floating point values in other units.
|
||||
@@ -102,6 +113,7 @@ BU_EXPORT extern void bu_mm_cvt(const struct bu_structparse *sdp,
|
||||
#define BU_HN_GETSCALE 0x10
|
||||
#define BU_HN_AUTOSCALE 0x20
|
||||
|
||||
|
||||
/**
|
||||
* Convert digital sizes to human readable form. Based off the
|
||||
* BSD function humanize_number(3).
|
||||
@@ -113,6 +125,7 @@ BU_EXPORT extern void bu_mm_cvt(const struct bu_structparse *sdp,
|
||||
*/
|
||||
BU_EXPORT extern int bu_humanize_number(char *buf, size_t len, int64_t quotient, const char *suffix, size_t scale, int flags);
|
||||
|
||||
|
||||
/*
|
||||
* Converts the number given in 'str', which may be given in a humanized
|
||||
* form (as described in BSD's humanize_number(3), but with some limitations),
|
||||
|
||||
@@ -548,6 +548,12 @@ typedef int (*bu_vls_uniq_t)(struct bu_vls *v, void *data);
|
||||
* @param[in] incr_spec Optional - string of colon separated
|
||||
* parameters defining function behavior.
|
||||
*
|
||||
* @param[in] uniq_test Optional - uniqueness testing function.
|
||||
*
|
||||
* @param[in] data Optional - data to pass to the uniq_test
|
||||
* function call.
|
||||
*
|
||||
*
|
||||
* @section bu_vls_incr_regexp Incrementer Substring Identification
|
||||
*
|
||||
* bu_vls_incr uses regular expressions to identify the numerical part
|
||||
|
||||
+44
-17
@@ -226,6 +226,23 @@ typedef ptrdiff_t ssize_t;
|
||||
# define b_off_t off_t
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Maximum length of a filesystem path. Typically defined in a system
|
||||
* file but if it isn't set, we create it.
|
||||
*/
|
||||
#ifndef MAXPATHLEN
|
||||
# include <limits.h> // Consistently define (or not) PATH_MAX
|
||||
# ifdef PATH_MAX
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# elif defined(MAX_PATH)
|
||||
# define MAXPATHLEN MAX_PATH
|
||||
# elif defined(_MAX_PATH)
|
||||
# define MAXPATHLEN _MAX_PATH
|
||||
# else
|
||||
# define MAXPATHLEN 2048
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide a means to conveniently test the version of the GNU
|
||||
* compiler. Use it like this:
|
||||
@@ -466,8 +483,10 @@ typedef _TCHAR TCHAR;
|
||||
/**
|
||||
* Provide canonical preprocessor stringification.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_STR(abc) => "abc"
|
||||
@code
|
||||
* #define abc 123
|
||||
* CPP_STR(abc) => "abc"
|
||||
@endcode
|
||||
*/
|
||||
#ifndef CPP_STR
|
||||
# define CPP_STR(x) # x
|
||||
@@ -476,8 +495,10 @@ typedef _TCHAR TCHAR;
|
||||
/**
|
||||
* Provide canonical preprocessor expanded stringification.
|
||||
*
|
||||
* #define abc 123
|
||||
* CPP_XSTR(abc) => "123"
|
||||
@code
|
||||
* #define abc 123
|
||||
* CPP_XSTR(abc) => "123"
|
||||
@endcode
|
||||
*/
|
||||
#ifndef CPP_XSTR
|
||||
# define CPP_XSTR(x) CPP_STR(x)
|
||||
@@ -486,12 +507,14 @@ typedef _TCHAR TCHAR;
|
||||
/**
|
||||
* 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"
|
||||
@code
|
||||
* #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"
|
||||
@endcode
|
||||
*/
|
||||
#ifndef CPP_GLUE
|
||||
# define CPP_GLUE(a, b) a ## b
|
||||
@@ -500,10 +523,12 @@ typedef _TCHAR TCHAR;
|
||||
/**
|
||||
* 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"
|
||||
@code
|
||||
* #define abc 123
|
||||
* CPP_XGLUE(abc, 123) => 123123
|
||||
* CPP_STR(CPP_XGLUE(abc, 123)) => "CPP_XGLUE(abc, 123)"
|
||||
* CPP_XSTR(CPP_XGLUE(abc, 123)) => "123123"
|
||||
@endcode
|
||||
*/
|
||||
#ifndef CPP_XGLUE
|
||||
# define CPP_XGLUE(a, b) CPP_GLUE(a, b)
|
||||
@@ -512,9 +537,11 @@ typedef _TCHAR TCHAR;
|
||||
/**
|
||||
* Provide format specifier string tied to a size (e.g., "%123s")
|
||||
*
|
||||
* #define STR_LEN 10+1
|
||||
* char str[STR_LEN] = {0};
|
||||
* scanf(CPP_SCANSIZE(STR_LEN) "\n", str);
|
||||
@code
|
||||
* #define STR_LEN 10+1
|
||||
* char str[STR_LEN] = {0};
|
||||
* scanf(CPP_SCANSIZE(STR_LEN) "\n", str);
|
||||
@endcode
|
||||
*/
|
||||
#ifndef CPP_SCAN
|
||||
# define CPP_SCAN(sz) "%" CPP_XSTR(sz) "s"
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
31
|
||||
32
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
0
|
||||
1
|
||||
|
||||
+11
-14
@@ -74,18 +74,7 @@ struct dm_hook_data {
|
||||
void *dmh_data;
|
||||
};
|
||||
|
||||
/* TODO - after plugins are established, these should be movable to
|
||||
* the private subheaders */
|
||||
DM_EXPORT extern struct dm dm_null;
|
||||
DM_EXPORT extern struct dm dm_ogl;
|
||||
DM_EXPORT extern struct dm dm_plot;
|
||||
DM_EXPORT extern struct dm dm_ps;
|
||||
DM_EXPORT extern struct dm dm_tk;
|
||||
DM_EXPORT extern struct dm dm_wgl;
|
||||
DM_EXPORT extern struct dm dm_X;
|
||||
DM_EXPORT extern struct dm dm_txt;
|
||||
DM_EXPORT extern struct dm dm_qt;
|
||||
DM_EXPORT extern struct dm dm_osgl;
|
||||
|
||||
DM_EXPORT extern void *dm_interp(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_share_dlist(struct dm *dmp1,
|
||||
@@ -171,9 +160,13 @@ DM_EXPORT extern struct dm *dm_open(void *interp,
|
||||
const char *type,
|
||||
int argc,
|
||||
const char *argv[]);
|
||||
DM_EXPORT extern struct bu_vls *dm_list_types(const char *separator); /* free return list with bu_vls_free(list); BU_PUT(list, struct bu_vls); */
|
||||
DM_EXPORT extern void dm_list_types(struct bu_vls *list, const char *separator);
|
||||
DM_EXPORT const char *dm_bestXType(const char *dpy_string);
|
||||
DM_EXPORT extern int dm_have_graphics();
|
||||
|
||||
/* This reports the graphics system associated with the specified dm type (returned values
|
||||
* right now would be NULL, Tk or Qt - another eventual possibility is GLFW...) */
|
||||
DM_EXPORT extern const char *dm_graphics_system(const char *dmtype);
|
||||
|
||||
/* functions to make a dm struct hideable - will need to
|
||||
* sort these out later */
|
||||
@@ -181,8 +174,9 @@ DM_EXPORT const char *dm_bestXType(const char *dpy_string);
|
||||
DM_EXPORT extern struct dm *dm_get();
|
||||
DM_EXPORT extern void dm_put(struct dm *dmp);
|
||||
DM_EXPORT extern void dm_set_null(struct dm *dmp); /* TODO - HACK, need general set mechanism */
|
||||
DM_EXPORT extern const char *dm_get_dm_name(struct dm *dmp);
|
||||
DM_EXPORT extern const char *dm_get_dm_name(const struct dm *dmp);
|
||||
DM_EXPORT extern const char *dm_get_dm_lname(struct dm *dmp);
|
||||
DM_EXPORT extern const char *dm_get_graphics_system(const struct dm *dmp);
|
||||
DM_EXPORT extern int dm_get_width(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_get_height(struct dm *dmp);
|
||||
DM_EXPORT extern void dm_set_width(struct dm *dmp, int width);
|
||||
@@ -190,6 +184,7 @@ DM_EXPORT extern void dm_set_height(struct dm *dmp, int height);
|
||||
DM_EXPORT extern void dm_geometry_request(struct dm *dmp, int width, int height);
|
||||
DM_EXPORT extern void dm_internal_var(struct bu_vls *result, struct dm *dmp, const char *key); // ick
|
||||
DM_EXPORT extern fastf_t dm_get_aspect(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_graphical(const struct dm *dmp);
|
||||
DM_EXPORT extern const char *dm_get_type(struct dm *dmp);
|
||||
DM_EXPORT extern unsigned long dm_get_id(struct dm *dmp);
|
||||
DM_EXPORT extern void dm_set_id(struct dm *dmp, unsigned long new_id);
|
||||
@@ -201,6 +196,9 @@ DM_EXPORT extern unsigned char *dm_get_fg(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_set_fg(struct dm *dmp, unsigned char r, unsigned char g, unsigned char b, int strict, fastf_t transparency);
|
||||
DM_EXPORT extern int dm_reshape(struct dm *dmp, int width, int height);
|
||||
DM_EXPORT extern int dm_make_current(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_doevent(struct dm *dmp, void *clientData, void *eventPtr);
|
||||
DM_EXPORT extern int dm_get_dirty(struct dm *dmp);
|
||||
DM_EXPORT extern void dm_set_dirty(struct dm *dmp, int i);
|
||||
DM_EXPORT extern vect_t *dm_get_clipmin(struct dm *dmp);
|
||||
DM_EXPORT extern vect_t *dm_get_clipmax(struct dm *dmp);
|
||||
DM_EXPORT extern int dm_get_bound_flag(struct dm *dmp);
|
||||
@@ -275,7 +273,6 @@ DM_EXPORT extern int dm_event_cmp(struct dm *dmp, dm_event_t type, int event);
|
||||
|
||||
/* TODO - dm_vp is supposed to go away, but until we figure it out
|
||||
* expose it here to allow dm hiding */
|
||||
DM_EXPORT extern fastf_t *dm_get_vp(struct dm *dmp);
|
||||
DM_EXPORT extern void dm_set_vp(struct dm *dmp, fastf_t *vp);
|
||||
|
||||
DM_EXPORT extern int dm_set_hook(const struct bu_structparse_map *map,
|
||||
|
||||
@@ -6,7 +6,6 @@ set(dm_headers
|
||||
)
|
||||
BRLCAD_MANAGE_FILES(dm_headers ${INCLUDE_DIR}/brlcad/dm)
|
||||
|
||||
CMAKEFILES(dm-design.h)
|
||||
CMAKEFILES(CMakeLists.txt)
|
||||
|
||||
# Local Variables:
|
||||
|
||||
+6
-33
@@ -196,7 +196,8 @@ struct bview_other_state {
|
||||
};
|
||||
|
||||
struct bview {
|
||||
struct bu_list l;
|
||||
uint32_t magic; /**< @brief magic number */
|
||||
struct bu_vls gv_name;
|
||||
fastf_t gv_scale;
|
||||
fastf_t gv_size; /**< @brief 2.0 * scale */
|
||||
fastf_t gv_isize; /**< @brief 1.0 / size */
|
||||
@@ -251,11 +252,14 @@ struct bview {
|
||||
fastf_t gv_curve_scale;
|
||||
fastf_t gv_data_vZ;
|
||||
size_t gv_bot_threshold;
|
||||
int gv_hidden;
|
||||
void *dmp; /* Display manager pointer, if one is associated with this view */
|
||||
void *u_data; /* Caller data associated with this view */
|
||||
struct bu_ptbl *callbacks;
|
||||
};
|
||||
|
||||
|
||||
struct bview_client_data {
|
||||
struct bview_solid_data {
|
||||
struct display_list *gdlp;
|
||||
int draw_solid_lines_only;
|
||||
int wireframe_color_override;
|
||||
@@ -266,37 +270,6 @@ struct bview_client_data {
|
||||
void *freesolid;
|
||||
};
|
||||
|
||||
/**
|
||||
* A view object maintains state for controlling a view.
|
||||
*/
|
||||
struct view_obj {
|
||||
struct bu_list l;
|
||||
struct bu_vls vo_name; /**< @brief view object name/cmd */
|
||||
fastf_t vo_scale;
|
||||
fastf_t vo_size; /**< @brief 2.0 * scale */
|
||||
fastf_t vo_invSize; /**< @brief 1.0 / size */
|
||||
fastf_t vo_perspective; /**< @brief perspective angle */
|
||||
fastf_t vo_local2base; /**< @brief scale local units to base units (i.e. mm) */
|
||||
fastf_t vo_base2local; /**< @brief scale base units (i.e. mm) to local units */
|
||||
vect_t vo_aet;
|
||||
vect_t vo_eye_pos; /**< @brief eye position */
|
||||
vect_t vo_keypoint;
|
||||
char vo_coord; /**< @brief coordinate system */
|
||||
char vo_rotate_about; /**< @brief indicates what point rotations are about */
|
||||
mat_t vo_rotation;
|
||||
mat_t vo_center;
|
||||
mat_t vo_model2view;
|
||||
mat_t vo_pmodel2view;
|
||||
mat_t vo_view2model;
|
||||
mat_t vo_pmat; /**< @brief perspective matrix */
|
||||
struct bu_observer_list vo_observers;
|
||||
void (*vo_callback)(); /**< @brief called in vo_update with vo_clientData and vop */
|
||||
void * vo_clientData; /**< @brief passed to vo_callback */
|
||||
int vo_zclip;
|
||||
void *interp;
|
||||
};
|
||||
#define VIEW_OBJ_NULL ((struct view_obj *)0)
|
||||
|
||||
#endif /* DM_BVIEW_H */
|
||||
|
||||
/** @} */
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#ifndef DM_DEFINES_H
|
||||
#define DM_DEFINES_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#ifndef DM_EXPORT
|
||||
# if defined(DM_DLL_EXPORTS) && defined(DM_DLL_IMPORTS)
|
||||
# error "Only DM_DLL_EXPORTS or DM_DLL_IMPORTS can be defined, not both."
|
||||
@@ -53,10 +55,12 @@
|
||||
/* The internals of the dm structure are hidden using the PImpl pattern*/
|
||||
struct dm_impl;
|
||||
struct dm {
|
||||
uint32_t magic;
|
||||
struct dm_impl *i;
|
||||
};
|
||||
|
||||
struct dm_plugin {
|
||||
uint32_t api_version; /* must be first in struct */
|
||||
const struct dm * const p;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,223 +0,0 @@
|
||||
/* D M - D E S I G N . H
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2016-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* version 2.1 as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this file; see the file named COPYING for more
|
||||
* information.
|
||||
*/
|
||||
/** @file dm-design.h
|
||||
*
|
||||
* Design work on an updated API for libdm. This is currently just
|
||||
* speculative work and should not be regarded as any sort of active,
|
||||
* usable API.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef DM_DM_DESIGN_H
|
||||
#define DM_DM_DESIGN_H
|
||||
|
||||
#include "common.h"
|
||||
#include "vmath.h"
|
||||
#include "icv.h"
|
||||
#include "dm/defines.h"
|
||||
|
||||
/* Display Manager Types */
|
||||
#define DM_TYPE_BAD -1
|
||||
#define DM_TYPE_NULL 0
|
||||
#define DM_TYPE_TXT 1
|
||||
#define DM_TYPE_QT 2
|
||||
#define DM_TYPE_OSG 3
|
||||
|
||||
#define DM_STYLE_TXT 0
|
||||
#define DM_STYLE_WIREFRAME 1
|
||||
#define DM_STYLE_POINTS 2
|
||||
#define DM_STYLE_TRIANGLES 3
|
||||
#define DM_STYLE_HIDDEN_LINE 4
|
||||
struct dm_db_obj {
|
||||
int draw_style; /**< @brief bitmask for points, wireframe, solid, hidden line, etc. */
|
||||
mat_t matrix; /**< @brief local matrix for individual in-memory object manipulation during editing, when per-change disk I/O is too expensive */
|
||||
};
|
||||
|
||||
#define DM_VIEW_OBJ_TYPE_3DLINES 0
|
||||
#define DM_VIEW_OBJ_TYPE_2DLINES 1
|
||||
#define DM_VIEW_OBJ_TYPE_TRIANGLES 2
|
||||
#define DM_VIEW_OBJ_TYPE_TEXT 4
|
||||
#define DM_VIEW_OBJ_TYPE_FB 5
|
||||
struct dm_view_obj {
|
||||
int draw_type; /**< @brief obj type - framebuffer, 2D lines, 3D lines, triangles, text, grouping object, etc. */
|
||||
struct bn_vlist *vlist; /**< @brief If the object defines specific linear or triangular geometry for drawing
|
||||
(text may but is not required to, and a framebuffer uses image data) it is here. */
|
||||
struct bu_ptbl *obj_set; /**< @brief A grouping object may define a union of other objects (view and/or db) on which actions will be performed */
|
||||
void *image_data;
|
||||
mat_t matrix;
|
||||
};
|
||||
|
||||
|
||||
/* Use a union to allow the display list object to hold both types */
|
||||
#define DM_DB_OBJ 1
|
||||
#define DM_VIEW_OBJ 2
|
||||
union dm_object {
|
||||
struct dm_db_obj db_obj;
|
||||
struct dm_view_obj view_obj;
|
||||
};
|
||||
|
||||
/* TODO - this will probably need to be in bview.h for common access */
|
||||
struct dm_display_list {
|
||||
int obj_type;
|
||||
union dm_object obj;
|
||||
struct bu_vls *handle; /**< @brief For non-geometry view objects, need a string handle. For geometry objects, full path string */
|
||||
int dirty_flag; /**< @brief If set, need to (re)generate the drawing content for this object */
|
||||
int visibility_flag; /**< @brief Allows users to hide/view objects without needing to recreate them */
|
||||
int highlight_flag; /**< @brief Identify whether the object is highlighted within the view */
|
||||
fastf_t draw_width; /**< @brief !0 override's the display manager's default Point radius/line width */
|
||||
int fontsize; /**< @brief !0 override's the display manager's default font size when obj labeling is performed */
|
||||
unsigned char rgb[3]; /**< @brief local color override */
|
||||
struct bu_attribute_value_set *obj_extra_settings; /**< @brief All settings (generic and DMTYPE specific) listed here. */
|
||||
void *client_data; /**< @brief Slot to allow applications to supply custom data */
|
||||
};
|
||||
|
||||
struct dm {
|
||||
uint32_t dm_magic;
|
||||
int dm_type; /**< @brief drawing canvas type (X, OSG, Qt, txt, etc.) currently in use by display manager */
|
||||
char *handle; /**< @brief short name of device */
|
||||
int perspective; /**< @brief !0 means perspective on */
|
||||
mat_t view_matrix; /**< @brief view matrix for the default camera */
|
||||
mat_t proj_matrix; /**< @brief projection matrix for the default camera */
|
||||
void *dm_data; /**< @brief pointer to the actual low level, platform specific data (X window, OSG viewer, internal lists, etc.) */
|
||||
int is_embedded; /**< @brief determine if the display manager is stand-alone or embedded (impacts event handling) */
|
||||
void *parent_info; /**< @brief if dm is embedded, parent_info must contain all the info necessary for libdm to embed the Window */
|
||||
struct bu_ptbl *dm_l; /**< @brief Display list for this view */
|
||||
int fontsize; /**< @brief !0 override's the auto font size */
|
||||
unsigned char dm_bg[3]; /**< @brief background color */
|
||||
unsigned char dm_fg[3]; /**< @brief default foreground color */
|
||||
fastf_t draw_width; /**< @brief Default point radius/line width */
|
||||
int width;
|
||||
int height;
|
||||
struct bu_attribute_value_set *dm_settings; /**< @brief All settings (generic and DMTYPE specific) listed here. */
|
||||
void *client_data; /**< @brief Slot to allow applications to store custom data */
|
||||
};
|
||||
|
||||
const char *dm_common_reserved_settings[] = {
|
||||
"perspective" "Enable/disable perspective mode. Specifics of the perspective mode are controlled by the projection matrix."
|
||||
"proj_mat" "Projection matrix, used for perspective mode."
|
||||
"view_mat" "View matrix - controls the \"camera\" position in space."
|
||||
"background_rgb" "Background color, specified using Red/Green/Blue color values"
|
||||
"foreground_rgb" "Default color for foreground objects, specified using Red/Green/Blue color values"
|
||||
"draw_width" "Default line width/point radius used when drawing objects."
|
||||
"fontsize" "Default font size for text rendering."
|
||||
"width" "Width of display window."
|
||||
"height" "Height of display window."
|
||||
"\0"
|
||||
};
|
||||
|
||||
const char *dm_obj_common_reserved_settings[] = {
|
||||
"local_mat" "Local positioning matrix, used (for example) during object editing manipulations."
|
||||
"rgb" "Object color, specified using Red/Green/Blue color values. Defaults to geometry object color, if present."
|
||||
"draw_width" "Local line width/point radius used when drawing objects."
|
||||
"fontsize" "Local font size for text rendering."
|
||||
"dirty" "Flag telling the display manager that the object state is out of sync with the visible state."
|
||||
"visible" "Flag telling the display manager that the object is (or isn't) supposed to be visible in the view."
|
||||
"highlight" "Flag telling the display manager to highlight this object."
|
||||
"\0"
|
||||
};
|
||||
|
||||
/* Structure of dm will (hopefully) be internal to libdm, so use a typedef for the functions */
|
||||
typedef struct dm dm_s;
|
||||
|
||||
/* Generic functions for all display managers */
|
||||
DM_EXPORT extern void dm_set_handle(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern char *dm_get_handle(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_perspective(dm_s *dmp, int perspective_flag);
|
||||
DM_EXPORT extern int dm_get_perspective(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_proj_mat(dm_s *dmp, mat_t pmat);
|
||||
DM_EXPORT extern matp_t dm_get_proj_mat(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_view_mat(dm_s *dmp, mat_t vmat);
|
||||
DM_EXPORT extern matp_t dm_get_view_mat(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_background_rgb(dm_s *dmp, unsigned char r, unsigned char g, unsigned char b);
|
||||
DM_EXPORT extern unsigned char *dm_get_background_rgb(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_foreground_rgb(dm_s *dmp, unsigned char r, unsigned char g, unsigned char b);
|
||||
DM_EXPORT extern unsigned char *dm_get_foreground_rgb(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_default_draw_width(dm_s *dmp, fastf_t draw_width);
|
||||
DM_EXPORT extern fastf_t dm_get_default_draw_width(dm_s *dmp, fastf_t draw_width);
|
||||
DM_EXPORT extern void dm_set_default_fontsize(dm_s *dmp, int fontsize);
|
||||
DM_EXPORT extern int dm_get_default_fontsize(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_width(dm_s *dmp, int width);
|
||||
DM_EXPORT extern int dm_get_width(dm_s *dmp);
|
||||
DM_EXPORT extern void dm_set_height(dm_s *dmp, int height);
|
||||
DM_EXPORT extern int dm_get_height(dm_s *dmp);
|
||||
|
||||
|
||||
DM_EXPORT extern const char **dm_get_reserved_settings(dm_s *dmp); /* Will be a combination of global and dm specific reserved settings */
|
||||
DM_EXPORT extern int dm_is_reserved_setting(dm_s *dmp, const char *key);
|
||||
DM_EXPORT extern const char *dm_about_reserved_setting(dm_s *dmp, const char *key);
|
||||
DM_EXPORT extern struct bu_attribute_value_set *dm_get_settings(dm_s *dmp, const char *key);
|
||||
DM_EXPORT extern int dm_set_setting(dm_s *dmp, const char *key, const char *val);
|
||||
DM_EXPORT extern const char *dm_get_setting(dm_s *dmp, const char *key);
|
||||
|
||||
/* Object manipulators */
|
||||
DM_EXPORT extern int dm_obj_add(dm_s *dmp, const char *handle, int style_type, struct bn_vlist *vlist, struct bu_ptbl *obj_set);
|
||||
DM_EXPORT extern int dm_obj_find(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_obj_remove(dm_s *dmp, const char *handle);
|
||||
|
||||
DM_EXPORT extern void dm_set_obj_localmat(dm_s *dmp, const char *handle, mat_t matrix);
|
||||
DM_EXPORT extern matp_t dm_get_obj_localmat(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_rgb(dm_s *dmp, const char *handle, unsigned char r, unsigned char g, unsigned char b);
|
||||
DM_EXPORT extern unsigned char *dm_get_obj_rgb(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_draw_width(dm_s *dmp, const char *handle, fastf_t draw_width);
|
||||
DM_EXPORT extern fastf_t dm_get_obj_draw_width(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_fontsize(dm_s *dmp, const char *handle, int fontsize);
|
||||
DM_EXPORT extern int dm_get_obj_fontsize(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_dirty(dm_s *dmp, const char *handle, int flag);
|
||||
DM_EXPORT extern int dm_get_obj_dirty(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_visible(dm_s *dmp, const char *handle, int flag);
|
||||
DM_EXPORT extern int dm_get_obj_visible(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern void dm_set_obj_highlight(dm_s *dmp, const char *handle, int flag);
|
||||
DM_EXPORT extern int dm_get_obj_highlight(dm_s *dmp, const char *handle);
|
||||
|
||||
DM_EXPORT extern const char **dm_get_obj_reserved_settings(dm_s *dmp); /* Will be a combination of global and dm specific reserved settings */
|
||||
DM_EXPORT extern int dm_is_obj_reserved_setting(dm_s *dmp, const char *key);
|
||||
DM_EXPORT extern const char *dm_about_obj_reserved_setting(dm_s *dmp, const char *key);
|
||||
DM_EXPORT extern struct bu_attribute_value_set *dm_get_obj_settings(dm_s *dmp, const char *handle);
|
||||
DM_EXPORT extern int dm_set_obj_setting(dm_s *dmp, const char *handle, const char *key, const char *val);
|
||||
DM_EXPORT extern const char *dm_get_obj_setting(dm_s *dmp, const char *handle, const char *key);
|
||||
|
||||
/* TODO The visibility of the framebuffer is handled like any other object, but it is likely necessary
|
||||
* to expose more of the details of the object to allow libfb to work properly?*/
|
||||
/* Idle though - could an ascii raytrace (like the old GIFT output) be useful for "txt mode" debugging of raytracing? */
|
||||
DM_EXPORT extern void *dm_get_framebuffer(dm_s *dmp);
|
||||
|
||||
|
||||
/* Display Manager / OS type aware functions */
|
||||
DM_EXPORT extern int dm_init(dm_s *dmp, int dm_t, int embedded, void *parent_info); /* TODO - need an actual public struct to hold parent info? */
|
||||
DM_EXPORT extern int dm_close(dm_s *dmp);
|
||||
DM_EXPORT extern int dm_refresh(dm_s *dmp);
|
||||
DM_EXPORT extern void *dm_canvas(dm_s *dmp); /* Exposes the low level drawing object (X window, OpenGL context, etc.) for custom drawing */
|
||||
DM_EXPORT extern int dm_get_type(dm_s *dmp);
|
||||
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_DM_DESIGN_H */
|
||||
|
||||
/** @} */
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: C
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
+7
-5
@@ -139,11 +139,13 @@ struct gcv_filter {
|
||||
/* operation type */
|
||||
const enum gcv_filter_type filter_type;
|
||||
|
||||
/* If we have a definite type this converter is known to handle, call
|
||||
* it out here.
|
||||
* MIME_MODEL_UNKNOWN if 'filter_type' is GCV_FILTER_FILTER or
|
||||
* if the plugin is a multi-format I/O plugin */
|
||||
const bu_mime_model_t mime_type;
|
||||
/* If we have a specific model type this converter is known to
|
||||
* handle, call it out here.
|
||||
*
|
||||
* Use mime_type = -1 if the plugin is a multi-format I/O plugin.
|
||||
*/
|
||||
const int mime_type;
|
||||
const bu_mime_context_t mime_context;
|
||||
|
||||
/* For plugins supporting multiple file types, call this to
|
||||
* process them.
|
||||
|
||||
@@ -60,9 +60,13 @@
|
||||
#include "ged/debug.h"
|
||||
#include "ged/rt.h"
|
||||
|
||||
/** @} */
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/** @addtogroup ged_misc */
|
||||
/** @{ */
|
||||
|
||||
/**
|
||||
* Delay the specified amount of time
|
||||
*/
|
||||
@@ -83,7 +87,10 @@ GED_EXPORT extern int ged_graph(struct ged *gedp, int argc, const char *argv[]);
|
||||
*/
|
||||
GED_EXPORT extern int ged_help(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/** @} */
|
||||
|
||||
/** @addtogroup libged */
|
||||
/** @{ */
|
||||
/***************************************
|
||||
* Conceptual Documentation for LIBGED *
|
||||
***************************************
|
||||
|
||||
+48
-6
@@ -17,13 +17,14 @@
|
||||
* License along with this file; see the file named COPYING for more
|
||||
* information.
|
||||
*/
|
||||
/** @addtogroup ged_commands
|
||||
/** @addtogroup libged
|
||||
*
|
||||
* Geometry EDiting Library Commands
|
||||
*
|
||||
*/
|
||||
/** @{ */
|
||||
/** @file ged/commands.h */
|
||||
/** @} */
|
||||
|
||||
#ifndef GED_COMMANDS_H
|
||||
#define GED_COMMANDS_H
|
||||
@@ -34,16 +35,51 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* Execute plugin based command */
|
||||
/** @addtogroup ged_plugins */
|
||||
/** @{ */
|
||||
/** Execute plugin based command */
|
||||
GED_EXPORT extern int ged_exec(struct ged *gedp, int argc, const char *argv[]);
|
||||
/** @} */
|
||||
|
||||
/* LIBGED maintains this list - callers should regard it as read only. This
|
||||
* list will change (size and pointers to individual command strings if
|
||||
* commands are added or removed - caller is responsible for performing a new
|
||||
* call to get an updated list and size if commands are altered. */
|
||||
GED_EXPORT size_t ged_cmd_list(const char * const **cmd_list);
|
||||
|
||||
/* Report whether a string identifies a valid LIBGED command. If func is
|
||||
* non-NULL, check that cmd and func both refer to the same function pointer
|
||||
* (i.e., they are aliases for the same command.)
|
||||
*
|
||||
* If func is NULL, a 0 return indicates an valid GED command and non-zero
|
||||
* indicates a valid command.
|
||||
*
|
||||
* If func is non-null:
|
||||
* 0 indicates both cmd and func strings invoke the same LIBGED function
|
||||
* 1 indicates that either or both of cmd and func were invalid GED commands
|
||||
* 2 indicates that both were valid commands, but they did not match.
|
||||
*/
|
||||
GED_EXPORT int ged_cmd_valid(const char *cmd, const char *func);
|
||||
|
||||
/* Given a candidate cmd name, find the closest match to it among defined
|
||||
* GED commands. Returns the bu_editdist distance between cmd and *ncmd
|
||||
* (0 if they match exactly - i.e. cmd does define a command.)
|
||||
*
|
||||
* Useful for suggesting corrections to commands which are not found.
|
||||
*/
|
||||
GED_EXPORT extern int
|
||||
ged_cmd_lookup(const char **ncmd, const char *cmd);
|
||||
|
||||
/** @addtogroup ged_objects */
|
||||
/** @{ */
|
||||
/**
|
||||
* Adjust object's attribute(s)
|
||||
*/
|
||||
GED_EXPORT extern int ged_adjust(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Set, get, show, remove or append to attribute values for the specified object.
|
||||
* @brief Set, get, show, remove or append to attribute values for the specified object.
|
||||
*
|
||||
* The arguments for "set" and "append" subcommands are attribute name/value pairs.
|
||||
* The arguments for "get", "rm", and "show" subcommands are attribute names.
|
||||
* The "set" subcommand sets the specified attributes for the object.
|
||||
@@ -285,7 +321,8 @@ GED_EXPORT extern int ged_bev(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
|
||||
/**
|
||||
* Manipulate opaque binary objects.
|
||||
* @brief Manipulate opaque binary objects.
|
||||
*
|
||||
* Must specify one of -i (for creating or adjusting objects (input))
|
||||
* or -o for extracting objects (output).
|
||||
* If the major type is "u" the minor type must be one of:
|
||||
@@ -818,14 +855,19 @@ GED_EXPORT int wdb_importFg4Section_cmd(void *data, int argc, const char *argv[]
|
||||
*/
|
||||
GED_EXPORT int ged_pnts(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/**
|
||||
* Report object information.
|
||||
*/
|
||||
GED_EXPORT extern int ged_stat(struct ged *gedp, int argc, const char *argv[]);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
#endif /* GED_COMMANDS_H */
|
||||
|
||||
/** @} */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
|
||||
+75
-51
@@ -35,6 +35,7 @@
|
||||
#include "bu/vls.h"
|
||||
#include "dm/bview.h"
|
||||
#include "rt/search.h"
|
||||
#include "rt/solid.h"
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
@@ -73,15 +74,22 @@ __BEGIN_DECLS
|
||||
#define GED_DISPLAY_LIST_NULL ((struct display_list *)0)
|
||||
#define GED_DRAWABLE_NULL ((struct ged_drawable *)0)
|
||||
#define GED_VIEW_NULL ((struct bview *)0)
|
||||
#define GED_DM_VIEW_NULL ((struct ged_dm_view *)0)
|
||||
|
||||
#define GED_RESULT_NULL ((void *)0)
|
||||
|
||||
/* Forward declaration */
|
||||
struct ged;
|
||||
|
||||
typedef int (*ged_func_ptr)(struct ged *, int, const char *[]);
|
||||
#define GED_FUNC_PTR_NULL ((ged_func_ptr)0)
|
||||
#define GED_REFRESH_CALLBACK_PTR_NULL ((ged_refresh_callback_ptr)0)
|
||||
#define GED_CREATE_VLIST_SOLID_CALLBACK_PTR_NULL ((ged_create_vlist_solid_callback_ptr)0)
|
||||
#define GED_CREATE_VLIST_CALLBACK_PTR_NULL ((ged_create_vlist_callback_ptr)0)
|
||||
#define GED_FREE_VLIST_CALLBACK_PTR_NULL ((ged_free_vlist_callback_ptr)0)
|
||||
|
||||
/* Callback related definitions */
|
||||
typedef void (*ged_io_func_t)(void *, int);
|
||||
typedef void (*ged_refresh_func_t)(void *);
|
||||
typedef void (*ged_create_vlist_solid_func_t)(struct solid *);
|
||||
typedef void (*ged_create_vlist_display_list_func_t)(struct display_list *);
|
||||
typedef void (*ged_destroy_vlist_func_t)(unsigned int, int);
|
||||
struct ged_callback_state;
|
||||
|
||||
/**
|
||||
* Definition of global parallel-processing semaphores.
|
||||
@@ -116,10 +124,11 @@ __BEGIN_DECLS
|
||||
|
||||
|
||||
struct ged_subprocess {
|
||||
struct bu_list l;
|
||||
uint32_t magic; /**< @brief magic number */
|
||||
struct bu_process *p;
|
||||
void *chan;
|
||||
int aborted;
|
||||
struct ged *gedp;
|
||||
};
|
||||
|
||||
/* FIXME: should be private */
|
||||
@@ -145,11 +154,9 @@ struct vd_curve {
|
||||
|
||||
/* FIXME: should be private */
|
||||
struct ged_drawable {
|
||||
struct bu_list l;
|
||||
struct bu_list *gd_headDisplay; /**< @brief head of display list */
|
||||
struct bu_list *gd_headDisplay; /**< @brief head of display list */
|
||||
struct bu_list *gd_headVDraw; /**< @brief head of vdraw list */
|
||||
struct vd_curve *gd_currVHead; /**< @brief current vdraw head */
|
||||
struct solid *gd_freeSolids; /**< @brief ptr to head of free solid list */
|
||||
|
||||
char **gd_rt_cmd; /* DEPRECATED - will be removed, do not use */
|
||||
int gd_rt_cmd_len; /* DEPRECATED - will be removed, do not use */
|
||||
@@ -172,7 +179,7 @@ struct ged_drawable {
|
||||
};
|
||||
|
||||
|
||||
typedef void (*ged_io_handler_callback_t)(void *, int);
|
||||
|
||||
|
||||
struct ged_cmd;
|
||||
|
||||
@@ -180,13 +187,19 @@ struct ged_cmd;
|
||||
struct ged_results;
|
||||
|
||||
struct ged {
|
||||
struct bu_list l;
|
||||
struct bu_vls go_name;
|
||||
struct rt_wdb *ged_wdbp;
|
||||
|
||||
// The full set of bviews associated with this ged object
|
||||
struct bu_ptbl ged_views;
|
||||
|
||||
void *u_data; /**< @brief User data associated with this ged instance */
|
||||
|
||||
/** for catching log messages */
|
||||
struct bu_vls *ged_log;
|
||||
|
||||
struct solid *freesolid; /* For now this is a struct solid, but longer term that may not always be true */
|
||||
struct bu_ptbl free_solids; /**< @brief solid structures available for reuse */
|
||||
|
||||
/* @todo: add support for returning an array of objects, not just a
|
||||
* simple string.
|
||||
@@ -205,21 +218,21 @@ struct ged {
|
||||
struct bview *ged_gvp;
|
||||
struct bu_hash_tbl *ged_selections; /**< @brief object name -> struct rt_object_selections */
|
||||
|
||||
void *ged_refresh_clientdata; /**< @brief client data passed to refresh handler */
|
||||
void (*ged_refresh_handler)(void *); /**< @brief function for handling refresh requests */
|
||||
void (*ged_output_handler)(struct ged *, char *); /**< @brief function for handling output */
|
||||
char *ged_output_script; /**< @brief script for use by the outputHandler */
|
||||
void (*ged_create_vlist_solid_callback)(struct solid *); /**< @brief function to call after creating a vlist to create display list for solid */
|
||||
void (*ged_create_vlist_callback)(struct display_list *); /**< @brief function to call after all vlist created that loops through creating display list for each solid */
|
||||
void (*ged_free_vlist_callback)(unsigned int, int); /**< @brief function to call after freeing a vlist */
|
||||
|
||||
/* FIXME -- this ugly hack needs to die. the result string should be stored before the call. */
|
||||
|
||||
/* FIXME -- this ugly hack needs to die. the result string should
|
||||
* be stored before the call.
|
||||
*/
|
||||
int ged_internal_call;
|
||||
|
||||
/* Handler functions for I/O communication with asynchronous subprocess commands */
|
||||
int io_mode;
|
||||
void (*ged_create_io_handler)(void **chan, struct bu_process *p, int fd, int mode, void *data, ged_io_handler_callback_t callback);
|
||||
void (*ged_delete_io_handler)(void *interp, void *chan, struct bu_process *p, int fd, void *data, ged_io_handler_callback_t callback);
|
||||
|
||||
/* TODO: hide all callback related symbols, callback typedefs
|
||||
* (above), and eventually most if not all of the remaining fields
|
||||
* into an _impl structure so callers are not tightly coupled to
|
||||
* the ged structure. access via public functions that have been
|
||||
* given design consideration.
|
||||
*/
|
||||
|
||||
/* FOR LIBGED INTERNAL USE */
|
||||
struct ged_cmd *cmds;
|
||||
@@ -227,21 +240,51 @@ struct ged {
|
||||
int (*del)(struct ged *gedp, const char *name);
|
||||
int (*run)(struct ged *gedp, int ac, char *av[]);
|
||||
|
||||
struct ged_subprocess gd_headSubprocess; /**< @brief head of forked processes */
|
||||
struct bu_ptbl ged_subp; /**< @brief forked sub-processes */
|
||||
|
||||
/* Interface to LIBDM */
|
||||
void *ged_dmp;
|
||||
|
||||
|
||||
/* Callbacks */
|
||||
|
||||
struct ged_callback_state *ged_cbs;
|
||||
void (*ged_refresh_handler)(void *); /**< @brief function for handling refresh requests */
|
||||
void *ged_refresh_clientdata; /**< @brief client data passed to refresh handler */
|
||||
void (*ged_output_handler)(struct ged *, char *); /**< @brief function for handling output */
|
||||
void (*ged_create_vlist_solid_callback)(struct solid *); /**< @brief function to call after creating a vlist to create display list for solid */
|
||||
void (*ged_create_vlist_display_list_callback)(struct display_list *); /**< @brief function to call after all vlist created that loops through creating display list for each solid */
|
||||
void (*ged_destroy_vlist_callback)(unsigned int, int); /**< @brief function to call after freeing a vlist */
|
||||
|
||||
/* Handler functions for I/O communication with asynchronous subprocess commands. There
|
||||
* are two opaque data structures at play here, with different scopes. One is the "data"
|
||||
* pointer passed to ged_create_io_handler, which is used to store command-specific
|
||||
* information internal to the library (the simplest thing to do is pass ged_subprocess
|
||||
* in as the data pointer, but if that's not enough - see for example rtcheck - this
|
||||
* mechanism allows for more elaborate measures.
|
||||
*
|
||||
* The second is ged_io_data, which is set in gedp by the calling application. This is where
|
||||
* information specific to the parent's I/O environment (which by definition the library
|
||||
* can't know about as it is application specific) lives. It should be assigned in the
|
||||
* applications gedp before any calls to ged_create_io_handler are made.
|
||||
* */
|
||||
void (*ged_create_io_handler)(struct ged_subprocess *gp, bu_process_io_t d, ged_io_func_t callback, void *data);
|
||||
void (*ged_delete_io_handler)(struct ged_subprocess *gp, bu_process_io_t fd);
|
||||
void *ged_io_data; /**< brief caller supplied data */
|
||||
|
||||
// Other callbacks...
|
||||
// Tcl command strings - these are libtclcad level callbacks that execute user supplied Tcl commands if set:
|
||||
// gdv_callback, gdv_edit_motion_delta_callback, go_more_args_callback, go_rt_end_callback
|
||||
//
|
||||
// fbserv_obj: fbs_callback
|
||||
// bview.h gv_callback (only used by MGED?)
|
||||
// db_search_callback_t
|
||||
|
||||
void *ged_interp; /* Temporary - do not rely on when designing new functionality */
|
||||
db_search_callback_t ged_interp_eval; /* FIXME: broke the rule written on the previous line */
|
||||
|
||||
/* Interface to LIBDM */
|
||||
void *ged_dmp;
|
||||
};
|
||||
|
||||
typedef int (*ged_func_ptr)(struct ged *, int, const char *[]);
|
||||
typedef void (*ged_refresh_callback_ptr)(void *);
|
||||
typedef void (*ged_create_vlist_solid_callback_ptr)(struct solid *);
|
||||
typedef void (*ged_create_vlist_callback_ptr)(struct display_list *);
|
||||
typedef void (*ged_free_vlist_callback_ptr)(unsigned int, int);
|
||||
|
||||
/* accessor functions for ged_results - calling
|
||||
* applications should not work directly with the
|
||||
* internals of ged_results, which are not guaranteed
|
||||
@@ -285,6 +328,7 @@ struct ged_cmd {
|
||||
};
|
||||
|
||||
struct ged_plugin {
|
||||
uint32_t api_version; /* must be first in struct */
|
||||
const struct ged_cmd ** const cmds;
|
||||
int cmd_cnt;
|
||||
};
|
||||
@@ -293,26 +337,6 @@ struct ged_plugin {
|
||||
* Can be important when diagnosing command errors. */
|
||||
GED_EXPORT const char * ged_init_msgs();
|
||||
|
||||
/* LIBGED maintains this list - callers should regard it as read only. This
|
||||
* list will change (size and pointers to individual command strings if
|
||||
* commands are added or removed - caller is responsible for performing a new
|
||||
* call to get an updated list and size if commands are altered. */
|
||||
GED_EXPORT size_t ged_cmd_list(const char * const **cmd_list);
|
||||
|
||||
/* Report whether a string identifies a valid LIBGED command. If func is
|
||||
* non-NULL, check that cmd and func both refer to the same function pointer
|
||||
* (i.e., they are aliases for the same command.)
|
||||
*
|
||||
* If func is NULL, a 0 return indicates an valid GED command and non-zero
|
||||
* indicates a valid command.
|
||||
*
|
||||
* If func is non-null:
|
||||
* 0 indicates both cmd and func strings invoke the same LIBGED function
|
||||
* 1 indicates that either or both of cmd and func were invalid GED commands
|
||||
* 2 indicates that both were valid commands, but they did not match.
|
||||
*/
|
||||
GED_EXPORT int ged_cmd_valid(const char *cmd, const char *func);
|
||||
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
+4
-7
@@ -64,15 +64,10 @@ __BEGIN_DECLS
|
||||
/* defined in display_list.c */
|
||||
GED_EXPORT void dl_set_iflag(struct bu_list *hdlp, int iflag);
|
||||
GED_EXPORT extern void dl_color_soltab(struct bu_list *hdlp);
|
||||
GED_EXPORT extern void dl_erasePathFromDisplay(struct bu_list *hdlp,
|
||||
struct db_i *dbip,
|
||||
void (*callback)(unsigned int, int),
|
||||
const char *path,
|
||||
int allow_split,
|
||||
struct solid *freesolid);
|
||||
GED_EXPORT extern void dl_erasePathFromDisplay(struct ged *gedp, const char *path, int allow_split);
|
||||
GED_EXPORT extern struct display_list *dl_addToDisplay(struct bu_list *hdlp, struct db_i *dbip, const char *name);
|
||||
|
||||
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);
|
||||
GED_EXPORT extern int invent_solid(struct ged *gedp, char *name, struct bu_list *vhead, long int rgb, int copy, fastf_t transparency, int dmode, int csoltab);
|
||||
|
||||
/* defined in ged.c */
|
||||
GED_EXPORT extern void ged_view_init(struct bview *gvp);
|
||||
@@ -154,6 +149,8 @@ GED_EXPORT extern struct bg_polygon *ged_import_polygon(struct ged *gedp, const
|
||||
GED_EXPORT extern int ged_polygons_overlap(struct ged *gedp, struct bg_polygon *polyA, struct bg_polygon *polyB);
|
||||
GED_EXPORT extern void ged_polygon_fill_segments(struct ged *gedp, struct bg_polygon *poly, vect2d_t vfilldir, fastf_t vfilldelta);
|
||||
|
||||
GED_EXPORT extern struct bview * ged_find_view(struct ged *gedp, const char *key);
|
||||
|
||||
// TODO - this (and probably the grid logic too) belong at the libdm level - they're operating
|
||||
// on the bview, rather than the ged level data...
|
||||
GED_EXPORT extern int ged_snap_to_lines(struct ged *gedp, fastf_t *vx, fastf_t *vy);
|
||||
|
||||
+8
-3
@@ -66,9 +66,14 @@ ICV_EXPORT extern int icv_destroy(icv_image_t *bif);
|
||||
* dimensions of an image, when the image doesn't supply such
|
||||
* information.
|
||||
*
|
||||
* @param[in] name String identifying a particular size (pass NULL if not using)
|
||||
* Standard image sizes may be hinted using the label parameter. Many
|
||||
* standard print and display sizes (e.g., "A4" and "SVGA") are
|
||||
* recognized and used in concert with the dpi and data_size
|
||||
* parameters.
|
||||
*
|
||||
* @param[in] label String hinting at a size (pass NULL if not using)
|
||||
* @param[in] dpi Dots per inch of image (pass 0 if not using)
|
||||
* @param[in] file_size File or in-memory size of image (necessary if deducing an unspecified image size)
|
||||
* @param[in] data_size Number of uncompressed image bytes (necessary if deducing an unspecified image size)
|
||||
* @param[in] type Image type (necessary if deducing an unspecified image size)
|
||||
*
|
||||
* @param[out] widthp Pointer to variable that will hold image width
|
||||
@@ -78,7 +83,7 @@ ICV_EXPORT extern int icv_destroy(icv_image_t *bif);
|
||||
* Returns 1 if an image size was identified, zero otherwise.
|
||||
*
|
||||
*/
|
||||
ICV_EXPORT extern int icv_image_size(const char *name, size_t dpi, size_t file_size, bu_mime_image_t type, size_t *widthp, size_t *heightp);
|
||||
ICV_EXPORT extern int icv_image_size(const char *label, size_t dpi, size_t data_size, bu_mime_image_t type, size_t *widthp, size_t *heightp);
|
||||
|
||||
/**
|
||||
* Load a file into an ICV struct. For most formats, this will be
|
||||
|
||||
+3
-2
@@ -17,11 +17,12 @@
|
||||
* License along with this file; see the file named COPYING for more
|
||||
* information.
|
||||
*/
|
||||
/**
|
||||
/** @addtogroup raytrace */
|
||||
/** @{ */
|
||||
/** @file rt/calc.h
|
||||
* @brief
|
||||
* In memory format for non-geometry objects in BRL-CAD databases.
|
||||
*/
|
||||
/** @file rt/calc.h */
|
||||
|
||||
#ifndef RT_CALC_H
|
||||
#define RT_CALC_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user