diff options
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(¶ms, 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 < |
