aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples3d/Cargo.toml1
-rw-r--r--examples3d/all_examples3.rs2
-rw-r--r--examples3d/convex_decomposition3.rs134
-rw-r--r--examples3d/media/models/camel_decimated.obj3004
-rw-r--r--examples3d/media/models/chair.obj760
-rw-r--r--examples3d/media/models/cup_decimated.obj3000
-rw-r--r--examples3d/media/models/dilo_decimated.obj3004
-rw-r--r--examples3d/media/models/feline_decimated.obj3000
-rw-r--r--examples3d/media/models/genus3_decimated.obj2998
-rw-r--r--examples3d/media/models/hand2_decimated.obj3055
-rw-r--r--examples3d/media/models/hand_decimated.obj3071
-rw-r--r--examples3d/media/models/hornbug.obj2857
-rw-r--r--examples3d/media/models/octopus_decimated.obj3010
-rw-r--r--examples3d/media/models/rabbit_decimated.obj3003
-rw-r--r--examples3d/media/models/rust_logo_simplified.obj1265
-rw-r--r--examples3d/media/models/screwdriver_decimated.obj3004
-rw-r--r--examples3d/media/models/table.obj142
-rw-r--r--examples3d/media/models/tstTorusModel.obj866
-rw-r--r--examples3d/media/models/tstTorusModel2.obj866
-rw-r--r--examples3d/media/models/tstTorusModel3.obj866
-rw-r--r--src/dynamics/mod.rs2
-rw-r--r--src/geometry/collider.rs8
-rw-r--r--src_testbed/objects/convex.rs13
-rw-r--r--src_testbed/physx_backend.rs1
24 files changed, 37924 insertions, 8 deletions
diff --git a/examples3d/Cargo.toml b/examples3d/Cargo.toml
index 1f9cba3..3f1d3f0 100644
--- a/examples3d/Cargo.toml
+++ b/examples3d/Cargo.toml
@@ -15,6 +15,7 @@ enhanced-determinism = [ "rapier3d/enhanced-determinism" ]
rand = "0.7"
Inflector = "0.11"
nalgebra = "0.24"
+kiss3d = "0.29"
[dependencies.rapier_testbed3d]
path = "../build/rapier_testbed3d"
diff --git a/examples3d/all_examples3.rs b/examples3d/all_examples3.rs
index d9e6aff..ff5a3e8 100644
--- a/examples3d/all_examples3.rs
+++ b/examples3d/all_examples3.rs
@@ -12,6 +12,7 @@ use std::cmp::Ordering;
mod collision_groups3;
mod compound3;
+mod convex_decomposition3;
mod damping3;
mod debug_add_remove_collider3;
mod debug_boxes3;
@@ -74,6 +75,7 @@ pub fn main() {
("Primitives", primitives3::init_world),
("Collision groups", collision_groups3::init_world),
("Compound", compound3::init_world),
+ ("Convex decomposition", convex_decomposition3::init_world),
("Damping", damping3::init_world),
("Domino", domino3::init_world),
("Heightfield", heightfield3::init_world),
diff --git a/examples3d/convex_decomposition3.rs b/examples3d/convex_decomposition3.rs
new file mode 100644
index 0000000..2e35f43
--- /dev/null
+++ b/examples3d/convex_decomposition3.rs
@@ -0,0 +1,134 @@
+use kiss3d::loader::obj;
+use na::{Isometry3, Point3, Translation3};
+use rapier3d::cdl::bounding_volume::{self, BoundingVolume};
+use rapier3d::cdl::transformation::vhacd::{VHACDParameters, VHACD};
+use rapier3d::dynamics::{JointSet, RigidBodyBuilder, RigidBodySet};
+use rapier3d::geometry::{ColliderBuilder, ColliderSet, ColliderShape};
+use rapier_testbed3d::Testbed;
+use std::path::Path;
+
+/*
+ * NOTE: The `r` macro is only here to convert from f64 to the `N` scalar type.
+ * This simplifies experimentation with various scalar types (f32, fixed-point numbers, etc.)
+ */
+pub fn init_world(testbed: &mut Testbed) {
+ /*
+ * World
+ */
+ let mut bodies = RigidBodySet::new();
+ let mut colliders = ColliderSet::new();
+ let joints = JointSet::new();
+
+ /*
+ * Ground
+ */
+ let ground_size = 50.0;
+ let ground_height = 0.1;
+
+ let rigid_body = RigidBodyBuilder::new_static()
+ .translation(0.0, -ground_height, 0.0)
+ .build();
+ let handle = bodies.insert(rigid_body);
+ let collider = ColliderBuilder::cuboid(ground_size, ground_height, ground_size).build();
+ colliders.insert(collider, handle, &mut bodies);
+
+ /*
+ * Create the convex decompositions.
+ */
+ let geoms = models();
+ let ngeoms = geoms.len();
+ let width = (ngeoms as f32).sqrt() as usize;
+ let num_duplications = 4;
+ let shift = 5.0f32;
+
+ for (igeom, obj_path) in geoms.into_iter().enumerate() {
+ let deltas = na::one();
+ let mtl_path = Path::new("");
+
+ let mut compound_parts = Vec::new();
+ println!("Parsing and decomposing: {}", obj_path);
+ let obj = obj::parse_file(&Path::new(&obj_path), &mtl_path, "");
+
+ if let Ok(model) = obj {
+ let meshes: Vec<_> = model
+ .into_iter()
+ .map(|mesh| mesh.1.to_trimesh().unwrap())
+ .collect();
+
+ // Compute the size of the model, to scale it and have similar size for everything.
+ let mut aabb =
+ bounding_volume::details::point_cloud_aabb(&deltas, &meshes[0].coords[..]);
+
+ for mesh in meshes[1..].iter() {
+ aabb.merge(&bounding_volume::details::point_cloud_aabb(
+ &deltas,
+ &mesh.coords[..],
+ ));
+ }
+
+ let center = aabb.center().coords;
+ let diag = (aabb.maxs - aabb.mins).norm();
+
+ for mut trimesh in meshes.into_iter() {
+ trimesh.translate_by(&Translation3::from(-center));
+ trimesh.scale_by_scalar(6.0 / diag);
+
+ let params = VHACDParameters::default();
+ let vertices = &trimesh.coords;
+ let indices = &trimesh.indices.unwrap_unified();
+ let vhacd = VHACD::decompose(&params, vertices, indices, true);
+
+ for (vertices, indices) in vhacd.compute_exact_convex_hulls(vertices, indices) {
+ if let Some(convex) = ColliderShape::convex_mesh(vertices, &indices) {
+ compound_parts.push(convex);
+ }
+ }
+ }
+
+ // let compound = ColliderShape::compound(compound_parts);
+
+ for k in 1..num_duplications + 1 {
+ let x = (igeom % width) as f32 * shift;
+ let y = (igeom / width) as f32 * shift + 4.0;
+ let z = k as f32 * shift;
+
+ let body = RigidBodyBuilder::new_dynamic().translation(x, y, z).build();
+ let handle = bodies.insert(body);
+
+ for part in &compound_parts {
+ let collider = ColliderBuilder::new(part.clone()).build();
+ colliders.insert(collider, handle, &mut bodies);
+ }
+ }
+ }
+ }
+
+ /*
+ * Set up the testbed.
+ */
+ testbed.set_world(bodies, colliders, joints);
+ testbed.look_at(Point3::new(100.0, 100.0, 100.0), Point3::origin());
+}
+
+fn models() -> Vec<String> {
+ vec![
+ "media/models/camel_decimated.obj".to_string(),
+ "media/models/chair.obj".to_string(),
+ "media/models/cup_decimated.obj".to_string(),
+ "media/models/dilo_decimated.obj".to_string(),
+ "media/models/feline_decimated.obj".to_string(),
+ "media/models/genus3_decimated.obj".to_string(),
+ "media/models/hand2_decimated.obj".to_string(),
+ "media/models/hand_decimated.obj".to_string(),
+ "media/models/hornbug.obj".to_string(),
+ "media/models/octopus_decimated.obj".to_string(),
+ "media/models/rabbit_decimated.obj".to_string(),
+ "media/models/rust_logo.obj".to_string(),
+ "media/models/rust_logo_simplified.obj".to_string(),
+ "media/models/screwdriver_decimated.obj".to_string(),
+ "media/models/table.obj".to_string(),
+ "media/models/tstTorusModel.obj".to_string(),
+ // "media/models/tstTorusModel2.obj".to_string(),
+ // "media/models/tstTorusModel3.obj".to_string(),
+ ]
+}
diff --git a/examples3d/media/models/camel_decimated.obj b/examples3d/media/models/camel_decimated.obj
new file mode 100644
index 0000000..f63ad44
--- /dev/null
+++ b/examples3d/media/models/camel_decimated.obj
@@ -0,0 +1,3004 @@
+# 1002
+# 2000
+v -0.050388 -0.350210 0.022403
+v -0.048678 -0.130496 0.060662
+v -0.044669 0.243192 0.277197
+v 0.078833 0.022370 -0.015607
+v 0.050680 0.007189 -0.013118
+v 0.084614 0.010521 0.031128
+v 0.050878 -0.022492 0.024685
+v 0.033090 -0.371687 -0.424968
+v 0.075191 0.093570 -0.253683
+v -0.051764 -0.014380 0.025295
+v -0.076064 -0.014582 0.026880
+v -0.031546 0.449722 0.269074
+v -0.024081 0.414657 0.270146
+v -0.069569 -0.083204 -0.365774
+v -0.055686 0.107869 -0.415909
+v -0.117478 0.179205 -0.201737
+v -0.023915 0.010133 0.095191
+v -0.048404 0.019126 0.107904
+v -0.002358 0.241309 0.365850
+v -0.025664 0.241325 0.358793
+v -0.008902 0.354662 0.366952
+v -0.039608 0.428512 0.450664
+v -0.016938 0.454796 0.438974
+v -0.036921 0.417415 0.391918
+v -0.032057 0.406409 0.423741
+v 0.000371 0.376797 0.488460
+v -0.007894 0.264235 0.260070
+v -0.020176 0.325239 0.278125
+v -0.015544 0.192099 -0.409741
+v -0.027591 0.141760 -0.418868
+v -0.016752 0.124681 -0.410712
+v -0.009241 0.091347 -0.394700
+v -0.039021 -0.425507 -0.397227
+v -0.024504 -0.321668 -0.451027
+v -0.030920 -0.241836 -0.442142
+v -0.047113 -0.204467 -0.443042
+v -0.025112 -0.166981 -0.434575
+v -0.069671 -0.025295 -0.311591
+v -0.083044 -0.020125 -0.307680
+v -0.014762 -0.193705 -0.483566
+v -0.088726 -0.452177 -0.418307
+v -0.084037 -0.454761 0.065889
+v -0.047782 -0.361093 0.015777
+v -0.068511 -0.437601 0.024318
+v -0.049368 -0.453551 0.038600
+v -0.051189 -0.390765 0.051127
+v -0.043158 -0.450001 0.076305
+v 0.000463 -0.262988 0.012976
+v -0.014434 -0.234685 0.045387
+v -0.016971 -0.213612 0.039432
+v -0.007452 -0.002182 -0.445485
+v -0.017204 0.214252 -0.407657
+v -0.003770 0.161810 -0.432425
+v -0.004279 0.187997 -0.437487
+v 0.007123 0.343968 0.065505
+v 0.033276 0.333237 0.051940
+v -0.012411 -0.211216 0.007054
+v -0.042643 -0.117167 0.009132
+v -0.124326 0.062298 0.048544
+v -0.130689 0.102265 0.080301
+v -0.094676 0.026984 0.040359
+v -0.102167 0.029167 0.062763
+v -0.068921 -0.086827 0.012183
+v -0.004079 0.414057 -0.078553
+v 0.003605 0.388842 -0.049820
+v -0.028269 0.330714 -0.003973
+v -0.060655 0.305875 -0.004726
+v -0.079765 0.297511 -0.041093
+v -0.069576 0.345626 -0.078772
+v -0.098494 0.299670 -0.111757
+v -0.141738 0.216390 -0.138374
+v -0.145235 0.117310 -0.139099
+v -0.126093 0.073574 -0.145680
+v -0.113001 0.069134 -0.174687
+v -0.086582 0.040490 -0.178385
+v -0.067740 0.036729 -0.196594
+v -0.072306 0.289049 0.046666
+v -0.008771 0.113710 -0.307686
+v -0.044618 0.102447 -0.279981
+v 0.027119 -0.063073 -0.437349
+v 0.018378 -0.176230 -0.472289
+v 0.035405 -0.281865 0.029584
+v 0.023904 0.009674 0.094208
+v 0.035242 0.463399 0.277158
+v 0.040592 0.381953 0.321156
+v 0.025591 0.453335 0.461662
+v 0.015839 0.457789 0.438348
+v 0.031349 0.475765 0.271976
+v 0.067181 0.478935 0.233496
+v 0.033627 0.336881 0.290329
+v 0.052960 0.473675 0.346195
+v 0.051408 0.386355 0.329605
+v 0.002429 0.376324 0.460823
+v 0.001163 0.381316 0.447729
+v 0.013278 0.083623 -0.401720
+v 0.058015 -0.454024 -0.387010
+v 0.030815 -0.315631 -0.464720
+v 0.067652 -0.422483 -0.397635
+v 0.070014 -0.453641 -0.428822
+v 0.098749 -0.012162 -0.387491
+v 0.065676 -0.091801 -0.420394
+v 0.058214 -0.137208 -0.439754
+v 0.035354 -0.134876 -0.467585
+v 0.034896 -0.192070 -0.488266
+v 0.030118 -0.240837 -0.489575
+v 0.011985 -0.252274 -0.470828
+v 0.043300 -0.442299 0.025235
+v 0.044365 -0.453446 0.045970
+v 0.068087 0.091144 -0.260248
+v 0.047498 0.100933 -0.275746
+v 0.014360 0.087597 -0.355161
+v 0.050234 0.057346 -0.285363
+v 0.047313 0.013387 -0.310783
+v 0.025248 -0.099331 -0.414592
+v 0.012447 -0.015785 -0.391115
+v 0.037125 -0.030309 -0.345573
+v 0.010171 -0.282458 0.022124
+v 0.041287 -0.068818 0.016568
+v 0.040154 -0.240288 0.039401
+v 0.034839 -0.215077 0.037582
+v 0.005613 0.114122 -0.448145
+v 0.142558 0.214990 -0.127540
+v 0.147246 0.160164 -0.153983
+v 0.138468 0.129313 -0.167198
+v 0.121170 0.088986 -0.183606
+v 0.098204 0.070856 -0.206767
+v 0.140692 0.093333 -0.128143
+v 0.110162 0.037784 -0.088067
+v 0.091370 0.021390 -0.063181
+v -0.023665 0.014311 -0.007288
+v -0.039408 0.002793 -0.051799
+v 0.152698 0.137675 -0.087052
+v 0.140846 0.177335 -0.027662
+v 0.130720 0.211621 -0.030426
+v 0.101634 0.234496 0.007479
+v 0.054155 0.277048 0.123919
+v 0.086551 0.229643 0.141995
+v 0.089126 0.198939 0.164927
+v 0.103032 0.172836 0.153206
+v 0.050600 0.221173 0.184858
+v 0.095285 0.293974 -0.078528
+v 0.110115 0.245379 -0.195999
+v 0.102402 0.287292 -0.160884
+v 0.051588 0.399137 -0.171387
+v 0.047114 0.369792 -0.202609
+v 0.018939 0.391096 -0.206778
+v 0.019371 0.417343 -0.181690
+v -0.002113 0.412163 -0.192733
+v 0.078302 0.358406 -0.123736
+v 0.046345 0.390495 -0.087902
+v 0.024471 0.402117 -0.073897
+v 0.047874 -0.333222 0.019491
+v 0.092364 -0.067467 0.062362
+v 0.086169 -0.085054 0.033307
+v 0.102053 -0.019961 0.049005
+v -0.012994 0.012561 0.124190
+v 0.029414 -0.068493 0.068774
+v 0.027370 -0.066404 0.038519
+v 0.029707 -0.128266 0.053262
+v 0.027668 -0.121261 0.028250
+v 0.103957 0.096585 -0.256474
+v 0.018349 0.214659 -0.405838
+v 0.057951 0.215355 -0.384786
+v 0.058152 0.269094 -0.326670
+v 0.093895 0.253759 -0.310216
+v 0.066879 0.104970 -0.411331
+v 0.112875 0.065943 -0.368140
+v 0.124379 0.077915 -0.294444
+v 0.124577 0.156128 -0.341619
+v 0.056614 0.281249 -0.299480
+v -0.003861 0.298973 -0.318120
+v 0.130748 0.148488 -0.259396
+v -0.002980 0.280236 -0.349511
+v 0.075283 0.049851 -0.268880
+v 0.043072 -0.159960 -0.421633
+v 0.041600 -0.316406 -0.434381
+v 0.012978 0.002495 0.069669
+v 0.043623 0.221207 0.322216
+v 0.034982 0.140470 0.272172
+v 0.003108 0.175383 0.335506
+v 0.024620 0.306011 0.363679
+v 0.005728 0.072251 0.185608
+v 0.061387 0.146453 0.191743
+v 0.065589 0.176887 0.191310
+v 0.057434 0.189572 0.250343
+v 0.046028 0.240624 0.279320
+v 0.019348 0.014524 0.123705
+v 0.042121 0.285571 0.342438
+v 0.039800 0.349178 0.327126
+v 0.038772 0.340781 0.305020
+v 0.017695 -0.338477 0.025203
+v 0.022883 -0.435524 0.051676
+v 0.039803 -0.428549 -0.396040
+v 0.055589 -0.322835 -0.442587
+v 0.050945 -0.178451 -0.441333
+v -0.012898 0.415009 0.263138
+v -0.034463 0.485660 0.366983
+v -0.052593 0.474055 0.346235
+v -0.057724 0.483606 0.254205
+v 0.044490 0.471161 0.373052
+v 0.037408 0.485417 0.365346
+v 0.000648 0.484079 0.284889
+v 0.053155 0.459573 0.318230
+v 0.041169 0.445297 0.383209
+v 0.024619 0.004272 0.030404
+v 0.043857 -0.128394 0.061430
+v -0.103476 0.096615 -0.256342
+v -0.030054 0.411544 -0.180280
+v -0.053739 0.394569 -0.172402
+v -0.071325 0.295855 -0.212662
+v -0.056488 -0.008961 -0.421446
+v -0.099808 0.109045 -0.386089
+v -0.055977 0.141253 -0.411436
+v -0.056658 0.310900 0.023839
+v -0.095904 0.243957 0.084682
+v -0.095559 0.066423 0.110171
+v -0.109931 0.150296 0.127258
+v -0.051499 0.212190 0.194123
+v -0.062802 0.151834 0.191618
+v -0.014093 0.075350 0.186125
+v -0.042964 0.041965 0.139481
+v -0.079865 0.092986 0.160544
+v -0.094313 0.234145 0.053789
+v -0.099991 0.238340 0.004356
+v -0.111478 0.187099 0.019957
+v -0.046187 0.253837 0.326166
+v -0.026181 0.204916 0.344325
+v -0.040213 0.298682 0.344034
+v -0.040600 0.382404 0.320416
+v -0.035163 0.131403 0.257416
+v -0.003336 0.121249 0.273963
+v -0.065455 -0.027728 0.099080
+v -0.039505 -0.254310 0.039267
+v -0.017684 -0.341007 0.025394
+v -0.027181 -0.064145 0.038034
+v -0.027211 -0.198894 -0.502216
+v -0.067338 -0.422457 -0.397647
+v -0.043384 0.383701 0.359607
+v -0.051879 0.463914 0.259126
+v -0.059030 0.438765 0.323139
+v -0.068752 -0.043342 -0.422983
+v -0.053963 -0.156312 -0.453094
+v -0.082261 -0.072833 -0.395056
+v -0.121238 0.137009 -0.237346
+v -0.066374 0.476918 0.233133
+v -0.005292 0.395131 0.422050
+v -0.092874 -0.427897 -0.434581
+v -0.069345 -0.438597 -0.445488
+v -0.052347 -0.243278 -0.459110
+v -0.039489 -0.242063 -0.482521
+v -0.061812 -0.003401 -0.304064
+v -0.032486 -0.020976 -0.349176
+v -0.007630 0.235960 0.203423
+v -0.013105 -0.000882 -0.138383
+v 0.059856 0.045677 -0.213532
+v -0.150588 0.177129 -0.081519
+v -0.134452 0.074595 -0.103258
+v -0.118658 0.049633 -0.048969
+v -0.137257 0.087613 -0.042889
+v -0.144179 0.130151 -0.038113
+v -0.145297 0.174350 -0.040744
+v -0.078198 0.027967 0.002237
+v -0.069486 0.012229 -0.035571
+v -0.004913 0.251743 0.178476
+v -0.050060 0.231984 0.175423
+v -0.101399 0.174448 0.155296
+v 0.053265 0.463904 0.256984
+v 0.039128 0.416202 0.465717
+v 0.086953 -0.432209 -0.439544
+v 0.118111 0.021075 -0.349721
+v 0.064393 -0.381081 0.030279
+v 0.125596 0.201692 -0.280324
+v 0.080904 -0.064938 0.076790
+v 0.091226 -0.449675 -0.415880
+v -0.118411 0.019447 -0.346320
+v -0.111850 0.066018 -0.370764
+v -0.121710 0.165572 -0.341172
+v -0.133102 0.142931 -0.301343
+v -0.108526 0.214314 -0.334455
+v -0.109379 0.240223 -0.272671
+v -0.093691 0.242432 -0.329031
+v -0.102557 0.257461 -0.204386
+v -0.041299 0.282123 -0.314024
+v -0.080487 0.196323 -0.377656
+v -0.101782 0.164862 -0.371966
+v 0.101837 0.033050 0.075103
+v 0.119711 0.194034 0.085926
+v 0.108898 0.142579 0.126441
+v 0.096858 0.071076 0.111383
+v -0.091328 0.084544 0.145566
+v -0.008809 -0.281078 0.016601
+v -0.067698 -0.489057 0.138682
+v 0.088414 -0.480779 0.040454
+v -0.032495 -0.486418 0.077704
+v -0.025022 -0.481022 0.063117
+v -0.036431 -0.478389 0.021115
+v -0.101779 -0.473169 0.117638
+v -0.114980 -0.489228 0.120378
+v -0.068237 -0.465958 0.093788
+v -0.072699 -0.487411 0.092523
+v -0.042728 -0.488804 0.095428
+v -0.052503 -0.471605 0.131379
+v -0.042501 -0.464397 0.089240
+v -0.093739 -0.464694 0.080583
+v -0.035999 -0.481023 -0.401880
+v -0.107191 -0.486501 -0.404643
+v -0.114648 -0.473062 -0.349567
+v -0.126731 -0.473674 -0.358506
+v -0.089022 -0.468863 -0.374144
+v -0.100828 -0.462692 -0.398076
+v -0.051974 -0.485920 -0.451119
+v -0.044051 -0.486492 -0.387757
+v 0.025584 -0.480853 0.064474
+v 0.046542 -0.454043 0.078715
+v 0.054422 -0.473098 0.134776
+v 0.099007 -0.486735 0.126081
+v 0.096534 -0.488867 0.074278
+v 0.117948 -0.480132 0.101897
+v 0.109495 -0.484283 0.078742
+v 0.054081 -0.474837 0.017814
+v 0.059947 -0.453641 0.037319
+v 0.063500 -0.474837 -0.448120
+v 0.046383 -0.474738 -0.439736
+v 0.044156 -0.486202 -0.388084
+v 0.109397 -0.483071 -0.403496
+v 0.079771 -0.471968 -0.338153
+v 0.050467 -0.486452 -0.447413
+v -0.046524 0.466081 0.370810
+v 0.000078 0.408604 0.442612
+v 0.015894 0.230818 0.211378
+v 0.013690 0.112200 -0.340508
+v -0.000037 0.119091 -0.330876
+v -0.071819 0.035564 -0.409953
+v -0.082245 0.119971 -0.400760
+v -0.052126 -0.150009 -0.419311
+v -0.007207 -0.184341 -0.463539
+v 0.053756 -0.373134 -0.422697
+v 0.001190 -0.199838 -0.464478
+v 0.018829 -0.165528 -0.447860
+v 0.062122 0.000889 0.022484
+v 0.061033 0.010527 -0.000490
+v 0.007743 0.246118 0.182739
+v 0.071835 -0.022888 0.099776
+v 0.087501 -0.091836 0.045589
+v -0.038030 0.415888 -0.120202
+v -0.045208 0.218503 0.235214
+v -0.022104 -0.172486 0.040445
+v -0.029351 -0.123291 0.052777
+v -0.016395 0.461688 0.394822
+v -0.035376 0.411039 0.470648
+v -0.055078 0.455801 0.247124
+v -0.031041 0.462058 0.263962
+v -0.094128 -0.449425 -0.404212
+v -0.010308 -0.228811 -0.492932
+v -0.010144 -0.189900 -0.495075
+v -0.058799 -0.151188 -0.437313
+v -0.074771 -0.096900 -0.393627
+v -0.107230 -0.025008 -0.353776
+v -0.102118 -0.026074 -0.330292
+v -0.115523 0.003974 -0.320467
+v -0.123714 0.063794 -0.309890
+v -0.120367 0.043370 -0.301452
+v -0.100875 -0.015869 -0.383827
+v 0.001905 -0.015999 -0.450062
+v 0.001528 0.044985 -0.449466
+v 0.002167 0.182729 -0.443005
+v -0.009002 -0.230580 -0.002776
+v -0.058491 -0.078657 0.010115
+v 0.042199 -0.214937 0.029802
+v 0.067287 -0.438953 -0.445787
+v 0.093289 -0.018562 0.083636
+v 0.133780 0.139588 -0.294621
+v 0.132557 0.175593 -0.277554
+v 0.100698 0.251750 -0.292192
+v 0.110099 0.222348 -0.323522
+v 0.071632 0.286814 -0.234379
+v 0.096625 0.264637 -0.209633
+v 0.109117 0.241547 -0.264376
+v 0.049181 0.300591 -0.247881
+v 0.013502 0.274691 -0.350342
+v -0.000027 0.255278 -0.378684
+v 0.011135 0.296488 -0.317608
+v 0.109325 0.176391 -0.357723
+v 0.053338 0.149959 -0.410413
+v 0.025455 0.197871 -0.405681
+v 0.091489 0.154569 -0.385418
+v 0.106630 0.126872 -0.376942
+v 0.084215 0.089205 -0.402137
+v 0.037593 0.132921 -0.419288
+v 0.046557 0.032938 -0.417391
+v 0.069487 0.017212 -0.413478
+v 0.059841 -0.059535 -0.432292
+v 0.049334 -0.009560 -0.423298
+v 0.091263 0.034473 -0.397264
+v 0.127067 0.182772 -0.311411
+v 0.130375 0.146016 -0.321992
+v -0.000253 0.432308 -0.160804
+v 0.019815 0.427045 -0.162127
+v 0.018340 0.429295 -0.137132
+v 0.037493 -0.022715 0.086051
+v 0.043327 -0.056591 0.085810
+v 0.016700 -0.213258 0.038978
+v 0.012248 -0.240040 0.044513
+v 0.022016 -0.282354 0.033301
+v 0.029438 -0.394788 0.054354
+v 0.048190 -0.264120 0.011747
+v 0.040492 -0.281369 0.013271
+v 0.048588 -0.346518 0.031763
+v 0.052116 -0.391441 0.051100
+v 0.038187 -0.340841 0.039912
+v 0.066155 -0.427603 0.065941
+v 0.024034 -0.339020 0.039242
+v 0.085103 -0.426287 0.044666
+v 0.018683 -0.159872 -0.476951
+v 0.122333 0.138481 -0.237767
+v 0.119776 0.106366 -0.266741
+v 0.116574 0.024727 -0.301933
+v 0.105314 0.000061 -0.306693
+v 0.092752 0.011905 -0.287678
+v 0.102474 -0.024803 -0.328765
+v 0.082076 -0.026899 -0.313269
+v 0.066366 -0.092922 -0.373628
+v 0.058987 -0.198211 -0.458726
+v 0.055650 -0.164243 -0.447878
+v 0.071535 -0.105466 -0.395527
+v 0.108739 -0.021173 -0.342503
+v 0.120338 0.019808 -0.324253
+v 0.122037 0.073357 -0.336268
+v 0.107939 -0.020949 -0.361398
+v 0.054732 -0.453446 -0.419654
+v 0.067073 -0.354903 -0.450965
+v 0.045359 -0.308061 -0.467448
+v 0.057788 -0.199874 -0.470998
+v 0.028262 -0.209193 -0.500156
+v 0.083179 -0.071071 -0.394159
+v 0.014484 0.354423 0.365046
+v 0.029671 0.405875 0.387026
+v 0.048285 0.389210 0.363268
+v 0.005171 0.393838 0.496150
+v 0.009848 0.383188 0.369273
+v 0.015902 0.400763 0.393889
+v 0.065407 0.465518 0.265856
+v -0.039192 0.330172 0.055325
+v -0.019539 0.339713 0.072218
+v -0.065704 0.306976 -0.023212
+v -0.149537 0.180846 -0.139816
+v -0.153452 0.152809 -0.119699
+v -0.061279 0.016156 -0.153198
+v -0.040124 0.037374 -0.213445
+v -0.012697 0.050593 -0.229715
+v 0.031136 0.039939 -0.219502
+v 0.012217 0.011009 -0.176831
+v 0.047690 0.022625 -0.188266
+v 0.026471 -0.002403 -0.117814
+v 0.050131 0.012188 -0.156260
+v 0.078762 0.014224 -0.099742
+v 0.134701 0.090469 -0.024097
+v 0.116234 0.086875 0.013521
+v -0.029739 0.008804 -0.167337
+v 0.128411 0.069012 -0.034842
+v 0.118984 0.048326 -0.053774
+v 0.087067 0.042727 -0.181938
+v 0.090309 0.029900 -0.140793
+v 0.112281 0.059049 -0.159369
+v -0.101956 0.033997 -0.116404
+v -0.115829 0.045234 -0.090356
+v -0.147960 0.109343 -0.102947
+v -0.151172 0.130129 -0.084840
+v -0.133894 0.194943 -0.023061
+v -0.130406 0.230506 -0.057293
+v -0.080707 0.264062 0.072662
+v -0.069625 0.242972 0.150559
+v -0.031381 0.317299 0.104292
+v -0.064237 0.282257 0.091819
+v -0.100399 0.229744 0.115885
+v -0.089073 0.206393 0.160164
+v -0.092422 0.163138 0.172228
+v -0.028886 0.293680 0.136303
+v -0.031025 0.224872 0.210293
+v -0.106994 0.214949 0.013051
+v -0.134367 0.148978 -0.008196
+v -0.130935 0.102852 -0.009536
+v -0.101435 0.053394 0.006684
+v -0.124592 0.074175 -0.015902
+v -0.059838 0.013310 -0.007735
+v -0.099892 0.029075 -0.055218
+v -0.051988 0.003316 -0.106161
+v -0.084357 0.017146 -0.100095
+v -0.140549 0.218041 -0.072779
+v -0.037965 0.395858 -0.081611
+v -0.020341 0.391378 -0.059459
+v -0.006543 0.337291 0.094120
+v -0.019458 0.097718 -0.281240
+v 0.007026 0.095424 -0.280681
+v -0.119587 0.106568 -0.266803
+v -0.110999 0.052996 -0.277480
+v -0.016810 -0.283046 0.031996
+v -0.010906 -0.260851 0.041674
+v -0.035681 -0.131054 0.057928
+v -0.036500 -0.078122 0.075735
+v -0.042569 -0.014777 0.093015
+v -0.121417 0.081752 0.088014
+v -0.101368 0.132698 0.147123
+v -0.086606 0.143319 0.174753
+v -0.115259 0.209489 0.090926
+v -0.100578 -0.028623 0.068007
+v -0.098870 0.036517 0.083040
+v -0.030915 -0.096273 -0.398771
+v -0.022851 -0.087617 -0.419179
+v -0.007674 0.067510 -0.374899
+v -0.018481 -0.018724 -0.375976
+v -0.052131 0.062866 -0.281215
+v -0.041962 0.049177 -0.307793
+v -0.050259 -0.033686 -0.328654
+v -0.037953 -0.165720 -0.427221
+v -0.064097 0.059765 -0.271489
+v -0.067302 0.093478 -0.259385
+v -0.015540 -0.203399 -0.442302
+v -0.040496 -0.326288 -0.433812
+v -0.023040 -0.436276 0.052285
+v -0.036983 -0.188376 -0.485054
+v -0.051279 -0.179451 -0.439947
+v -0.056182 -0.186579 -0.466005
+v -0.059600 -0.203901 -0.467908
+v -0.069907 -0.363402 -0.444152
+v -0.090839 -0.424531 -0.413938
+v -0.066184 -0.374898 -0.429490
+v -0.054558 -0.371536 -0.423950
+v -0.053332 -0.306295 -0.444193
+v -0.059510 -0.453550 -0.427199
+v -0.045661 -0.309595 -0.466462
+v -0.053120 -0.299283 -0.458586
+v -0.029620 -0.310154 -0.466177
+v -0.037188 -0.301389 -0.469991
+v -0.050127 -0.440567 -0.441399
+v -0.027087 0.349954 0.354089
+v -0.029174 0.404955 0.386894
+v -0.010887 0.386779 0.371080
+v 0.024578 0.385967 0.471735
+v 0.030870 0.403730 0.429078
+v 0.006571 0.393955 0.406645
+v 0.000272 0.389990 0.441555
+v -0.043124 0.469307 0.286836
+v -0.050797 0.456395 0.374602
+v -0.050456 0.442140 0.371282
+v -0.055931 0.432705 0.366140
+v -0.046414 0.458167 0.289795
+v -0.013075 0.004749 0.049109
+v -0.012518 0.002736 0.070044
+v -0.045184 -0.002023 0.017834
+v -0.040400 -0.019599 0.032745
+v -0.030816 -0.022160 0.046776
+v -0.095781 0.112679 -0.235381
+v -0.082537 0.097260 -0.248684
+v -0.077067 -0.431999 0.060173
+v -0.065049 -0.388143 0.035236
+v -0.045130 -0.344404 0.035922
+v -0.050172 -0.253401 0.018525
+v -0.032675 -0.336108 0.039680
+v -0.038325 -0.281704 0.025802
+v -0.040229 -0.140618 -0.466911
+v -0.065284 -0.081355 -0.421982
+v -0.054408 0.403867 0.365764
+v -0.051450 0.386826 0.336552
+v -0.000609 0.437601 0.481250
+v -0.029364 0.442940 0.463075
+v -0.022361 0.394270 0.479231
+v -0.037258 0.405855 0.447512
+v -0.034979 0.463234 0.277389
+v -0.040818 0.423221 0.291736
+v -0.030020 0.337999 0.284570
+v -0.039446 0.350380 0.330090
+v -0.037821 0.346631 0.302726
+v -0.023417 0.283020 0.365523
+v -0.041185 0.246438 0.340855
+v -0.019286 0.180813 0.331966
+v -0.005591 0.149891 0.310432
+v -0.030916 0.156988 0.295340
+v -0.033030 0.374740 0.348904
+v -0.046616 0.254103 0.309564
+v -0.036105 0.294539 0.287783
+v -0.036270 0.264875 0.278978
+v -0.020740 0.236740 0.235117
+v -0.035862 -0.437200 -0.426734
+v -0.038642 -0.374118 -0.422217
+v -0.001435 -0.206290 -0.464448
+v -0.040146 -0.102342 -0.454004
+v -0.027472 -0.426639 0.065285
+v -0.034086 -0.395914 0.055099
+v -0.028638 -0.073059 0.067054
+v -0.031865 -0.022956 0.077899
+v -0.041845 -0.058806 0.017392
+v -0.009639 -0.256358 -0.005748
+v -0.013662 -0.282168 0.004456
+v -0.029395 -0.380520 0.018087
+v -0.027099 -0.438425 0.039327
+v -0.084051 -0.427517 0.036408
+v -0.083119 -0.033168 0.091192
+v -0.059886 0.177131 0.208681
+v -0.059682 0.183330 0.197694
+v -0.058812 0.178812 0.232936
+v -0.050410 0.196906 0.282799
+v -0.046902 0.162520 0.269211
+v -0.048294 0.112781 0.189031
+v -0.029559 0.092330 0.198643
+v -0.055539 0.115317 0.182126
+v -0.128644 0.090621 0.041161
+v -0.129316 0.122664 0.042404
+v -0.123152 0.145881 0.038521
+v -0.114967 0.156788 0.022679
+v -0.041114 -0.211949 0.031104
+v -0.044225 -0.211942 0.019630
+v -0.035602 -0.215922 0.037216
+v -0.090076 -0.068071 0.066179
+v -0.082213 -0.107040 0.042990
+v -0.021186 0.025877 0.142197
+v -0.026684 0.071611 0.176438
+v -0.074173 0.048689 0.134285
+v -0.081209 0.026272 0.106598
+v -0.022254 0.331721 0.013975
+v 0.000168 0.429004 -0.110934
+v -0.018006 0.429295 -0.137131
+v -0.018932 0.427312 -0.161637
+v -0.048962 0.041144 -0.415686
+v -0.032427 0.038727 -0.413922
+v -0.033666 -0.010094 -0.423540
+v -0.022376 0.380054 -0.211810
+v -0.046610 0.369153 -0.203317
+v -0.048376 0.315171 -0.228452
+v -0.098322 0.285382 -0.175274
+v -0.119258 0.214819 -0.193790
+v -0.123505 0.205978 -0.292846
+v -0.131659 0.179149 -0.275137
+v 0.000101 0.331314 -0.247099
+v -0.050531 0.183772 -0.400066
+v -0.054596 0.219315 -0.383726
+v -0.048129 0.250656 -0.358345
+v -0.069209 0.267548 -0.318930
+v -0.070038 0.352669 -0.183837
+v -0.019062 0.326570 -0.243758
+v -0.073045 0.373286 -0.151794
+v -0.057182 0.397328 -0.126050
+v -0.049561 0.409230 -0.153230
+v -0.086611 0.045109 -0.268802
+v -0.101432 0.018376 -0.289261
+v 0.058746 -0.121558 0.062922
+v 0.048060 -0.005131 0.022883
+v 0.030542 -0.021685 0.048461
+v 0.038619 -0.019344 0.034446
+v 0.000294 0.476909 0.394879
+v 0.048240 0.460729 0.371474
+v 0.025566 0.483458 0.307097
+v -0.001872 0.489576 0.379794
+v -0.034355 0.484295 0.327688
+v -0.017234 0.477995 0.269975
+v -0.028502 0.474820 0.272765
+v 0.043386 0.469259 0.286757
+v -0.027209 0.450525 0.464160
+v 0.002525 0.466007 0.439976
+v -0.012275 0.470538 0.395492
+v 0.020578 0.465684 0.260494
+v 0.053066 0.453126 0.250175
+v 0.006105 0.421850 0.259408
+v 0.000177 0.237005 0.229810
+v 0.021184 0.236169 0.233942
+v 0.043566 0.226943 0.245795
+v 0.036003 0.257852 0.274299
+v 0.034575 0.287134 0.284687
+v 0.046270 0.215046 0.221670
+v 0.028244 0.216322 0.346434
+v 0.032294 0.253867 0.356564
+v 0.034068 0.353209 0.344226
+v 0.095548 -0.425213 -0.426049
+v 0.095404 -0.455692 -0.400036
+v 0.051404 -0.245448 -0.469054
+v 0.053445 -0.290246 -0.457321
+v 0.049600 -0.255108 -0.448751
+v 0.015045 -0.196945 -0.483709
+v 0.026487 -0.191498 -0.499902
+v 0.009503 -0.196701 -0.496676
+v 0.036811 -0.251319 -0.440604
+v 0.015555 -0.209153 -0.443246
+v 0.028197 -0.169907 -0.432980
+v 0.029559 -0.438189 0.034708
+v 0.023507 0.335914 0.278331
+v 0.054778 0.018453 0.108921
+v 0.045293 0.020897 0.111765
+v 0.052347 0.106844 0.178506
+v 0.044078 0.105096 0.189583
+v 0.059812 0.185493 0.205576
+v 0.047190 0.243011 0.305108
+v 0.041645 0.287723 0.301607
+v 0.027861 0.082790 0.186302
+v 0.021049 0.026983 0.143598
+v 0.015073 0.084745 0.201573
+v 0.041333 0.043428 0.141578
+v 0.075447 0.044271 0.129210
+v 0.078090 0.087245 0.158512
+v 0.084144 0.125795 0.172079
+v 0.051683 0.211686 0.194226
+v 0.091402 0.085668 0.146921
+v 0.085397 0.028955 0.103232
+v 0.003021 0.278251 0.371600
+v 0.019834 0.240068 0.361598
+v 0.027989 0.184622 0.326598
+v 0.005101 0.206708 0.354221
+v 0.008895 0.136618 0.293173
+v 0.049968 0.157612 0.258435
+v 0.030923 -0.023918 0.069062
+v 0.112154 0.153041 -0.212018
+v 0.033895 -0.188982 -0.436816
+v 0.047495 -0.116926 -0.389320
+v 0.100415 0.046447 -0.271729
+v 0.063146 -0.029076 -0.316160
+v 0.122074 0.205390 -0.199654
+v 0.121424 0.209937 -0.191851
+v 0.129191 0.242211 -0.143080
+v 0.101684 0.291212 -0.109234
+v 0.074000 0.371375 -0.151000
+v 0.050016 0.409546 -0.151067
+v 0.050683 0.408260 -0.132130
+v 0.034297 0.413771 -0.108025
+v 0.071135 0.350722 -0.184240
+v 0.021986 0.326179 -0.242611
+v 0.050224 0.313703 -0.226972
+v 0.086995 0.286198 -0.198936
+v -0.001479 -0.235853 0.014551
+v 0.042010 -0.112815 0.009128
+v 0.015242 -0.208954 0.006168
+v 0.011071 -0.202948 0.017835
<