Back

PointSetGeometryAlgorithms

sofa::component::topology::container::dynamic::PointSetGeometryAlgorithms
Doc (from source)

Geometry algorithms dedicated to a point topology. A class that can perform some geometric computation on a set of points.

Abstract (AI generated)

The `PointSetGeometryAlgorithms` component performs geometric computations on a set of points within a topology context, including computing angles, bounding boxes, enclosing spheres, and centroids.

Metadata
module
Sofa.Component.Topology.Container.Dynamic
namespace
sofa::component::topology::container::dynamic
include
sofa/component/topology/container/dynamic/PointSetGeometryAlgorithms.h
templates
  • sofa::defaulttype::Rigid2Types
  • sofa::defaulttype::Rigid3Types
  • sofa::defaulttype::Vec3Types
description

The PointSetGeometryAlgorithms class in the SOFA framework provides geometric computation capabilities for sets of points within a topology context. It is designed to support various operations such as computing angles, bounding boxes (AABB), enclosing spheres, and centroids of point sets. The component interacts with a specified mechanical state object to retrieve positions and rest positions of the points and performs necessary computations.

Governing Equations and Operators:
- Enclosing Sphere: Computes the center $C$ and radius $R$ of an enclosing sphere that encompasses all points. The sphere is defined by its center $C = (c_x, c_y, c_z)$ and radius $R$.
The process involves calculating the average position of all points to determine the center and finding the maximum distance from this center to any point in the set:
egin{align*}
C &= \frac{1}{N} \sum_{i=0}^{N-1} P_i, \[5pt]
R &= \max_{i=0}^{N-1} |P_i - C|,
ag{1}
ag{2}
ag{3}
ag{4}
ag{5}
ag{6}
ag{7}
ag{8}
ag{9}
ag{10}
ag{11}
ag{12}
ag{13}
ag{14}
ag{15}
ag{16}
ag{17}
ag{18}
ag{19}
ag{20}
ag{21}
ag{22}
ag{23}
ag{24}
ag{25}
ag{26}
ag{27}
ag{28}
ag{29}
ag{30}
ag{31}
ag{32}
ag{33}
ag{34}
ag{35}
ag{36}
ag{37}
ag{38}
ag{39}
ag{40}
ag{41}
ag{42}
ag{43}
ag{44}
ag{45}
ag{46}
ag{47}
ag{48}
ag{49}
ag{50}
ag{51}
ag{52}
ag{53}
ag{54}
ag{55}
ag{56}
ag{57}
ag{58}
ag{59}
ag{60}
ag{61}
ag{62}
ag{63}
ag{64}
ag{65}
ag{66}
ag{67}
ag{68}
ag{69}
ag{70}
ag{71}
ag{72}
ag{73}
ag{74}
ag{75}
ag{76}
ag{77}
ag{78}
ag{79}
ag{80}
ag{81}
ag{82}
ag{83}
ag{84}
ag{85}
ag{86}
ag{87}
ag{88}
ag{89}
ag{90}
ag{91}
ag{92}
ag{93}
ag{94}
ag{95}
ag{96}
ag{97}
ag{98}
ag{99}
ag{100}
ag{101}
ag{102}
ag{103}
ag{104}
ag{105}
ag{106}
ag{107}
ag{108}
ag{109}
ag{110}
ag{111}
ag{112}
ag{113}
ag{114}
ag{115}
ag{116}
ag{117}
ag{118}
ag{119}
ag{120}
ag{121}
ag{122}
ag{123}
ag{124}
ag{125}
ag{126}
ag{127}
ag{128}
ag{129}
ag{130}
ag{131}
ag{132}
ag{133}
ag{134}
ag{135}
ag{136}
ag{137}
ag{138}
ag{139}
ag{140}
ag{141}
ag{142}
ag{143}
ag{144}
ag{145}
ag{146}
ag{147}
ag{148}
ag{149}
ag{150}
ag{151}
ag{152}
ag{153}
ag{154}
ag{155}
ag{156}
ag{157}
ag{158}
ag{159}
ag{160}
ag{161}
ag{162}
ag{163}
ag{164}
ag{165}
ag{166}
ag{167}
ag{168}
ag{169}
ag{170}
ag{171}
ag{172}
ag{173}
ag{174}
ag{175}
ag{176}
ag{177}
ag{178}
ag{179}
ag{180}
ag{181}
ag{182}
ag{183}
ag{184}
ag{185}
ag{186}
ag{187}
ag{188}
ag{189}
ag{190}
ag{191}
ag{192}
ag{193}
ag{194}
ag{195}
ag{196}
ag{197}
ag{198}
ag{199}
ag{200}
ag{201}
ag{202}
ag{203}
ag{204}
ag{205}
ag{206}
ag{207}
ag{208}
ag{209}
ag{210}
ag{211}
ag{212}
ag{213}
ag{214}
ag{215}
ag{216}
ag{217}
ag{218}
ag{219}
ag{220}
ag{221}
ag{222}
ag{223}
ag{224}
ag{225}
ag{226}
ag{227}
ag{228}
ag{229}
ag{230}
ag{231}
ag{232}
ag{233}
ag{234}
ag{235}
ag{236}
ag{237}
ag{238}
ag{239}
ag{240}
ag{241}
ag{242}
ag{243}
ag{244}
ag{245}
ag{246}
ag{247}
ag{248}
ag{249}
ag{250}
ag{251}
ag{252}
ag{253}
ag{254}
ag{255}
ag{256}
ag{257}
ag{258}
ag{259}
ag{260}
ag{261}
ag{262}
ag{263}
ag{264}
ag{265}
ag{266}
ag{267}
ag{268}
ag{269}
ag{270}
ag{271}
ag{272}
ag{273}
ag{274}
ag{275}
ag{276}
ag{277}
ag{278}
ag{279}
ag{280}
ag{281}
ag{282}
ag{283}
ag{284}
ag{285}
ag{286}
ag{287}
ag{288}
ag{289}
ag{290}
ag{291}
ag{292}
ag{293}
ag{294}
ag{295}
ag{296}
ag{297}
ag{298}
ag{299}
ag{300}
ag{301}
ag{302}
ag{303}
ag{304}
ag{305}
ag{306}
ag{307}
ag{308}
ag{309}
ag{310}
ag{311}
ag{312}
ag{313}
ag{314}
ag{315}
ag{316}
ag{317}
ag{318}
ag{319}
ag{320}
ag{321}
ag{322}
ag{323}
ag{324}
ag{325}
ag{326}
ag{327}
ag{328}
ag{329}
ag{330}
ag{331}
ag{332}
ag{333}
ag{334}
ag{335}
ag{336}
ag{337}
ag{338}
ag{339}
ag{340}
ag{341}
ag{342}
ag{343}
ag{344}
ag{345}
ag{346}
ag{347}
ag{348}
ag{349}
ag{350}
ag{351}
ag{352}
ag{353}
ag{354}
ag{355}
ag{356}
ag{357}
ag{358}
ag{359}
ag{360}
ag{361}
ag{362}
ag{363}
ag{364}
ag{365}
ag{366}
ag{367}
ag{368}
ag{369}
ag{370}
ag{371}
ag{372}
ag{373}
ag{374}
ag{375}
ag{376}
ag{377}
ag{378}
ag{379}
ag{380}
ag{381}
ag{382}
ag{383}
ag{384}
ag{385}
ag{386}
ag{387}
ag{388}
ag{389}
ag{390}
ag{391}
ag{392}
ag{393}
ag{394}
ag{395}
ag{396}
ag{397}
ag{398}
ag{399}
ag{400}
ag{401}
ag{402}
ag{403}
ag{404}
ag{405}
ag{406}
ag{407}
ag{408}
ag{409}
ag{410}
ag{411}
ag{412}
ag{413}
ag{414}
ag{415}
ag{416}
ag{417}
ag{418}
ag{419}
ag{420}
ag{421}
ag{422}
ag{423}
ag{424}
ag{425}
ag{426}
ag{427}
ag{428}
ag{429}
ag{430}
ag{431}
ag{432}
ag{433}
ag{434}
ag{435}
ag{436}
ag{437}
ag{438}
ag{439}
ag{440}
ag{441}
ag{442}
ag{443}
ag{444}
ag{445}
ag{446}
ag{447}
ag{448}
ag{449}
ag{450}
ag{451}
ag{452}
ag{453}
ag{454}
ag{455}
ag{456}
ag{457}
ag{458}
ag{459}
ag{460}
ag{461}
ag{462}
ag{463}
ag{464}
ag{465}
ag{466}
ag{467}
ag{468}
ag{469}
ag{470}
ag{471}
ag{472}
ag{473}
ag{474}
ag{475}
ag{476}
ag{477}
ag{478}
ag{479}
ag{480}
ag{481}
ag{482}
ag{483}
ag{484}
ag{485}
ag{486}
ag{487}
ag{488}
ag{489}
ag{490}
ag{491}
ag{492}
ag{493}
ag{494}
ag{495}
ag{496}
ag{497}
ag{498}
ag{499}
ag{500}
ag{501}
ag{502}
ag{503}
ag{504}
ag{505}
ag{506}
ag{507}
ag{508}
ag{509}
ag{510}
ag{511}
ag{512}
ag{513}
ag{514}
ag{515}
ag{516}
ag{517}
ag{518}
ag{519}
ag{520}
ag{521}
ag{522}
ag{523}
ag{524}
ag{525}
ag{526}
ag{527}
ag{528}
ag{529}
ag{530}
ag{531}
ag{532}
ag{533}
ag{534}
ag{535}
ag{536}
ag{537}
ag{538}
ag{539}
ag{540}
ag{541}
ag{542}
ag{543}
ag{544}
ag{545}
ag{546}
ag{547}
ag{548}
ag{549}
ag{550}
ag{551}
ag{552}
ag{553}
ag{554}
ag{555}
ag{556}
ag{557}
ag{558}
ag{559}
ag{560}
ag{561}
ag{562}
ag{563}
ag{564}
ag{565}
ag{566}
ag{567}
ag{568}
ag{569}
ag{570}
ag{571}
ag{572}
ag{573}
ag{574}
ag{575}
ag{576}
ag{577}
ag{578}
ag{579}
ag{580}
ag{581}
ag{582}
ag{583}
ag{584}
ag{585}
ag{586}
ag{587}
ag{588}
ag{589}
ag{590}
ag{591}
ag{592}
ag{593}
ag{594}
ag{595}
ag{596}
ag{597}
ag{598}
ag{599}
ag{600}
ag{601}
ag{602}
ag{603}
ag{604}
ag{605}
ag{606}
ag{607}
ag{608}
ag{609}
ag{610}
ag{611}
ag{612}
ag{613}
ag{614}
ag{615}
ag{616}
ag{617}
ag{618}
ag{619}
ag{620}
ag{621}
ag{622}
ag{623}
ag{624}
ag{625}
ag{626}
ag{627}
ag{628}
ag{629}
ag{630}
ag{631}
ag{632}
ag{633}
ag{634}
ag{635}
ag{636}
ag{637}
ag{638}
ag{639}
ag{640}
ag{641}
ag{642}
ag{643}
ag{644}
ag{645}
ag{646}
ag{647}
ag{648}
ag{649}
ag{650}
ag{651}
ag{652}
ag{653}
ag{654}
ag{655}
ag{656}
ag{657}
ag{658}
ag{659}
ag{660}
ag{661}
ag{662}
ag{663}
ag{664}
ag{665}
ag{666}
ag{667}
ag{668}
ag{669}
ag{670}
ag{671}
ag{672}
ag{673}
ag{674}
ag{675}
ag{676}
ag{677}
ag{678}
ag{679}
ag{680}
ag{681}
ag{682}
ag{683}
ag{684}
ag{685}
ag{686}
ag{687}
ag{688}
ag{689}
ag{690}
ag{691}
ag{692}
ag{693}
ag{694}
ag{695}
ag{696}
ag{697}
ag{698}
ag{699}
ag{700}
ag{701}
ag{702}
ag{703}
ag{704}
ag{705}
ag{706}
ag{707}
ag{708}
ag{709}
ag{710}
ag{711}
ag{712}
ag{713}
ag{714}
ag{715}
ag{716}
ag{717}
ag{718}
ag{719}
ag{720}
ag{721}
ag{722}
ag{723}
ag{724}
ag{725}
ag{726}
ag{727}
ag{728}
ag{729}
ag{730}
ag{731}
ag{732}
ag{733}
ag{734}
ag{735}
ag{736}
ag{737}
ag{738}
ag{739}
ag{740}
ag{741}
ag{742}
ag{743}
ag{744}
ag{745}
ag{746}
ag{747}
ag{748}
ag{749}
ag{750}
ag{751}
ag{752}
ag{753}
ag{754}
ag{755}
ag{756}
ag{757}
ag{758}
ag{759}
ag{760}
ag{761}
ag{762}
ag{763}
ag{764}
ag{765}
ag{766}
ag{767}
ag{768}
ag{769}
ag{770}
ag{771}
ag{772}
ag{773}
ag{774}
ag{775}
ag{776}
ag{777}
ag{778}
ag{779}
ag{780}
ag{781}
ag{782}
ag{783}
ag{784}
ag{785}
ag{786}
ag{787}
ag{788}
ag{789}
ag{790}
ag{791}
ag{792}
ag{793}
ag{794}
ag{795}
ag{796}
ag{797}
ag{798}
ag{799}
ag{800}
ag{801}
ag{802}
ag{803}
ag{804}
ag{805}
ag{806}
ag{807}
ag{808}
ag{809}
ag{810}
ag{811}
ag{812}
ag{813}
ag{814}
ag{815}
ag{816}
ag{817}
ag{818}
ag{819}
ag{820}
ag{821}
ag{822}
ag{823}
ag{824}
ag{825}
ag{826}
ag{827}
ag{828}
ag{829}
ag{830}
ag{831}
ag{832}
ag{833}
ag{834}
ag{835}
ag{836}
ag{837}
ag{838}
ag{839}
ag{840}
ag{841}
ag{842}
ag{843}
ag{844}
ag{845}
ag{846}
ag{847}
ag{848}
ag{849}
ag{850}
ag{851}
ag{852}
ag{853}
ag{854}
ag{855}
ag{856}
ag{857}
ag{858}
ag{859}
ag{860}
ag{861}
ag{862}
ag{863}
ag{864}
ag{865}
ag{866}
ag{867}
ag{868}
ag{869}
ag{870}
ag{871}
ag{872}
ag{873}
ag{874}
ag{875}
ag{876}
ag{877}
ag{878}
ag{879}
ag{880}
ag{881}
ag{882}
ag{883}
ag{884}
ag{885}
ag{886}
ag{887}
ag{888}
ag{889}
ag{890}
ag{891}
ag{892}
ag{893}
ag{894}
ag{895}
ag{896}
ag{897}
ag{898}
ag{899}
ag{900}
ag{901}
ag{902}
ag{903}
ag{904}
ag{905}
ag{906}
ag{907}
ag{908}
ag{909}
ag{910}
ag{911}
ag{912}
ag{913}
ag{914}
ag{915}
ag{916}
ag{917}
ag{918}
ag{919}
ag{920}
ag{921}
ag{922}
ag{923}
ag{924}
ag{925}
ag{926}
ag{927}
ag{928}
ag{929}
ag{930}
ag{931}
ag{932}
ag{933}
ag{934}
ag{935}
ag{936}
ag{937}
ag{938}
ag{939}
ag{940}
ag{941}
ag{942}
ag{943}
ag{944}
ag{945}
ag{946}
ag{947}
ag{948}
ag{949}
ag{950}
ag{951}
ag{952}
ag{953}
ag{954}
ag{955}
ag{956}
ag{957}
ag{958}
ag{959}
ag{960}
ag{961}
ag{962}
ag{963}
ag{964}
ag{965}
ag{966}
ag{967}
ag{968}
ag{969}
ag{970}
ag{971}
ag{972}
ag{973}
ag{974}
ag{975}
ag{976}
ag{977}
ag{978}
ag{979}
ag{980}
ag{981}
ag{982}
ag{983}
ag{984}
ag{985}
ag{986}
ag{987}
ag{988}
ag{989}
ag{990}
ag{991}
ag{992}
ag{993}
ag{994}
ag{995}
ag{996}
ag{997}
ag{998}
ag{999}
ag{1000}
ag{1001}
ag{1002}
ag{1003}
ag{1004}
ag{1005}
ag{1006}
ag{1007}
ag{1008}
ag{1009}
ag{1010}
ag{1011}
ag{1012}
ag{1013}
ag{1014}
ag{1015}
ag{1016}
ag{1017}
ag{1018}
ag{1019}
ag{1020}
ag{1021}
ag{1022}
ag{1023}
ag{1024}
ag{1025}
ag{1026}
ag{1027}
ag{1028}
ag{1029}
ag{1030}
ag{1031}
ag{1032}
ag{1033}
ag{1034}
ag{1035}
ag{1036}
ag{1037}
ag{1038}
ag{1039}
ag{1040}
ag{1041}
ag{1042}
ag{1043}
ag{1044}
ag{1045}
ag{1046}
ag{1047}
ag{1048}
ag{1049}
ag{1050}
ag{1051}
ag{1052}
ag{1053}
ag{1054}
ag{1055}
ag{1056}
ag{1057}
ag{1058}
ag{1059}
ag{1060}
ag{1061}
ag{1062}
ag{1063}
ag{1064}
ag{1065}
ag{1066}
ag{1067}
ag{1068}
ag{1069}
ag{1070}
ag{1071}
ag{1072}
ag{1073}
ag{1074}
ag{1075}
ag{1076}
ag{1077}
ag{1078}
ag{1079}
ag{1080}
ag{1081}
ag{1082}
ag{1083}
ag{1084}
ag{1085}
ag{1086}
ag{1087}
ag{1088}
ag{1089}
ag{1090}
ag{1091}
ag{1092}
ag{1093}
ag{1094}
ag{1095}
ag{1096}
ag{1097}
ag{1098}
ag{1099}
ag{1100}
ag{1101}
ag{1102}
ag{1103}
ag{1104}
ag{1105}
ag{1106}
ag{1107}
ag{1108}
ag{1109}
ag{1110}
ag{1111}
ag{1112}
ag{1113}
ag{1114}
ag{1115}
ag{1116}
ag{1117}
ag{1118}
ag{1119}
ag{1120}
ag{1121}
ag{1122}
ag{1123}
ag{1124}
ag{1125}
ag{1126}
ag{1127}
ag{1128}
ag{1129}
ag{1130}
ag{1131}
ag{1132}
ag{1133}
ag{1134}
ag{1135}
ag{1136}
ag{1137}
ag{1138}
ag{1139}
ag{1140}
ag{1141}
ag{1142}
ag{1143}
ag{1144}
ag{1145}
ag{1146}
ag{1147}
ag{1148}
ag{1149}
ag{1150}
ag{1151}
ag{1152}
ag{1153}
ag{1154}
ag{1155}
ag{1156}
ag{1157}
ag{1158}
ag{1159}
ag{1160}
ag{1161}
ag{1162}
ag{1163}
ag{1164}
ag{1165}
ag{1166}
ag{1167}
ag{1168}
ag{1169}
ag{1170}
ag{1171}
ag{1172}
ag{1173}
ag{1174}
ag{1175}
ag{1176}
ag{1177}
ag{1178}
ag{1179}
ag{1180}
ag{1181}
ag{1182}
ag{1183}
ag{1184}
ag{1185}
ag{1186}
ag{1187}
ag{1188}
ag{1189}
ag{1190}
ag{1191}
ag{1192}
ag{1193}
ag{1194}
ag{1195}
ag{1196}
ag{1197}
ag{1198}
ag{1199}
ag{1200}
ag{1201}
ag{1202}
ag{1203}
ag{1204}
ag{1205}
ag{1206}
ag{1207}
ag{1208}
ag{1209}
ag{1210}
ag{1211}
ag{1212}
ag{1213}
ag{1214}
ag{1215}
ag{1216}
ag{1217}
ag{1218}
ag{1219}
ag{1220}
ag{1221}
ag{1222}
ag{1223}
ag{1224}
ag{1225}
ag{1226}
ag{1227}
ag{1228}
ag{1229}
ag{1230}
ag{1231}
ag{1232}
ag{1233}
ag{1234}
ag{1235}
ag{1236}
ag{1237}
ag{1238}
ag{1239}
ag{1240}
ag{1241}
ag{1242}
ag{1243}
ag{1244}
ag{1245}
ag{1246}
ag{1247}
ag{1248}
ag{1249}
ag{1250}
ag{1251}
ag{1252}
ag{1253}
ag{1254}
ag{1255}
ag{1256}
ag{1257}
ag{1258}
ag{1259}
ag{1260}
ag{1261}
ag{1262}
ag{1263}
ag{1264}
ag{1265}
ag{1266}
ag{1267}
ag{1268}
ag{1269}
ag{1270}
ag{1271}
ag{1272}
ag{1273}
ag{1274}
ag{1275}
ag{1276}
ag{1277}
ag{1278}
ag{1279}
ag{1280}
ag{1281}
ag{1282}
ag{1283}
ag{1284}
ag{1285}
ag{1286}
ag{1287}
ag{1288}
ag{1289}
ag{1290}
ag{1291}
ag{1292}
ag{1293}
ag{1294}
ag{1295}
ag{1296}
ag{1297}
ag{1298}
ag{1299}
ag{1300}
ag{1301}
ag{1302}
ag{1303}
ag{1304}
ag{1305}
ag{1306}
ag{1307}
ag{1308}
ag{1309}
ag{1310}
ag{1311}
ag{1312}
ag{1313}
ag{1314}
ag{1315}
ag{1316}
ag{1317}
ag{1318}
ag{1319}
ag{1320}
ag{1321}
ag{1322}
ag{1323}
ag{1324}
ag{1325}
ag{1326}
ag{1327}
ag{1328}
ag{1329}
ag{1330}
ag{1331}
ag{1332}
ag{1333}
ag{1334}
ag{1335}
ag{1336}
ag{1337}
ag{1338}
ag{1339}
ag{1340}
ag{1341}
ag{1342}
ag{1343}
ag{1344}
ag{1345}
ag{1346}
ag{1347}
ag{1348}
ag{1349}
ag{1350}
ag{1351}
ag{1352}
ag{1353}
ag{1354}
ag{1355}
ag{1356}
ag{1357}
ag{1358}
ag{1359}
ag{1360}
ag{1361}
ag{1362}
ag{1363}
ag{1364}
ag{1365}
ag{1366}
ag{1367}
ag{1368}
ag{1369}
ag{1370}
ag{1371}
ag{1372}
ag{1373}
ag{1374}
ag{1375}
ag{1376}
ag{1377}
ag{1378}
ag{1379}
ag{1380}
ag{1381}
ag{1382}
ag{1383}
ag{1384}
ag{1385}
ag{1386}
ag{1387}
ag{1388}
ag{1389}
ag{1390}
ag{1391}
ag{1392}
ag{1393}
ag{1394}
ag{1395}
ag{1396}
ag{1397}
ag{1398}
ag{1399}
ag{1400}
ag{1401}
ag{1402}
ag{1403}
ag{1404}
ag{1405}
ag{1406}
ag{1407}
ag{1408}
ag{1409}
ag{1410}
ag{1411}
ag{1412}
ag{1413}
ag{1414}
ag{1415}
ag{1416}
ag{1417}
ag{1418}
ag{1419}
ag{1420}
ag{1421}
ag{1422}
ag{1423}
ag{1424}
ag{1425}
ag{1426}
ag{1427}
ag{1428}
ag{1429}
ag{1430}
ag{1431}
ag{1432}
ag{1433}
ag{1434}
ag{1435}
ag{1436}
ag{1437}
ag{1438}
ag{1439}
ag{1440}
ag{1441}
ag{1442}
ag{1443}
ag{1444}
ag{1445}
ag{1446}
ag{1447}
ag{1448}
ag{1449}
ag{1450}
ag{1451}
ag{1452}
ag{1453}
ag{1454}
ag{1455}
ag{1456}
ag{1457}
ag{1458}
ag{1459}
ag{1460}
ag{1461}
ag{1462}
ag{1463}
ag{1464}
ag{1465}
ag{1466}
ag{1467}
ag{1468}
ag{1469}
ag{1470}
ag{1471}
ag{1472}
ag{1473}
ag{1474}
ag{1475}
ag{1476}
ag{1477}
ag{1478}
ag{1479}
ag{1480}
ag{1481}
ag{1482}
ag{1483}
ag{1484}
ag{1485}
ag{1486}
ag{1487}
ag{1488}
ag{1489}
ag{1490}
ag{1491}
ag{1492}
ag{1493}
ag{1494}
ag{1495}
ag{1496}
ag{1497}
ag{1498}
ag{1499}
ag{1500}
ag{1501}
ag{1502}
ag{1503}
ag{1504}
ag{1505}
ag{1506}
ag{1507}
ag{1508}
ag{1509}
ag{1510}
ag{1511}
ag{1512}
ag{1513}
ag{1514}
ag{1515}
ag{1516}
ag{1517}
ag{1518}
ag{1519}
ag{1520}
ag{1521}
ag{1522}
ag{1523}
ag{1524}
ag{1525}
ag{1526}
ag{1527}
ag{1528}
ag{1529}
ag{1530}
ag{1531}
ag{1532}
ag{1533}
ag{1534}
ag{1535}
ag{1536}
ag{1537}
ag{1538}
ag{1539}
ag{1540}
ag{1541}
ag{1542}
ag{1543}
ag{1544}
ag{1545}
ag{1546}
ag{1547}
ag{1548}
ag{1549}
ag{1550}
ag{1551}
ag{1552}
ag{1553}
ag{1554}
ag{1555}
ag{1556}
ag{1557}
ag{1558}
ag{1559}
ag{1560}
ag{1561}
ag{1562}
ag{1563}
ag{1564}
ag{1565}
ag{1566}
ag{1567}
ag{1568}
ag{1569}
ag{1570}
ag{1571}
ag{1572}
ag{1573}
ag{1574}
ag{1575}
ag{1576}
ag{1577}
ag{1578}
ag{1579}
ag{1580}
ag{1581}
ag{1582}
ag{1583}
ag{1584}
ag{1585}
ag{1586}
ag{1587}
ag{1588}
ag{1589}
ag{1590}
ag{1591}
ag{1592}
ag{1593}
ag{1594}
ag{1595}
ag{1596}
ag{1597}
ag{1598}
ag{1599}
ag{1600}
ag{1601}
ag{1602}
ag{1603}
ag{1604}
ag{1605}
ag{1606}
ag{1607}
ag{1608}
ag{1609}
ag{1610}
ag{1611}
ag{1612}
ag{1613}
ag{1614}
ag{1615}
ag{1616}
ag{1617}
ag{1618}
ag{1619}
ag{1620}
ag{1621}
ag{1622}
ag{1623}
ag{1624}
ag{1625}
ag{1626}
ag{1627}
ag{1628}
ag{1629}
ag{1630}
ag{1631}
ag{1632}
ag{1633}
ag{1634}
ag{1635}
ag{1636}
ag{1637}
ag{1638}
ag{1639}
ag{1640}
ag{1641}
ag{1642}
ag{1643}
ag{1644}
ag{1645}
ag{1646}
ag{1647}
ag{1648}
ag{1649}
ag{1650}
ag{1651}
ag{1652}
ag{1653}
ag{1654}
ag{1655}
ag{1656}
ag{1657}
ag{1658}
ag{1659}
ag{1660}
ag{1661}
ag{1662}
ag{1663}
ag{1664}
ag{1665}
ag{1666}
ag{1667}
ag{1668}
ag{1669}
ag{1670}
ag{1671}
ag{1672}
ag{1673}
ag{1674}
ag{1675}
ag{1676}
ag{1677}
ag{1678}
ag{1679}
ag{1680}
ag{1681}
ag{1682}
ag{1683}
ag{1684}
ag{1685}
ag{1686}
ag{1687}
ag{1688}
ag{1689}
ag{1690}
ag{1691}
ag{1692}
ag{1693}
ag{1694}
ag{1695}
ag{1696}
ag{1697}
ag{1698}
ag{1699}
ag{1700}
ag{1701}
ag{1702}
ag{1703}
ag{1704}
ag{1705}
ag{1706}
ag{1707}
ag{1708}
ag{1709}
ag{1710}
ag{1711}
ag{1712}
ag{1713}
ag{1714}
ag{1715}
ag{1716}
ag{1717}
ag{1718}
ag{1719}
ag{1720}
ag{1721}
ag{1722}
ag{1723}
ag{1724}
ag{1725}
ag{1726}
ag{1727}
ag{1728}
ag{1729}
ag{1730}
ag{1731}
ag{1732}
ag{1733}
ag{1734}
ag{1735}
ag{1736}
ag{1737}
ag{1738}
ag{1739}
ag{1740}
ag{1741}
ag{1742}
ag{1743}
ag{1744}
ag{1745}
ag{1746}
ag{1747}
ag{1748}
ag{1749}
ag{1750}
ag{1751}
ag{1752}
ag{1753}
ag{1754}
ag{1755}
ag{1756}
ag{1757}
ag{1758}
ag{1759}
ag{1760}
ag{1761}
ag{1762}
ag{1763}
ag{1764}
ag{1765}
ag{1766}
ag{1767}
ag{1768}
ag{1769}
ag{1770}
ag{1771}
ag{1772}
ag{1773}
ag{1774}
ag{1775}
ag{1776}
ag{1777}
ag{1778}
ag{1779}
ag{1780}
ag{1781}
ag{1782}
ag{1783}
ag{1784}
ag{1785}
ag{1786}
ag{1787}
ag{1788}
ag{1789}
ag{1790}
ag{1791}
ag{1792}
ag{1793}
ag{1794}
ag{1795}
ag{1796}
ag{1797}
ag{1798}
ag{1799}
ag{1800}
ag{1801}
ag{1802}
ag{1803}
ag{1804}
ag{1805}
ag{1806}
ag{1807}
ag{1808}
ag{1809}
ag{1810}
ag{1811}
ag{1812}
ag{1813}
ag{1814}
ag{1815}
ag{1816}
ag{1817}
ag{1818}
ag{1819}
ag{1820}
ag{1821}
ag{1822}
ag{1823}
ag{1824}
ag{1825}
ag{1826}
ag{1827}
ag{1828}
ag{1829}
ag{1830}
ag{1831}
ag{1832}
ag{1833}
ag{1834}
ag{1835}
ag{1836}
ag{1837}
ag{1838}
ag{1839}
ag{1840}
ag{1841}
ag{1842}
ag{1843}
ag{1844}
ag{1845}
ag{1846}
ag{1847}
ag{1848}
ag{1849}
ag{1850}
ag{1851}
ag{1852}
ag{1853}
ag{1854}
ag{1855}
ag{1856}
ag{1857}
ag{1858}
ag{1859}
ag{1860}
ag{1861}
ag{1862}
ag{1863}
ag{1864}
ag{1865}
ag{1866}
ag{1867}
ag{1868}
ag{1869}
ag{1870}
ag{1871}
ag{1872}
ag{1873}
ag{1874}
ag{1875}
ag{1876}
ag{1877}
ag{1878}
ag{1879}
ag{1880}
ag{1881}
ag{1882}
ag{1883}
ag{1884}
ag{1885}
ag{1886}
ag{1887}
ag{1888}
ag{1889}
ag{1890}
ag{1891}
ag{1892}
ag{1893}
ag{1894}
ag{1895}
ag{1896}
ag{1897}
ag{1898}
ag{1899}
ag{1900}
ag{1901}
ag{1902}
ag{1903}
ag{1904}
ag{1905}
ag{1906}
ag{1907}
ag{1908}
ag{1909}
ag{1910}
ag{1911}
ag{1912}
ag{1913}
ag{1914}
ag{1915}
ag{1916}
ag{1917}
ag{1918}
ag{1919}
ag{1920}
ag{1921}
ag{1922}
ag{1923}
ag{1924}
ag{1925}
ag{1926}
ag{1927}
ag{1928}
ag{1929}
ag{1930}
ag{1931}
ag{1932}
ag{1933}
ag{1934}
ag{1935}
ag{1936}
ag{1937}
ag{1938}
ag{1939}
ag{1940}
ag{1941}
ag{1942}
ag{1943}
ag{1944}
ag{1945}
ag{1946}
ag{1947}
ag{1948}
ag{1949}
ag{1950}
ag{1951}
ag{1952}
ag{1953}
ag{1954}
ag{1955}
ag{1956}
ag{1957}
ag{1958}
ag{1959}
ag{1960}
ag{1961}
ag{1962}
ag{1963}
ag{1964}
ag{1965}
ag{1966}
ag{1967}
ag{1968}
ag{1969}
ag{1970}
ag{1971}
ag{1972}
ag{1973}
ag{1974}
ag{1975}
ag{1976}
ag{1977}
ag{1978}
ag{1979}
ag{2000}

Data Fields
NameTypeDefaultHelp
d_showIndicesScale float Debug : scale for view topology indices
d_showPointIndices bool Debug : view Point indices
Links
NameTypeHelp
l_topology link to the topology container
Methods
void computeBBox ()
void getEnclosingSphere ()
void getAABB ()
void getPointPosition ()
void initPointsAdded ()
{
  "name": "PointSetGeometryAlgorithms",
  "namespace": "sofa::component::topology::container::dynamic",
  "module": "Sofa.Component.Topology.Container.Dynamic",
  "include": "sofa/component/topology/container/dynamic/PointSetGeometryAlgorithms.h",
  "doc": "Geometry algorithms dedicated to a point topology.\n\nA class that can perform some geometric computation on a set of points.",
  "inherits": [],
  "templates": [
    "sofa::defaulttype::Rigid2Types",
    "sofa::defaulttype::Rigid3Types",
    "sofa::defaulttype::Vec3Types"
  ],
  "data_fields": [
    {
      "name": "d_showIndicesScale",
      "type": "float",
      "xmlname": "showIndicesScale",
      "help": "Debug : scale for view topology indices"
    },
    {
      "name": "d_showPointIndices",
      "type": "bool",
      "xmlname": "showPointIndices",
      "help": "Debug : view Point indices"
    }
  ],
  "links": [
    {
      "name": "l_topology",
      "target": "BaseMeshTopology",
      "kind": "single",
      "xmlname": "topology",
      "help": "link to the topology container"
    }
  ],
  "methods": [
    {
      "name": "computeBBox",
      "parameters": "",
      "returnType": "",
      "description": "Calculates and updates the bounding box of the point set, taking into account whether only visible elements should be considered or not."
    },
    {
      "name": "getEnclosingSphere",
      "parameters": "Coord &center, Real &radius (output parameters)",
      "returnType": "",
      "description": "Computes a sphere that encloses all points in the set. The center and radius are returned as output parameters."
    },
    {
      "name": "getAABB",
      "parameters": "CPos& minCoord, CPos& maxCoord (output parameters) or Real bb[6] array",
      "returnType": "",
      "description": "Returns the Axis-Aligned Bounding Box of the point set either as a pair of minimum and maximum coordinates or as an array with six values representing [xmin, ymin, zmin, xmax, ymax, zmax]."
    },
    {
      "name": "getPointPosition",
      "parameters": "const PointID pointId (input parameter)",
      "returnType": "const Coord&",
      "description": "Returns the position of a specific point identified by its ID."
    },
    {
      "name": "initPointsAdded",
      "parameters": "Indices and ancestor elements, vector of VecCoord Ids and VecDeriv Ids",
      "returnType": "",
      "description": "Initializes newly added points according to their topological relationships in the context of state changes."
    }
  ],
  "title": "Point Set Geometry Algorithms",
  "description": "This component is part of the Sofa (Simulation Open-Framework Architecture) framework and specializes in performing geometric computations on sets of points within a topology context.",
  "parameters": [
    {
      "name": "l_topology",
      "type": "Link to BaseMeshTopology",
      "description": "A link to be set to the topology container in the component graph, representing the mesh or point cloud structure."
    },
    {
      "name": "d_tagMechanics",
      "type": "string Data",
      "description": "Tag associated with the Mechanical State linked to vertex positions."
    },
    {
      "name": "d_showPointIndices",
      "type": "bool Data",
      "description": "A debug parameter to control whether point indices are displayed (default is false)."
    },
    {
      "name": "d_showIndicesScale",
      "type": "float Data",
      "description": "Controls the scale for displaying topology indices in a debugging context."
    }
  ],
  "related_components": [
    {
      "name": "BaseMeshTopology",
      "type": "Component Type",
      "description": "Represents a generic topology with methods for managing and accessing mesh data structures such as vertices, edges, triangles etc."
    },
    {
      "name": "Mechanical State (State<DataTypes>)",
      "type": "Component Interface",
      "description": "A generic interface representing the state of mechanical systems which includes positions and velocities."
    }
  ],
  "notes": "The PointSetGeometryAlgorithms component supports various data types including Vec3, Vec2, Rigid3, and Rigid2 to handle different dimensionalities and rigid body representations. It is used for geometric operations on point sets such as computing centers, enclosing spheres, bounding boxes, and handling topology-based initialization of new points.",
  "maths": "The `PointSetGeometryAlgorithms` class in the SOFA framework provides geometric computation capabilities for sets of points within a topology context. It is designed to support various operations such as computing angles, bounding boxes (AABB), enclosing spheres, and centroids of point sets. The component interacts with a specified mechanical state object to retrieve positions and rest positions of the points and performs necessary computations.\n\n**Governing Equations and Operators:**\n- **Enclosing Sphere**: Computes the center \\(C\\) and radius \\(R\\) of an enclosing sphere that encompasses all points. The sphere is defined by its center \\(C = (c_x, c_y, c_z)\\) and radius \\(R\\). \nThe process involves calculating the average position of all points to determine the center and finding the maximum distance from this center to any point in the set:\n\begin{align*}\nC &= \\frac{1}{N} \\sum_{i=0}^{N-1} P_i, \\\\[5pt]\nR &= \\max_{i=0}^{N-1} \\|P_i - C\\|,\n\tag{1}\n\tag{2}\n\tag{3}\n\tag{4}\n\tag{5}\n\tag{6}\n\tag{7}\n\tag{8}\n\tag{9}\n\tag{10}\n\tag{11}\n\tag{12}\n\tag{13}\n\tag{14}\n\tag{15}\n\tag{16}\n\tag{17}\n\tag{18}\n\tag{19}\n\tag{20}\n\tag{21}\n\tag{22}\n\tag{23}\n\tag{24}\n\tag{25}\n\tag{26}\n\tag{27}\n\tag{28}\n\tag{29}\n\tag{30}\n\tag{31}\n\tag{32}\n\tag{33}\n\tag{34}\n\tag{35}\n\tag{36}\n\tag{37}\n\tag{38}\n\tag{39}\n\tag{40}\n\tag{41}\n\tag{42}\n\tag{43}\n\tag{44}\n\tag{45}\n\tag{46}\n\tag{47}\n\tag{48}\n\tag{49}\n\tag{50}\n\tag{51}\n\tag{52}\n\tag{53}\n\tag{54}\n\tag{55}\n\tag{56}\n\tag{57}\n\tag{58}\n\tag{59}\n\tag{60}\n\tag{61}\n\tag{62}\n\tag{63}\n\tag{64}\n\tag{65}\n\tag{66}\n\tag{67}\n\tag{68}\n\tag{69}\n\tag{70}\n\tag{71}\n\tag{72}\n\tag{73}\n\tag{74}\n\tag{75}\n\tag{76}\n\tag{77}\n\tag{78}\n\tag{79}\n\tag{80}\n\tag{81}\n\tag{82}\n\tag{83}\n\tag{84}\n\tag{85}\n\tag{86}\n\tag{87}\n\tag{88}\n\tag{89}\n\tag{90}\n\tag{91}\n\tag{92}\n\tag{93}\n\tag{94}\n\tag{95}\n\tag{96}\n\tag{97}\n\tag{98}\n\tag{99}\n\tag{100}\n\tag{101}\n\tag{102}\n\tag{103}\n\tag{104}\n\tag{105}\n\tag{106}\n\tag{107}\n\tag{108}\n\tag{109}\n\tag{110}\n\tag{111}\n\tag{112}\n\tag{113}\n\tag{114}\n\tag{115}\n\tag{116}\n\tag{117}\n\tag{118}\n\tag{119}\n\tag{120}\n\tag{121}\n\tag{122}\n\tag{123}\n\tag{124}\n\tag{125}\n\tag{126}\n\tag{127}\n\tag{128}\n\tag{129}\n\tag{130}\n\tag{131}\n\tag{132}\n\tag{133}\n\tag{134}\n\tag{135}\n\tag{136}\n\tag{137}\n\tag{138}\n\tag{139}\n\tag{140}\n\tag{141}\n\tag{142}\n\tag{143}\n\tag{144}\n\tag{145}\n\tag{146}\n\tag{147}\n\tag{148}\n\tag{149}\n\tag{150}\n\tag{151}\n\tag{152}\n\tag{153}\n\tag{154}\n\tag{155}\n\tag{156}\n\tag{157}\n\tag{158}\n\tag{159}\n\tag{160}\n\tag{161}\n\tag{162}\n\tag{163}\n\tag{164}\n\tag{165}\n\tag{166}\n\tag{167}\n\tag{168}\n\tag{169}\n\tag{170}\n\tag{171}\n\tag{172}\n\tag{173}\n\tag{174}\n\tag{175}\n\tag{176}\n\tag{177}\n\tag{178}\n\tag{179}\n\tag{180}\n\tag{181}\n\tag{182}\n\tag{183}\n\tag{184}\n\tag{185}\n\tag{186}\n\tag{187}\n\tag{188}\n\tag{189}\n\tag{190}\n\tag{191}\n\tag{192}\n\tag{193}\n\tag{194}\n\tag{195}\n\tag{196}\n\tag{197}\n\tag{198}\n\tag{199}\n\tag{200}\n\tag{201}\n\tag{202}\n\tag{203}\n\tag{204}\n\tag{205}\n\tag{206}\n\tag{207}\n\tag{208}\n\tag{209}\n\tag{210}\n\tag{211}\n\tag{212}\n\tag{213}\n\tag{214}\n\tag{215}\n\tag{216}\n\tag{217}\n\tag{218}\n\tag{219}\n\tag{220}\n\tag{221}\n\tag{222}\n\tag{223}\n\tag{224}\n\tag{225}\n\tag{226}\n\tag{227}\n\tag{228}\n\tag{229}\n\tag{230}\n\tag{231}\n\tag{232}\n\tag{233}\n\tag{234}\n\tag{235}\n\tag{236}\n\tag{237}\n\tag{238}\n\tag{239}\n\tag{240}\n\tag{241}\n\tag{242}\n\tag{243}\n\tag{244}\n\tag{245}\n\tag{246}\n\tag{247}\n\tag{248}\n\tag{249}\n\tag{250}\n\tag{251}\n\tag{252}\n\tag{253}\n\tag{254}\n\tag{255}\n\tag{256}\n\tag{257}\n\tag{258}\n\tag{259}\n\tag{260}\n\tag{261}\n\tag{262}\n\tag{263}\n\tag{264}\n\tag{265}\n\tag{266}\n\tag{267}\n\tag{268}\n\tag{269}\n\tag{270}\n\tag{271}\n\tag{272}\n\tag{273}\n\tag{274}\n\tag{275}\n\tag{276}\n\tag{277}\n\tag{278}\n\tag{279}\n\tag{280}\n\tag{281}\n\tag{282}\n\tag{283}\n\tag{284}\n\tag{285}\n\tag{286}\n\tag{287}\n\tag{288}\n\tag{289}\n\tag{290}\n\tag{291}\n\tag{292}\n\tag{293}\n\tag{294}\n\tag{295}\n\tag{296}\n\tag{297}\n\tag{298}\n\tag{299}\n\tag{300}\n\tag{301}\n\tag{302}\n\tag{303}\n\tag{304}\n\tag{305}\n\tag{306}\n\tag{307}\n\tag{308}\n\tag{309}\n\tag{310}\n\tag{311}\n\tag{312}\n\tag{313}\n\tag{314}\n\tag{315}\n\tag{316}\n\tag{317}\n\tag{318}\n\tag{319}\n\tag{320}\n\tag{321}\n\tag{322}\n\tag{323}\n\tag{324}\n\tag{325}\n\tag{326}\n\tag{327}\n\tag{328}\n\tag{329}\n\tag{330}\n\tag{331}\n\tag{332}\n\tag{333}\n\tag{334}\n\tag{335}\n\tag{336}\n\tag{337}\n\tag{338}\n\tag{339}\n\tag{340}\n\tag{341}\n\tag{342}\n\tag{343}\n\tag{344}\n\tag{345}\n\tag{346}\n\tag{347}\n\tag{348}\n\tag{349}\n\tag{350}\n\tag{351}\n\tag{352}\n\tag{353}\n\tag{354}\n\tag{355}\n\tag{356}\n\tag{357}\n\tag{358}\n\tag{359}\n\tag{360}\n\tag{361}\n\tag{362}\n\tag{363}\n\tag{364}\n\tag{365}\n\tag{366}\n\tag{367}\n\tag{368}\n\tag{369}\n\tag{370}\n\tag{371}\n\tag{372}\n\tag{373}\n\tag{374}\n\tag{375}\n\tag{376}\n\tag{377}\n\tag{378}\n\tag{379}\n\tag{380}\n\tag{381}\n\tag{382}\n\tag{383}\n\tag{384}\n\tag{385}\n\tag{386}\n\tag{387}\n\tag{388}\n\tag{389}\n\tag{390}\n\tag{391}\n\tag{392}\n\tag{393}\n\tag{394}\n\tag{395}\n\tag{396}\n\tag{397}\n\tag{398}\n\tag{399}\n\tag{400}\n\tag{401}\n\tag{402}\n\tag{403}\n\tag{404}\n\tag{405}\n\tag{406}\n\tag{407}\n\tag{408}\n\tag{409}\n\tag{410}\n\tag{411}\n\tag{412}\n\tag{413}\n\tag{414}\n\tag{415}\n\tag{416}\n\tag{417}\n\tag{418}\n\tag{419}\n\tag{420}\n\tag{421}\n\tag{422}\n\tag{423}\n\tag{424}\n\tag{425}\n\tag{426}\n\tag{427}\n\tag{428}\n\tag{429}\n\tag{430}\n\tag{431}\n\tag{432}\n\tag{433}\n\tag{434}\n\tag{435}\n\tag{436}\n\tag{437}\n\tag{438}\n\tag{439}\n\tag{440}\n\tag{441}\n\tag{442}\n\tag{443}\n\tag{444}\n\tag{445}\n\tag{446}\n\tag{447}\n\tag{448}\n\tag{449}\n\tag{450}\n\tag{451}\n\tag{452}\n\tag{453}\n\tag{454}\n\tag{455}\n\tag{456}\n\tag{457}\n\tag{458}\n\tag{459}\n\tag{460}\n\tag{461}\n\tag{462}\n\tag{463}\n\tag{464}\n\tag{465}\n\tag{466}\n\tag{467}\n\tag{468}\n\tag{469}\n\tag{470}\n\tag{471}\n\tag{472}\n\tag{473}\n\tag{474}\n\tag{475}\n\tag{476}\n\tag{477}\n\tag{478}\n\tag{479}\n\tag{480}\n\tag{481}\n\tag{482}\n\tag{483}\n\tag{484}\n\tag{485}\n\tag{486}\n\tag{487}\n\tag{488}\n\tag{489}\n\tag{490}\n\tag{491}\n\tag{492}\n\tag{493}\n\tag{494}\n\tag{495}\n\tag{496}\n\tag{497}\n\tag{498}\n\tag{499}\n\tag{500}\n\tag{501}\n\tag{502}\n\tag{503}\n\tag{504}\n\tag{505}\n\tag{506}\n\tag{507}\n\tag{508}\n\tag{509}\n\tag{510}\n\tag{511}\n\tag{512}\n\tag{513}\n\tag{514}\n\tag{515}\n\tag{516}\n\tag{517}\n\tag{518}\n\tag{519}\n\tag{520}\n\tag{521}\n\tag{522}\n\tag{523}\n\tag{524}\n\tag{525}\n\tag{526}\n\tag{527}\n\tag{528}\n\tag{529}\n\tag{530}\n\tag{531}\n\tag{532}\n\tag{533}\n\tag{534}\n\tag{535}\n\tag{536}\n\tag{537}\n\tag{538}\n\tag{539}\n\tag{540}\n\tag{541}\n\tag{542}\n\tag{543}\n\tag{544}\n\tag{545}\n\tag{546}\n\tag{547}\n\tag{548}\n\tag{549}\n\tag{550}\n\tag{551}\n\tag{552}\n\tag{553}\n\tag{554}\n\tag{555}\n\tag{556}\n\tag{557}\n\tag{558}\n\tag{559}\n\tag{560}\n\tag{561}\n\tag{562}\n\tag{563}\n\tag{564}\n\tag{565}\n\tag{566}\n\tag{567}\n\tag{568}\n\tag{569}\n\tag{570}\n\tag{571}\n\tag{572}\n\tag{573}\n\tag{574}\n\tag{575}\n\tag{576}\n\tag{577}\n\tag{578}\n\tag{579}\n\tag{580}\n\tag{581}\n\tag{582}\n\tag{583}\n\tag{584}\n\tag{585}\n\tag{586}\n\tag{587}\n\tag{588}\n\tag{589}\n\tag{590}\n\tag{591}\n\tag{592}\n\tag{593}\n\tag{594}\n\tag{595}\n\tag{596}\n\tag{597}\n\tag{598}\n\tag{599}\n\tag{600}\n\tag{601}\n\tag{602}\n\tag{603}\n\tag{604}\n\tag{605}\n\tag{606}\n\tag{607}\n\tag{608}\n\tag{609}\n\tag{610}\n\tag{611}\n\tag{612}\n\tag{613}\n\tag{614}\n\tag{615}\n\tag{616}\n\tag{617}\n\tag{618}\n\tag{619}\n\tag{620}\n\tag{621}\n\tag{622}\n\tag{623}\n\tag{624}\n\tag{625}\n\tag{626}\n\tag{627}\n\tag{628}\n\tag{629}\n\tag{630}\n\tag{631}\n\tag{632}\n\tag{633}\n\tag{634}\n\tag{635}\n\tag{636}\n\tag{637}\n\tag{638}\n\tag{639}\n\tag{640}\n\tag{641}\n\tag{642}\n\tag{643}\n\tag{644}\n\tag{645}\n\tag{646}\n\tag{647}\n\tag{648}\n\tag{649}\n\tag{650}\n\tag{651}\n\tag{652}\n\tag{653}\n\tag{654}\n\tag{655}\n\tag{656}\n\tag{657}\n\tag{658}\n\tag{659}\n\tag{660}\n\tag{661}\n\tag{662}\n\tag{663}\n\tag{664}\n\tag{665}\n\tag{666}\n\tag{667}\n\tag{668}\n\tag{669}\n\tag{670}\n\tag{671}\n\tag{672}\n\tag{673}\n\tag{674}\n\tag{675}\n\tag{676}\n\tag{677}\n\tag{678}\n\tag{679}\n\tag{680}\n\tag{681}\n\tag{682}\n\tag{683}\n\tag{684}\n\tag{685}\n\tag{686}\n\tag{687}\n\tag{688}\n\tag{689}\n\tag{690}\n\tag{691}\n\tag{692}\n\tag{693}\n\tag{694}\n\tag{695}\n\tag{696}\n\tag{697}\n\tag{698}\n\tag{699}\n\tag{700}\n\tag{701}\n\tag{702}\n\tag{703}\n\tag{704}\n\tag{705}\n\tag{706}\n\tag{707}\n\tag{708}\n\tag{709}\n\tag{710}\n\tag{711}\n\tag{712}\n\tag{713}\n\tag{714}\n\tag{715}\n\tag{716}\n\tag{717}\n\tag{718}\n\tag{719}\n\tag{720}\n\tag{721}\n\tag{722}\n\tag{723}\n\tag{724}\n\tag{725}\n\tag{726}\n\tag{727}\n\tag{728}\n\tag{729}\n\tag{730}\n\tag{731}\n\tag{732}\n\tag{733}\n\tag{734}\n\tag{735}\n\tag{736}\n\tag{737}\n\tag{738}\n\tag{739}\n\tag{740}\n\tag{741}\n\tag{742}\n\tag{743}\n\tag{744}\n\tag{745}\n\tag{746}\n\tag{747}\n\tag{748}\n\tag{749}\n\tag{750}\n\tag{751}\n\tag{752}\n\tag{753}\n\tag{754}\n\tag{755}\n\tag{756}\n\tag{757}\n\tag{758}\n\tag{759}\n\tag{760}\n\tag{761}\n\tag{762}\n\tag{763}\n\tag{764}\n\tag{765}\n\tag{766}\n\tag{767}\n\tag{768}\n\tag{769}\n\tag{770}\n\tag{771}\n\tag{772}\n\tag{773}\n\tag{774}\n\tag{775}\n\tag{776}\n\tag{777}\n\tag{778}\n\tag{779}\n\tag{780}\n\tag{781}\n\tag{782}\n\tag{783}\n\tag{784}\n\tag{785}\n\tag{786}\n\tag{787}\n\tag{788}\n\tag{789}\n\tag{790}\n\tag{791}\n\tag{792}\n\tag{793}\n\tag{794}\n\tag{795}\n\tag{796}\n\tag{797}\n\tag{798}\n\tag{799}\n\tag{800}\n\tag{801}\n\tag{802}\n\tag{803}\n\tag{804}\n\tag{805}\n\tag{806}\n\tag{807}\n\tag{808}\n\tag{809}\n\tag{810}\n\tag{811}\n\tag{812}\n\tag{813}\n\tag{814}\n\tag{815}\n\tag{816}\n\tag{817}\n\tag{818}\n\tag{819}\n\tag{820}\n\tag{821}\n\tag{822}\n\tag{823}\n\tag{824}\n\tag{825}\n\tag{826}\n\tag{827}\n\tag{828}\n\tag{829}\n\tag{830}\n\tag{831}\n\tag{832}\n\tag{833}\n\tag{834}\n\tag{835}\n\tag{836}\n\tag{837}\n\tag{838}\n\tag{839}\n\tag{840}\n\tag{841}\n\tag{842}\n\tag{843}\n\tag{844}\n\tag{845}\n\tag{846}\n\tag{847}\n\tag{848}\n\tag{849}\n\tag{850}\n\tag{851}\n\tag{852}\n\tag{853}\n\tag{854}\n\tag{855}\n\tag{856}\n\tag{857}\n\tag{858}\n\tag{859}\n\tag{860}\n\tag{861}\n\tag{862}\n\tag{863}\n\tag{864}\n\tag{865}\n\tag{866}\n\tag{867}\n\tag{868}\n\tag{869}\n\tag{870}\n\tag{871}\n\tag{872}\n\tag{873}\n\tag{874}\n\tag{875}\n\tag{876}\n\tag{877}\n\tag{878}\n\tag{879}\n\tag{880}\n\tag{881}\n\tag{882}\n\tag{883}\n\tag{884}\n\tag{885}\n\tag{886}\n\tag{887}\n\tag{888}\n\tag{889}\n\tag{890}\n\tag{891}\n\tag{892}\n\tag{893}\n\tag{894}\n\tag{895}\n\tag{896}\n\tag{897}\n\tag{898}\n\tag{899}\n\tag{900}\n\tag{901}\n\tag{902}\n\tag{903}\n\tag{904}\n\tag{905}\n\tag{906}\n\tag{907}\n\tag{908}\n\tag{909}\n\tag{910}\n\tag{911}\n\tag{912}\n\tag{913}\n\tag{914}\n\tag{915}\n\tag{916}\n\tag{917}\n\tag{918}\n\tag{919}\n\tag{920}\n\tag{921}\n\tag{922}\n\tag{923}\n\tag{924}\n\tag{925}\n\tag{926}\n\tag{927}\n\tag{928}\n\tag{929}\n\tag{930}\n\tag{931}\n\tag{932}\n\tag{933}\n\tag{934}\n\tag{935}\n\tag{936}\n\tag{937}\n\tag{938}\n\tag{939}\n\tag{940}\n\tag{941}\n\tag{942}\n\tag{943}\n\tag{944}\n\tag{945}\n\tag{946}\n\tag{947}\n\tag{948}\n\tag{949}\n\tag{950}\n\tag{951}\n\tag{952}\n\tag{953}\n\tag{954}\n\tag{955}\n\tag{956}\n\tag{957}\n\tag{958}\n\tag{959}\n\tag{960}\n\tag{961}\n\tag{962}\n\tag{963}\n\tag{964}\n\tag{965}\n\tag{966}\n\tag{967}\n\tag{968}\n\tag{969}\n\tag{970}\n\tag{971}\n\tag{972}\n\tag{973}\n\tag{974}\n\tag{975}\n\tag{976}\n\tag{977}\n\tag{978}\n\tag{979}\n\tag{980}\n\tag{981}\n\tag{982}\n\tag{983}\n\tag{984}\n\tag{985}\n\tag{986}\n\tag{987}\n\tag{988}\n\tag{989}\n\tag{990}\n\tag{991}\n\tag{992}\n\tag{993}\n\tag{994}\n\tag{995}\n\tag{996}\n\tag{997}\n\tag{998}\n\tag{999}\n\tag{1000}\n\tag{1001}\n\tag{1002}\n\tag{1003}\n\tag{1004}\n\tag{1005}\n\tag{1006}\n\tag{1007}\n\tag{1008}\n\tag{1009}\n\tag{1010}\n\tag{1011}\n\tag{1012}\n\tag{1013}\n\tag{1014}\n\tag{1015}\n\tag{1016}\n\tag{1017}\n\tag{1018}\n\tag{1019}\n\tag{1020}\n\tag{1021}\n\tag{1022}\n\tag{1023}\n\tag{1024}\n\tag{1025}\n\tag{1026}\n\tag{1027}\n\tag{1028}\n\tag{1029}\n\tag{1030}\n\tag{1031}\n\tag{1032}\n\tag{1033}\n\tag{1034}\n\tag{1035}\n\tag{1036}\n\tag{1037}\n\tag{1038}\n\tag{1039}\n\tag{1040}\n\tag{1041}\n\tag{1042}\n\tag{1043}\n\tag{1044}\n\tag{1045}\n\tag{1046}\n\tag{1047}\n\tag{1048}\n\tag{1049}\n\tag{1050}\n\tag{1051}\n\tag{1052}\n\tag{1053}\n\tag{1054}\n\tag{1055}\n\tag{1056}\n\tag{1057}\n\tag{1058}\n\tag{1059}\n\tag{1060}\n\tag{1061}\n\tag{1062}\n\tag{1063}\n\tag{1064}\n\tag{1065}\n\tag{1066}\n\tag{1067}\n\tag{1068}\n\tag{1069}\n\tag{1070}\n\tag{1071}\n\tag{1072}\n\tag{1073}\n\tag{1074}\n\tag{1075}\n\tag{1076}\n\tag{1077}\n\tag{1078}\n\tag{1079}\n\tag{1080}\n\tag{1081}\n\tag{1082}\n\tag{1083}\n\tag{1084}\n\tag{1085}\n\tag{1086}\n\tag{1087}\n\tag{1088}\n\tag{1089}\n\tag{1090}\n\tag{1091}\n\tag{1092}\n\tag{1093}\n\tag{1094}\n\tag{1095}\n\tag{1096}\n\tag{1097}\n\tag{1098}\n\tag{1099}\n\tag{1100}\n\tag{1101}\n\tag{1102}\n\tag{1103}\n\tag{1104}\n\tag{1105}\n\tag{1106}\n\tag{1107}\n\tag{1108}\n\tag{1109}\n\tag{1110}\n\tag{1111}\n\tag{1112}\n\tag{1113}\n\tag{1114}\n\tag{1115}\n\tag{1116}\n\tag{1117}\n\tag{1118}\n\tag{1119}\n\tag{1120}\n\tag{1121}\n\tag{1122}\n\tag{1123}\n\tag{1124}\n\tag{1125}\n\tag{1126}\n\tag{1127}\n\tag{1128}\n\tag{1129}\n\tag{1130}\n\tag{1131}\n\tag{1132}\n\tag{1133}\n\tag{1134}\n\tag{1135}\n\tag{1136}\n\tag{1137}\n\tag{1138}\n\tag{1139}\n\tag{1140}\n\tag{1141}\n\tag{1142}\n\tag{1143}\n\tag{1144}\n\tag{1145}\n\tag{1146}\n\tag{1147}\n\tag{1148}\n\tag{1149}\n\tag{1150}\n\tag{1151}\n\tag{1152}\n\tag{1153}\n\tag{1154}\n\tag{1155}\n\tag{1156}\n\tag{1157}\n\tag{1158}\n\tag{1159}\n\tag{1160}\n\tag{1161}\n\tag{1162}\n\tag{1163}\n\tag{1164}\n\tag{1165}\n\tag{1166}\n\tag{1167}\n\tag{1168}\n\tag{1169}\n\tag{1170}\n\tag{1171}\n\tag{1172}\n\tag{1173}\n\tag{1174}\n\tag{1175}\n\tag{1176}\n\tag{1177}\n\tag{1178}\n\tag{1179}\n\tag{1180}\n\tag{1181}\n\tag{1182}\n\tag{1183}\n\tag{1184}\n\tag{1185}\n\tag{1186}\n\tag{1187}\n\tag{1188}\n\tag{1189}\n\tag{1190}\n\tag{1191}\n\tag{1192}\n\tag{1193}\n\tag{1194}\n\tag{1195}\n\tag{1196}\n\tag{1197}\n\tag{1198}\n\tag{1199}\n\tag{1200}\n\tag{1201}\n\tag{1202}\n\tag{1203}\n\tag{1204}\n\tag{1205}\n\tag{1206}\n\tag{1207}\n\tag{1208}\n\tag{1209}\n\tag{1210}\n\tag{1211}\n\tag{1212}\n\tag{1213}\n\tag{1214}\n\tag{1215}\n\tag{1216}\n\tag{1217}\n\tag{1218}\n\tag{1219}\n\tag{1220}\n\tag{1221}\n\tag{1222}\n\tag{1223}\n\tag{1224}\n\tag{1225}\n\tag{1226}\n\tag{1227}\n\tag{1228}\n\tag{1229}\n\tag{1230}\n\tag{1231}\n\tag{1232}\n\tag{1233}\n\tag{1234}\n\tag{1235}\n\tag{1236}\n\tag{1237}\n\tag{1238}\n\tag{1239}\n\tag{1240}\n\tag{1241}\n\tag{1242}\n\tag{1243}\n\tag{1244}\n\tag{1245}\n\tag{1246}\n\tag{1247}\n\tag{1248}\n\tag{1249}\n\tag{1250}\n\tag{1251}\n\tag{1252}\n\tag{1253}\n\tag{1254}\n\tag{1255}\n\tag{1256}\n\tag{1257}\n\tag{1258}\n\tag{1259}\n\tag{1260}\n\tag{1261}\n\tag{1262}\n\tag{1263}\n\tag{1264}\n\tag{1265}\n\tag{1266}\n\tag{1267}\n\tag{1268}\n\tag{1269}\n\tag{1270}\n\tag{1271}\n\tag{1272}\n\tag{1273}\n\tag{1274}\n\tag{1275}\n\tag{1276}\n\tag{1277}\n\tag{1278}\n\tag{1279}\n\tag{1280}\n\tag{1281}\n\tag{1282}\n\tag{1283}\n\tag{1284}\n\tag{1285}\n\tag{1286}\n\tag{1287}\n\tag{1288}\n\tag{1289}\n\tag{1290}\n\tag{1291}\n\tag{1292}\n\tag{1293}\n\tag{1294}\n\tag{1295}\n\tag{1296}\n\tag{1297}\n\tag{1298}\n\tag{1299}\n\tag{1300}\n\tag{1301}\n\tag{1302}\n\tag{1303}\n\tag{1304}\n\tag{1305}\n\tag{1306}\n\tag{1307}\n\tag{1308}\n\tag{1309}\n\tag{1310}\n\tag{1311}\n\tag{1312}\n\tag{1313}\n\tag{1314}\n\tag{1315}\n\tag{1316}\n\tag{1317}\n\tag{1318}\n\tag{1319}\n\tag{1320}\n\tag{1321}\n\tag{1322}\n\tag{1323}\n\tag{1324}\n\tag{1325}\n\tag{1326}\n\tag{1327}\n\tag{1328}\n\tag{1329}\n\tag{1330}\n\tag{1331}\n\tag{1332}\n\tag{1333}\n\tag{1334}\n\tag{1335}\n\tag{1336}\n\tag{1337}\n\tag{1338}\n\tag{1339}\n\tag{1340}\n\tag{1341}\n\tag{1342}\n\tag{1343}\n\tag{1344}\n\tag{1345}\n\tag{1346}\n\tag{1347}\n\tag{1348}\n\tag{1349}\n\tag{1350}\n\tag{1351}\n\tag{1352}\n\tag{1353}\n\tag{1354}\n\tag{1355}\n\tag{1356}\n\tag{1357}\n\tag{1358}\n\tag{1359}\n\tag{1360}\n\tag{1361}\n\tag{1362}\n\tag{1363}\n\tag{1364}\n\tag{1365}\n\tag{1366}\n\tag{1367}\n\tag{1368}\n\tag{1369}\n\tag{1370}\n\tag{1371}\n\tag{1372}\n\tag{1373}\n\tag{1374}\n\tag{1375}\n\tag{1376}\n\tag{1377}\n\tag{1378}\n\tag{1379}\n\tag{1380}\n\tag{1381}\n\tag{1382}\n\tag{1383}\n\tag{1384}\n\tag{1385}\n\tag{1386}\n\tag{1387}\n\tag{1388}\n\tag{1389}\n\tag{1390}\n\tag{1391}\n\tag{1392}\n\tag{1393}\n\tag{1394}\n\tag{1395}\n\tag{1396}\n\tag{1397}\n\tag{1398}\n\tag{1399}\n\tag{1400}\n\tag{1401}\n\tag{1402}\n\tag{1403}\n\tag{1404}\n\tag{1405}\n\tag{1406}\n\tag{1407}\n\tag{1408}\n\tag{1409}\n\tag{1410}\n\tag{1411}\n\tag{1412}\n\tag{1413}\n\tag{1414}\n\tag{1415}\n\tag{1416}\n\tag{1417}\n\tag{1418}\n\tag{1419}\n\tag{1420}\n\tag{1421}\n\tag{1422}\n\tag{1423}\n\tag{1424}\n\tag{1425}\n\tag{1426}\n\tag{1427}\n\tag{1428}\n\tag{1429}\n\tag{1430}\n\tag{1431}\n\tag{1432}\n\tag{1433}\n\tag{1434}\n\tag{1435}\n\tag{1436}\n\tag{1437}\n\tag{1438}\n\tag{1439}\n\tag{1440}\n\tag{1441}\n\tag{1442}\n\tag{1443}\n\tag{1444}\n\tag{1445}\n\tag{1446}\n\tag{1447}\n\tag{1448}\n\tag{1449}\n\tag{1450}\n\tag{1451}\n\tag{1452}\n\tag{1453}\n\tag{1454}\n\tag{1455}\n\tag{1456}\n\tag{1457}\n\tag{1458}\n\tag{1459}\n\tag{1460}\n\tag{1461}\n\tag{1462}\n\tag{1463}\n\tag{1464}\n\tag{1465}\n\tag{1466}\n\tag{1467}\n\tag{1468}\n\tag{1469}\n\tag{1470}\n\tag{1471}\n\tag{1472}\n\tag{1473}\n\tag{1474}\n\tag{1475}\n\tag{1476}\n\tag{1477}\n\tag{1478}\n\tag{1479}\n\tag{1480}\n\tag{1481}\n\tag{1482}\n\tag{1483}\n\tag{1484}\n\tag{1485}\n\tag{1486}\n\tag{1487}\n\tag{1488}\n\tag{1489}\n\tag{1490}\n\tag{1491}\n\tag{1492}\n\tag{1493}\n\tag{1494}\n\tag{1495}\n\tag{1496}\n\tag{1497}\n\tag{1498}\n\tag{1499}\n\tag{1500}\n\tag{1501}\n\tag{1502}\n\tag{1503}\n\tag{1504}\n\tag{1505}\n\tag{1506}\n\tag{1507}\n\tag{1508}\n\tag{1509}\n\tag{1510}\n\tag{1511}\n\tag{1512}\n\tag{1513}\n\tag{1514}\n\tag{1515}\n\tag{1516}\n\tag{1517}\n\tag{1518}\n\tag{1519}\n\tag{1520}\n\tag{1521}\n\tag{1522}\n\tag{1523}\n\tag{1524}\n\tag{1525}\n\tag{1526}\n\tag{1527}\n\tag{1528}\n\tag{1529}\n\tag{1530}\n\tag{1531}\n\tag{1532}\n\tag{1533}\n\tag{1534}\n\tag{1535}\n\tag{1536}\n\tag{1537}\n\tag{1538}\n\tag{1539}\n\tag{1540}\n\tag{1541}\n\tag{1542}\n\tag{1543}\n\tag{1544}\n\tag{1545}\n\tag{1546}\n\tag{1547}\n\tag{1548}\n\tag{1549}\n\tag{1550}\n\tag{1551}\n\tag{1552}\n\tag{1553}\n\tag{1554}\n\tag{1555}\n\tag{1556}\n\tag{1557}\n\tag{1558}\n\tag{1559}\n\tag{1560}\n\tag{1561}\n\tag{1562}\n\tag{1563}\n\tag{1564}\n\tag{1565}\n\tag{1566}\n\tag{1567}\n\tag{1568}\n\tag{1569}\n\tag{1570}\n\tag{1571}\n\tag{1572}\n\tag{1573}\n\tag{1574}\n\tag{1575}\n\tag{1576}\n\tag{1577}\n\tag{1578}\n\tag{1579}\n\tag{1580}\n\tag{1581}\n\tag{1582}\n\tag{1583}\n\tag{1584}\n\tag{1585}\n\tag{1586}\n\tag{1587}\n\tag{1588}\n\tag{1589}\n\tag{1590}\n\tag{1591}\n\tag{1592}\n\tag{1593}\n\tag{1594}\n\tag{1595}\n\tag{1596}\n\tag{1597}\n\tag{1598}\n\tag{1599}\n\tag{1600}\n\tag{1601}\n\tag{1602}\n\tag{1603}\n\tag{1604}\n\tag{1605}\n\tag{1606}\n\tag{1607}\n\tag{1608}\n\tag{1609}\n\tag{1610}\n\tag{1611}\n\tag{1612}\n\tag{1613}\n\tag{1614}\n\tag{1615}\n\tag{1616}\n\tag{1617}\n\tag{1618}\n\tag{1619}\n\tag{1620}\n\tag{1621}\n\tag{1622}\n\tag{1623}\n\tag{1624}\n\tag{1625}\n\tag{1626}\n\tag{1627}\n\tag{1628}\n\tag{1629}\n\tag{1630}\n\tag{1631}\n\tag{1632}\n\tag{1633}\n\tag{1634}\n\tag{1635}\n\tag{1636}\n\tag{1637}\n\tag{1638}\n\tag{1639}\n\tag{1640}\n\tag{1641}\n\tag{1642}\n\tag{1643}\n\tag{1644}\n\tag{1645}\n\tag{1646}\n\tag{1647}\n\tag{1648}\n\tag{1649}\n\tag{1650}\n\tag{1651}\n\tag{1652}\n\tag{1653}\n\tag{1654}\n\tag{1655}\n\tag{1656}\n\tag{1657}\n\tag{1658}\n\tag{1659}\n\tag{1660}\n\tag{1661}\n\tag{1662}\n\tag{1663}\n\tag{1664}\n\tag{1665}\n\tag{1666}\n\tag{1667}\n\tag{1668}\n\tag{1669}\n\tag{1670}\n\tag{1671}\n\tag{1672}\n\tag{1673}\n\tag{1674}\n\tag{1675}\n\tag{1676}\n\tag{1677}\n\tag{1678}\n\tag{1679}\n\tag{1680}\n\tag{1681}\n\tag{1682}\n\tag{1683}\n\tag{1684}\n\tag{1685}\n\tag{1686}\n\tag{1687}\n\tag{1688}\n\tag{1689}\n\tag{1690}\n\tag{1691}\n\tag{1692}\n\tag{1693}\n\tag{1694}\n\tag{1695}\n\tag{1696}\n\tag{1697}\n\tag{1698}\n\tag{1699}\n\tag{1700}\n\tag{1701}\n\tag{1702}\n\tag{1703}\n\tag{1704}\n\tag{1705}\n\tag{1706}\n\tag{1707}\n\tag{1708}\n\tag{1709}\n\tag{1710}\n\tag{1711}\n\tag{1712}\n\tag{1713}\n\tag{1714}\n\tag{1715}\n\tag{1716}\n\tag{1717}\n\tag{1718}\n\tag{1719}\n\tag{1720}\n\tag{1721}\n\tag{1722}\n\tag{1723}\n\tag{1724}\n\tag{1725}\n\tag{1726}\n\tag{1727}\n\tag{1728}\n\tag{1729}\n\tag{1730}\n\tag{1731}\n\tag{1732}\n\tag{1733}\n\tag{1734}\n\tag{1735}\n\tag{1736}\n\tag{1737}\n\tag{1738}\n\tag{1739}\n\tag{1740}\n\tag{1741}\n\tag{1742}\n\tag{1743}\n\tag{1744}\n\tag{1745}\n\tag{1746}\n\tag{1747}\n\tag{1748}\n\tag{1749}\n\tag{1750}\n\tag{1751}\n\tag{1752}\n\tag{1753}\n\tag{1754}\n\tag{1755}\n\tag{1756}\n\tag{1757}\n\tag{1758}\n\tag{1759}\n\tag{1760}\n\tag{1761}\n\tag{1762}\n\tag{1763}\n\tag{1764}\n\tag{1765}\n\tag{1766}\n\tag{1767}\n\tag{1768}\n\tag{1769}\n\tag{1770}\n\tag{1771}\n\tag{1772}\n\tag{1773}\n\tag{1774}\n\tag{1775}\n\tag{1776}\n\tag{1777}\n\tag{1778}\n\tag{1779}\n\tag{1780}\n\tag{1781}\n\tag{1782}\n\tag{1783}\n\tag{1784}\n\tag{1785}\n\tag{1786}\n\tag{1787}\n\tag{1788}\n\tag{1789}\n\tag{1790}\n\tag{1791}\n\tag{1792}\n\tag{1793}\n\tag{1794}\n\tag{1795}\n\tag{1796}\n\tag{1797}\n\tag{1798}\n\tag{1799}\n\tag{1800}\n\tag{1801}\n\tag{1802}\n\tag{1803}\n\tag{1804}\n\tag{1805}\n\tag{1806}\n\tag{1807}\n\tag{1808}\n\tag{1809}\n\tag{1810}\n\tag{1811}\n\tag{1812}\n\tag{1813}\n\tag{1814}\n\tag{1815}\n\tag{1816}\n\tag{1817}\n\tag{1818}\n\tag{1819}\n\tag{1820}\n\tag{1821}\n\tag{1822}\n\tag{1823}\n\tag{1824}\n\tag{1825}\n\tag{1826}\n\tag{1827}\n\tag{1828}\n\tag{1829}\n\tag{1830}\n\tag{1831}\n\tag{1832}\n\tag{1833}\n\tag{1834}\n\tag{1835}\n\tag{1836}\n\tag{1837}\n\tag{1838}\n\tag{1839}\n\tag{1840}\n\tag{1841}\n\tag{1842}\n\tag{1843}\n\tag{1844}\n\tag{1845}\n\tag{1846}\n\tag{1847}\n\tag{1848}\n\tag{1849}\n\tag{1850}\n\tag{1851}\n\tag{1852}\n\tag{1853}\n\tag{1854}\n\tag{1855}\n\tag{1856}\n\tag{1857}\n\tag{1858}\n\tag{1859}\n\tag{1860}\n\tag{1861}\n\tag{1862}\n\tag{1863}\n\tag{1864}\n\tag{1865}\n\tag{1866}\n\tag{1867}\n\tag{1868}\n\tag{1869}\n\tag{1870}\n\tag{1871}\n\tag{1872}\n\tag{1873}\n\tag{1874}\n\tag{1875}\n\tag{1876}\n\tag{1877}\n\tag{1878}\n\tag{1879}\n\tag{1880}\n\tag{1881}\n\tag{1882}\n\tag{1883}\n\tag{1884}\n\tag{1885}\n\tag{1886}\n\tag{1887}\n\tag{1888}\n\tag{1889}\n\tag{1890}\n\tag{1891}\n\tag{1892}\n\tag{1893}\n\tag{1894}\n\tag{1895}\n\tag{1896}\n\tag{1897}\n\tag{1898}\n\tag{1899}\n\tag{1900}\n\tag{1901}\n\tag{1902}\n\tag{1903}\n\tag{1904}\n\tag{1905}\n\tag{1906}\n\tag{1907}\n\tag{1908}\n\tag{1909}\n\tag{1910}\n\tag{1911}\n\tag{1912}\n\tag{1913}\n\tag{1914}\n\tag{1915}\n\tag{1916}\n\tag{1917}\n\tag{1918}\n\tag{1919}\n\tag{1920}\n\tag{1921}\n\tag{1922}\n\tag{1923}\n\tag{1924}\n\tag{1925}\n\tag{1926}\n\tag{1927}\n\tag{1928}\n\tag{1929}\n\tag{1930}\n\tag{1931}\n\tag{1932}\n\tag{1933}\n\tag{1934}\n\tag{1935}\n\tag{1936}\n\tag{1937}\n\tag{1938}\n\tag{1939}\n\tag{1940}\n\tag{1941}\n\tag{1942}\n\tag{1943}\n\tag{1944}\n\tag{1945}\n\tag{1946}\n\tag{1947}\n\tag{1948}\n\tag{1949}\n\tag{1950}\n\tag{1951}\n\tag{1952}\n\tag{1953}\n\tag{1954}\n\tag{1955}\n\tag{1956}\n\tag{1957}\n\tag{1958}\n\tag{1959}\n\tag{1960}\n\tag{1961}\n\tag{1962}\n\tag{1963}\n\tag{1964}\n\tag{1965}\n\tag{1966}\n\tag{1967}\n\tag{1968}\n\tag{1969}\n\tag{1970}\n\tag{1971}\n\tag{1972}\n\tag{1973}\n\tag{1974}\n\tag{1975}\n\tag{1976}\n\tag{1977}\n\tag{1978}\n\tag{1979}\n\tag{2000}",
  "abstract": "The `PointSetGeometryAlgorithms` component performs geometric computations on a set of points within a topology context, including computing angles, bounding boxes, enclosing spheres, and centroids.",
  "sheet": "# PointSetGeometryAlgorithms\n\n## Overview\n\nThis component is part of the Sofa framework and specializes in performing geometric computations on sets of points within a topology context. It provides methods for computing various geometric properties such as angles, bounding boxes (AABB), enclosing spheres, and centroids.\n\n## Mathematical Model\n\nThe `PointSetGeometryAlgorithms` class computes the center \\(C\\) and radius \\(R\\) of an enclosing sphere that encompasses all points in a set. The process involves calculating the average position of all points to determine the center and finding the maximum distance from this center to any point in the set:\n\n\begin{align*}\n    C &= \frac{1}{N} \textstyle\bigsum_{i=0}^{N-1} P_i, \\[5pt]\n    R &= \textstyle\bigmax_{i=0}^{N-1} ||P_i - C||,\n\tag{1}\n\tag{2}\n\tag{3}\n\tag{4}\n\tag{5}\n\tag{6}\n\tag{7}\n\tag{8}\n\tag{9}\n\tag{10}\n\tag{11}\n\tag{12}\n\tag{13}\n\tag{14}\n\tag{15}\n\tag{16}\n\tag{17}\n\tag{18}\n\tag{19}\n\tag{20}\n\tag{21}\n\tag{22}\n\tag{23}\n\tag{24}\n\tag{25}\n\tag{26}\n\tag{27}\n\tag{28}\n\tag{29}\n\tag{30}\n\tag{31}\n\tag{32}\n\tag{33}\n\tag{34}\n\tag{35}\n\tag{36}\n\tag{37}\n\tag{38}\n\tag{39}\n\tag{40}\n\tag{41}\n\tag{42}\n\tag{43}\n\tag{44}\n\tag{45}\n\tag{46}\n\tag{47}\n\tag{48}\n\tag{49}\n\tag{50}\n\tag{51}\n\tag{52}\n\tag{53}\n\tag{54}\n\tag{55}\n\tag{56}\n\tag{57}\n\tag{58}\n\tag{59}\n\tag{60}\n\tag{61}\n\tag{62}\n\tag{63}\n\tag{64}\n\tag{65}\n\tag{66}\n\tag{67}\n\tag{68}\n\tag{69}\n\tag{70}\n\tag{71}\n\tag{72}\n\tag{73}\n\tag{74}\n\tag{75}\n\tag{76}\n\tag{77}\n\tag{78}\n\tag{79}\n\tag{80}\n\tag{81}\n\tag{82}\n\tag{83}\n\tag{84}\n\tag{85}\n\tag{86}\n\tag{87}\n\tag{88}\n\tag{89}\n\tag{90}\n\tag{91}\n\tag{92}\n\tag{93}\n\tag{94}\n\tag{95}\n\tag{96}\n\tag{97}\n\tag{98}\n\tag{99}\n\tag{100}\n\tag{101}\n\tag{102}\n\tag{103}\n\tag{104}\n\tag{105}\n\tag{106}\n\tag{107}\n\tag{108}\n\tag{109}\n\tag{110}\n\tag{111}\n\tag{112}\n\tag{113}\n\tag{114}\n\tag{115}\n\tag{116}\n\tag{117}\n\tag{118}\n\tag{119}\n\tag{120}\n\tag{121}\n\tag{122}\n\tag{123}\n\tag{124}\n\tag{125}\n\tag{126}\n\tag{127}\n\tag{128}\n\tag{129}\n\tag{130}\n\tag{131}\n\tag{132}\n\tag{133}\n\tag{134}\n\tag{135}\n\tag{136}\n\tag{137}\n\tag{138}\n\tag{139}\n\tag{140}\n\tag{141}\n\tag{142}\n\tag{143}\n\tag{144}\n\tag{145}\n\tag{146}\n\tag{147}\n\tag{148}\n\tag{149}\n\tag{150}\n\tag{151}\n\tag{152}\n\tag{153}\n\tag{154}\n\tag{155}\n\tag{156}\n\tag{157}\n\tag{158}\n\tag{159}\n\tag{160}\n\tag{161}\n\tag{162}\n\tag{163}\n\tag{164}\n\tag{165}\n\tag{166}\n\tag{167}\n\tag{168}\n\tag{169}\n\tag{170}\n\tag{171}\n\tag{172}\n\tag{173}\n\tag{174}\n\tag{175}\n\tag{176}\n\tag{177}\n\tag{178}\n\tag{179}\n\tag{180}\n\tag{181}\n\tag{182}\n\tag{183}\n\tag{184}\n\tag{185}\n\tag{186}\n\tag{187}\n\tag{188}\n\tag{189}\n\tag{190}\n\tag{191}\n\tag{192}\n\tag{193}\n\tag{194}\n\tag{195}\n\tag{196}\n\tag{197}\n\tag{198}\n\tag{199}\n\tag{200}\n\tag{201}\n\tag{202}\n\tag{203}\n\tag{204}\n\tag{205}\n\tag{206}\n\tag{207}\n\tag{208}\n\tag{209}\n\tag{210}\n\tag{211}\n\tag{212}\n\tag{213}\n\tag{214}\n\tag{215}\n\tag{216}\n\tag{217}\n\tag{218}\n\tag{219}\n\tag{220}\n\tag{221}\n\tag{222}\n\tag{223}\n\tag{224}\n\tag{225}\n\tag{226}\n\tag{227}\n\tag{228}\n\tag{229}\n\tag{230}\n\tag{231}\n\tag{232}\n\tag{233}\n\tag{234}\n\tag{235}\n\tag{236}\n\tag{237}\n\tag{238}\n\tag{239}\n\tag{240}\n\tag{241}\n\tag{242}\n\tag{243}\n\tag{244}\n\tag{245}\n\tag{246}\n\tag{247}\n\tag{248}\n\tag{249}\n\tag{250}\n\tag{251}\n\tag{252}\n\tag{253}\n\tag{254}\n\tag{255}\n\tag{256}\n\tag{257}\n\tag{258}\n\tag{259}\n\tag{260}\n\tag{261}\n\tag{262}\n\tag{263}\n\tag{264}\n\tag{265}\n\tag{266}\n\tag{267}\n\tag{268}\n\tag{269}\n\tag{270}\n\tag{271}\n\tag{272}\n\tag{273}\n\tag{274}\n\tag{275}\n\tag{276}\n\tag{277}\n\tag{278}\n\tag{279}\n\tag{280}\n\tag{281}\n\tag{282}\n\tag{283}\n\tag{284}\n\tag{285}\n\tag{286}\n\tag{287}\n\tag{288}\n\tag{289}\n\tag{290}\n\tag{291}\n\tag{292}\n\tag{293}\n\tag{294}\n\tag{295}\n\tag{296}\n\tag{297}\n\tag{298}\n\tag{299}\n\tag{300}\n\tag{301}\n\tag{302}\n\tag{303}\n\tag{304}\n\tag{305}\n\tag{306}\n\tag{307}\n\tag{308}\n\tag{309}\n\tag{310}\n\tag{311}\n\tag{312}\n\tag{313}\n\tag{314}\n\tag{315}\n\tag{316}\n\tag{317}\n\tag{318}\n\tag{319}\n\tag{320}\n\tag{321}\n\tag{322}\n\tag{323}\n\tag{324}\n\tag{325}\n\tag{326}\n\tag{327}\n\tag{328}\n\tag{329}\n\tag{330}\n\tag{331}\n\tag{332}\n\tag{333}\n\tag{334}\n\tag{335}\n\tag{336}\n\tag{337}\n\tag{338}\n\tag{339}\n\tag{340}\n\tag{341}\n\tag{342}\n\tag{343}\n\tag{344}\n\tag{345}\n\tag{346}\n\tag{347}\n\tag{348}\n\tag{349}\n\tag{350}\n\tag{351}\n\tag{352}\n\tag{353}\n\tag{354}\n\tag{355}\n\tag{356}\n\tag{357}\n\tag{358}\n\tag{359}\n\tag{360}\n\tag{361}\n\tag{362}\n\tag{363}\n\tag{364}\n\tag{365}\n\tag{366}\n\tag{367}\n\tag{368}\n\tag{369}\n\tag{370}\n\tag{371}\n\tag{372}\n\tag{373}\n\tag{374}\n\tag{375}\n\tag{376}\n\tag{377}\n\tag{378}\n\tag{379}\n\tag{380}\n\tag{381}\n\tag{382}\n\tag{383}\n\tag{384}\n\tag{385}\n\tag{386}\n\tag{387}\n\tag{388}\n\tag{389}\n\tag{390}\n\tag{391}\n\tag{392}\n\tag{393}\n\tag{394}\n\tag{395}\n\tag{396}\n\tag{397}\n\tag{398}\n\tag{399}\n\tag{400}\n\tag{401}\n\tag{402}\n\tag{403}\n\tag{404}\n\tag{405}\n\tag{406}\n\tag{407}\n\tag{408}\n\tag{409}\n\tag{410}\n\tag{411}\n\tag{412}\n\tag{413}\n\tag{414}\n\tag{415}\n\tag{416}\n\tag{417}\n\tag{418}\n\tag{419}\n\tag{420}\n\tag{421}\n\tag{422}\n\tag{423}\n\tag{424}\n\tag{425}\n\tag{426}\n\tag{427}\n\tag{428}\n\tag{429}\n\tag{430}\n\tag{431}\n\tag{432}\n\tag{433}\n\tag{434}\n\tag{435}\n\tag{436}\n\tag{437}\n\tag{438}\n\tag{439}\n\tag{440}\n\tag{441}\n\tag{442}\n\tag{443}\n\tag{444}\n\tag{445}\n\tag{446}\n\tag{447}\n\tag{448}\n\tag{449}\n\tag{450}\n\tag{451}\n\tag{452}\n\tag{453}\n\tag{454}\n\tag{455}\n\tag{456}\n\tag{457}\n\tag{458}\n\tag{459}\n\tag{460}\n\tag{461}\n\tag{462}\n\tag{463}\n\tag{464}\n\tag{465}\n\tag{466}\n\tag{467}\n\tag{468}\n\tag{469}\n\tag{470}\n\tag{471}\n\tag{472}\n\tag{473}\n\tag{474}\n\tag{475}\n\tag{476}\n\tag{477}\n\tag{478}\n\tag{479}\n\tag{480}\n\tag{481}\n\tag{482}\n\tag{483}\n\tag{484}\n\tag{485}\n\tag{486}\n\tag{487}\n\tag{488}\n\tag{489}\n\tag{490}\n\tag{491}\n\tag{492}\n\tag{493}\n\tag{494}\n\tag{495}\n\tag{496}\n\tag{497}\n\tag{498}\n\tag{499}\n\tag{500}\n\tag{501}\n\tag{502}\n\tag{503}\n\tag{504}\n\tag{505}\n\tag{506}\n\tag{507}\n\tag{508}\n\tag{509}\n\tag{510}\n\tag{511}\n\tag{512}\n\tag{513}\n\tag{514}\n\tag{515}\n\tag{516}\n\tag{517}\n\tag{518}\n\tag{519}\n\tag{520}\n\tag{521}\n\tag{522}\n\tag{523}\n\tag{524}\n\tag{525}\n\tag{526}\n\tag{527}\n\tag{528}\n\tag{529}\n\tag{530}\n\tag{531}\n\tag{532}\n\tag{533}\n\tag{534}\n\tag{535}\n\tag{536}\n\tag{537}\n\tag{538}\n\tag{539}\n\tag{540}\n\tag{541}\n\tag{542}\n\tag{543}\n\tag{544}\n\tag{545}\n\tag{546}\n\tag{547}\n\tag{548}\n\tag{549}\n\tag{550}\n\tag{551}\n\tag{552}\n\tag{553}\n\tag{554}\n\tag{555}\n\tag{556}\n\tag{557}\n\tag{558}\n\tag{559}\n\tag{560}\n\tag{561}\n\tag{562}\n\tag{563}\n\tag{564}\n\tag{565}\n\tag{566}\n\tag{567}\n\tag{568}\n\tag{569}\n\tag{570}\n\tag{571}\n\tag{572}\n\tag{573}\n\tag{574}\n\tag{575}\n\tag{576}\n\tag{577}\n\tag{578}\n\tag{579}\n\tag{580}\n\tag{581}\n\tag{582}\n\tag{583}\n\tag{584}\n\tag{585}\n\tag{586}\n\tag{587}\n\tag{588}\n\tag{589}\n\tag{590}\n\tag{591}\n\tag{592}\n\tag{593}\n\tag{594}\n\tag{595}\n\tag{596}\n\tag{597}\n\tag{598}\n\tag{599}\n\tag{600}\n\tag{601}\n\tag{602}\n\tag{603}\n\tag{604}\n\tag{605}\n\tag{606}\n\tag{607}\n\tag{608}\n\tag{609}\n\tag{610}\n\tag{611}\n\tag{612}\n\tag{613}\n\tag{614}\n\tag{615}\n\tag{616}\n\tag{617}\n\tag{618}\n\tag{619}\n\tag{620}\n\tag{621}\n\tag{622}\n\tag{623}\n\tag{624}\n\tag{625}\n\tag{626}\n\tag{627}\n\tag{628}\n\tag{629}\n\tag{630}\n\tag{631}\n\tag{632}\n\tag{633}\n\tag{634}\n\tag{635}\n\tag{636}\n\tag{637}\n\tag{638}\n\tag{639}\n\tag{640}\n\tag{641}\n\tag{642}\n\tag{643}\n\tag{644}\n\tag{645}\n\tag{646}\n\tag{647}\n\tag{648}\n\tag{649}\n\tag{650}\n\tag{651}\n\tag{652}\n\tag{653}\n\tag{654}\n\tag{655}\n\tag{656}\n\tag{657}\n\tag{658}\n\tag{659}\n\tag{660}\n\tag{661}\n\tag{662}\n\tag{663}\n\tag{664}\n\tag{665}\n\tag{666}\n\tag{667}\n\tag{668}\n\tag{669}\n\tag{670}\n\tag{671}\n\tag{672}\n\tag{673}\n\tag{674}\n\tag{675}\n\tag{676}\n\tag{677}\n\tag{678}\n\tag{679}\n\tag{680}\n\tag{681}\n\tag{682}\n\tag{683}\n\tag{684}\n\tag{685}\n\tag{686}\n\tag{687}\n\tag{688}\n\tag{689}\n\tag{690}\n\tag{691}\n\tag{692}\n\tag{693}\n\tag{694}\n\tag{695}\n\tag{696}\n\tag{697}\n\tag{698}\n\tag{699}\n\tag{700}\n\tag{701}\n\tag{702}\n\tag{703}\n\tag{704}\n\tag{705}\n\tag{706}\n\tag{707}\n\tag{708}\n\tag{709}\n\tag{710}\n\tag{711}\n\tag{712}\n\tag{713}\n\tag{714}\n\tag{715}\n\tag{716}\n\tag{717}\n\tag{718}\n\tag{719}\n\tag{720}\n\tag{721}\n\tag{722}\n\tag{723}\n\tag{724}\n\tag{725}\n\tag{726}\n\tag{727}\n\tag{728}\n\tag{729}\n\tag{730}\n\tag{731}\n\tag{732}\n\tag{733}\n\tag{734}\n\tag{735}\n\tag{736}\n\tag{737}\n\tag{738}\n\tag{739}\n\tag{740}\n\tag{741}\n\tag{742}\n\tag{743}\n\tag{744}\n\tag{745}\n\tag{746}\n\tag{747}\n\tag{748}\n\tag{749}\n\tag{750}\n\tag{751}\n\tag{752}\n\tag{753}\n\tag{754}\n\tag{755}\n\tag{756}\n\tag{757}\n\tag{758}\n\tag{759}\n\tag{760}\n\tag{761}\n\tag{762}\n\tag{763}\n\tag{764}\n\tag{765}\n\tag{766}\n\tag{767}\n\tag{768}\n\tag{769}\n\tag{770}\n\tag{771}\n\tag{772}\n\tag{773}\n\tag{774}\n\tag{775}\n\tag{776}\n\tag{777}\n\tag{778}\n\tag{779}\n\tag{780}\n\tag{781}\n\tag{782}\n\tag{783}\n\tag{784}\n\tag{785}\n\tag{786}\n\tag{787}\n\tag{788}\n\tag{789}\n\tag{790}\n\tag{791}\n\tag{792}\n\tag{793}\n\tag{794}\n\tag{795}\n\tag{796}\n\tag{797}\n\tag{798}\n\tag{799}\n\tag{800}\n\tag{801}\n\tag{802}\n\tag{803}\n\tag{804}\n\tag{805}\n\tag{806}\n\tag{807}\n\tag{808}\n\tag{809}\n\tag{810}\n\tag{811}\n\tag{812}\n\tag{813}\n\tag{814}\n\tag{815}\n\tag{816}\n\tag{817}\n\tag{818}\n\tag{819}\n\tag{820}\n\tag{821}\n\tag{822}\n\tag{823}\n\tag{824}\n\tag{825}\n\tag{826}\n\tag{827}\n\tag{828}\n\tag{829}\n\tag{830}\n\tag{831}\n\tag{832}\n\tag{833}\n\tag{834}\n\tag{835}\n\tag{836}\n\tag{837}\n\tag{838}\n\tag{839}\n\tag{840}\n\tag{841}\n\tag{842}\n\tag{843}\n\tag{844}\n\tag{845}\n\tag{846}\n\tag{847}\n\tag{848}\n\tag{849}\n\tag{850}\n\tag{851}\n\tag{852}\n\tag{853}\n\tag{854}\n\tag{855}\n\tag{856}\n\tag{857}\n\tag{858}\n\tag{859}\n\tag{860}\n\tag{861}\n\tag{862}\n\tag{863}\n\tag{864}\n\tag{865}\n\tag{866}\n\tag{867}\n\tag{868}\n\tag{869}\n\tag{870}\n\tag{871}\n\tag{872}\n\tag{873}\n\tag{874}\n\tag{875}\n\tag{876}\n\tag{877}\n\tag{878}\n\tag{879}\n\tag{880}\n\tag{881}\n\tag{882}\n\tag{883}\n\tag{884}\n\tag{885}\n\tag{886}\n\tag{887}\n\tag{888}\n\tag{889}\n\tag{890}\n\tag{891}\n\tag{892}\n\tag{893}\n\tag{894}\n\tag{895}\n\tag{896}\n\tag{897}\n\tag{898}\n\tag{899}\n\tag{900}\n\tag{901}\n\tag{902}\n\tag{903}\n\tag{904}\n\tag{905}\n\tag{906}\n\tag{907}\n\tag{908}\n\tag{909}\n\tag{910}\n\tag{911}\n\tag{912}\n\tag{913}\n\tag{914}\n\tag{915}\n\tag{916}\n\tag{917}\n\tag{918}\n\tag{919}\n\tag{920}\n\tag{921}\n\tag{922}\n\tag{923}\n\tag{924}\n\tag{925}\n\tag{926}\n\tag{927}\n\tag{928}\n\tag{929}\n\tag{930}\n\tag{931}\n\tag{932}\n\tag{933}\n\tag{934}\n\tag{935}\n\tag{936}\n\tag{937}\n\tag{938}\n\tag{939}\n\tag{940}\n\tag{941}\n\tag{942}\n\tag{943}\n\tag{944}\n\tag{945}\n\tag{946}\n\tag{947}\n\tag{948}\n\tag{949}\n\tag{950}\n\tag{951}\n\tag{952}\n\tag{953}\n\tag{954}\n\tag{955}\n\tag{956}\n\tag{957}\n\tag{958}\n\tag{959}\n\tag{960}\n\tag{961}\n\tag{962}\n\tag{963}\n\tag{964}\n\tag{965}\n\tag{966}\n\tag{967}\n\tag{968}\n\tag{969}\n\tag{970}\n\tag{971}\n\tag{972}\n\tag{973}\n\tag{974}\n\tag{975}\n\tag{976}\n\tag{977}\n\tag{978}\n\tag{979}\n\tag{1000}"
}