├── 3D_features ├── open3d_compute_normals.py └── pcl_compute_normals.cpp ├── CMakeLists.txt ├── README.md ├── data ├── bunny.ply ├── cloud_bin_0.pcd ├── cloud_bin_00.pcd ├── cloud_bin_1.pcd ├── frag_115.ply ├── frag_116.ply ├── lena_color.jpg ├── object_template_0.pcd ├── object_template_1.pcd ├── object_template_2.pcd ├── object_template_3.pcd ├── object_template_4.pcd ├── object_template_5.pcd ├── object_templates.txt ├── person.pcd ├── robot1.pcd ├── robot2.pcd └── table_scene_lms400.pcd ├── filtering ├── open3d_filtering.py └── pcl_filtering.cpp ├── io ├── open3d_file_io.py ├── pcl_read_pcd.cpp └── pcl_write_pcd.cpp ├── keypoints ├── open3d_keypoints.py └── pcl_keypoints.cpp ├── openni_grabber └── pcl_openni_grabber.cpp ├── registration ├── open3d_colored_icp.py ├── open3d_fast_global_registration.py ├── open3d_global_registration.py ├── open3d_icp.py ├── pcl_icp.cpp └── pcl_template_matching.cpp ├── sample_consensus └── pcl_sample_consensus.cpp ├── segmentation ├── pcl_euclidean_cluster_extraction.cpp └── pcl_plane_segmentation.cpp └── trees ├── open3d_kdtree.py ├── pcl_kdtree.cpp └── pcl_octree.cpp /3D_features/open3d_compute_normals.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | import numpy as np 6 | from open3d import * 7 | 8 | if __name__ == "__main__": 9 | 10 | print("Load a point cloud, print it, and render it") 11 | pcd = read_point_cloud("../data/robot1.pcd") 12 | print(pcd) 13 | print(np.asarray(pcd.points)) 14 | draw_geometries([pcd]) 15 | 16 | print("Compute the normals of the downsampled point cloud") 17 | downpcd = voxel_down_sample(pcd, voxel_size = 0.01) 18 | estimate_normals(downpcd, search_param = KDTreeSearchParamHybrid( 19 | radius = 0.03, max_nn = 30)) 20 | draw_geometries([downpcd]) 21 | print("") 22 | -------------------------------------------------------------------------------- /3D_features/pcl_compute_normals.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | void 10 | downsample (pcl::PointCloud::Ptr &points, float leaf_size, 11 | pcl::PointCloud::Ptr &downsampled_out) 12 | { 13 | pcl::VoxelGrid vox_grid; 14 | vox_grid.setLeafSize (leaf_size, leaf_size, leaf_size); 15 | vox_grid.setInputCloud (points); 16 | vox_grid.filter (*downsampled_out); 17 | } 18 | 19 | void compute_surface_normals (pcl::PointCloud::Ptr &points, float normal_radius, 20 | pcl::PointCloud::Ptr &normals_out) 21 | { 22 | pcl::NormalEstimation norm_est; 23 | 24 | // Use a FLANN-based KdTree to perform neighborhood searches 25 | norm_est.setSearchMethod (pcl::search::KdTree::Ptr 26 | (new pcl::search::KdTree)); 27 | 28 | // Specify the size of the local neighborhood to use when computing the surface normals 29 | norm_est.setRadiusSearch (normal_radius); 30 | 31 | // Set the input points 32 | norm_est.setInputCloud (points); 33 | 34 | // Estimate the surface normals and store the result in "normals_out" 35 | norm_est.compute (*normals_out); 36 | } 37 | 38 | void visualize_normals (const pcl::PointCloud::Ptr points, 39 | const pcl::PointCloud::Ptr normal_points, 40 | const pcl::PointCloud::Ptr normals) 41 | { 42 | // Add the points and normals to the vizualizer 43 | pcl::visualization::PCLVisualizer viz; 44 | viz.addPointCloud (points, "points"); 45 | viz.addPointCloud (normal_points, "normal_points"); 46 | 47 | viz.addPointCloudNormals (normal_points, normals, 1, 0.01, "normals"); 48 | 49 | // Give control over to the visualizer 50 | viz.spin (); 51 | } 52 | 53 | 54 | int main (int argc, char** argv) 55 | { 56 | // Load data from pcd 57 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 58 | if (pcl::io::loadPCDFile ("../data/robot1.pcd", *cloud) == -1) //* load the file 59 | { 60 | PCL_ERROR ("Couldn't read file robot1.pcd \n"); 61 | return (-1); 62 | } 63 | 64 | // Point Clouds to hold output 65 | pcl::PointCloud::Ptr downsampled (new pcl::PointCloud); 66 | pcl::PointCloud::Ptr normals (new pcl::PointCloud); 67 | 68 | // Downsample the cloud 69 | const float voxel_grid_leaf_size = 0.01; 70 | downsample (cloud, voxel_grid_leaf_size, downsampled); 71 | 72 | // Compute surface normals 73 | const float normal_radius = 0.03; 74 | compute_surface_normals (downsampled, normal_radius, normals); 75 | 76 | visualize_normals(cloud, downsampled, normals); 77 | 78 | return(0); 79 | } 80 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8 FATAL_ERROR) 2 | 3 | project(pointcloud_tutorials) 4 | 5 | find_package(PCL 1.2 REQUIRED) 6 | 7 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 8 | set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}") 9 | 10 | include_directories(${PCL_INCLUDE_DIRS}) 11 | link_directories(${PCL_LIBRARY_DIRS}) 12 | add_definitions(${PCL_DEFINITIONS}) 13 | 14 | add_executable (pcl_write_pcd io/pcl_write_pcd.cpp) 15 | target_link_libraries (pcl_write_pcd ${PCL_LIBRARIES}) 16 | 17 | add_executable (pcl_read_pcd io/pcl_read_pcd.cpp) 18 | target_link_libraries (pcl_read_pcd ${PCL_LIBRARIES}) 19 | 20 | add_executable (pcl_openni_grabber openni_grabber/pcl_openni_grabber.cpp) 21 | target_link_libraries (pcl_openni_grabber ${PCL_LIBRARIES}) 22 | 23 | add_executable (pcl_compute_normals 3D_features/pcl_compute_normals.cpp) 24 | target_link_libraries (pcl_compute_normals ${PCL_LIBRARIES}) 25 | 26 | add_executable (pcl_filtering filtering/pcl_filtering.cpp) 27 | target_link_libraries (pcl_filtering ${PCL_LIBRARIES}) 28 | 29 | add_executable (pcl_keypoints keypoints/pcl_keypoints.cpp) 30 | target_link_libraries (pcl_keypoints ${PCL_LIBRARIES}) 31 | 32 | add_executable (pcl_sample_consensus sample_consensus/pcl_sample_consensus.cpp) 33 | target_link_libraries (pcl_sample_consensus ${PCL_LIBRARIES}) 34 | 35 | add_executable (pcl_plane_segmentation segmentation/pcl_plane_segmentation.cpp) 36 | target_link_libraries (pcl_plane_segmentation ${PCL_LIBRARIES}) 37 | 38 | add_executable (pcl_euclidean_cluster_extraction segmentation/pcl_euclidean_cluster_extraction.cpp) 39 | target_link_libraries (pcl_euclidean_cluster_extraction ${PCL_LIBRARIES}) 40 | 41 | add_executable (pcl_kdtree trees/pcl_kdtree.cpp) 42 | target_link_libraries (pcl_kdtree ${PCL_LIBRARIES}) 43 | 44 | add_executable (pcl_octree trees/pcl_octree.cpp) 45 | target_link_libraries (pcl_octree ${PCL_LIBRARIES}) 46 | 47 | add_executable (pcl_icp registration/pcl_icp.cpp) 48 | target_link_libraries (pcl_icp ${PCL_LIBRARIES}) 49 | 50 | add_executable (pcl_template_matching registration/pcl_template_matching.cpp) 51 | target_link_libraries (pcl_template_matching ${PCL_LIBRARIES}) 52 | 53 | set(BINARIES pcl_write_pcd pcl_read_pcd pcl_openni_grabber pcl_compute_normals pcl_filtering pcl_keypoints pcl_sample_consensus pcl_plane_segmentation pcl_euclidean_cluster_extraction pcl_kdtree pcl_octree pcl_icp pcl_template_matching) 54 | set(PYTHON_SRC 3D_features/open3d_compute_normals.py filtering/open3d_filtering.py io/open3d_file_io.py keypoints/open3d_keypoints.py registration/open3d_icp.py registration/open3d_colored_icp.py registration/open3d_global_registration.py registration/open3d_fast_global_registration.py trees/open3d_kdtree.py) 55 | install(TARGETS ${BINARIES} DESTINATION bin) 56 | install(FILES ${PYTHON_SRC} DESTINATION bin) 57 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pointcloud Tutorial 2 | 3 | The purpose of this tutorial is to provide examples of how to work with 3D or multidimensional data using two popular libraries: Point Cloud Library (PCL) and Open3D. 4 | These examples will cover such topics as I/O, features, keypoints, registration, segmentation, and sample consensus. 5 | 6 | ## Preliminaries and Dependencies 7 | Your system should have a modern compiler that supports C++11, as well as git and CMake. To use the python bindings for Open3D, you will also need either python 2.7 or 3.5+. 8 | 9 | ### PCL 10 | If you have ROS installed already, then you should have a version of PCL on your computer already. 11 | If not, then you can install pre-built binaries (or build from source) for a variety of operating systems based on these instructions: [http://www.pointclouds.org/downloads/](http://www.pointclouds.org/downloads/). 12 | The Ubuntu directions are copied below for convenience: 13 | ``` 14 | sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl 15 | sudo apt-get update 16 | sudo apt-get install libpcl-all 17 | ``` 18 | Even if you have a version of the library through ROS, you should also install some tools for interfacing with the library in a non-ROS way: 19 | ``` 20 | sudo apt-get install pcl-tools 21 | ``` 22 | 23 | ### Open3D 24 | This library can be installed from source, according to these directions [http://www.open3d.org/docs/getting_started.html#ubuntu](http://www.open3d.org/docs/getting_started.html#ubuntu). 25 | However, I found that for Ubuntu 16.04, there are conflicts between ROS and libpng16-dev, which is one of the normal dependencies if you follow the instructions. 26 | Executing their script to install dependencies will remove ROS, which you probably don't want. 27 | So here is a workaround that I had success with on 16.04: 28 | ``` 29 | git clone https://github.com/IntelVCL/Open3D 30 | sudo pip (or pip3) install pybind11 31 | sudo apt-get install xorg-dev libglu1-mesa-dev libgl1-mesa-glx libglew-dev libglfw3-dev libjsoncpp-dev libeigen3-dev libjpeg-dev python-dev python-tk python3-dev python3-tk 32 | cd Open3D 33 | mkdir build 34 | cd build 35 | cmake -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python (or /usr/bin/python3) -DBUILD_PNG=YES ../src 36 | make -j 37 | sudo make install 38 | ``` 39 | You can then verify that the library installed correctly by opening a python interpreter and checking to see that `import open3d` does not produce errors. 40 | 41 | ### Building the Examples 42 | 1. If you're reading this README, you've probably already cloned this repository, but if not, 43 | navigate to your desired install directory and run: 44 | ``` 45 | git clone git@github.com:jeffdelmerico/pointcloud_tutorial.git 46 | ``` 47 | 48 | 2. Navigate into the pointcloud_tutorials directory, then execute the following commands to build the 49 | examples: 50 | ``` 51 | mkdir build 52 | cd build 53 | cmake .. 54 | make -j && make install 55 | ``` 56 | 57 | 3. Assuming the examples all built correctly, you should have some executables in a new `bin` directory. 58 | 59 | ## Running the Examples 60 | ``` 61 | cd ../bin 62 | ``` 63 | ### I/O: 64 | #### PCL 65 | Write a pcd file of randomly generated points and visualize it with pcd_viewer: 66 | ``` 67 | ./pcl_write_pcd 68 | pcl_viewer test_pcd.pcd 69 | ``` 70 | Read in that same pcd file: 71 | ``` 72 | ./pcl_read_pcd 73 | ``` 74 | Grab point clouds from an RGBD camera (be sure one is connected): 75 | ``` 76 | ./pcl_openni_grabber 77 | ``` 78 | #### Open3D 79 | Read and then write a copy of a pcd, ply, and jpg file: 80 | ``` 81 | python3 open3d_file_io.py 82 | ``` 83 | 84 | ### 3D Features: 85 | #### PCL 86 | Compute point normals on a point cloud and use built-in visualizer: 87 | ``` 88 | ./pcl_compute_normals 89 | ``` 90 | #### Open3D 91 | Compute point normals on a point cloud and use built-in visualizer: 92 | ``` 93 | python3 open3d_compute_normals.py 94 | ``` 95 | press 'n' to visualize the normals once they have been computed. 96 | 97 | ### Filtering: 98 | #### PCL 99 | Run one of 3 different filters on a point cloud: 100 | ``` 101 | ./pcl_filtering 0 (pass through filter) 102 | ./pcl_filtering 1 (downsample to a voxel grid) 103 | ./pcl_filtering 2 (perform statistical outlier removal) 104 | ``` 105 | Visualize the output side-by-side with the original: 106 | ``` 107 | pcl_viewer -multiview 1 ../data/table_scene_lms400.pcd table_scene_lms400_filtered.pcd 108 | ``` 109 | press 'r' to zero the viewpoint, and 'l' to list the color handlers. 110 | #### Open3D 111 | Run the first two filters sequentially: 112 | ``` 113 | python3 open3d_filtering.py 114 | ``` 115 | Outlier removal filtering is not supported, and it's also not straightforward to visualize multiple point clouds separately. 116 | 117 | ### Keypoints: 118 | #### PCL 119 | Find SIFT keypoints in a point cloud and visualize: 120 | ``` 121 | ./pcl_keypoints ../data/robot1.pcd keypoints 122 | ``` 123 | Compute PFH features on SIFT keypoints for two point clouds and then compute their correspondences: 124 | ``` 125 | ./pcl_keypoints ../data/robot correspondences 126 | ``` 127 | #### Open3D 128 | Open3D uses downsampled point clouds rather than keypoints when computing features and correspondences. 129 | However, it is possible to compute PFH features on a downsampled point cloud: 130 | ``` 131 | python3 open3d_keypoints.py 132 | ``` 133 | 134 | ### Trees: 135 | #### PCL 136 | Put some random points into a KdTree; do NN and radius search near a random point in space: 137 | ``` 138 | ./pcl_kdtree 139 | ``` 140 | Put some random points into an Octree; do voxel, NN, and radius search near a random point in space: 141 | ``` 142 | ./pcl_octree 143 | ``` 144 | #### Open3D 145 | Load a point cloud into a KdTree, then do NN and radius search around a point in the cloud: 146 | ``` 147 | python3 open3d_kdtree.py 148 | ``` 149 | 150 | ### Sample Consensus: 151 | #### PCL 152 | Generate some points that fit a planar model as well as a bunch of outliers: 153 | ``` 154 | ./pcl_sample_consensus 155 | ``` 156 | Generate points as before, but use sample consensus to find inliers to a planar model: 157 | ``` 158 | ./pcl_sample_consensus -f 159 | ``` 160 | #### Open3D 161 | Plane fitting is not implemented in Open3D, but would be straightforward to implement. RANSAC is used implicitly within Open3D's registration functionaity. 162 | 163 | ### Segmentation: 164 | #### PCL 165 | Perform iterative plane segmentation on real point cloud data: 166 | ``` 167 | ./pcl_plane_segmentation 168 | ``` 169 | Visualize the output side-by-side with the original: 170 | ``` 171 | pcl_viewer -multiview 1 ../data/table_scene_lms400.pcd table_scene_lms400_first_plane.pcd table_scene_lms400_second_plane.pcd 172 | ``` 173 | Perform euclidean cluster extraction after removing the dominant planes in the scene: 174 | ``` 175 | ./pcl_euclidean_cluster_extraction 176 | ``` 177 | Visualize the output with all clusters in the same viewport: 178 | ``` 179 | pcl_viewer cloud_cluster_0.pcd cloud_cluster_1.pcd cloud_cluster_2.pcd cloud_cluster_3.pcd cloud_cluster_4.pcd 180 | ``` 181 | #### Open3D 182 | Operations for plane segmentation and clustering are not implemented in Open3D, but the algorithms would be straightforward to implement. 183 | 184 | ### Registration: 185 | #### PCL 186 | Perform iterative closest point to align two point clouds: 187 | ``` 188 | ./pcl_icp ../data/cloud_bin_0.pcd ../data/cloud_bin_1.pcd 189 | ``` 190 | Visualize aligned and combined point cloud beside originals: 191 | ``` 192 | pcl_viewer -multiview 1 ../data/pcl_icp_init.pcd ../data/pcl_icp_aligned.pcd 193 | ``` 194 | Attempt to fit several point cloud templates to the target point cloud, output the best match: 195 | ``` 196 | ./pcl_template_matching ../data/object_templates.txt ../data/person.pcd 197 | ``` 198 | Visualize the matched and aligned template against the target PC: 199 | ``` 200 | pcl_viewer ../data/person.pcd template_aligned.pcd 201 | ``` 202 | you may need to press '1' several times to get a good color scheme for the two point clouds to be visible. 203 | #### Open3D 204 | Open3D offers implementations of several algorithms for both local and global point cloud registration. 205 | Local ICP with an initial guess can be performed with either point-to-point or point-to-plane alignment: 206 | ``` 207 | python3 open3d_icp.py 208 | ``` 209 | There is also a variant of the ICP algorithm within Open3D that utilizes color as well as geometric information: 210 | ``` 211 | python3 open3d_colored_icp.py 212 | ``` 213 | These local methods rely on a reasonably close initial guess. 214 | For global registration, an initial coarse registration is computed using feature correspondences, in order to bootstrap a finer alignment step: 215 | ``` 216 | python3 open3d_global_registration.py 217 | ``` 218 | Finally, there is also another algorithm to compute this coarse initial registration, which is significantly faster than the standard RANSAC. This script compares the two approaches: 219 | ``` 220 | python3 open3d_fast_global_registration.py 221 | ``` 222 | 223 | 224 | ## More Tutorials 225 | Some of the PCL examples here were adapted from these tutorials: [http://www.pointclouds.org/documentation/tutorials/](http://www.pointclouds.org/documentation/tutorials/), but there are many more topics covered there. 226 | The Open3D examples were also adapted from the official tutorials [http://www.open3d.org/docs/tutorial/index.html](http://www.open3d.org/docs/tutorial/index.html) where there are further examples. 227 | -------------------------------------------------------------------------------- /data/cloud_bin_0.pcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/cloud_bin_0.pcd -------------------------------------------------------------------------------- /data/cloud_bin_00.pcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/cloud_bin_00.pcd -------------------------------------------------------------------------------- /data/cloud_bin_1.pcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/cloud_bin_1.pcd -------------------------------------------------------------------------------- /data/frag_115.ply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/frag_115.ply -------------------------------------------------------------------------------- /data/frag_116.ply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/frag_116.ply -------------------------------------------------------------------------------- /data/lena_color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/lena_color.jpg -------------------------------------------------------------------------------- /data/object_template_0.pcd: -------------------------------------------------------------------------------- 1 | # .PCD v.7 - Point Cloud Data file format 2 | VERSION .7 3 | FIELDS x y z _ 4 | SIZE 4 4 4 1 5 | TYPE F F F U 6 | COUNT 1 1 1 4 7 | WIDTH 1397 8 | HEIGHT 1 9 | VIEWPOINT 0 0 0 1 0 0 0 10 | POINTS 1397 11 | DATA ascii 12 | -0.15265 0.0388 0.691 0 0 128 63 13 | -0.1474 0.03705 0.694 0 0 128 63 14 | -0.1564286 0.04258572 0.694 0 0 128 63 15 | -0.1523445 0.04148889 0.6937779 0 0 128 63 16 | -0.1498 0.0416 0.693 0 0 128 63 17 | -0.1593 0.04823334 0.694 0 0 128 63 18 | -0.1618667 0.0526 0.6936667 0 0 128 63 19 | -0.1503 0.0338 0.695 0 0 128 63 20 | -0.148 0.03386667 0.697 0 0 128 63 21 | -0.1519308 0.03692308 0.695154 0 0 128 63 22 | -0.1474 0.03690909 0.6951819 0 0 128 63 23 | -0.1436454 0.03743637 0.6962728 0 0 128 63 24 | -0.1574 0.04274 0.695 0 0 128 63 25 | -0.1521 0.04368334 0.6953334 0 0 128 63 26 | -0.1472625 0.0411375 0.6965 0 0 128 63 27 | -0.14345 0.04055 0.6975 0 0 128 63 28 | -0.1570693 0.0475 0.6950001 0 0 128 63 29 | -0.1530462 0.04763077 0.6966923 0 0 128 63 30 | -0.1608 0.05295 0.695 0 0 128 63 31 | -0.1578583 0.05240833 0.6964167 0 0 128 63 32 | -0.1535429 0.05285715 0.6978571 0 0 128 63 33 | -0.1489 0.0538 0.698 0 0 128 63 34 | -0.1626333 0.05709999 0.697 0 0 128 63 35 | -0.1580125 0.05710625 0.6970626 0 0 128 63 36 | -0.1532308 0.05700769 0.6978462 0 0 128 63 37 | -0.1491333 0.0565 0.6980001 0 0 128 63 38 | -0.1623077 0.06211538 0.6977693 0 0 128 63 39 | -0.1575111 0.06182222 0.6978889 0 0 128 63 40 | -0.1544667 0.06093333 0.6980001 0 0 128 63 41 | -0.1630429 0.06742857 0.6971429 0 0 128 63 42 | -0.1653 0.071 0.697 0 0 128 63 43 | -0.163375 0.071725 0.69725 0 0 128 63 44 | -0.1468 0.02145 0.704 0 0 128 63 45 | -0.1388 0.02345 0.704 0 0 128 63 46 | -0.1321 0.0235 0.704 0 0 128 63 47 | -0.1281 0.0235 0.704 0 0 128 63 48 | -0.12 0.0248 0.704 0 0 128 63 49 | -0.1401 0.02815 0.704 0 0 128 63 50 | -0.1388 0.0275 0.704 0 0 128 63 51 | -0.1459 0.03345 0.70275 0 0 128 63 52 | -0.1414167 0.03306667 0.7038333 0 0 128 63 53 | -0.1417125 0.037225 0.701 0 0 128 63 54 | -0.138575 0.03786667 0.7035834 0 0 128 63 55 | -0.1501 0.044 0.7005 0 0 128 63 56 | -0.1471375 0.0441375 0.70225 0 0 128 63 57 | -0.1424 0.04223334 0.7012222 0 0 128 63 58 | -0.1379364 0.04203637 0.7028182 0 0 128 63 59 | -0.1348 0.04155 0.704 0 0 128 63 60 | -0.15092 0.04772 0.702 0 0 128 63 61 | -0.1490667 0.04673333 0.704 0 0 128 63 62 | -0.1516556 0.0516889 0.7008889 0 0 128 63 63 | -0.1493 0.0529 0.703 0 0 128 63 64 | -0.151325 0.0573 0.7 0 0 128 63 65 | -0.1607 0.064 0.7 0 0 128 63 66 | -0.15698 0.06444 0.7002 0 0 128 63 67 | -0.1528545 0.06298182 0.7014546 0 0 128 63 68 | -0.1616833 0.06783333 0.7005 0 0 128 63 69 | -0.1574917 0.06739999 0.7006668 0 0 128 63 70 | -0.15287 0.06755 0.7022001 0 0 128 63 71 | -0.162 0.07246001 0.7006 0 0 128 63 72 | -0.15765 0.0721375 0.7013751 0 0 128 63 73 | -0.1529643 0.07250001 0.7030715 0 0 128 63 74 | -0.1621091 0.07724547 0.701 0 0 128 63 75 | -0.1580467 0.07748668 0.7026001 0 0 128 63 76 | -0.15445 0.07672501 0.7035 0 0 128 63 77 | -0.16162 0.08196 0.7018 0 0 128 63 78 | -0.15847 0.08239 0.7032 0 0 128 63 79 | -0.1587 0.085 0.703 0 0 128 63 80 | -0.1522 0.0905 0.704 0 0 128 63 81 | -0.16585 0.0189 0.708 0 0 128 63 82 | -0.1622 0.01883334 0.7066666 0 0 128 63 83 | -0.1571 0.0195 0.705 0 0 128 63 84 | -0.1531 0.0195 0.705 0 0 128 63 85 | -0.16585 0.022925 0.7080001 0 0 128 63 86 | -0.1623333 0.0229 0.7072501 0 0 128 63 87 | -0.1574125 0.022875 0.7063749 0 0 128 63 88 | -0.1522 0.02301333 0.7064666 0 0 128 63 89 | -0.1474818 0.02292727 0.7059091 0 0 128 63 90 | -0.1426615 0.02333077 0.7057692 0 0 128 63 91 | -0.1367778 0.02365556 0.7052222 0 0 128 63 92 | -0.13234 0.0243 0.7054 0 0 128 63 93 | -0.12814 0.02458 0.7058 0 0 128 63 94 | -0.1228667 0.0248 0.705 0 0 128 63 95 | -0.16585 0.0263 0.708 0 0 128 63 96 | -0.1620833 0.02718334 0.7080001 0 0 128 63 97 | -0.1576917 0.02763334 0.7075834 0 0 128 63 98 | -0.152225 0.02763334 0.70725 0 0 128 63 99 | -0.1475333 0.02763333 0.7073334 0 0 128 63 100 | -0.1432 0.0275 0.7072 0 0 128 63 101 | -0.1371636 0.02762727 0.7070001 0 0 128 63 102 | -0.1325 0.02777 0.7077001 0 0 128 63 103 | -0.1277818 0.02750909 0.7070909 0 0 128 63 104 | -0.1222333 0.02754167 0.7051667 0 0 128 63 105 | -0.1175333 0.02754445 0.7052222 0 0 128 63 106 | -0.1130909 0.02769091 0.7057273 0 0 128 63 107 | -0.1077 0.0282 0.7072858 0 0 128 63 108 | -0.10288 0.02872 0.7078 0 0 128 63 109 | -0.09766667 0.029 0.7073333 0 0 128 63 110 | -0.1574714 0.03224286 0.7078573 0 0 128 63 111 | -0.1524583 0.03171667 0.7067499 0 0 128 63 112 | -0.1479125 0.0314375 0.70675 0 0 128 63 113 | -0.14312 0.03176 0.7068 0 0 128 63 114 | -0.13735 0.03229375 0.707 0 0 128 63 115 | -0.1321 0.03233125 0.70775 0 0 128 63 116 | -0.1273917 0.03234167 0.7077501 0 0 128 63 117 | -0.1225812 0.0323125 0.7072501 0 0 128 63 118 | -0.11757 0.0315 0.7071 0 0 128 63 119 | -0.1127 0.0314875 0.7075 0 0 128 63 120 | -0.108 0.03167143 0.7080001 0 0 128 63 121 | -0.1031667 0.03152222 0.7080001 0 0 128 63 122 | -0.0971 0.0303 0.708 0 0 128 63 123 | -0.1578 0.0357 0.708 0 0 128 63 124 | -0.135975 0.03715 0.706 0 0 128 63 125 | -0.132075 0.03772499 0.707625 0 0 128 63 126 | -0.1273 0.03734 0.7080001 0 0 128 63 127 | -0.1231714 0.03648572 0.7080001 0 0 128 63 128 | -0.1363 0.0436 0.705 0 0 128 63 129 | -0.1331286 0.04264286 0.7075714 0 0 128 63 130 | -0.1247 0.0411 0.708 0 0 128 63 131 | -0.1478 0.047975 0.707 0 0 128 63 132 | -0.14355 0.0461625 0.707625 0 0 128 63 133 | -0.1372467 0.04701333 0.7071334 0 0 128 63 134 | -0.1335143 0.04688572 0.7075714 0 0 128 63 135 | -0.14898 0.0513 0.7066 0 0 128 63 136 | -0.1369 0.0506 0.708 0 0 128 63 137 | -0.1502 0.0747 0.707 0 0 128 63 138 | -0.15575 0.0799 0.705 0 0 128 63 139 | -0.1517692 0.07782308 0.7057692 0 0 128 63 140 | -0.14782 0.07808001 0.7068 0 0 128 63 141 | -0.15562 0.08256 0.705 0 0 128 63 142 | -0.152275 0.08256666 0.7058333 0 0 128 63 143 | -0.14765 0.08224168 0.7068332 0 0 128 63 144 | -0.145 0.08156667 0.7080001 0 0 128 63 145 | -0.1562889 0.08686667 0.7056667 0 0 128 63 146 | -0.1519 0.08738125 0.7056249 0 0 128 63 147 | -0.1475167 0.08757499 0.70725 0 0 128 63 148 | -0.1515667 0.092575 0.7061666 0 0 128 63 149 | -0.1476455 0.09275454 0.7072727 0 0 128 63 150 | -0.15085 0.0963 0.707 0 0 128 63 151 | -0.14715 0.09661667 0.7076666 0 0 128 63 152 | -0.145 0.09643334 0.7080001 0 0 128 63 153 | -0.175725 0.0186 0.711 0 0 128 63 154 | -0.1724555 0.01826667 0.7101111 0 0 128 63 155 | -0.16918 0.01854 0.71 0 0 128 63 156 | -0.1763429 0.02252857 0.7110001 0 0 128 63 157 | -0.1725 0.02233333 0.7103333 0 0 128 63 158 | -0.16905 0.02233334 0.71 0 0 128 63 159 | -0.1774714 0.02732857 0.7124285 0 0 128 63 160 | -0.1726077 0.02726923 0.7116154 0 0 128 63 161 | -0.1681909 0.02739091 0.7107273 0 0 128 63 162 | -0.1638667 0.02863333 0.71 0 0 128 63 163 | -0.1089 0.0291 0.71 0 0 128 63 164 | -0.1808 0.03331667 0.7136667 0 0 128 63 165 | -0.17775 0.03230001 0.7137499 0 0 128 63 166 | -0.1726625 0.03264375 0.7137499 0 0 128 63 167 | -0.1677167 0.0326 0.7129166 0 0 128 63 168 | -0.1626929 0.03256429 0.7105001 0 0 128 63 169 | -0.1170667 0.03383334 0.7106667 0 0 128 63 170 | -0.11226 0.03424 0.711 0 0 128 63 171 | -0.1079125 0.0328125 0.710375 0 0 128 63 172 | -0.1019571 0.03351429 0.7101429 0 0 128 63 173 | -0.09763335 0.03323333 0.7120833 0 0 128 63 174 | -0.09235999 0.03249334 0.7134665 0 0 128 63 175 | -0.08800001 0.03302222 0.7136667 0 0 128 63 176 | -0.08416001 0.03304 0.7138 0 0 128 63 177 | -0.1814 0.037225 0.714 0 0 128 63 178 | -0.1788 0.0367 0.714 0 0 128 63 179 | -0.172725 0.0374 0.7139999 0 0 128 63 180 | -0.1678889 0.03738889 0.7136666 0 0 128 63 181 | -0.1625833 0.03724167 0.71125 0 0 128 63 182 | -0.1589 0.03785 0.71 0 0 128 63 183 | -0.1273667 0.0399 0.71 0 0 128 63 184 | -0.1223625 0.0387 0.71 0 0 128 63 185 | -0.1179571 0.0376 0.7107143 0 0 128 63 186 | -0.112325 0.03720833 0.7105 0 0 128 63 187 | -0.10742 0.03737 0.711 0 0 128 63 188 | -0.1027636 0.0371091 0.7111818 0 0 128 63 189 | -0.09790002 0.0374 0.7138332 0 0 128 63 190 | -0.0945 0.036 0.714 0 0 128 63 191 | -0.0877 0.036 0.7136667 0 0 128 63 192 | -0.085 0.036 0.714 0 0 128 63 193 | -0.1718889 0.04162223 0.714 0 0 128 63 194 | -0.167875 0.04213334 0.7135834 0 0 128 63 195 | -0.1637833 0.04091667 0.7116667 0 0 128 63 196 | -0.13114 0.04234 0.7104 0 0 128 63 197 | -0.1273636 0.04274546 0.7103636 0 0 128 63 198 | -0.1224556 0.04261111 0.7104445 0 0 128 63 199 | -0.1176786 0.04229286 0.7113572 0 0 128 63 200 | -0.1124563 0.04201875 0.7113751 0 0 128 63 201 | -0.1071875 0.0420625 0.7122501 0 0 128 63 202 | -0.1025417 0.0421 0.7130833 0 0 128 63 203 | -0.0979 0.0421375 0.7138749 0 0 128 63 204 | -0.0945 0.0428 0.714 0 0 128 63 205 | -0.0891 0.0415 0.714 0 0 128 63 206 | -0.1707 0.04895 0.714 0 0 128 63 207 | -0.16878 0.0472 0.714 0 0 128 63 208 | -0.14605 0.0494 0.71 0 0 128 63 209 | -0.1423429 0.04822858 0.7102858 0 0 128 63 210 | -0.14 0.0494 0.71 0 0 128 63 211 | -0.1318889 0.04774445 0.7125555 0 0 128 63 212 | -0.1276375 0.04753125 0.7128749 0 0 128 63 213 | -0.1222733 0.04765334 0.7124667 0 0 128 63 214 | -0.1176308 0.04737693 0.7126923 0 0 128 63 215 | -0.1124938 0.04744375 0.7115001 0 0 128 63 216 | -0.1072438 0.047525 0.712625 0 0 128 63 217 | -0.1025917 0.04756667 0.7135 0 0 128 63 218 | -0.09792501 0.0476 0.7139999 0 0 128 63 219 | -0.1693 0.051 0.714 0 0 128 63 220 | -0.1472334 0.05234445 0.7116666 0 0 128 63 221 | -0.1425 0.05224168 0.7125 0 0 128 63 222 | -0.1372222 0.05255555 0.7105556 0 0 128 63 223 | -0.1330083 0.05224166 0.7125 0 0 128 63 224 | -0.1278333 0.05235834 0.7139167 0 0 128 63 225 | -0.1224091 0.05215455 0.7129999 0 0 128 63 226 | -0.1174462 0.0528923 0.7116154 0 0 128 63 227 | -0.1123125 0.05277499 0.7103751 0 0 128 63 228 | -0.1073429 0.05258571 0.7120001 0 0 128 63 229 | -0.1026444 0.05234444 0.7137778 0 0 128 63 230 | -0.0981091 0.05224546 0.7139999 0 0 128 63 231 | -0.1501 0.055 0.713 0 0 128 63 232 | -0.1487 0.055 0.713 0 0 128 63 233 | -0.14102 0.0567 0.7138 0 0 128 63 234 | -0.1372333 0.05719999 0.7132 0 0 128 63 235 | -0.132475 0.05707499 0.7133333 0 0 128 63 236 | -0.12785 0.057125 0.7139999 0 0 128 63 237 | -0.1222875 0.05708749 0.7134374 0 0 128 63 238 | -0.1173556 0.05766667 0.7123333 0 0 128 63 239 | -0.1125083 0.05762499 0.7116666 0 0 128 63 240 | -0.10715 0.05737143 0.7133572 0 0 128 63 241 | -0.1026667 0.057125 0.7139999 0 0 128 63 242 | -0.09815556 0.05643333 0.714 0 0 128 63 243 | -0.153 0.0646 0.714 0 0 128 63 244 | -0.1369091 0.06211818 0.7139999 0 0 128 63 245 | -0.1326 0.06255 0.7139999 0 0 128 63 246 | -0.12785 0.06254999 0.7139999 0 0 128 63 247 | -0.1223875 0.06254374 0.7139374 0 0 128 63 248 | -0.11755 0.0625 0.7135 0 0 128 63 249 | -0.1128375 0.062525 0.7137498 0 0 128 63 250 | -0.108 0.06219999 0.7139165 0 0 128 63 251 | -0.1026667 0.0605 0.714 0 0 128 63 252 | -0.1 0.0612 0.714 0 0 128 63 253 | -0.14145 0.0687 0.714 0 0 128 63 254 | -0.1367167 0.06785833 0.7136666 0 0 128 63 255 | -0.13262 0.06753 0.7132999 0 0 128 63 256 | -0.1277833 0.06730001 0.7136666 0 0 128 63 257 | -0.1222769 0.06750001 0.7136154 0 0 128 63 258 | -0.1176333 0.06733333 0.714 0 0 128 63 259 | -0.11285 0.06731667 0.7138332 0 0 128 63 260 | -0.10786 0.06747001 0.7139999 0 0 128 63 261 | -0.102 0.06733333 0.714 0 0 128 63 262 | -0.09965 0.067675 0.714 0 0 128 63 263 | -0.1418875 0.0729 0.713625 0 0 128 63 264 | -0.1373714 0.07228573 0.7131429 0 0 128 63 265 | -0.1324727 0.07226364 0.7139999 0 0 128 63 266 | -0.12785 0.07207499 0.7139999 0 0 128 63 267 | -0.1225929 0.07207857 0.7139999 0 0 128 63 268 | -0.1175091 0.07189091 0.7139999 0 0 128 63 269 | -0.1128091 0.07127272 0.7139999 0 0 128 63 270 | -0.1081333 0.0707 0.714 0 0 128 63 271 | -0.10212 0.07166 0.714 0 0 128 63 272 | -0.1 0.07 0.714 0 0 128 63 273 | -0.1454 0.0791 0.71 0 0 128 63 274 | -0.142475 0.0773375 0.712375 0 0 128 63 275 | -0.1371875 0.07741876 0.7131875 0 0 128 63 276 | -0.1325833 0.07750833 0.7139167 0 0 128 63 277 | -0.12785 0.07752499 0.7139999 0 0 128 63 278 | -0.1231909 0.0775909 0.7139999 0 0 128 63 279 | -0.1168571 0.07762858 0.714 0 0 128 63 280 | -0.112875 0.07768749 0.714 0 0 128 63 281 | -0.1090333 0.07913333 0.714 0 0 128 63 282 | -0.10242 0.07738 0.714 0 0 128 63 283 | -0.1454 0.0845 0.71 0 0 128 63 284 | -0.1423867 0.08251334 0.7112668 0 0 128 63 285 | -0.1372333 0.08220834 0.7134166 0 0 128 63 286 | -0.1324778 0.0822 0.7133333 0 0 128 63 287 | -0.1278333 0.08225833 0.7139167 0 0 128 63 288 | -0.1225818 0.0823909 0.7139999 0 0 128 63 289 | -0.1176286 0.08265714 0.714 0 0 128 63 290 | -0.1121667 0.08226667 0.714 0 0 128 63 291 | -0.1095 0.0809 0.714 0 0 128 63 292 | -0.1454 0.0879 0.71 0 0 128 63 293 | -0.1424 0.08736154 0.7127692 0 0 128 63 294 | -0.13735 0.08705001 0.7139999 0 0 128 63 295 | -0.1326 0.0857 0.714 0 0 128 63 296 | -0.1275571 0.08685715 0.7139999 0 0 128 63 297 | -0.1224 0.08705001 0.7139999 0 0 128 63 298 | -0.117975 0.086375 0.714 0 0 128 63 299 | -0.1454 0.09263333 0.71 0 0 128 63 300 | -0.1426267 0.09214668 0.7124667 0 0 128 63 301 | -0.1384778 0.09255555 0.714 0 0 128 63 302 | -0.126825 0.0911 0.714 0 0 128 63 303 | -0.1231 0.0918 0.714 0 0 128 63 304 | -0.14322 0.09606 0.7114 0 0 128 63 305 | -0.1766 0.0348 0.716 0 0 128 63 306 | -0.0934 0.0348 0.716 0 0 128 63 307 | -0.0866 0.0334 0.716 0 0 128 63 308 | -0.08188889 0.03376667 0.7171111 0 0 128 63 309 | -0.07795 0.0342 0.7179999 0 0 128 63 310 | -0.1834 0.0389 0.716 0 0 128 63 311 | -0.1775857 0.0377 0.716 0 0 128 63 312 | -0.09256364 0.03762727 0.7160001 0 0 128 63 313 | -0.08735 0.038225 0.7165 0 0 128 63 314 | -0.08211666 0.03764167 0.7184999 0 0 128 63 315 | -0.07772858 0.03745715 0.7187143 0 0 128 63 316 | -0.1852667 0.04306667 0.7176666 0 0 128 63 317 | -0.1822929 0.04232857 0.7168572 0 0 128 63 318 | -0.1772067 0.04215334 0.7162667 0 0 128 63 319 | -0.1729667 0.04386667 0.716 0 0 128 63 320 | -0.09264667 0.04225334 0.7162667 0 0 128 63 321 | -0.08731334 0.04240667 0.7173333 0 0 128 63 322 | -0.08265386 0.04229231 0.719 0 0 128 63 323 | -0.07764 0.04245 0.7189999 0 0 128 63 324 | -0.0746 0.0431 0.719 0 0 128 63 325 | -0.1856 0.0459 0.719 0 0 128 63 326 | -0.1824875 0.0469 0.7189999 0 0 128 63 327 | -0.1767167 0.047775 0.7165 0 0 128 63 328 | -0.17287 0.0475 0.7163001 0 0 128 63 329 | -0.1698 0.0471 0.716 0 0 128 63 330 | -0.09280626 0.04778124 0.7165 0 0 128 63 331 | -0.08769286 0.04754286 0.7175714 0 0 128 63 332 | -0.08257 0.04709 0.7187999 0 0 128 63 333 | -0.0774 0.04655 0.719 0 0 128 63 334 | -0.18215 0.0507 0.7189999 0 0 128 63 335 | -0.1772 0.05267778 0.7183332 0 0 128 63 336 | -0.1728222 0.05258889 0.7172222 0 0 128 63 337 | -0.0961 0.0539 0.716 0 0 128 63 338 | -0.09284999 0.05255 0.7167501 0 0 128 63 339 | -0.08735002 0.05227143 0.7180001 0 0 128 63 340 | -0.08335 0.0517 0.7187499 0 0 128 63 341 | -0.07826667 0.05093333 0.719 0 0 128 63 342 | -0.1770111 0.05696667 0.7187777 0 0 128 63 343 | -0.1726615 0.05755385 0.7174615 0 0 128 63 344 | -0.1698 0.0566 0.716 0 0 128 63 345 | -0.1512714 0.05858571 0.7187143 0 0 128 63 346 | -0.1470583 0.05718333 0.71775 0 0 128 63 347 | -0.1433857 0.0576 0.7164286 0 0 128 63 348 | -0.1002 0.0552 0.716 0 0 128 63 349 | -0.0975 0.05865 0.716 0 0 128 63 350 | -0.0929125 0.057375 0.71725 0 0 128 63 351 | -0.08758751 0.057475 0.7183749 0 0 128 63 352 | -0.0839 0.05734 0.7186 0 0 128 63 353 | -0.176 0.0616 0.719 0 0 128 63 354 | -0.17282 0.0621 0.7183999 0 0 128 63 355 | -0.1521154 0.06259231 0.7186923 0 0 128 63 356 | -0.1475417 0.06316666 0.7183332 0 0 128 63 357 | -0.1425727 0.06262727 0.7168182 0 0 128 63 358 | -0.13872 0.0637 0.716 0 0 128 63 359 | -0.10605 0.063775 0.716 0 0 128 63 360 | -0.1024636 0.06355456 0.7160001 0 0 128 63 361 | -0.097575 0.06279166 0.7165 0 0 128 63 362 | -0.09314286 0.06257143 0.7175714 0 0 128 63 363 | -0.08871429 0.0625 0.719 0 0 128 63 364 | -0.1520222 0.0677 0.7179999 0 0 128 63 365 | -0.14782 0.06720999 0.7186 0 0 128 63 366 | -0.1431572 0.06672858 0.7181429 0 0 128 63 367 | -0.1398 0.0668 0.716 0 0 128 63 368 | -0.1057 0.0668 0.716 0 0 128 63 369 | -0.1043 0.0675 0.716 0 0 128 63 370 | -0.09737499 0.06735 0.7162501 0 0 128 63 371 | -0.09282856 0.06733571 0.7182143 0 0 128 63 372 | -0.08891428 0.06644286 0.719 0 0 128 63 373 | -0.1516538 0.0722077 0.719 0 0 128 63 374 | -0.1470875 0.0728625 0.718375 0 0 128 63 375 | -0.143075 0.07065 0.717 0 0 128 63 376 | -0.1207 0.0743 0.716 0 0 128 63 377 | -0.11725 0.0743 0.716 0 0 128 63 378 | -0.112875 0.073975 0.716 0 0 128 63 379 | -0.10736 0.07311001 0.7161 0 0 128 63 380 | -0.10241 0.07269 0.716 0 0 128 63 381 | -0.09755834 0.07230834 0.7163334 0 0 128 63 382 | -0.0932143 0.07220714 0.7172858 0 0 128 63 383 | -0.089 0.0705 0.719 0 0 128 63 384 | -0.15065 0.076 0.719 0 0 128 63 385 | -0.14725 0.077225 0.7175 0 0 128 63 386 | -0.12098 0.07762001 0.716 0 0 128 63 387 | -0.1179429 0.07785715 0.716 0 0 128 63 388 | -0.1125333 0.0773 0.716 0 0 128 63 389 | -0.1074 0.07740001 0.7161539 0 0 128 63 390 | -0.1021273 0.07783637 0.7162728 0 0 128 63 391 | -0.09718 0.07777335 0.7176 0 0 128 63 392 | -0.09306668 0.07733334 0.7186667 0 0 128 63 393 | -0.1207 0.0811 0.716 0 0 128 63 394 | -0.116575 0.08145 0.716 0 0 128 63 395 | -0.1129143 0.08270001 0.716 0 0 128 63 396 | -0.1076636 0.08273636 0.7168182 0 0 128 63 397 | -0.102425 0.08263333 0.717 0 0 128 63 398 | -0.09700002 0.08257693 0.7183846 0 0 128 63 399 | -0.0938 0.082175 0.719 0 0 128 63 400 | -0.132275 0.08865 0.716 0 0 128 63 401 | -0.1163125 0.0880375 0.716375 0 0 128 63 402 | -0.11214 0.08757333 0.7172 0 0 128 63 403 | -0.1076077 0.08741539 0.7183077 0 0 128 63 404 | -0.1027333 0.08748667 0.7187333 0 0 128 63 405 | -0.09744287 0.08735715 0.719 0 0 128 63 406 | -0.0938 0.087 0.719 0 0 128 63 407 | -0.1412 0.0948 0.716 0 0 128 63 408 | -0.1364143 0.09272858 0.7165715 0 0 128 63 409 | -0.1323875 0.092825 0.7165625 0 0 128 63 410 | -0.1277375 0.0934625 0.71625 0 0 128 63 411 | -0.1227 0.09297692 0.7165384 0 0 128 63 412 | -0.1173188 0.09279375 0.7163125 0 0 128 63 413 | -0.1121467 0.09276 0.7172 0 0 128 63 414 | -0.107675 0.0926 0.7189999 0 0 128 63 415 | -0.103225 0.0926 0.7189999 0 0 128 63 416 | -0.1459 0.0993 0.719 0 0 128 63 417 | -0.1421 0.09778 0.7179999 0 0 128 63 418 | -0.1377625 0.09738751 0.7187499 0 0 128 63 419 | -0.1326667 0.09778334 0.7179999 0 0 128 63 420 | -0.12757 0.09789001 0.7178 0 0 128 63 421 | -0.1227636 0.09753636 0.7171819 0 0 128 63 422 | -0.1173333 0.09755 0.7163334 0 0 128 63 423 | -0.1121727 0.09726364 0.7169091 0 0 128 63 424 | -0.1077692 0.09746923 0.718 0 0 128 63 425 | -0.1035273 0.09706365 0.7189999 0 0 128 63 426 | -0.1363 0.102725 0.719 0 0 128 63 427 | -0.13285 0.102725 0.7189999 0 0 128 63 428 | -0.1272375 0.1026125 0.7182499 0 0 128 63 429 | -0.1225167 0.102675 0.7186667 0 0 128 63 430 | -0.1174125 0.1023938 0.7168125 0 0 128 63 431 | -0.1126583 0.1024083 0.7169167 0 0 128 63 432 | -0.1085385 0.1024539 0.7182308 0 0 128 63 433 | -0.1048 0.102 0.719 0 0 128 63 434 | -0.1325909 0.1075727 0.7186363 0 0 128 63 435 | -0.1273357 0.1076929 0.7177144 0 0 128 63 436 | -0.1221857 0.1073 0.719 0 0 128 63 437 | -0.11816 0.10733 0.7187999 0 0 128 63 438 | -0.11224 0.10716 0.7186 0 0 128 63 439 | -0.132175 0.11125 0.7189999 0 0 128 63 440 | -0.127375 0.1116 0.7189999 0 0 128 63 441 | -0.1226 0.1102 0.719 0 0 128 63 442 | -0.0761 0.0336 0.72 0 0 128 63 443 | -0.07343333 0.03363333 0.7206668 0 0 128 63 444 | -0.07610001 0.03726667 0.72 0 0 128 63 445 | -0.07272501 0.03705 0.7205001 0 0 128 63 446 | -0.06756 0.03700667 0.7224666 0 0 128 63 447 | -0.1872 0.0446 0.72 0 0 128 63 448 | -0.0802 0.0432 0.72 0 0 128 63 449 | -0.0761 0.04255 0.72 0 0 128 63 450 | -0.07268001 0.04255334 0.7214001 0 0 128 63 451 | -0.06835714 0.0418 0.723 0 0 128 63 452 | -0.1869667 0.04776667 0.72 0 0 128 63 453 | -0.1817 0.048 0.72 0 0 128 63 454 | -0.0802 0.048 0.72 0 0 128 63 455 | -0.07750001 0.0475 0.72 0 0 128 63 456 | -0.0734875 0.0470375 0.7212501 0 0 128 63 457 | -0.1905 0.0536 0.722 0 0 128 63 458 | -0.1874084 0.05216667 0.7208334 0 0 128 63 459 | -0.1824 0.0535 0.72 0 0 128 63 460 | -0.0811125 0.0524875 0.72025 0 0 128 63 461 | -0.07714 0.05266 0.7219 0 0 128 63 462 | -0.074175 0.050825 0.7212501 0 0 128 63 463 | -0.1907 0.0565 0.723 0 0 128 63 464 | -0.1874636 0.05752727 0.7229092 0 0 128 63 465 | -0.1824 0.05748572 0.7212144 0 0 128 63 466 | -0.1787 0.05926667 0.7206668 0 0 128 63 467 | -0.1488 0.0597 0.72 0 0 128 63 468 | -0.08177779 0.05732222 0.7214445 0 0 128 63 469 | -0.078475 0.056475 0.72275 0 0 128 63 470 | -0.1819667 0.0622 0.7228333 0 0 128 63 471 | -0.1782429 0.06268572 0.721 0 0 128 63 472 | -0.1488 0.061 0.72 0 0 128 63 473 | -0.08626001 0.06212 0.72 0 0 128 63 474 | -0.0845 0.0625 0.7213334 0 0 128 63 475 | -0.177675 0.067075 0.7225 0 0 128 63 476 | -0.1733833 0.06755 0.7200001 0 0 128 63 477 | -0.1694 0.0693 0.72 0 0 128 63 478 | -0.1461 0.0686 0.72 0 0 128 63 479 | -0.1447 0.0693 0.72 0 0 128 63 480 | -0.08678889 0.06774445 0.7200001 0 0 128 63 481 | -0.08436 0.06699999 0.7224 0 0 128 63 482 | -0.175875 0.071925 0.72275 0 0 128 63 483 | -0.172725 0.07201251 0.7218751 0 0 128 63 484 | -0.1536 0.07404999 0.72 0 0 128 63 485 | -0.147425 0.071975 0.72 0 0 128 63 486 | -0.0912 0.07404999 0.72 0 0 128 63 487 | -0.08779091 0.07257273 0.7207274 0 0 128 63 488 | -0.0846 0.0722 0.722 0 0 128 63 489 | -0.1756 0.0751 0.723 0 0 128 63 490 | -0.1720571 0.07624286 0.723 0 0 128 63 491 | -0.1488 0.0761 0.72 0 0 128 63 492 | -0.09120001 0.07750001 0.72 0 0 128 63 493 | -0.08787332 0.07716666 0.7220666 0 0 128 63 494 | -0.09140909 0.08252727 0.7205456 0 0 128 63 495 | -0.08797778 0.08248889 0.7224445 0 0 128 63 496 | -0.08423334 0.08423334 0.723 0 0 128 63 497 | -0.1022 0.0898 0.72 0 0 128 63 498 | -0.096 0.0898 0.72 0 0 128 63 499 | -0.09202307 0.08759232 0.7206924 0 0 128 63 500 | -0.1063 0.0912 0.72 0 0 128 63 501 | -0.101825 0.092225 0.72 0 0 128 63 502 | -0.097375 0.09256667 0.7200001 0 0 128 63 503 | -0.0937 0.09262 0.7224001 0 0 128 63 504 | -0.1563 0.0985 0.723 0 0 128 63 505 | -0.1522 0.0998 0.723 0 0 128 63 506 | -0.1419333 0.09940001 0.72 0 0 128 63 507 | -0.1385 0.0994 0.72 0 0 128 63 508 | -0.1077 0.0953 0.72 0 0 128 63 509 | -0.10114 0.09784 0.7204 0 0 128 63 510 | -0.09792 0.09669 0.721 0 0 128 63 511 | -0.1512667 0.1016667 0.723 0 0 128 63 512 | -0.1474667 0.1025222 0.7224445 0 0 128 63 513 | -0.1423286 0.1026572 0.7200001 0 0 128 63 514 | -0.1385 0.10285 0.72 0 0 128 63 515 | -0.1063 0.1035333 0.72 0 0 128 63 516 | -0.10295 0.1024917 0.7206668 0 0 128 63 517 | -0.09915 0.1012 0.723 0 0 128 63 518 | -0.1458714 0.1075 0.7228572 0 0 128 63 519 | -0.1421111 0.1078 0.720889 0 0 128 63 520 | -0.13756 0.10753 0.7200001 0 0 128 63 521 | -0.1241 0.10835 0.72 0 0 128 63 522 | -0.1159 0.10835 0.72 0 0 128 63 523 | -0.11245 0.109 0.72 0 0 128 63 524 | -0.1077333 0.1077333 0.7204445 0 0 128 63 525 | -0.1029733 0.1073733 0.7218001 0 0 128 63 526 | -0.0998 0.1088 0.723 0 0 128 63 527 | -0.1459667 0.1122 0.7228333 0 0 128 63 528 | -0.14204 0.11224 0.7212001 0 0 128 63 529 | -0.13734 0.1126267 0.7202668 0 0 128 63 530 | -0.13288 0.11368 0.72 0 0 128 63 531 | -0.1271 0.1140333 0.72 0 0 128 63 532 | -0.1227364 0.1126364 0.7200001 0 0 128 63 533 | -0.1181467 0.11238 0.7204002 0 0 128 63 534 | -0.1126333 0.1119583 0.7211667 0 0 128 63 535 | -0.1074273 0.1121909 0.7218183 0 0 128 63 536 | -0.1025 0.11145 0.7223334 0 0 128 63 537 | -0.146 0.1157 0.723 0 0 128 63 538 | -0.1423333 0.1169444 0.7227778 0 0 128 63 539 | -0.137575 0.117625 0.7222501 0 0 128 63 540 | -0.1325778 0.1175 0.7213334 0 0 128 63 541 | -0.127725 0.1174417 0.7210001 0 0 128 63 542 | -0.12271 0.1175 0.7214001 0 0 128 63 543 | -0.117925 0.1173333 0.7219168 0 0 128 63 544 | -0.1143 0.1163667 0.723 0 0 128 63 545 | -0.1081 0.115 0.723 0 0 128 63 546 | -0.1412 0.1205 0.723 0 0 128 63 547 | -0.1372333 0.1209667 0.723 0 0 128 63 548 | -0.1321714 0.1222572 0.7228571 0 0 128 63 549 | -0.12746 0.12209 0.7226 0 0 128 63 550 | -0.1230625 0.121675 0.72275 0 0 128 63 551 | -0.11805 0.1208 0.72275 0 0 128 63 552 | -0.1315 0.126 0.723 0 0 128 63 553 | -0.0656 0.0394 0.725 0 0 128 63 554 | -0.06235385 0.0378 0.7258462 0 0 128 63 555 | -0.058575 0.038475 0.72825 0 0 128 63 556 | -0.06701111 0.0435 0.7252222 0 0 128 63 557 | -0.06236154 0.04238462 0.7257692 0 0 128 63 558 | -0.05836 0.04204 0.728 0 0 128 63 559 | -0.07179999 0.0483 0.725 0 0 128 63 560 | -0.06771667 0.04766667 0.7254167 0 0 128 63 561 | -0.06224 0.04728 0.7278001 0 0 128 63 562 | -0.05896667 0.0465 0.7286667 0 0 128 63 563 | -0.0753 0.0545 0.725 0 0 128 63 564 | -0.07221999 0.05275 0.725 0 0 128 63 565 | -0.067775 0.05255625 0.7259999 0 0 128 63 566 | -0.06290909 0.05255454 0.7286364 0 0 128 63 567 | -0.0766375 0.05765 0.725 0 0 128 63 568 | -0.07257777 0.05736667 0.7257777 0 0 128 63 569 | -0.06808183 0.05736364 0.7273637 0 0 128 63 570 | -0.063525 0.05655 0.72875 0 0 128 63 571 | -0.1901 0.06290001 0.726 0 0 128 63 572 | -0.187525 0.062175 0.7252499 0 0 128 63 573 | -0.1839333 0.06373334 0.7250001 0 0 128 63 574 | -0.08204545 0.06233636 0.725 0 0 128 63 575 | -0.0773625 0.062175 0.725375 0 0 128 63 576 | -0.07223333 0.06226 0.7279333 0 0 128 63 577 | -0.0687 0.0611 0.729 0 0 128 63 578 | -0.1905 0.06720001 0.7273333 0 0 128 63 579 | -0.18737 0.0673 0.7270001 0 0 128 63 580 | -0.1822462 0.06767692 0.7255385 0 0 128 63 581 | -0.1788 0.0684 0.725 0 0 128 63 582 | -0.08208182 0.0679 0.7253636 0 0 128 63 583 | -0.07764616 0.06734616 0.7265385 0 0 128 63 584 | -0.07318 0.06652 0.729 0 0 128 63 585 | -0.1909 0.0701 0.729 0 0 128 63 586 | -0.1870385 0.0718 0.7287692 0 0 128 63 587 | -0.1821111 0.07271111 0.7271111 0 0 128 63 588 | -0.17828 0.07277999 0.725 0 0 128 63 589 | -0.0822 0.07253333 0.7253333 0 0 128 63 590 | -0.078775 0.0723375 0.728625 0 0 128 63 591 | -0.1854 0.0757 0.729 0 0 128 63 592 | -0.1821818 0.07756364 0.7278183 0 0 128 63 593 | -0.1776455 0.07752728 0.7251818 0 0 128 63 594 | -0.1733 0.0786 0.725 0 0 128 63 595 | -0.08286875 0.07734376 0.7251876 0 0 128 63 596 | -0.07810834 0.07810834 0.7279167 0 0 128 63 597 | -0.18155 0.08225 0.729 0 0 128 63 598 | -0.1779222 0.08238889 0.726889 0 0 128 63 599 | -0.1727833 0.082275 0.72575 0 0 128 63 600 | -0.1694 0.083 0.726 0 0 128 63 601 | -0.087 0.08252499 0.725 0 0 128 63 602 | -0.0825 0.08250769 0.7251539 0 0 128 63 603 | -0.07758334 0.08243333 0.7273334 0 0 128 63 604 | -0.1769375 0.0869375 0.728625 0 0 128 63 605 | -0.1725461 0.08702309 0.7266923 0 0 128 63 606 | -0.1686 0.0878 0.726 0 0 128 63 607 | -0.08770001 0.0877 0.725 0 0 128 63 608 | -0.08288334 0.08773334 0.7253333 0 0 128 63 609 | -0.07755001 0.08725001 0.7271249 0 0 128 63 610 | -0.0742 0.0867 0.728 0 0 128 63 611 | -0.1757 0.09164999 0.729 0 0 128 63 612 | -0.1727667 0.09225556 0.7284445 0 0 128 63 613 | -0.1675933 0.09284667 0.7265333 0 0 128 63 614 | -0.162675 0.094275 0.72525 0 0 128 63 615 | -0.09137777 0.09275556 0.725 0 0 128 63 616 | -0.08775001 0.09258334 0.7255 0 0 128 63 617 | -0.08312666 0.09253334 0.7261333 0 0 128 63 618 | -0.07762501 0.0922 0.7278333 0 0 128 63 619 | -0.171975 0.096825 0.72875 0 0 128 63 620 | -0.1674273 0.09753637 0.7271819 0 0 128 63 621 | -0.1624444 0.09747779 0.7257777 0 0 128 63 622 | -0.1587143 0.0975 0.726 0 0 128 63 623 | -0.09736668 0.09870001 0.7250001 0 0 128 63 624 | -0.092525 0.09736668 0.725 0 0 128 63 625 | -0.0875 0.09760001 0.7257 0 0 128 63 626 | -0.082775 0.09734167 0.7274167 0 0 128 63 627 | -0.07832728 0.09661819 0.7289092 0 0 128 63 628 | -0.1712667 0.10365 0.729 0 0 128 63 629 | -0.1672167 0.1026833 0.7285833 0 0 128 63 630 | -0.1625667 0.102375 0.7263333 0 0 128 63 631 | -0.157475 0.1022313 0.7252501 0 0 128 63 632 | -0.1532 0.1029 0.725 0 0 128 63 633 | -0.1498 0.1043 0.725 0 0 128 63 634 | -0.1001 0.1036 0.725 0 0 128 63 635 | -0.09725455 0.1022727 0.7250909 0 0 128 63 636 | -0.09261875 0.1022813 0.7257499 0 0 128 63 637 | -0.08734375 0.1025625 0.7277501 0 0 128 63 638 | -0.0829125 0.102 0.728625 0 0 128 63 639 | -0.0798 0.1007 0.729 0 0 128 63 640 | -0.17094 0.10788 0.729 0 0 128 63 641 | -0.1672556 0.1075778 0.7287778 0 0 128 63 642 | -0.1626333 0.1073 0.7266667 0 0 128 63 643 | -0.1576375 0.1078625 0.7259374 0 0 128 63 644 | -0.1527333 0.1078167 0.7256666 0 0 128 63 645 | -0.1489222 0.1076222 0.725 0 0 128 63 646 | -0.1001 0.1063 0.725 0 0 128 63 647 | -0.09739166 0.1077417 0.7252499 0 0 128 63 648 | -0.09307143 0.1078286 0.7277143 0 0 128 63 649 | -0.08855 0.1069 0.729 0 0 128 63 650 | -0.1665 0.1122 0.729 0 0 128 63 651 | -0.1626923 0.1124769 0.728 0 0 128 63 652 | -0.1574636 0.1125727 0.726 0 0 128 63 653 | -0.1527333 0.1126444 0.7256666 0 0 128 63 654 | -0.14915 0.1125333 0.725 0 0 128 63 655 | -0.1021 0.1129143 0.725 0 0 128 63 656 | -0.09741112 0.1126111 0.7254444 0 0 128 63 657 | -0.09270715 0.1126143 0.728 0 0 128 63 658 | -0.08913334 0.1141333 0.729 0 0 128 63 659 | -0.1659 0.1173 0.729 0 0 128 63 660 | -0.16261 0.11732 0.7272 0 0 128 63 661 | -0.15765 0.11755 0.7259999 0 0 128 63 662 | -0.1526333 0.1174167 0.7251667 0 0 128 63 663 | -0.1479714 0.1176 0.7250001 0 0 128 63 664 | -0.1443 0.1188 0.725 0 0 128 63 665 | -0.1153 0.1195 0.725 0 0 128 63 666 | -0.1120889 0.1176444 0.7251111 0 0 128 63 667 | -0.1076786 0.11775 0.7254285 0 0 128 63 668 | -0.1024125 0.1176437 0.7266249 0 0 128 63 669 | -0.09744167 0.117325 0.72825 0 0 128 63 670 | -0.09233333 0.1166 0.729 0 0 128 63 671 | -0.1701 0.1222 0.729 0 0 128 63 672 | -0.1671 0.1225 0.729 0 0 128 63 673 | -0.16308 0.12242 0.7287 0 0 128 63 674 | -0.1576333 0.1223833 0.7259166 0 0 128 63 675 | -0.1526222 0.1222222 0.7251111 0 0 128 63 676 | -0.147775 0.1222 0.725 0 0 128 63 677 | -0.14254 0.12252 0.7251999 0 0 128 63 678 | -0.13775 0.12325 0.725 0 0 128 63 679 | -0.12185 0.12255 0.725 0 0 128 63 680 | -0.1169 0.12275 0.725125 0 0 128 63 681 | -0.1122182 0.1225545 0.7262728 0 0 128 63 682 | -0.1078 0.1222444 0.7270001 0 0 128 63 683 | -0.1030143 0.1220429 0.7287143 0 0 128 63 684 | -0.0993 0.1215 0.729 0 0 128 63 685 | -0.1659 0.1257 0.729 0 0 128 63 686 | -0.1616125 0.1269 0.729 0 0 128 63 687 | -0.1574667 0.127625 0.7283334 0 0 128 63 688 | -0.1523933 0.12748 0.7267333 0 0 128 63 689 | -0.1474462 0.1270231 0.7256923 0 0 128 63 690 | -0.142425 0.1272125 0.7259999 0 0 128 63 691 | -0.1374667 0.1271167 0.7253333 0 0 128 63 692 | -0.1326231 0.1274154 0.725 0 0 128 63 693 | -0.12745 0.127475 0.7254166 0 0 128 63 694 | -0.1228667 0.1269933 0.7255333 0 0 128 63 695 | -0.1175687 0.1272188 0.7260624 0 0 128 63 696 | -0.1122937 0.1275312 0.7278125 0 0 128 63 697 | -0.10845 0.1280667 0.7283334 0 0 128 63 698 | -0.152375 0.13155 0.729 0 0 128 63 699 | -0.14615 0.13155 0.729 0 0 128 63 700 | -0.142225 0.13235 0.7286251 0 0 128 63 701 | -0.13758 0.13244 0.7273001 0 0 128 63 702 | -0.1327818 0.1321818 0.7272727 0 0 128 63 703 | -0.1276833 0.132525 0.7285833 0 0 128 63 704 | -0.12305 0.1324 0.728875 0 0 128 63 705 | -0.1166 0.134 0.729 0 0 128 63 706 | -0.1409 0.1354 0.729 0 0 128 63 707 | -0.1375 0.1354 0.729 0 0 128 63 708 | -0.1312 0.1354 0.729 0 0 128 63 709 | -0.1257 0.1354 0.729 0 0 128 63 710 | -0.1236 0.1354 0.729 0 0 128 63 711 | -0.118 0.1354 0.729 0 0 128 63 712 | -0.05645714 0.0383 0.7315714 0 0 128 63 713 | -0.05238333 0.03908334 0.7336667 0 0 128 63 714 | -0.0496 0.0384 0.734 0 0 128 63 715 | -0.05604286 0.0427 0.7314286 0 0 128 63 716 | -0.0528 0.04240001 0.7340001 0 0 128 63 717 | -0.05668462 0.04753846 0.7316923 0 0 128 63 718 | -0.0529 0.048 0.7335001 0 0 128 63 719 | -0.062 0.0529 0.731 0 0 128 63 720 | -0.057175 0.052275 0.7318333 0 0 128 63 721 | -0.052525 0.052175 0.733 0 0 128 63 722 | -0.0661 0.0592 0.731 0 0 128 63 723 | -0.062 0.05796666 0.7311111 0 0 128 63 724 | -0.0579 0.05664 0.7324001 0 0 128 63 725 | -0.0538 0.0552 0.734 0 0 128 63 726 | -0.0703 0.0647 0.731 0 0 128 63 727 | -0.06737778 0.06276667 0.7313333 0 0 128 63 728 | -0.0633 0.0615875 0.7327501 0 0 128 63 729 | -0.07174286 0.06814286 0.7314286 0 0 128 63 730 | -0.06791429 0.06691428 0.733143 0 0 128 63 731 | -0.19094 0.07338 0.731 0 0 128 63 732 | -0.1887 0.0745 0.731 0 0 128 63 733 | -0.07650001 0.07250001 0.7310001 0 0 128 63 734 | -0.07254375 0.07254375 0.7324376 0 0 128 63 735 | -0.1901 0.0773 0.7310001 0 0 128 63 736 | -0.187475 0.077475 0.731 0 0 128 63 737 | -0.1845 0.0787 0.731 0 0 128 63 738 | -0.0766 0.0766 0.731 0 0 128 63 739 | -0.07255834 0.07745834 0.7325834 0 0 128 63 740 | -0.19025 0.082275 0.73175 0 0 128 63 741 | -0.1873833 0.08222501 0.7314166 0 0 128 63 742 | -0.18394 0.0831 0.731 0 0 128 63 743 | -0.07245 0.08222501 0.7315 0 0 128 63 744 | -0.0692 0.0804 0.734 0 0 128 63 745 | -0.19055 0.08655 0.733 0 0 128 63 746 | -0.186925 0.087175 0.7325 0 0 128 63 747 | -0.1822917 0.08751668 0.7315 0 0 128 63 748 | -0.17855 0.08875 0.731 0 0 128 63 749 | -0.0724643 0.08767144 0.7316429 0 0 128 63 750 | -0.0692 0.0874 0.734 0 0 128 63 751 | -0.1852 0.0916 0.7340001 0 0 128 63 752 | -0.1824 0.0926 0.7332 0 0 128 63 753 | -0.1779857 0.09282856 0.7312858 0 0 128 63 754 | -0.07316667 0.09266666 0.7316666 0 0 128 63 755 | -0.182175 0.09730001 0.7335 0 0 128 63 756 | -0.177675 0.09755833 0.7315833 0 0 128 63 757 | -0.17418 0.09848 0.731 0 0 128 63 758 | -0.07674 0.09876001 0.731 0 0 128 63 759 | -0.07348572 0.09662858 0.7328571 0 0 128 63 760 | -0.18145 0.10105 0.734 0 0 128 63 761 | -0.17775 0.1024 0.7325 0 0 128 63 762 | -0.1730125 0.101775 0.731 0 0 128 63 763 | -0.08115 0.1034 0.73125 0 0 128 63 764 | -0.077625 0.1023875 0.7325 0 0 128 63 765 | -0.0748 0.1014 0.734 0 0 128 63 766 | -0.17678 0.10704 0.7323999 0 0 128 63 767 | -0.1736667 0.1071222 0.731 0 0 128 63 768 | -0.087175 0.10825 0.731 0 0 128 63 769 | -0.08244617 0.1073539 0.7321539 0 0 128 63 770 | -0.0783 0.1056 0.734 0 0 128 63 771 | -0.17725 0.11285 0.734 0 0 128 63 772 | -0.1726 0.1123462 0.7313077 0 0 128 63 773 | -0.16892 0.11322 0.731 0 0 128 63 774 | -0.087475 0.112225 0.7310833 0 0 128 63 775 | -0.08392 0.11204 0.7328 0 0 128 63 776 | -0.177 0.1162 0.733 0 0 128 63 777 | -0.1729866 0.1172 0.7317334 0 0 128 63 778 | -0.1685 0.1176667 0.7310001 0 0 128 63 779 | -0.0954 0.119 0.731 0 0 128 63 780 | -0.0926 0.119 0.7310001 0 0 128 63 781 | -0.08780909 0.1172364 0.7314546 0 0 128 63 782 | -0.0844 0.115 0.732 0 0 128 63 783 | -0.17205 0.1208 0.73125 0 0 128 63 784 | -0.16808 0.12208 0.731 0 0 128 63 785 | -0.165 0.1218 0.731 0 0 128 63 786 | -0.1058 0.1246 0.731 0 0 128 63 787 | -0.10195 0.12425 0.731 0 0 128 63 788 | -0.09768 0.1223 0.7314 0 0 128 63 789 | -0.09233334 0.1207 0.7326667 0 0 128 63 790 | -0.0888 0.1209 0.734 0 0 128 63 791 | -0.1678 0.126 0.731 0 0 128 63 792 | -0.1636 0.1281 0.731 0 0 128 63 793 | -0.1064 0.1273 0.731375 0 0 128 63 794 | -0.1024333 0.1275333 0.7316666 0 0 128 63 795 | -0.09862857 0.1279286 0.7328573 0 0 128 63 796 | -0.1615 0.1309 0.731 0 0 128 63 797 | -0.15732 0.133 0.731 0 0 128 63 798 | -0.1527333 0.1334667 0.7310001 0 0 128 63 799 | -0.148125 0.133525 0.731 0 0 128 63 800 | -0.1427 0.1344 0.731 0 0 128 63 801 | -0.12075 0.13335 0.731 0 0 128 63 802 | -0.1178571 0.1326 0.7310001 0 0 128 63 803 | -0.112825 0.1330417 0.73125 0 0 128 63 804 | -0.1072357 0.1328214 0.7322858 0 0 128 63 805 | -0.1031167 0.1314833 0.733 0 0 128 63 806 | -0.1 0.1307 0.734 0 0 128 63 807 | -0.1557333 0.1362333 0.7310001 0 0 128 63 808 | -0.1521889 0.1372889 0.731 0 0 128 63 809 | -0.1475 0.1375286 0.7310001 0 0 128 63 810 | -0.14284 0.13782 0.731 0 0 128 63 811 | -0.137825 0.1385 0.7310001 0 0 128 63 812 | -0.1322 0.1378214 0.7310001 0 0 128 63 813 | -0.1275273 0.1380091 0.7310001 0 0 128 63 814 | -0.1223 0.1381143 0.7310001 0 0 128 63 815 | -0.1176625 0.1378125 0.731 0 0 128 63 816 | -0.1134 0.13727 0.7324001 0 0 128 63 817 | -0.10895 0.1361 0.733 0 0 128 63 818 | -0.1475182 0.1421727 0.7321818 0 0 128 63 819 | -0.1426273 0.1426273 0.7319091 0 0 128 63 820 | -0.1377273 0.1428091 0.7315454 0 0 128 63 821 | -0.1326615 0.1427308 0.7322308 0 0 128 63 822 | -0.12747 0.1431 0.7330001 0 0 128 63 823 | -0.1224572 0.1421857 0.7324286 0 0 128 63 824 | -0.1179 0.1414 0.7326667 0 0 128 63 825 | -0.1457 0.1457 0.732 0 0 128 63 826 | -0.14228 0.14718 0.7338001 0 0 128 63 827 | -0.1376334 0.1467333 0.7336667 0 0 128 63 828 | -0.1342 0.1461 0.734 0 0 128 63 829 | -0.0484 0.0386 0.736 0 0 128 63 830 | -0.0512 0.0435 0.736 0 0 128 63 831 | -0.04807143 0.04194286 0.7377858 0 0 128 63 832 | -0.0429 0.0422 0.739 0 0 128 63 833 | -0.05155 0.04665 0.736 0 0 128 63 834 | -0.04834546 0.04784545 0.7379091 0 0 128 63 835 | -0.0443 0.0486 0.739 0 0 128 63 836 | -0.0512 0.054 0.736 0 0 128 63 837 | -0.04758571 0.05231429 0.7380001 0 0 128 63 838 | -0.04278333 0.05233334 0.739 0 0 128 63 839 | -0.05636667 0.05846667 0.7363334 0 0 128 63 840 | -0.05264 0.05759 0.7371 0 0 128 63 841 | -0.04877143 0.05658572 0.7387143 0 0 128 63 842 | -0.0408 0.0556 0.739 0 0 128 63 843 | -0.06205 0.06345 0.736 0 0 128 63 844 | -0.0576 0.0625 0.73725 0 0 128 63 845 | -0.05336 0.06316 0.739 0 0 128 63 846 | -0.06604287 0.06804287 0.7364286 0 0 128 63 847 | -0.06283 0.06722 0.7379999 0 0 128 63 848 | -0.05792222 0.06641112 0.7387778 0 0 128 63 849 | -0.0521 0.06690001 0.739 0 0 128 63 850 | -0.05 0.0676 0.739 0 0 128 63 851 | -0.067375 0.07227501 0.7367501 0 0 128 63 852 | -0.06344 0.07221999 0.739 0 0 128 63 853 | -0.06742501 0.07722501 0.73725 0 0 128 63 854 | -0.0633 0.0753 0.739 0 0 128 63 855 | -0.06748462 0.08268462 0.7373078 0 0 128 63 856 | -0.1914 0.089 0.736 0 0 128 63 857 | -0.19 0.0883 0.736 0 0 128 63 858 | -0.06762 0.08727 0.7378 0 0 128 63 859 | -0.1906667 0.09216666 0.737 0 0 128 63 860 | -0.1876889 0.09275556 0.7361111 0 0 128 63 861 | -0.0708 0.09249999 0.736 0 0 128 63 862 | -0.06895715 0.09241429 0.7375715 0 0 128 63 863 | -0.1902 0.09760001 0.737 0 0 128 63 864 | -0.1873111 0.09751111 0.7365556 0 0 128 63 865 | -0.1844 0.096 0.736 0 0 128 63 866 | -0.07168 0.09804001 0.7364001 0 0 128 63 867 | -0.06896667 0.09706667 0.7386667 0 0 128 63 868 | -0.190575 0.102725 0.7385001 0 0 128 63 869 | -0.1875917 0.1026083 0.7377501 0 0 128 63 870 | -0.1832 0.1030889 0.7364445 0 0 128 63 871 | -0.07535 0.103 0.736 0 0 128 63 872 | -0.07241666 0.1026667 0.7381667 0 0 128 63 873 | -0.1872 0.1077 0.739 0 0 128 63 874 | -0.1822545 0.1072364 0.7368181 0 0 128 63 875 | -0.1787 0.1079 0.736 0 0 128 63 876 | -0.0806 0.1086 0.736 0 0 128 63 877 | -0.07691 0.10765 0.7369 0 0 128 63 878 | -0.0735 0.107275 0.7385001 0 0 128 63 879 | -0.18622 0.11162 0.739 0 0 128 63 880 | -0.1820308 0.1121462 0.7370769 0 0 128 63 881 | -0.1787 0.1114667 0.736 0 0 128 63 882 | -0.08155001 0.1128 0.73675 0 0 128 63 883 | -0.07771539 0.1121308 0.7383847 0 0 128 63 884 | -0.0739 0.1112 0.739 0 0 128 63 885 | -0.18095 0.11575 0.7365 0 0 128 63 886 | -0.1787 0.1171 0.736 0 0 128 63 887 | -0.0876 0.1199 0.736 0 0 128 63 888 | -0.08284001 0.11727 0.7374 0 0 128 63 889 | -0.0795 0.1161 0.739 0 0 128 63 890 | -0.0967 0.1241 0.736 0 0 128 63 891 | -0.09251111 0.1232333 0.7366667 0 0 128 63 892 | -0.08741251 0.1223625 0.737375 0 0 128 63 893 | -0.08416667 0.1207333 0.7383334 0 0 128 63 894 | -0.09685715 0.1273286 0.7362858 0 0 128 63 895 | -0.09316 0.12699 0.7376 0 0 128 63 896 | -0.0894 0.126 0.739 0 0 128 63 897 | -0.1014 0.13342 0.7364 0 0 128 63 898 | -0.09762223 0.1327556 0.7374444 0 0 128 63 899 | -0.0935 0.13075 0.738 0 0 128 63 900 | -0.1115 0.1388 0.736 0 0 128 63 901 | -0.10772 0.13848 0.7365 0 0 128 63 902 | -0.10291 0.13678 0.738 0 0 128 63 903 | -0.0985 0.1358 0.739 0 0 128 63 904 | -0.11656 0.1429 0.7362 0 0 128 63 905 | -0.11235 0.14255 0.73725 0 0 128 63 906 | -0.1078 0.142625 0.7385 0 0 128 63 907 | -0.1044333 0.1405667 0.739 0 0 128 63 908 | -0.1437 0.1493 0.736 0 0 128 63 909 | -0.13702 0.14906 0.7362 0 0 128 63 910 | -0.132425 0.148175 0.7365 0 0 128 63 911 | -0.1275308 0.1478385 0.7367692 0 0 128 63 912 | -0.1225846 0.1475308 0.7368462 0 0 128 63 913 | -0.1178267 0.14734 0.7374001 0 0 128 63 914 | -0.11296 0.1459 0.7386001 0 0 128 63 915 | -0.1091 0.1457 0.739 0 0 128 63 916 | -0.1411 0.1509 0.737 0 0 128 63 917 | -0.1375273 0.1523182 0.7377273 0 0 128 63 918 | -0.1323546 0.1526454 0.7380909 0 0 128 63 919 | -0.12761 0.15248 0.7386 0 0 128 63 920 | -0.1226889 0.1521889 0.7387778 0 0 128 63 921 | -0.1182 0.1513 0.739 0 0 128 63 922 | -0.1362667 0.1559667 0.739 0 0 128 63 923 | -0.1325333 0.1566111 0.739 0 0 128 63 924 | -0.1288 0.1555 0.739 0 0 128 63 925 | -0.0458 0.0437 0.74 0 0 128 63 926 | -0.04275556 0.04258889 0.7412222 0 0 128 63 927 | -0.0368 0.0432 0.743 0 0 128 63 928 | -0.0347 0.0432 0.743 0 0 128 63 929 | -0.04676667 0.04630001 0.7406667 0 0 128 63 930 | -0.04265556 0.04737778 0.7425556 0 0 128 63 931 | -0.04065 0.051675 0.743 0 0 128 63 932 | -0.0389 0.0538 0.743 0 0 128 63 933 | -0.0514 0.0599 0.74 0 0 128 63 934 | -0.046925 0.05755 0.7410001 0 0 128 63 935 | -0.0437 0.0564 0.74 0 0 128 63 936 | -0.0512375 0.0621875 0.741875 0 0 128 63 937 | -0.04833333 0.06228334 0.7428333 0 0 128 63 938 | -0.0613 0.0691 0.74 0 0 128 63 939 | -0.05794 0.06896 0.74 0 0 128 63 940 | -0.0543 0.06696667 0.74 0 0 128 63 941 | -0.06128333 0.0733 0.7423334 0 0 128 63 942 | -0.05736667 0.07224999 0.7423334 0 0 128 63 943 | -0.05317273 0.07195455 0.7424545 0 0 128 63 944 | -0.06311429 0.07782858 0.7421429 0 0 128 63 945 | -0.06338571 0.08178572 0.7428572 0 0 128 63 946 | -0.06556667 0.08816668 0.7406667 0 0 128 63 947 | -0.064375 0.087725 0.74275 0 0 128 63 948 | -0.06635 0.09244999 0.7410001 0 0 128 63 949 | -0.0644 0.0927 0.743 0 0 128 63 950 | -0.0666 0.09763334 0.7411111 0 0 128 63 951 | -0.06412001 0.0978 0.743 0 0 128 63 952 | -0.06779167 0.1024083 0.7415 0 0 128 63 953 | -0.0644 0.1019 0.743 0 0 128 63 954 | -0.191 0.1071 0.74 0 0 128 63 955 | -0.1896 0.1085 0.74 0 0 128 63 956 | -0.07155 0.1082167 0.7411667 0 0 128 63 957 | -0.06845 0.10694 0.7426 0 0 128 63 958 | -0.07586667 0.1144333 0.74 0 0 128 63 959 | -0.07183333 0.1126222 0.7416667 0 0 128 63 960 | -0.06906667 0.1115 0.7426667 0 0 128 63 961 | -0.081 0.1191 0.74 0 0 128 63 962 | -0.0775091 0.1181091 0.7418182 0 0 128 63 963 | -0.07241111 0.1162556 0.7427778 0 0 128 63 964 | -0.0686 0.1153 0.743 0 0 128 63 965 | -0.08623333 0.1237667 0.74 0 0 128 63 966 | -0.08243334 0.1221833 0.7416667 0 0 128 63 967 | -0.07889999 0.12135 0.743 0 0 128 63 968 | -0.0923 0.129 0.74 0 0 128 63 969 | -0.08726668 0.1278167 0.7420833 0 0 128 63 970 | -0.08357144 0.1270286 0.7427143 0 0 128 63 971 | -0.0951 0.1332 0.74 0 0 128 63 972 | -0.0925375 0.13225 0.7416251 0 0 128 63 973 | -0.08802001 0.132 0.7429 0 0 128 63 974 | -0.1015 0.1388 0.74 0 0 128 63 975 | -0.09700909 0.1377091 0.7415454 0 0 128 63 976 | -0.09298 0.13576 0.743 0 0 128 63 977 | -0.1064 0.1445 0.74 0 0 128 63 978 | -0.1028167 0.1428083 0.7409999 0 0 128 63 979 | -0.09773637 0.1419818 0.7424545 0 0 128 63 980 | -0.1126 0.1482714 0.7408572 0 0 128 63 981 | -0.10742 0.148 0.7421001 0 0 128 63 982 | -0.10283 0.14726 0.7426 0 0 128 63 983 | -0.09909999 0.1458 0.743 0 0 128 63 984 | -0.1219 0.1543 0.74 0 0 128 63 985 | -0.1170889 0.1533 0.7411111 0 0 128 63 986 | -0.1129111 0.1517222 0.7425556 0 0 128 63 987 | -0.1083 0.1514 0.743 0 0 128 63 988 | -0.1318 0.1581333 0.74 0 0 128 63 989 | -0.1273333 0.1577778 0.7413334 0 0 128 63 990 | -0.1227636 0.1574727 0.742 0 0 128 63 991 | -0.1174333 0.1563667 0.7428333 0 0 128 63 992 | -0.1139 0.155 0.743 0 0 128 63 993 | -0.13174 0.16084 0.7414001 0 0 128 63 994 | -0.1273 0.161225 0.742625 0 0 128 63 995 | -0.1231 0.1613 0.743 0 0 128 63 996 | -0.04046667 0.04193334 0.7456667 0 0 128 63 997 | -0.03806667 0.04306667 0.745 0 0 128 63 998 | -0.0348 0.0419 0.745 0 0 128 63 999 | -0.0404 0.0468 0.745 0 0 128 63 1000 | -0.03768889 0.04766667 0.7468888 0 0 128 63 1001 | -0.0349 0.0484 0.747 0 0 128 63 1002 | -0.038075 0.0509 0.7475 0 0 128 63 1003 | -0.0349 0.0506 0.748 0 0 128 63 1004 | -0.04656667 0.06076667 0.7450001 0 0 128 63 1005 | -0.06075 0.077425 0.746 0 0 128 63 1006 | -0.0576 0.07610001 0.747 0 0 128 63 1007 | -0.0548 0.0761 0.747 0 0 128 63 1008 | -0.06182 0.08286001 0.7462 0 0 128 63 1009 | -0.06255001 0.08745 0.7465 0 0 128 63 1010 | -0.06255 0.09241249 0.7465 0 0 128 63 1011 | -0.06239999 0.09712 0.7464 0 0 128 63 1012 | -0.0628625 0.1023125 0.746 0 0 128 63 1013 | -0.06646667 0.1081 0.7450001 0 0 128 63 1014 | -0.064 0.1073667 0.7466667 0 0 128 63 1015 | -0.06703333 0.1124889 0.746 0 0 128 63 1016 | -0.0643 0.1120333 0.7476668 0 0 128 63 1017 | -0.07238334 0.1192 0.745 0 0 128 63 1018 | -0.06762858 0.1174286 0.7472857 0 0 128 63 1019 | -0.0648 0.1168 0.748 0 0 128 63 1020 | -0.0809 0.1242 0.745 0 0 128 63 1021 | -0.07715714 0.1231857 0.7452857 0 0 128 63 1022 | -0.07259168 0.1227583 0.7471666 0 0 128 63 1023 | -0.0684 0.1211 0.748 0 0 128 63 1024 | -0.08115 0.1278375 0.74575 0 0 128 63 1025 | -0.0775 0.1272778 0.7466666 0 0 128 63 1026 | -0.073575 0.127325 0.7480001 0 0 128 63 1027 | -0.08660001 0.1341 0.745 0 0 128 63 1028 | -0.08234615 0.1326462 0.7459999 0 0 128 63 1029 | -0.07793334 0.1319111 0.7477778 0 0 128 63 1030 | -0.0748 0.1304 0.748 0 0 128 63 1031 | -0.09194 0.13823 0.7449999 0 0 128 63 1032 | -0.08736666 0.1370333 0.7456666 0 0 128 63 1033 | -0.08408 0.13702 0.747 0 0 128 63 1034 | -0.0958 0.144 0.745 0 0 128 63 1035 | -0.09264545 0.1425364 0.7466363 0 0 128 63 1036 | -0.08784 0.14086 0.7476001 0 0 128 63 1037 | -0.1015 0.1497 0.745 0 0 128 63 1038 | -0.09769 0.14784 0.7455 0 0 128 63 1039 | -0.09412001 0.14714 0.7478001 0 0 128 63 1040 | -0.1114 0.154 0.745 0 0 128 63 1041 | -0.1071333 0.1532667 0.745 0 0 128 63 1042 | -0.10264 0.15272 0.7452 0 0 128 63 1043 | -0.09815001 0.15191 0.7468001 0 0 128 63 1044 | -0.0947 0.1503 0.748 0 0 128 63 1045 | -0.1175 0.159 0.745 0 0 128 63 1046 | -0.1128333 0.1573111 0.7452222 0 0 128 63 1047 | -0.107975 0.1569917 0.7459166 0 0 128 63 1048 | -0.10261 0.15698 0.7472 0 0 128 63 1049 | -0.099 0.156 0.748 0 0 128 63 1050 | -0.1277 0.1639 0.745 0 0 128 63 1051 | -0.1216857 0.1633143 0.7460001 0 0 128 63 1052 | -0.1178125 0.1622375 0.74625 0 0 128 63 1053 | -0.1125444 0.1614333 0.7474445 0 0 128 63 1054 | -0.109 0.1603 0.748 0 0 128 63 1055 | -0.1267833 0.1666 0.7465 0 0 128 63 1056 | -0.1232 0.1667429 0.7477144 0 0 128 63 1057 | -0.0336 0.0421 0.75 0 0 128 63 1058 | -0.0364 0.045 0.75 0 0 128 63 1059 | -0.035 0.0457 0.75 0 0 128 63 1060 | -0.03746667 0.05316667 0.7513334 0 0 128 63 1061 | -0.03725 0.0551 0.752 0 0 128 63 1062 | -0.057 0.07803334 0.7513334 0 0 128 63 1063 | -0.06095 0.08315 0.7525 0 0 128 63 1064 | -0.0595 0.0839 0.753 0 0 128 63 1065 | -0.06075 0.087225 0.7505 0 0 128 63 1066 | -0.0585625 0.0879375 0.75225 0 0 128 63 1067 | -0.0607 0.09213334 0.75 0 0 128 63 1068 | -0.0581875 0.0925625 0.752 0 0 128 63 1069 | -0.0607 0.09715 0.75 0 0 128 63 1070 | -0.05895 0.09696668 0.7521666 0 0 128 63 1071 | -0.06076667 0.1022 0.7506666 0 0 128 63 1072 | -0.0594 0.1023667 0.7516667 0 0 128 63 1073 | -0.0615 0.1072875 0.7509999 0 0 128 63 1074 | -0.06185715 0.1125572 0.7514287 0 0 128 63 1075 | -0.0664 0.1193 0.75 0 0 128 63 1076 | -0.06370001 0.1174 0.7516667 0 0 128 63 1077 | -0.06649999 0.122625 0.7507499 0 0 128 63 1078 | -0.07098 0.12758 0.75 0 0 128 63 1079 | -0.06743334 0.1272534 0.7515333 0 0 128 63 1080 | -0.07546667 0.1331 0.75 0 0 128 63 1081 | -0.0722 0.1322556 0.7506666 0 0 128 63 1082 | -0.06896 0.13232 0.7526 0 0 128 63 1083 | -0.08171429 0.1380714 0.7500001 0 0 128 63 1084 | -0.0771 0.1374667 0.7509333 0 0 128 63 1085 | -0.073 0.1368714 0.7524287 0 0 128 63 1086 | -0.0907 0.1436 0.75 0 0 128 63 1087 | -0.08704 0.14338 0.7504 0 0 128 63 1088 | -0.08284546 0.1423091 0.7516363 0 0 128 63 1089 | -0.0778111 0.1423 0.7525557 0 0 128 63 1090 | -0.0917 0.1478375 0.7507499 0 0 128 63 1091 | -0.08746 0.1475867 0.7514667 0 0 128 63 1092 | -0.08269 0.14674 0.7524001 0 0 128 63 1093 | -0.07913333 0.1465333 0.753 0 0 128 63 1094 | -0.0964 0.1536 0.75 0 0 128 63 1095 | -0.09283636 0.1525182 0.7512727 0 0 128 63 1096 | -0.08874001 0.15214 0.7528 0 0 128 63 1097 | -0.10215 0.1593 0.75 0 0 128 63 1098 | -0.09695715 0.1575143 0.7507857 0 0 128 63 1099 | -0.09293334 0.1565 0.7526667 0 0 128 63 1100 | -0.1114 0.1636 0.75 0 0 128 63 1101 | -0.1076 0.1626333 0.7515556 0 0 128 63 1102 | -0.1038 0.161425 0.75175 0 0 128 63 1103 | -0.09815 0.16195 0.7525 0 0 128 63 1104 | -0.12184 0.16874 0.75 0 0 128 63 1105 | -0.1173786 0.1677714 0.7515 0 0 128 63 1106 | -0.1128545 0.1670091 0.7520909 0 0 128 63 1107 | -0.1096667 0.167 0.7526667 0 0 128 63 1108 | -0.1229 0.1718143 0.752143 0 0 128 63 1109 | -0.11755 0.1713 0.7525 0 0 128 63 1110 | -0.1126 0.1704667 0.753 0 0 128 63 1111 | -0.03245 0.043625 0.7574999 0 0 128 63 1112 | -0.02816667 0.044 0.7580001 0 0 128 63 1113 | -0.0324 0.04681111 0.7562222 0 0 128 63 1114 | -0.0292 0.0465 0.757 0 0 128 63 1115 | -0.03586667 0.05316667 0.7580001 0 0 128 63 1116 | -0.0326 0.0524125 0.7564999 0 0 128 63 1117 | -0.0354 0.0556 0.758 0 0 128 63 1118 | -0.0332 0.0556 0.758 0 0 128 63 1119 | -0.05873334 0.07936667 0.7553334 0 0 128 63 1120 | -0.0586 0.08213334 0.7565 0 0 128 63 1121 | -0.05736667 0.08716667 0.7563334 0 0 128 63 1122 | -0.0559 0.0923 0.75725 0 0 128 63 1123 | -0.0541 0.0902 0.758 0 0 128 63 1124 | -0.0567125 0.0977625 0.75625 0 0 128 63 1125 | -0.0578 0.1028 0.757 0 0 128 63 1126 | -0.0588 0.1075857 0.7567143 0 0 128 63 1127 | -0.05891249 0.112225 0.7566249 0 0 128 63 1128 | -0.0617 0.1169 0.756 0 0 128 63 1129 | -0.0599 0.1162 0.758 0 0 128 63 1130 | -0.066375 0.1329375 0.7555 0 0 128 63 1131 | -0.07176667 0.1384667 0.756 0 0 128 63 1132 | -0.068875 0.1367 0.7574999 0 0 128 63 1133 | -0.07646666 0.1441 0.7553334 0 0 128 63 1134 | -0.07383334 0.1421 0.7573333 0 0 128 63 1135 | -0.07775 0.1473667 0.756 0 0 128 63 1136 | -0.0742 0.1462 0.756 0 0 128 63 1137 | -0.08684286 0.1536714 0.7554286 0 0 128 63 1138 | -0.08267778 0.1517 0.7564445 0 0 128 63 1139 | -0.09183334 0.1585 0.7553334 0 0 128 63 1140 | -0.08870001 0.1573143 0.7571428 0 0 128 63 1141 | -0.08374999 0.1552 0.758 0 0 128 63 1142 | -0.1057 0.1647 0.755 0 0 128 63 1143 | -0.1016222 0.1636667 0.7555556 0 0 128 63 1144 | -0.09698334 0.1634833 0.7561667 0 0 128 63 1145 | -0.09282223 0.1618667 0.7568889 0 0 128 63 1146 | -0.1071889 0.1676333 0.7554445 0 0 128 63 1147 | -0.10288 0.16797 0.7575999 0 0 128 63 1148 | -0.09736668 0.1661333 0.7573334 0 0 128 63 1149 | -0.09385 0.1653 0.758 0 0 128 63 1150 | -0.1215333 0.1742333 0.755 0 0 128 63 1151 | -0.117625 0.17375 0.7555 0 0 128 63 1152 | -0.1121286 0.1730857 0.7567143 0 0 128 63 1153 | -0.10822 0.17104 0.7566 0 0 128 63 1154 | -0.10395 0.1711 0.758 0 0 128 63 1155 | -0.1208333 0.1761 0.7566667 0 0 128 63 1156 | -0.11745 0.175825 0.7565 0 0 128 63 1157 | -0.1148 0.1754 0.758 0 0 128 63 1158 | -0.0564 0.08287143 0.7605714 0 0 128 63 1159 | -0.0545 0.08284999 0.763 0 0 128 63 1160 | -0.056225 0.087375 0.7614999 0 0 128 63 1161 | -0.0545 0.0894 0.763 0 0 128 63 1162 | -0.0557 0.0919 0.76 0 0 128 63 1163 | -0.0545 0.0923 0.763 0 0 128 63 1164 | -0.05655 0.102225 0.76125 0 0 128 63 1165 | -0.0574 0.10755 0.763 0 0 128 63 1166 | -0.0579 0.1122 0.76 0 0 128 63 1167 | -0.06163333 0.1191333 0.7613333 0 0 128 63 1168 | -0.0589 0.117 0.763 0 0 128 63 1169 | -0.06291667 0.12265 0.762 0 0 128 63 1170 | -0.06394286 0.1273857 0.7618572 0 0 128 63 1171 | -0.06299091 0.1322182 0.7616364 0 0 128 63 1172 | -0.0702 0.1397 0.76 0 0 128 63 1173 | -0.06741667 0.1386667 0.761 0 0 128 63 1174 | -0.063175 0.1368625 0.762375 0 0 128 63 1175 | -0.07154 0.14236 0.7618 0 0 128 63 1176 | -0.069 0.1417 0.763 0 0 128 63 1177 | -0.0761 0.1486 0.761 0 0 128 63 1178 | -0.0747 0.14725 0.7615 0 0 128 63 1179 | -0.0876 0.1585 0.76 0 0 128 63 1180 | -0.0847 0.1571 0.76 0 0 128 63 1181 | -0.09103334 0.1639667 0.7606666 0 0 128 63 1182 | -0.08852001 0.16126 0.7606 0 0 128 63 1183 | -0.1006 0.1686 0.76 0 0 128 63 1184 | -0.09745 0.16845 0.7607499 0 0 128 63 1185 | -0.09248 0.16777 0.7612001 0 0 128 63 1186 | -0.0889 0.1654667 0.763 0 0 128 63 1187 | -0.1068857 0.1739572 0.7605714 0 0 128 63 1188 | -0.1019143 0.1724857 0.7605714 0 0 128 63 1189 | -0.09726667 0.1720667 0.7622499 0 0 128 63 1190 | -0.09299999 0.1715 0.763 0 0 128 63 1191 | -0.1169 0.1785333 0.761 0 0 128 63 1192 | -0.1127143 0.1774 0.7621429 0 0 128 63 1193 | -0.1079833 0.1769833 0.7626667 0 0 128 63 1194 | -0.1024667 0.1756 0.763 0 0 128 63 1195 | -0.0974 0.1751 0.763 0 0 128 63 1196 | -0.1169667 0.1809 0.763 0 0 128 63 1197 | -0.0538 0.08256667 0.7670001 0 0 128 63 1198 | -0.05343333 0.08719999 0.7665556 0 0 128 63 1199 | -0.05254445 0.09251111 0.7674445 0 0 128 63 1200 | -0.054 0.09708333 0.7665 0 0 128 63 1201 | -0.0561 0.1042 0.765 0 0 128 63 1202 | -0.05435 0.1023333 0.7675 0 0 128 63 1203 | -0.05623333 0.1073667 0.7670001 0 0 128 63 1204 | -0.054525 0.107175 0.768 0 0 128 63 1205 | -0.04753333 0.109 0.768 0 0 128 63 1206 | -0.0563 0.11115 0.768 0 0 128 63 1207 | -0.0479 0.110775 0.768 0 0 128 63 1208 | -0.05826667 0.1182 0.7676667 0 0 128 63 1209 | -0.06146667 0.1229333 0.7653334 0 0 128 63 1210 | -0.05821111 0.1228333 0.7672223 0 0 128 63 1211 | -0.06123333 0.1276167 0.7656667 0 0 128 63 1212 | -0.05815715 0.1274714 0.7672857 0 0 128 63 1213 | -0.0605 0.1326 0.765 0 0 128 63 1214 | -0.0584 0.1321333 0.7665 0 0 128 63 1215 | -0.0612 0.13845 0.765 0 0 128 63 1216 | -0.05834999 0.1371 0.7657499 0 0 128 63 1217 | -0.06705715 0.1429572 0.7664286 0 0 128 63 1218 | -0.06332858 0.1417857 0.7668572 0 0 128 63 1219 | -0.07225001 0.1473834 0.7661667 0 0 128 63 1220 | -0.06895 0.1471667 0.7675 0 0 128 63 1221 | -0.0809 0.1537 0.765 0 0 128 63 1222 | -0.07774286 0.1522571 0.7670001 0 0 128 63 1223 | -0.07233334 0.1512 0.7670001 0 0 128 63 1224 | -0.0689 0.1517 0.7670001 0 0 128 63 1225 | -0.08595 0.1596 0.765 0 0 128 63 1226 | -0.08241667 0.1574667 0.7678334 0 0 128 63 1227 | -0.08640001 0.1629 0.7660001 0 0 128 63 1228 | -0.0841 0.1609 0.768 0 0 128 63 1229 | -0.08727 0.16766 0.7661 0 0 128 63 1230 | -0.08363333 0.167 0.768 0 0 128 63 1231 | -0.092 0.17334 0.7654 0 0 128 63 1232 | -0.08819091 0.1723455 0.7677274 0 0 128 63 1233 | -0.10635 0.1785 0.765 0 0 128 63 1234 | -0.1021333 0.17825 0.766 0 0 128 63 1235 | -0.09751111 0.1774111 0.765889 0 0 128 63 1236 | -0.09272222 0.1773889 0.7665556 0 0 128 63 1237 | -0.0898 0.1774333 0.7666667 0 0 128 63 1238 | -0.1164 0.1835333 0.7656667 0 0 128 63 1239 | -0.1122846 0.1825384 0.7659231 0 0 128 63 1240 | -0.1075616 0.1823692 0.7666924 0 0 128 63 1241 | -0.1029417 0.1824833 0.7675001 0 0 128 63 1242 | -0.097275 0.18105 0.768 0 0 128 63 1243 | -0.0929 0.1807 0.768 0 0 128 63 1244 | -0.0898 0.1804 0.767 0 0 128 63 1245 | -0.1141 0.1858 0.768 0 0 128 63 1246 | -0.10778 0.18706 0.7678 0 0 128 63 1247 | -0.103 0.1863 0.7670001 0 0 128 63 1248 | -0.0468 0.06933334 0.772 0 0 128 63 1249 | -0.042625 0.06836668 0.772 0 0 128 63 1250 | -0.0385 0.06886667 0.772 0 0 128 63 1251 | -0.0476625 0.0730625 0.77275 0 0 128 63 1252 | -0.0435875 0.072675 0.772625 0 0 128 63 1253 | -0.0551 0.0787 0.772 0 0 128 63 1254 | -0.052725 0.07845001 0.771625 0 0 128 63 1255 | -0.048225 0.077675 0.773 0 0 128 63 1256 | -0.0427 0.0773 0.773 0 0 128 63 1257 | -0.0368 0.0773 0.773 0 0 128 63 1258 | -0.03385 0.07805 0.773 0 0 128 63 1259 | -0.05164445 0.08216667 0.7711111 0 0 128 63 1260 | -0.0487 0.08232858 0.7728571 0 0 128 63 1261 | -0.04415 0.0802 0.773 0 0 128 63 1262 | -0.03095 0.0847 0.773 0 0 128 63 1263 | -0.05097499 0.087275 0.77 0 0 128 63 1264 | -0.04782223 0.08751111 0.7722222 0 0 128 63 1265 | -0.0449 0.08760001 0.773 0 0 128 63 1266 | -0.03095 0.0861 0.773 0 0 128 63 1267 | -0.0506 0.09263333 0.77 0 0 128 63 1268 | -0.04769167 0.09245001 0.7705001 0 0 128 63 1269 | -0.04372222 0.09293333 0.7724444 0 0 128 63 1270 | -0.05136667 0.09758334 0.7703333 0 0 128 63 1271 | -0.04777778 0.09777779 0.7717777 0 0 128 63 1272 | -0.04243571 0.09740715 0.7722144 0 0 128 63 1273 | -0.03801667 0.09838333 0.7728333 0 0 128 63 1274 | -0.0518 0.10272 0.7704 0 0 128 63 1275 | -0.04773334 0.1028 0.7710001 0 0 128 63 1276 | -0.04280715 0.1025429 0.7714287 0 0 128 63 1277 | -0.03753333 0.1022444 0.7723333 0 0 128 63 1278 | -0.0346 0.1038 0.773 0 0 128 63 1279 | -0.0518875 0.1079875 0.77 0 0 128 63 1280 | -0.04766667 0.10705 0.77 0 0 128 63 1281 | -0.04232858 0.1074143 0.7702858 0 0 128 63 1282 | -0.037475 0.107275 0.7715 0 0 128 63 1283 | -0.03253334 0.10758 0.7726 0 0 128 63 1284 | -0.0565 0.1137 0.77 0 0 128 63 1285 | -0.0528 0.1122 0.77 0 0 128 63 1286 | -0.04738 0.1131 0.77 0 0 128 63 1287 | -0.04253333 0.112225 0.7701668 0 0 128 63 1288 | -0.03747778 0.1124556 0.7717777 0 0 128 63 1289 | -0.03257273 0.1124091 0.7723636 0 0 128 63 1290 | -0.0565 0.1175875 0.7704999 0 0 128 63 1291 | -0.05274615 0.1171846 0.7716924 0 0 128 63 1292 | -0.0478 0.1169 0.772 0 0 128 63 1293 | -0.04274667 0.1174 0.7714667 0 0 128 63 1294 | -0.036 0.1154 0.772 0 0 128 63 1295 | -0.0316 0.1154 0.772 0 0 128 63 1296 | -0.0558 0.12265 0.771 0 0 128 63 1297 | -0.05235455 0.1224182 0.7721818 0 0 128 63 1298 | -0.04765715 0.1210572 0.7730001 0 0 128 63 1299 | -0.04343333 0.1222 0.773 0 0 128 63 1300 | -0.0558 0.1277667 0.7710001 0 0 128 63 1301 | -0.05251 0.12751 0.7720999 0 0 128 63 1302 | -0.0558 0.1329 0.771 0 0 128 63 1303 | -0.05220833 0.1323417 0.7720834 0 0 128 63 1304 | -0.04811 0.13207 0.7721999 0 0 128 63 1305 | -0.0558 0.1373167 0.771 0 0 128 63 1306 | -0.0523875 0.1373125 0.772 0 0 128 63 1307 | -0.0493 0.136 0.772 0 0 128 63 1308 | -0.0623 0.14375 0.77 0 0 128 63 1309 | -0.06632857 0.1476714 0.7702857 0 0 128 63 1310 | -0.06245555 0.1477111 0.7715555 0 0 128 63 1311 | -0.07700001 0.1542333 0.77 0 0 128 63 1312 | -0.0728 0.1537 0.772 0 0 128 63 1313 | -0.06648 0.15106 0.7708001 0 0 128 63 1314 | -0.06350001 0.1512 0.772 0 0 128 63 1315 | -0.0814 0.1577 0.77 0 0 128 63 1316 | -0.0776846 0.1577077 0.7713077 0 0 128 63 1317 | -0.07315 0.1563 0.773 0 0 128 63 1318 | -0.08193333 0.1624889 0.7704444 0 0 128 63 1319 | -0.07771112 0.1622111 0.7722222 0 0 128 63 1320 | -0.08193333 0.1671833 0.7704999 0 0 128 63 1321 | -0.0779875 0.1669875 0.7725 0 0 128 63 1322 | -0.0858 0.17305 0.77 0 0 128 63 1323 | -0.082275 0.1726833 0.7715 0 0 128 63 1324 | -0.0788 0.1701 0.773 0 0 128 63 1325 | -0.08713637 0.1776727 0.77 0 0 128 63 1326 | -0.08282222 0.1769778 0.7725556 0 0 128 63 1327 | -0.1009667 0.1836 0.77 0 0 128 63 1328 | -0.09754001 0.1835 0.77 0 0 128 63 1329 | -0.0924 0.18335 0.77 0 0 128 63 1330 | -0.0824 0.180975 0.7724999 0 0 128 63 1331 | -0.0788 0.1811 0.773 0 0 128 63 1332 | -0.1122 0.18775 0.77 0 0 128 63 1333 | -0.1005 0.1855 0.77 0 0 128 63 1334 | -0.09753334 0.1855 0.77 0 0 128 63 1335 | -0.0924 0.1855 0.77 0 0 128 63 1336 | -0.0518 0.0747 0.777 0 0 128 63 1337 | -0.040975 0.07342499 0.775 0 0 128 63 1338 | -0.03750909 0.07254545 0.7751819 0 0 128 63 1339 | -0.034725 0.072375 0.7754999 0 0 128 63 1340 | -0.0518 0.0762 0.777 0 0 128 63 1341 | -0.0477 0.0772 0.775 0 0 128 63 1342 | -0.04280001 0.0775 0.775 0 0 128 63 1343 | -0.03785714 0.07752857 0.7752858 0 0 128 63 1344 | -0.0348 0.0762 0.777 0 0 128 63 1345 | -0.0468 0.08282001 0.775 0 0 128 63 1346 | -0.04259286 0.08298573 0.775 0 0 128 63 1347 | -0.03764167 0.08269167 0.7751667 0 0 128 63 1348 | -0.03395 0.08267501 0.775 0 0 128 63 1349 | -0.04208888 0.08787778 0.7754444 0 0 128 63 1350 | -0.03767778 0.08793334 0.7758889 0 0 128 63 1351 | -0.0328 0.08818 0.7756 0 0 128 63 1352 | -0.0288 0.08855 0.775 0 0 128 63 1353 | -0.04148 0.09168001 0.775 0 0 128 63 1354 | -0.03766667 0.09233333 0.7756667 0 0 128 63 1355 | -0.03255 0.09246667 0.7766668 0 0 128 63 1356 | -0.02824 0.09267999 0.7757999 0 0 128 63 1357 | -0.03715 0.09620001 0.775 0 0 128 63 1358 | -0.032525 0.09761249 0.7765 0 0 128 63 1359 | -0.02782857 0.09821429 0.7770001 0 0 128 63 1360 | -0.03229091 0.1025727 0.7757273 0 0 128 63 1361 | -0.02744444 0.1029778 0.7778888 0 0 128 63 1362 | -0.0245 0.10385 0.779 0 0 128 63 1363 | -0.0303 0.1055 0.775 0 0 128 63 1364 | -0.02738889 0.1072667 0.7767777 0 0 128 63 1365 | -0.0239 0.1079 0.779 0 0 128 63 1366 | -0.0303 0.1144 0.775 0 0 128 63 1367 | -0.02741667 0.1125167 0.7773333 0 0 128 63 1368 | -0.02384 0.11156 0.7778 0 0 128 63 1369 | -0.038 0.11704 0.7766 0 0 128 63 1370 | -0.03241 0.1177 0.7772 0 0 128 63 1371 | -0.02781429 0.1174143 0.7767143 0 0 128 63 1372 | -0.0245 0.115 0.779 0 0 128 63 1373 | -0.0483 0.12414 0.775 0 0 128 63 1374 | -0.045 0.1247 0.775 0 0 128 63 1375 | -0.03255 0.1206 0.777 0 0 128 63 1376 | -0.048 0.1277 0.775 0 0 128 63 1377 | -0.045 0.12695 0.775 0 0 128 63 1378 | -0.0613 0.1439 0.775 0 0 128 63 1379 | -0.0592 0.14355 0.777 0 0 128 63 1380 | -0.0614 0.1458 0.777 0 0 128 63 1381 | -0.05943333 0.1463 0.7770001 0 0 128 63 1382 | -0.0745 0.1587 0.775 0 0 128 63 1383 | -0.076 0.1646 0.775 0 0 128 63 1384 | -0.07368572 0.1622857 0.777 0 0 128 63 1385 | -0.076 0.16825 0.775 0 0 128 63 1386 | -0.0726 0.1673937 0.77775 0 0 128 63 1387 | -0.0684 0.1666 0.779 0 0 128 63 1388 | -0.07761111 0.1727111 0.7761111 0 0 128 63 1389 | -0.07278182 0.1724 0.7775455 0 0 128 63 1390 | -0.08143334 0.1789 0.775 0 0 128 63 1391 | -0.07756364 0.1778 0.777 0 0 128 63 1392 | -0.07414 0.17658 0.777 0 0 128 63 1393 | -0.07695 0.1813 0.777 0 0 128 63 1394 | -0.0291 0.0978 0.784 0 0 128 63 1395 | -0.03715 0.1196 0.78 0 0 128 63 1396 | -0.0349 0.1196 0.78 0 0 128 63 1397 | -0.03715 0.1211 0.78 0 0 128 63 1398 | -0.0349 0.1211 0.78 0 0 128 63 1399 | -0.0724 0.159 0.784 0 0 128 63 1400 | -0.07162 0.16242 0.7815999 0 0 128 63 1401 | -0.0267 0.0986 0.786 0 0 128 63 1402 | -0.0713 0.15915 0.788 0 0 128 63 1403 | -0.06787143 0.1577143 0.788 0 0 128 63 1404 | -0.0712 0.1619 0.787 0 0 128 63 1405 | -0.06815001 0.1631 0.789 0 0 128 63 1406 | -0.06726 0.16584 0.7866001 0 0 128 63 1407 | -0.0701 0.16275 0.791 0 0 128 63 1408 | -0.0668375 0.1621875 0.7909999 0 0 128 63 1409 | -------------------------------------------------------------------------------- /data/object_template_4.pcd: -------------------------------------------------------------------------------- 1 | # .PCD v.7 - Point Cloud Data file format 2 | VERSION .7 3 | FIELDS x y z _ 4 | SIZE 4 4 4 1 5 | TYPE F F F U 6 | COUNT 1 1 1 4 7 | WIDTH 1159 8 | HEIGHT 1 9 | VIEWPOINT 0 0 0 1 0 0 0 10 | POINTS 1159 11 | DATA ascii 12 | -0.1739393 0.02014623 0.7147226 0 0 128 63 13 | -0.1703516 0.01916155 0.7130281 0 0 128 63 14 | -0.165576 0.01966778 0.7126542 0 0 128 63 15 | -0.1626851 0.02035379 0.7128654 0 0 128 63 16 | -0.1581913 0.01964504 0.7110026 0 0 128 63 17 | -0.1766133 0.02067296 0.7188575 0 0 128 63 18 | -0.1722635 0.0214889 0.7146546 0 0 128 63 19 | -0.1679536 0.02226496 0.7128688 0 0 128 63 20 | -0.1632992 0.0242718 0.7121663 0 0 128 63 21 | -0.1776602 0.02386879 0.719599 0 0 128 63 22 | -0.1738066 0.0253538 0.7166914 0 0 128 63 23 | -0.1695476 0.02710667 0.7147737 0 0 128 63 24 | -0.1647563 0.02775794 0.7122366 0 0 128 63 25 | -0.1785201 0.02769891 0.7200024 0 0 128 63 26 | -0.1768341 0.02977642 0.7185885 0 0 128 63 27 | -0.1717722 0.03141252 0.715462 0 0 128 63 28 | -0.1777897 0.03222889 0.7185071 0 0 128 63 29 | -0.1359938 0.06167708 0.688816 0 0 128 63 30 | -0.1333481 0.06001655 0.6877936 0 0 128 63 31 | -0.149653 0.02010102 0.7086126 0 0 128 63 32 | -0.1457036 0.02122562 0.7085339 0 0 128 63 33 | -0.14137 0.02209977 0.7075827 0 0 128 63 34 | -0.1599871 0.02124269 0.7139056 0 0 128 63 35 | -0.1561056 0.02188808 0.7120437 0 0 128 63 36 | -0.1517327 0.02293091 0.7099171 0 0 128 63 37 | -0.147068 0.02473231 0.7084167 0 0 128 63 38 | -0.143204 0.02633145 0.707752 0 0 128 63 39 | -0.1602057 0.02334563 0.7135121 0 0 128 63 40 | -0.1581064 0.02625117 0.7121096 0 0 128 63 41 | -0.1535275 0.02799997 0.7102327 0 0 128 63 42 | -0.1486266 0.029685 0.7098781 0 0 128 63 43 | -0.1452883 0.02979896 0.7085487 0 0 128 63 44 | -0.1673917 0.02921662 0.7159581 0 0 128 63 45 | -0.164284 0.03006455 0.7140766 0 0 128 63 46 | -0.1597858 0.03059972 0.7120059 0 0 128 63 47 | -0.1548927 0.03258155 0.7113067 0 0 128 63 48 | -0.1509649 0.03390061 0.7104453 0 0 128 63 49 | -0.1783845 0.02896501 0.7219449 0 0 128 63 50 | -0.1739767 0.03030307 0.7192434 0 0 128 63 51 | -0.1693149 0.03219544 0.7162703 0 0 128 63 52 | -0.1658668 0.03330547 0.7142869 0 0 128 63 53 | -0.1613104 0.03505265 0.7124225 0 0 128 63 54 | -0.1564599 0.03690235 0.7119914 0 0 128 63 55 | -0.1793207 0.03404663 0.721698 0 0 128 63 56 | -0.1755533 0.03554671 0.7198014 0 0 128 63 57 | -0.1719186 0.03672982 0.7170361 0 0 128 63 58 | -0.1675963 0.03843721 0.7149155 0 0 128 63 59 | -0.162882 0.04031306 0.7136606 0 0 128 63 60 | -0.1590126 0.04162338 0.7128132 0 0 128 63 61 | -0.1805605 0.0392149 0.7224209 0 0 128 63 62 | -0.1766416 0.04095984 0.7212108 0 0 128 63 63 | -0.1725626 0.04269121 0.7188713 0 0 128 63 64 | -0.168804 0.04364043 0.7162822 0 0 128 63 65 | -0.1644228 0.04503646 0.7145323 0 0 128 63 66 | -0.1603455 0.04638322 0.7126324 0 0 128 63 67 | -0.1351373 0.05782833 0.6962608 0 0 128 63 68 | -0.132763 0.05683637 0.6925666 0 0 128 63 69 | -0.1813821 0.04428651 0.7239012 0 0 128 63 70 | -0.1785111 0.04516917 0.7227198 0 0 128 63 71 | -0.172071 0.04777511 0.7186146 0 0 128 63 72 | -0.1710205 0.04816256 0.7179541 0 0 128 63 73 | -0.166185 0.04856122 0.7152506 0 0 128 63 74 | -0.1376587 0.06053022 0.6956559 0 0 128 63 75 | -0.135965 0.06033566 0.6917406 0 0 128 63 76 | -0.1823558 0.04678557 0.7238184 0 0 128 63 77 | -0.180454 0.04802086 0.7230737 0 0 128 63 78 | -0.1720003 0.05067713 0.7178708 0 0 128 63 79 | -0.1399858 0.06452126 0.6946553 0 0 128 63 80 | -0.1367075 0.06657159 0.6925283 0 0 128 63 81 | -0.1442717 0.06931575 0.6972294 0 0 128 63 82 | -0.141375 0.06956554 0.6959649 0 0 128 63 83 | -0.1375773 0.07047341 0.6943849 0 0 128 63 84 | -0.1454588 0.07347284 0.6970909 0 0 128 63 85 | -0.1438203 0.07463671 0.6961902 0 0 128 63 86 | -0.1467765 0.07774895 0.6971098 0 0 128 63 87 | -0.1445666 0.0790441 0.6959521 0 0 128 63 88 | -0.1462025 0.08160125 0.6964445 0 0 128 63 89 | -0.1321137 0.02129818 0.7069994 0 0 128 63 90 | -0.1290378 0.02184372 0.705441 0 0 128 63 91 | -0.1267056 0.0228211 0.7044883 0 0 128 63 92 | -0.1390812 0.02285946 0.708052 0 0 128 63 93 | -0.1353181 0.0235884 0.7068627 0 0 128 63 94 | -0.1312202 0.02529422 0.7049204 0 0 128 63 95 | -0.1275125 0.02543639 0.7041767 0 0 128 63 96 | -0.1404995 0.02726557 0.708409 0 0 128 63 97 | -0.136963 0.02876513 0.7076522 0 0 128 63 98 | -0.1330909 0.02974544 0.7064885 0 0 128 63 99 | -0.1477773 0.03248741 0.7103984 0 0 128 63 100 | -0.1433734 0.03229339 0.7092334 0 0 128 63 101 | -0.1387592 0.03389599 0.7080265 0 0 128 63 102 | -0.1358865 0.03499026 0.7068653 0 0 128 63 103 | -0.1483385 0.03562226 0.7117974 0 0 128 63 104 | -0.1449654 0.03660997 0.7102036 0 0 128 63 105 | -0.1406154 0.03811549 0.7085384 0 0 128 63 106 | -0.1550269 0.03982619 0.7125217 0 0 128 63 107 | -0.1512942 0.03917731 0.711829 0 0 128 63 108 | -0.1466876 0.04079849 0.7106945 0 0 128 63 109 | -0.1422409 0.04109877 0.7088052 0 0 128 63 110 | -0.1565748 0.04325923 0.7128116 0 0 128 63 111 | -0.1528997 0.04435074 0.7123659 0 0 128 63 112 | -0.1485486 0.04430058 0.7114267 0 0 128 63 113 | -0.1611987 0.04617778 0.7143041 0 0 128 63 114 | -0.1578814 0.04769237 0.7133093 0 0 128 63 115 | -0.1544304 0.04855677 0.7122716 0 0 128 63 116 | -0.1349975 0.05590849 0.6984779 0 0 128 63 117 | -0.1773457 0.04618751 0.7230058 0 0 128 63 118 | -0.173782 0.04725683 0.7208247 0 0 128 63 119 | -0.1683647 0.04910844 0.7185103 0 0 128 63 120 | -0.1639896 0.0505288 0.71641 0 0 128 63 121 | -0.1597659 0.05162361 0.7143649 0 0 128 63 122 | -0.1558892 0.05235892 0.7128432 0 0 128 63 123 | -0.1370152 0.05843436 0.6982875 0 0 128 63 124 | -0.181715 0.05031049 0.7270692 0 0 128 63 125 | -0.1783829 0.05109581 0.7238011 0 0 128 63 126 | -0.1747508 0.05175627 0.7207507 0 0 128 63 127 | -0.1703822 0.05383473 0.7191738 0 0 128 63 128 | -0.1659864 0.05523788 0.7176692 0 0 128 63 129 | -0.1624889 0.05534967 0.7162544 0 0 128 63 130 | -0.1826766 0.05438396 0.7273716 0 0 128 63 131 | -0.1795079 0.0554923 0.7249099 0 0 128 63 132 | -0.1753035 0.05719287 0.7223973 0 0 128 63 133 | -0.1719513 0.05687111 0.7205979 0 0 128 63 134 | -0.168051 0.0583578 0.7185212 0 0 128 63 135 | -0.1376898 0.07348832 0.6949903 0 0 128 63 136 | -0.1837537 0.05791894 0.7270924 0 0 128 63 137 | -0.181275 0.05953573 0.7253633 0 0 128 63 138 | -0.1407995 0.07526533 0.6972303 0 0 128 63 139 | -0.1369696 0.07644344 0.6968524 0 0 128 63 140 | -0.1332708 0.0761913 0.6954362 0 0 128 63 141 | -0.1420136 0.07972256 0.6958051 0 0 128 63 142 | -0.1393523 0.08122944 0.6970248 0 0 128 63 143 | -0.1447199 0.08475555 0.6977826 0 0 128 63 144 | -0.1417282 0.08547663 0.6972725 0 0 128 63 145 | -0.1448351 0.08843625 0.6986923 0 0 128 63 146 | -0.1431785 0.08904722 0.6976507 0 0 128 63 147 | -0.1178546 0.02237883 0.7039878 0 0 128 63 148 | -0.1140193 0.02394006 0.7035738 0 0 128 63 149 | -0.1229934 0.02332915 0.7053327 0 0 128 63 150 | -0.1185424 0.02507161 0.7047686 0 0 128 63 151 | -0.1143676 0.02666051 0.7033581 0 0 128 63 152 | -0.1113714 0.02779525 0.7023706 0 0 128 63 153 | -0.1247693 0.02826685 0.7061864 0 0 128 63 154 | -0.120009 0.02964645 0.7054148 0 0 128 63 155 | -0.1159614 0.03098848 0.7037515 0 0 128 63 156 | -0.1126173 0.03099278 0.7022647 0 0 128 63 157 | -0.1308391 0.03179836 0.7075346 0 0 128 63 158 | -0.1263759 0.03306103 0.7079439 0 0 128 63 159 | -0.1216894 0.03399526 0.7064248 0 0 128 63 160 | -0.1327911 0.03558654 0.7076334 0 0 128 63 161 | -0.1281664 0.03738949 0.7087424 0 0 128 63 162 | -0.1383191 0.04000122 0.7092816 0 0 128 63 163 | -0.1346126 0.04019576 0.7089403 0 0 128 63 164 | -0.1307677 0.04140594 0.7093229 0 0 128 63 165 | -0.1446424 0.04342098 0.7118586 0 0 128 63 166 | -0.1410102 0.04420593 0.7103874 0 0 128 63 167 | -0.1363424 0.04488827 0.7098873 0 0 128 63 168 | -0.1324129 0.04467561 0.7096082 0 0 128 63 169 | -0.1499152 0.04722818 0.713775 0 0 128 63 170 | -0.1460871 0.04684917 0.7127331 0 0 128 63 171 | -0.141941 0.04800709 0.7109136 0 0 128 63 172 | -0.1382038 0.04989909 0.7094846 0 0 128 63 173 | -0.1332067 0.05311715 0.7079833 0 0 128 63 174 | -0.1294478 0.05390697 0.705765 0 0 128 63 175 | -0.1515387 0.05062377 0.7138245 0 0 128 63 176 | -0.1476848 0.05113096 0.7135843 0 0 128 63 177 | -0.1437587 0.05261087 0.711471 0 0 128 63 178 | -0.1400963 0.05391345 0.7085267 0 0 128 63 179 | -0.1355756 0.05545502 0.7068663 0 0 128 63 180 | -0.1305668 0.05545 0.7052185 0 0 128 63 181 | -0.1585056 0.05492456 0.7165342 0 0 128 63 182 | -0.1539815 0.05487377 0.7152696 0 0 128 63 183 | -0.1494071 0.05636092 0.7142573 0 0 128 63 184 | -0.1448863 0.05740336 0.7124976 0 0 128 63 185 | -0.1409726 0.05811607 0.7103731 0 0 128 63 186 | -0.1376401 0.05839752 0.7056039 0 0 128 63 187 | -0.1640497 0.0578861 0.7188025 0 0 128 63 188 | -0.1597895 0.05820797 0.7180681 0 0 128 63 189 | -0.1548582 0.05944962 0.716953 0 0 128 63 190 | -0.1508259 0.06053262 0.7156777 0 0 128 63 191 | -0.1702146 0.05973194 0.7220641 0 0 128 63 192 | -0.1655417 0.06115945 0.7196558 0 0 128 63 193 | -0.1605209 0.06290665 0.7188968 0 0 128 63 194 | -0.1565617 0.06393256 0.7178137 0 0 128 63 195 | -0.1522937 0.06343975 0.715762 0 0 128 63 196 | -0.1841193 0.06124236 0.7288049 0 0 128 63 197 | -0.1798597 0.06239998 0.7266146 0 0 128 63 198 | -0.176136 0.06214678 0.7250079 0 0 128 63 199 | -0.171327 0.06417365 0.7239555 0 0 128 63 200 | -0.1668321 0.06588136 0.7216257 0 0 128 63 201 | -0.1625053 0.06730241 0.7193314 0 0 128 63 202 | -0.1586056 0.06785788 0.7180901 0 0 128 63 203 | -0.1354716 0.07918408 0.6982183 0 0 128 63 204 | -0.1842445 0.06430054 0.7296779 0 0 128 63 205 | -0.1811412 0.0655786 0.7277293 0 0 128 63 206 | -0.1762522 0.06744692 0.7270768 0 0 128 63 207 | -0.172024 0.06811941 0.7252597 0 0 128 63 208 | -0.1679218 0.06974774 0.7226524 0 0 128 63 209 | -0.1648376 0.07088523 0.7207133 0 0 128 63 210 | -0.1364382 0.08221833 0.6980015 0 0 128 63 211 | -0.1350892 0.08294664 0.6970972 0 0 128 63 212 | -0.1845528 0.06890438 0.7318225 0 0 128 63 213 | -0.1829942 0.06798797 0.7312052 0 0 128 63 214 | -0.1381985 0.08740281 0.700449 0 0 128 63 215 | -0.1344569 0.08882355 0.6988127 0 0 128 63 216 | -0.1430364 0.09200671 0.7026634 0 0 128 63 217 | -0.1401245 0.09140172 0.7011118 0 0 128 63 218 | -0.1081063 0.02939168 0.7035141 0 0 128 63 219 | -0.1139107 0.03375214 0.7046145 0 0 128 63 220 | -0.1103704 0.03342351 0.7042382 0 0 128 63 221 | -0.1205636 0.03695921 0.7089698 0 0 128 63 222 | -0.1162469 0.03693876 0.7064157 0 0 128 63 223 | -0.1123562 0.03755521 0.7054075 0 0 128 63 224 | -0.1258096 0.03930517 0.7096782 0 0 128 63 225 | -0.1220354 0.0401205 0.7101563 0 0 128 63 226 | -0.1170688 0.04221735 0.7077436 0 0 128 63 227 | -0.1281939 0.04291014 0.7100869 0 0 128 63 228 | -0.1238512 0.04451995 0.7097505 0 0 128 63 229 | -0.1199963 0.04479472 0.7086951 0 0 128 63 230 | -0.1332975 0.0477064 0.7116717 0 0 128 63 231 | -0.1301745 0.04788672 0.7105252 0 0 128 63 232 | -0.1259048 0.04958715 0.7094074 0 0 128 63 233 | -0.122669 0.05062603 0.7087177 0 0 128 63 234 | -0.134387 0.05100068 0.7114578 0 0 128 63 235 | -0.1320162 0.05206149 0.7099219 0 0 128 63 236 | -0.1279527 0.05261909 0.708293 0 0 128 63 237 | -0.1239995 0.05404087 0.7086045 0 0 128 63 238 | -0.143905 0.05997049 0.7144073 0 0 128 63 239 | -0.1388149 0.06022697 0.712597 0 0 128 63 240 | -0.152304 0.06223413 0.7183843 0 0 128 63 241 | -0.1492525 0.06286251 0.7165866 0 0 128 63 242 | -0.1459661 0.06307111 0.716507 0 0 128 63 243 | -0.1542154 0.06524203 0.7186832 0 0 128 63 244 | -0.1507293 0.0669587 0.7178165 0 0 128 63 245 | -0.1466667 0.06732326 0.7172613 0 0 128 63 246 | -0.16045 0.07009443 0.720864 0 0 128 63 247 | -0.1569029 0.06974133 0.7203448 0 0 128 63 248 | -0.1528866 0.06958995 0.7203949 0 0 128 63 249 | -0.148442 0.07122915 0.7176005 0 0 128 63 250 | -0.1710296 0.07070758 0.7267499 0 0 128 63 251 | -0.1673175 0.07230159 0.7240292 0 0 128 63 252 | -0.1625474 0.07315951 0.7229918 0 0 128 63 253 | -0.1571582 0.07248818 0.7219928 0 0 128 63 254 | -0.1838699 0.07125642 0.7332059 0 0 128 63 255 | -0.1809762 0.07129215 0.7321215 0 0 128 63 256 | -0.1771948 0.07262648 0.7292744 0 0 128 63 257 | -0.1723951 0.07462276 0.728017 0 0 128 63 258 | -0.167965 0.0762792 0.7262323 0 0 128 63 259 | -0.1852591 0.07494911 0.7346058 0 0 128 63 260 | -0.1825999 0.07648987 0.7330442 0 0 128 63 261 | -0.1789971 0.07790204 0.7298346 0 0 128 63 262 | -0.1745021 0.07932542 0.7276878 0 0 128 63 263 | -0.1707245 0.08040609 0.7262183 0 0 128 63 264 | -0.1369884 0.09343139 0.7037038 0 0 128 63 265 | -0.1336126 0.09244462 0.7017368 0 0 128 63 266 | -0.1855632 0.07873517 0.7357854 0 0 128 63 267 | -0.1837023 0.08147443 0.7339225 0 0 128 63 268 | -0.1800197 0.08271966 0.7308987 0 0 128 63 269 | -0.1757552 0.08389308 0.7288568 0 0 128 63 270 | -0.1719755 0.08300083 0.7274236 0 0 128 63 271 | -0.1377068 0.09624032 0.7045698 0 0 128 63 272 | -0.1365372 0.103676 0.7032929 0 0 128 63 273 | -0.1059964 0.03153347 0.7055349 0 0 128 63 274 | -0.1033317 0.03201579 0.7056078 0 0 128 63 275 | -0.107452 0.03520668 0.7065881 0 0 128 63 276 | -0.1041044 0.03586357 0.7067361 0 0 128 63 277 | -0.115564 0.03972159 0.7087012 0 0 128 63 278 | -0.1104844 0.03956918 0.7073279 0 0 128 63 279 | -0.1175395 0.04161327 0.7093061 0 0 128 63 280 | -0.1120009 0.04346698 0.7072996 0 0 128 63 281 | -0.1082616 0.04700301 0.7064794 0 0 128 63 282 | -0.1186188 0.04688676 0.7086056 0 0 128 63 283 | -0.115073 0.04806309 0.7073116 0 0 128 63 284 | -0.1087697 0.04830686 0.7064362 0 0 128 63 285 | -0.1200314 0.05142961 0.7091917 0 0 128 63 286 | -0.1166467 0.05261802 0.7082787 0 0 128 63 287 | -0.1203943 0.05420692 0.710106 0 0 128 63 288 | -0.1167099 0.05659174 0.7085081 0 0 128 63 289 | -0.1424679 0.06414752 0.7174965 0 0 128 63 290 | -0.1396609 0.0652506 0.7166444 0 0 128 63 291 | -0.1478195 0.06723633 0.7193977 0 0 128 63 292 | -0.1444938 0.06977922 0.7181485 0 0 128 63 293 | -0.141209 0.0705164 0.7158113 0 0 128 63 294 | -0.1540319 0.07185858 0.722397 0 0 128 63 295 | -0.1509494 0.07200585 0.7206222 0 0 128 63 296 | -0.1464241 0.0739658 0.7190158 0 0 128 63 297 | -0.1423327 0.07554313 0.7169759 0 0 128 63 298 | -0.1600731 0.0752975 0.7252045 0 0 128 63 299 | -0.1561275 0.07561856 0.7233316 0 0 128 63 300 | -0.1521821 0.07681303 0.7213568 0 0 128 63 301 | -0.1482997 0.0782455 0.7188672 0 0 128 63 302 | -0.1441502 0.08001166 0.7168154 0 0 128 63 303 | -0.1418819 0.07994109 0.715431 0 0 128 63 304 | -0.1659912 0.07805625 0.726562 0 0 128 63 305 | -0.1622854 0.07821416 0.7263654 0 0 128 63 306 | -0.1576701 0.08001279 0.7242148 0 0 128 63 307 | -0.1537049 0.08109564 0.7221873 0 0 128 63 308 | -0.1499247 0.08161127 0.719128 0 0 128 63 309 | -0.1452855 0.08319766 0.7176355 0 0 128 63 310 | -0.1680225 0.08172753 0.7267642 0 0 128 63 311 | -0.1640405 0.08258834 0.7269809 0 0 128 63 312 | -0.1590076 0.08307206 0.725063 0 0 128 63 313 | -0.155496 0.08497076 0.7227083 0 0 128 63 314 | -0.1333209 0.09556521 0.7058551 0 0 128 63 315 | -0.186295 0.08153916 0.7366598 0 0 128 63 316 | -0.1736558 0.08656337 0.7293994 0 0 128 63 317 | -0.1702541 0.08623429 0.7286139 0 0 128 63 318 | -0.166417 0.08645127 0.7273059 0 0 128 63 319 | -0.1378703 0.09896194 0.7063196 0 0 128 63 320 | -0.1341388 0.09960941 0.7053126 0 0 128 63 321 | -0.1302432 0.1025209 0.7045957 0 0 128 63 322 | -0.126597 0.1041958 0.7016808 0 0 128 63 323 | -0.1864927 0.08549326 0.7384188 0 0 128 63 324 | -0.1842286 0.08594271 0.7354046 0 0 128 63 325 | -0.1802111 0.08755422 0.7326922 0 0 128 63 326 | -0.175682 0.08922241 0.7307603 0 0 128 63 327 | -0.1717537 0.0900879 0.7302277 0 0 128 63 328 | -0.1383104 0.1014199 0.7059592 0 0 128 63 329 | -0.1351971 0.1037247 0.7048823 0 0 128 63 330 | -0.1312896 0.1061239 0.7034705 0 0 128 63 331 | -0.1870491 0.08909801 0.7387134 0 0 128 63 332 | -0.1845466 0.09058478 0.7368739 0 0 128 63 333 | -0.1808519 0.09217962 0.7340955 0 0 128 63 334 | -0.1778484 0.09323695 0.7327473 0 0 128 63 335 | -0.134765 0.1083809 0.7058405 0 0 128 63 336 | -0.1328222 0.1089527 0.7034925 0 0 128 63 337 | -0.1809524 0.09645931 0.7336369 0 0 128 63 338 | -0.0998338 0.03410374 0.7073967 0 0 128 63 339 | -0.09783441 0.03487932 0.7072922 0 0 128 63 340 | -0.1014535 0.03759658 0.7074205 0 0 128 63 341 | -0.09774765 0.03862994 0.7070593 0 0 128 63 342 | -0.09383872 0.03974058 0.7072091 0 0 128 63 343 | -0.107607 0.04077009 0.7099658 0 0 128 63 344 | -0.1043788 0.04126967 0.708685 0 0 128 63 345 | -0.0992346 0.04316375 0.7087045 0 0 128 63 346 | -0.109875 0.04659086 0.7097729 0 0 128 63 347 | -0.1058185 0.04578234 0.7091769 0 0 128 63 348 | -0.1013092 0.04776483 0.7092847 0 0 128 63 349 | -0.1111612 0.04999303 0.7105103 0 0 128 63 350 | -0.107389 0.05132309 0.7099375 0 0 128 63 351 | -0.1028625 0.05198734 0.7091617 0 0 128 63 352 | -0.1121095 0.05475163 0.7115746 0 0 128 63 353 | -0.1089754 0.05564038 0.711444 0 0 128 63 354 | -0.1128734 0.05977675 0.7123942 0 0 128 63 355 | -0.1108136 0.05981844 0.7117093 0 0 128 63 356 | -0.1163538 0.0639705 0.7109753 0 0 128 63 357 | -0.1154004 0.06525528 0.7093745 0 0 128 63 358 | -0.1207099 0.06774331 0.7151168 0 0 128 63 359 | -0.1176535 0.06828917 0.7123926 0 0 128 63 360 | -0.1153497 0.07145999 0.7113235 0 0 128 63 361 | -0.1264094 0.07185473 0.7171893 0 0 128 63 362 | -0.1233745 0.07189364 0.7155439 0 0 128 63 363 | -0.1190072 0.07184263 0.7127374 0 0 128 63 364 | -0.1158577 0.07276384 0.7112803 0 0 128 63 365 | -0.1524227 0.08383723 0.7236511 0 0 128 63 366 | -0.1488286 0.08441717 0.7215725 0 0 128 63 367 | -0.1446585 0.08570657 0.719011 0 0 128 63 368 | -0.1418673 0.08623894 0.7173771 0 0 128 63 369 | -0.1619762 0.08542658 0.7284143 0 0 128 63 370 | -0.1588073 0.08616243 0.7266432 0 0 128 63 371 | -0.1539561 0.08729588 0.7237331 0 0 128 63 372 | -0.1503034 0.08827909 0.7215251 0 0 128 63 373 | -0.1462667 0.08983719 0.7195268 0 0 128 63 374 | -0.1422348 0.09193363 0.7179857 0 0 128 63 375 | -0.1298021 0.09709238 0.7086212 0 0 128 63 376 | -0.1266258 0.09817851 0.7072902 0 0 128 63 377 | -0.1676201 0.08994902 0.7303569 0 0 128 63 378 | -0.1637667 0.08905993 0.7291412 0 0 128 63 379 | -0.159728 0.09003726 0.7277077 0 0 128 63 380 | -0.1557941 0.09154318 0.7244657 0 0 128 63 381 | -0.1519172 0.09296096 0.7219343 0 0 128 63 382 | -0.1476455 0.09463321 0.7210909 0 0 128 63 383 | -0.1426331 0.09561651 0.7196917 0 0 128 63 384 | -0.1304142 0.09930374 0.7080262 0 0 128 63 385 | -0.1276318 0.102026 0.7064979 0 0 128 63 386 | -0.1735888 0.09222139 0.7330217 0 0 128 63 387 | -0.1693835 0.0929975 0.7332769 0 0 128 63 388 | -0.164741 0.09381118 0.7316415 0 0 128 63 389 | -0.1602346 0.09580805 0.729598 0 0 128 63 390 | -0.1564842 0.09613515 0.7267998 0 0 128 63 391 | -0.1522198 0.09665955 0.7230789 0 0 128 63 392 | -0.1480866 0.09783848 0.7225558 0 0 128 63 393 | -0.1284504 0.1058864 0.7053668 0 0 128 63 394 | -0.1850587 0.09335249 0.7389295 0 0 128 63 395 | -0.1817263 0.09507859 0.7367134 0 0 128 63 396 | -0.175125 0.0954864 0.7343143 0 0 128 63 397 | -0.1709321 0.09670786 0.7345648 0 0 128 63 398 | -0.1670996 0.09800857 0.7327635 0 0 128 63 399 | -0.1848816 0.09644846 0.7384685 0 0 128 63 400 | -0.1821057 0.09826098 0.7364022 0 0 128 63 401 | -0.1765526 0.09995858 0.7358601 0 0 128 63 402 | -0.1729715 0.1004358 0.7349512 0 0 128 63 403 | -0.1679764 0.1012078 0.7324581 0 0 128 63 404 | -0.1622735 0.1029383 0.7289631 0 0 128 63 405 | -0.1823893 0.1029325 0.7377526 0 0 128 63 406 | -0.1782857 0.1040477 0.7373248 0 0 128 63 407 | -0.09142014 0.04191383 0.7080619 0 0 128 63 408 | -0.08793861 0.04335875 0.7080283 0 0 128 63 409 | -0.09655407 0.04523543 0.7098925 0 0 128 63 410 | -0.09339252 0.04555771 0.7089548 0 0 128 63 411 | -0.09845525 0.04900791 0.71 0 0 128 63 412 | -0.09578899 0.04980882 0.7096587 0 0 128 63 413 | -0.1042301 0.0549733 0.7116622 0 0 128 63 414 | -0.100961 0.05428077 0.7106494 0 0 128 63 415 | -0.09763213 0.05436517 0.7103447 0 0 128 63 416 | -0.1060854 0.05755311 0.7129064 0 0 128 63 417 | -0.1026425 0.05837326 0.7110251 0 0 128 63 418 | -0.108546 0.06259286 0.7136849 0 0 128 63 419 | -0.1040354 0.06343357 0.712211 0 0 128 63 420 | -0.1023093 0.06634132 0.7113478 0 0 128 63 421 | -0.1130738 0.06438705 0.7141402 0 0 128 63 422 | -0.109694 0.06575363 0.7140192 0 0 128 63 423 | -0.1055505 0.06732181 0.712082 0 0 128 63 424 | -0.1023857 0.06885106 0.7089197 0 0 128 63 425 | -0.1221246 0.06692549 0.7211126 0 0 128 63 426 | -0.121219 0.06678616 0.7181413 0 0 128 63 427 | -0.1117828 0.06929141 0.7141105 0 0 128 63 428 | -0.1242993 0.07065136 0.719249 0 0 128 63 429 | -0.1221004 0.07213559 0.7171219 0 0 128 63 430 | -0.1185129 0.07439899 0.7154675 0 0 128 63 431 | -0.1257024 0.07378957 0.7186612 0 0 128 63 432 | -0.1239709 0.07699718 0.7182153 0 0 128 63 433 | -0.119857 0.07835457 0.7159978 0 0 128 63 434 | -0.1244007 0.08093493 0.7197074 0 0 128 63 435 | -0.1220658 0.0832032 0.714799 0 0 128 63 436 | -0.1187527 0.08541056 0.7138318 0 0 128 63 437 | -0.1232245 0.08759188 0.7139692 0 0 128 63 438 | -0.1193441 0.08937525 0.713028 0 0 128 63 439 | -0.1207126 0.09396226 0.7130411 0 0 128 63 440 | -0.1447837 0.09785485 0.723095 0 0 128 63 441 | -0.1416247 0.09835803 0.721657 0 0 128 63 442 | -0.1598608 0.09527672 0.7318492 0 0 128 63 443 | -0.1554279 0.09939698 0.7284578 0 0 128 63 444 | -0.1519697 0.1001914 0.7265295 0 0 128 63 445 | -0.1470232 0.1008414 0.7242537 0 0 128 63 446 | -0.1423309 0.1018529 0.722737 0 0 128 63 447 | -0.138769 0.1026526 0.7210096 0 0 128 63 448 | -0.1686001 0.09801846 0.7358935 0 0 128 63 449 | -0.1647097 0.09975151 0.7333749 0 0 128 63 450 | -0.1612829 0.1007412 0.7314807 0 0 128 63 451 | -0.1569056 0.1025197 0.7289174 0 0 128 63 452 | -0.1525798 0.1040664 0.727762 0 0 128 63 453 | -0.1472505 0.1038157 0.725686 0 0 128 63 454 | -0.1708083 0.1027961 0.735922 0 0 128 63 455 | -0.166893 0.1045116 0.7339106 0 0 128 63 456 | -0.162732 0.1053301 0.7317566 0 0 128 63 457 | -0.1584673 0.1072996 0.7294138 0 0 128 63 458 | -0.155155 0.1076793 0.7278456 0 0 128 63 459 | -0.1763962 0.1060717 0.7381375 0 0 128 63 460 | -0.1725549 0.1071013 0.7367847 0 0 128 63 461 | -0.1679843 0.1088013 0.7347348 0 0 128 63 462 | -0.1642147 0.1095923 0.7325737 0 0 128 63 463 | -0.1605975 0.1111045 0.7313018 0 0 128 63 464 | -0.1818177 0.108695 0.7404221 0 0 128 63 465 | -0.1789462 0.1098012 0.7388231 0 0 128 63 466 | -0.1741243 0.1118193 0.7377614 0 0 128 63 467 | -0.1690781 0.1123009 0.7361634 0 0 128 63 468 | -0.16508 0.1147696 0.7334078 0 0 128 63 469 | -0.1622516 0.1158127 0.7316296 0 0 128 63 470 | -0.1788161 0.1151776 0.7395513 0 0 128 63 471 | -0.1763862 0.1159863 0.7386256 0 0 128 63 472 | -0.1798204 0.117778 0.7382985 0 0 128 63 473 | -0.1675262 0.1227082 0.732796 0 0 128 63 474 | -0.08437717 0.04562453 0.7104949 0 0 128 63 475 | -0.08209741 0.04661206 0.711059 0 0 128 63 476 | -0.09029862 0.04873026 0.7126412 0 0 128 63 477 | -0.08769825 0.04820076 0.7125301 0 0 128 63 478 | -0.09223846 0.05202109 0.7125548 0 0 128 63 479 | -0.0890725 0.05295637 0.7123467 0 0 128 63 480 | -0.09423727 0.05640214 0.7127328 0 0 128 63 481 | -0.0910126 0.05670685 0.7122482 0 0 128 63 482 | -0.09869927 0.05929338 0.7141363 0 0 128 63 483 | -0.09628984 0.06063332 0.7126858 0 0 128 63 484 | -0.09292343 0.0618327 0.7128063 0 0 128 63 485 | -0.1054184 0.06170278 0.7164752 0 0 128 63 486 | -0.1005874 0.06424785 0.7132521 0 0 128 63 487 | -0.09814684 0.06519284 0.7123522 0 0 128 63 488 | -0.0952957 0.0672017 0.7131667 0 0 128 63 489 | -0.1093621 0.06850328 0.7169473 0 0 128 63 490 | -0.1045343 0.07032198 0.7150644 0 0 128 63 491 | -0.0992748 0.06989407 0.7137533 0 0 128 63 492 | -0.09758189 0.07306903 0.7129723 0 0 128 63 493 | -0.110185 0.07216951 0.7173707 0 0 128 63 494 | -0.1051794 0.07323537 0.7160591 0 0 128 63 495 | -0.1011245 0.07419104 0.714609 0 0 128 63 496 | -0.114313 0.07715408 0.7186742 0 0 128 63 497 | -0.1111348 0.07650357 0.7183778 0 0 128 63 498 | -0.1072339 0.07737013 0.7171292 0 0 128 63 499 | -0.1017052 0.07811677 0.7139675 0 0 128 63 500 | -0.1151113 0.07920299 0.7186063 0 0 128 63 501 | -0.113643 0.08145971 0.7175981 0 0 128 63 502 | -0.1088493 0.08315233 0.7161583 0 0 128 63 503 | -0.1058386 0.08429701 0.7146927 0 0 128 63 504 | -0.1151741 0.0854271 0.7164005 0 0 128 63 505 | -0.1107762 0.08761903 0.7155783 0 0 128 63 506 | -0.1078707 0.08951242 0.7145199 0 0 128 63 507 | -0.115963 0.09042542 0.7151746 0 0 128 63 508 | -0.1126981 0.09213131 0.7150331 0 0 128 63 509 | -0.1094311 0.09351712 0.7143871 0 0 128 63 510 | -0.1180798 0.09585813 0.7149946 0 0 128 63 511 | -0.1146379 0.09656283 0.7144201 0 0 128 63 512 | -0.1112092 0.09808058 0.7142359 0 0 128 63 513 | -0.1195374 0.0998304 0.7151048 0 0 128 63 514 | -0.1161807 0.1007365 0.7153986 0 0 128 63 515 | -0.1380637 0.1004177 0.7246582 0 0 128 63 516 | -0.1363667 0.1010435 0.7235912 0 0 128 63 517 | -0.120249 0.1044396 0.7175624 0 0 128 63 518 | -0.1193717 0.1055088 0.7168295 0 0 128 63 519 | -0.1404075 0.1047725 0.7248626 0 0 128 63 520 | -0.1379714 0.1057433 0.7238942 0 0 128 63 521 | -0.1228255 0.111052 0.7173433 0 0 128 63 522 | -0.1219482 0.1121212 0.7166104 0 0 128 63 523 | -0.1495394 0.1066239 0.729335 0 0 128 63 524 | -0.1469461 0.1069184 0.7282526 0 0 128 63 525 | -0.1426447 0.1076822 0.7262129 0 0 128 63 526 | -0.1374107 0.1090234 0.725234 0 0 128 63 527 | -0.1342777 0.1105564 0.7236372 0 0 128 63 528 | -0.1218905 0.1136336 0.7162116 0 0 128 63 529 | -0.1517767 0.1098074 0.7302026 0 0 128 63 530 | -0.148317 0.111054 0.7287605 0 0 128 63 531 | -0.1437999 0.1126464 0.7271895 0 0 128 63 532 | -0.1627775 0.1129257 0.7349385 0 0 128 63 533 | -0.1580507 0.1136061 0.7332209 0 0 128 63 534 | -0.1539078 0.1144061 0.7312689 0 0 128 63 535 | -0.1493858 0.1162394 0.729315 0 0 128 63 536 | -0.1453106 0.1162497 0.7275363 0 0 128 63 537 | -0.1684691 0.1148032 0.73755 0 0 128 63 538 | -0.1640953 0.1154222 0.7350418 0 0 128 63 539 | -0.1597087 0.1172284 0.7331093 0 0 128 63 540 | -0.1556475 0.118921 0.7315734 0 0 128 63 541 | -0.150779 0.1209475 0.7298117 0 0 128 63 542 | -0.1731926 0.1178873 0.739811 0 0 128 63 543 | -0.1697201 0.1185547 0.7379376 0 0 128 63 544 | -0.165721 0.1201579 0.735057 0 0 128 63 545 | -0.1617008 0.1216945 0.7328067 0 0 128 63 546 | -0.1573278 0.1235865 0.731732 0 0 128 63 547 | -0.1531286 0.1247533 0.7303464 0 0 128 63 548 | -0.1780684 0.1200682 0.7414442 0 0 128 63 549 | -0.1757009 0.1220533 0.7398641 0 0 128 63 550 | -0.1721817 0.1238213 0.7376264 0 0 128 63 551 | -0.1674671 0.1251483 0.7354236 0 0 128 63 552 | -0.1632569 0.1265374 0.7327002 0 0 128 63 553 | -0.1590421 0.1278608 0.7315004 0 0 128 63 554 | -0.1554762 0.1281954 0.7307749 0 0 128 63 555 | -0.176507 0.1267174 0.739857 0 0 128 63 556 | -0.1736317 0.1282388 0.7376466 0 0 128 63 557 | -0.168864 0.129672 0.7363935 0 0 128 63 558 | -0.1642741 0.1315793 0.7338233 0 0 128 63 559 | -0.1602767 0.1315022 0.7325585 0 0 128 63 560 | -0.1742318 0.1328143 0.7384342 0 0 128 63 561 | -0.1710489 0.134302 0.7376843 0 0 128 63 562 | -0.1658799 0.1363947 0.7343892 0 0 128 63 563 | -0.1635596 0.1387417 0.7325677 0 0 128 63 564 | -0.1742497 0.1362903 0.7389263 0 0 128 63 565 | -0.1723499 0.1380561 0.7374728 0 0 128 63 566 | -0.1673406 0.1401433 0.7342649 0 0 128 63 567 | -0.07911319 0.04825331 0.7125366 0 0 128 63 568 | -0.08429286 0.04966643 0.7140169 0 0 128 63 569 | -0.08077776 0.04995813 0.7138906 0 0 128 63 570 | -0.08572245 0.05443081 0.7142098 0 0 128 63 571 | -0.08347604 0.0545646 0.7145153 0 0 128 63 572 | -0.09161028 0.05890615 0.7143591 0 0 128 63 573 | -0.08882895 0.0589145 0.7143101 0 0 128 63 574 | -0.09018686 0.06365157 0.7155358 0 0 128 63 575 | -0.09350121 0.06584776 0.7160139 0 0 128 63 576 | -0.09248456 0.067904 0.7138041 0 0 128 63 577 | -0.09600249 0.07087476 0.7145908 0 0 128 63 578 | -0.09412631 0.07191939 0.7148744 0 0 128 63 579 | -0.09941208 0.07594723 0.7144208 0 0 128 63 580 | -0.09606969 0.07659059 0.7147861 0 0 128 63 581 | -0.1054793 0.07931944 0.7168711 0 0 128 63 582 | -0.1018978 0.08029073 0.7147043 0 0 128 63 583 | -0.09763944 0.08251738 0.7150208 0 0 128 63 584 | -0.1031848 0.08490322 0.7153327 0 0 128 63 585 | -0.09870446 0.08661842 0.7145423 0 0 128 63 586 | -0.1043185 0.08968871 0.7159581 0 0 128 63 587 | -0.1006145 0.09048489 0.7150189 0 0 128 63 588 | -0.1063173 0.09450533 0.7153728 0 0 128 63 589 | -0.1033087 0.0955018 0.7152513 0 0 128 63 590 | -0.1079198 0.09909352 0.7149625 0 0 128 63 591 | -0.1051231 0.1001584 0.715097 0 0 128 63 592 | -0.1153362 0.1037865 0.7162347 0 0 128 63 593 | -0.1104133 0.1037129 0.7158394 0 0 128 63 594 | -0.1195218 0.1074852 0.7199152 0 0 128 63 595 | -0.1167178 0.1066735 0.717207 0 0 128 63 596 | -0.1118319 0.1082932 0.7162511 0 0 128 63 597 | -0.1346925 0.1075656 0.7257499 0 0 128 63 598 | -0.119817 0.1104844 0.7199257 0 0 128 63 599 | -0.1178852 0.1118975 0.7182505 0 0 128 63 600 | -0.1146009 0.1126294 0.7168414 0 0 128 63 601 | -0.1362166 0.1114772 0.7256202 0 0 128 63 602 | -0.1345196 0.112103 0.7245532 0 0 128 63 603 | -0.1227071 0.1161822 0.7200981 0 0 128 63 604 | -0.1190924 0.115848 0.7188118 0 0 128 63 605 | -0.1162278 0.1163351 0.7165682 0 0 128 63 606 | -0.1386453 0.1143894 0.7262211 0 0 128 63 607 | -0.1343166 0.1171456 0.7249603 0 0 128 63 608 | -0.1306311 0.118658 0.7243484 0 0 128 63 609 | -0.1241881 0.1178006 0.7199221 0 0 128 63 610 | -0.1433476 0.1192536 0.7290254 0 0 128 63 611 | -0.1398596 0.1193073 0.7272641 0 0 128 63 612 | -0.1348567 0.1207914 0.725817 0 0 128 63 613 | -0.1304582 0.1231954 0.7231518 0 0 128 63 614 | -0.145166 0.1228251 0.7297905 0 0 128 63 615 | -0.1411188 0.1243054 0.7286285 0 0 128 63 616 | -0.1514037 0.1267659 0.7304762 0 0 128 63 617 | -0.1469173 0.1274135 0.7302591 0 0 128 63 618 | -0.1426166 0.1292563 0.728232 0 0 128 63 619 | -0.1573938 0.1307218 0.732356 0 0 128 63 620 | -0.1533421 0.1308856 0.7317779 0 0 128 63 621 | -0.1486549 0.1320834 0.7306335 0 0 128 63 622 | -0.144764 0.1314468 0.7288569 0 0 128 63 623 | -0.1685575 0.1325695 0.7379245 0 0 128 63 624 | -0.1587191 0.1340526 0.7334222 0 0 128 63 625 | -0.1542094 0.1355259 0.7329565 0 0 128 63 626 | -0.1516927 0.1357085 0.7315555 0 0 128 63 627 | -0.1688883 0.1359092 0.7372907 0 0 128 63 628 | -0.160005 0.1385244 0.7344387 0 0 128 63 629 | -0.1552255 0.1381336 0.73287 0 0 128 63 630 | -0.1711571 0.1406645 0.7373573 0 0 128 63 631 | -0.1679016 0.1418652 0.7353105 0 0 128 63 632 | -0.1620621 0.1429711 0.734314 0 0 128 63 633 | -0.1720732 0.1438062 0.7370871 0 0 128 63 634 | -0.1683969 0.1454412 0.7359986 0 0 128 63 635 | -0.1640751 0.1467947 0.7353891 0 0 128 63 636 | -0.07487774 0.05043239 0.7155324 0 0 128 63 637 | -0.08172986 0.05240906 0.7164218 0 0 128 63 638 | -0.07843444 0.05256274 0.7161018 0 0 128 63 639 | -0.07443276 0.05223242 0.7160166 0 0 128 63 640 | -0.08286819 0.05602679 0.7169302 0 0 128 63 641 | -0.07972041 0.05651515 0.7176964 0 0 128 63 642 | -0.07710728 0.05731743 0.7162217 0 0 128 63 643 | -0.08504331 0.06029681 0.7174516 0 0 128 63 644 | -0.08194646 0.06309532 0.7174253 0 0 128 63 645 | -0.08692378 0.06486183 0.7170646 0 0 128 63 646 | -0.08353648 0.06634549 0.7169639 0 0 128 63 647 | -0.08106273 0.06746884 0.7158854 0 0 128 63 648 | -0.08875784 0.06911773 0.7161471 0 0 128 63 649 | -0.08525595 0.07094289 0.7166555 0 0 128 63 650 | -0.08226025 0.07054222 0.7157835 0 0 128 63 651 | -0.09092638 0.07430657 0.7170998 0 0 128 63 652 | -0.08740231 0.07524341 0.7172186 0 0 128 63 653 | -0.09289113 0.0787944 0.7171839 0 0 128 63 654 | -0.08924362 0.08016274 0.7172084 0 0 128 63 655 | -0.09442416 0.08263745 0.716172 0 0 128 63 656 | -0.09220439 0.0860449 0.7162122 0 0 128 63 657 | -0.09562829 0.08807874 0.7152399 0 0 128 63 658 | -0.0931434 0.0889088 0.7162543 0 0 128 63 659 | -0.09833129 0.09277769 0.7162803 0 0 128 63 660 | -0.094744 0.09286752 0.7165031 0 0 128 63 661 | -0.09990501 0.09725554 0.7169917 0 0 128 63 662 | -0.09730285 0.09918594 0.7169268 0 0 128 63 663 | -0.1017422 0.1018611 0.7167329 0 0 128 63 664 | -0.09845385 0.103397 0.7163574 0 0 128 63 665 | -0.1041658 0.1061373 0.7172461 0 0 128 63 666 | -0.09949857 0.107021 0.7159147 0 0 128 63 667 | -0.109742 0.1107806 0.7173273 0 0 128 63 668 | -0.106939 0.1106031 0.7178926 0 0 128 63 669 | -0.1116252 0.1142898 0.7184572 0 0 128 63 670 | -0.1085533 0.1150787 0.7188362 0 0 128 63 671 | -0.1184997 0.1184636 0.720567 0 0 128 63 672 | -0.1136347 0.1186137 0.7198444 0 0 128 63 673 | -0.1239097 0.1211114 0.7244438 0 0 128 63 674 | -0.1189958 0.1212923 0.7225809 0 0 128 63 675 | -0.118035 0.1221017 0.7190446 0 0 128 63 676 | -0.1349957 0.1234091 0.7278694 0 0 128 63 677 | -0.1290018 0.1235858 0.7268359 0 0 128 63 678 | -0.1259904 0.1249085 0.7255549 0 0 128 63 679 | -0.1391123 0.1256722 0.7295381 0 0 128 63 680 | -0.1358767 0.1261922 0.7282483 0 0 128 63 681 | -0.1306666 0.1285377 0.7274571 0 0 128 63 682 | -0.1276778 0.1297021 0.7258797 0 0 128 63 683 | -0.1448914 0.1303045 0.7315269 0 0 128 63 684 | -0.1408299 0.1300738 0.7306447 0 0 128 63 685 | -0.1363236 0.1311595 0.7296695 0 0 128 63 686 | -0.1325544 0.1315947 0.7274674 0 0 128 63 687 | -0.1467059 0.1349611 0.7313725 0 0 128 63 688 | -0.1429657 0.1346268 0.7309164 0 0 128 63 689 | -0.1388555 0.134669 0.7306972 0 0 128 63 690 | -0.1493989 0.1378877 0.7321125 0 0 128 63 691 | -0.145441 0.1392223 0.7321442 0 0 128 63 692 | -0.1555972 0.1409391 0.7347118 0 0 128 63 693 | -0.1512454 0.1419592 0.7334732 0 0 128 63 694 | -0.1473445 0.1429354 0.7332631 0 0 128 63 695 | -0.1566355 0.1457865 0.7346736 0 0 128 63 696 | -0.1523969 0.146853 0.7348403 0 0 128 63 697 | -0.1615571 0.1487632 0.7360218 0 0 128 63 698 | -0.1578448 0.1501459 0.7357175 0 0 128 63 699 | -0.1540672 0.1515549 0.7347909 0 0 128 63 700 | -0.1556375 0.1542565 0.7349803 0 0 128 63 701 | -0.07238841 0.05494448 0.7187362 0 0 128 63 702 | -0.07801664 0.05865618 0.7187098 0 0 128 63 703 | -0.07484129 0.05831999 0.717806 0 0 128 63 704 | -0.07976279 0.06105045 0.7193271 0 0 128 63 705 | -0.07593447 0.06365892 0.7183627 0 0 128 63 706 | -0.08110115 0.06657242 0.7184475 0 0 128 63 707 | -0.07740897 0.06809411 0.7177137 0 0 128 63 708 | -0.07944307 0.07289361 0.7175103 0 0 128 63 709 | -0.08566609 0.07620081 0.7185669 0 0 128 63 710 | -0.08175465 0.07705783 0.7166373 0 0 128 63 711 | -0.07804325 0.07866668 0.7169562 0 0 128 63 712 | -0.09030953 0.08000577 0.7201447 0 0 128 63 713 | -0.08627596 0.08127212 0.7192115 0 0 128 63 714 | -0.08256266 0.08208422 0.7176975 0 0 128 63 715 | -0.07931474 0.0811547 0.716262 0 0 128 63 716 | -0.08840111 0.08519589 0.7191211 0 0 128 63 717 | -0.08400068 0.08715659 0.7181031 0 0 128 63 718 | -0.08944926 0.09057582 0.7186596 0 0 128 63 719 | -0.08678874 0.09196391 0.7188242 0 0 128 63 720 | -0.09147772 0.09509888 0.7187015 0 0 128 63 721 | -0.08840272 0.0965377 0.7183497 0 0 128 63 722 | -0.09651485 0.0959314 0.7196169 0 0 128 63 723 | -0.09367481 0.09921914 0.7187803 0 0 128 63 724 | -0.08998549 0.101019 0.7182001 0 0 128 63 725 | -0.09493026 0.1042743 0.7180618 0 0 128 63 726 | -0.09244087 0.105418 0.718212 0 0 128 63 727 | -0.1017041 0.1092493 0.7191756 0 0 128 63 728 | -0.09762505 0.1091942 0.7181519 0 0 128 63 729 | -0.09442818 0.1086361 0.7177262 0 0 128 63 730 | -0.1031958 0.1117654 0.7197551 0 0 128 63 731 | -0.099865 0.1132383 0.7192796 0 0 128 63 732 | -0.1052417 0.1167848 0.7205281 0 0 128 63 733 | -0.1011213 0.1165221 0.7198812 0 0 128 63 734 | -0.1106274 0.1213348 0.7222086 0 0 128 63 735 | -0.1076871 0.1206415 0.7214377 0 0 128 63 736 | -0.118948 0.1244568 0.7263219 0 0 128 63 737 | -0.1125706 0.1243712 0.7235739 0 0 128 63 738 | -0.1085327 0.1244916 0.7226354 0 0 128 63 739 | -0.1225661 0.1258295 0.7272607 0 0 128 63 740 | -0.1192634 0.1279038 0.7267187 0 0 128 63 741 | -0.1165483 0.1301986 0.7255684 0 0 128 63 742 | -0.129376 0.1295072 0.7291659 0 0 128 63 743 | -0.1241082 0.1309183 0.727629 0 0 128 63 744 | -0.1204504 0.1324436 0.7268679 0 0 128 63 745 | -0.1372627 0.1326699 0.7326483 0 0 128 63 746 | -0.1311992 0.1341073 0.7290301 0 0 128 63 747 | -0.126617 0.1352319 0.7274484 0 0 128 63 748 | -0.1221816 0.1366759 0.7262001 0 0 128 63 749 | -0.119161 0.1369042 0.7253462 0 0 128 63 750 | -0.1404625 0.1375612 0.7331836 0 0 128 63 751 | -0.1369075 0.1372381 0.7322965 0 0 128 63 752 | -0.1329167 0.1379428 0.7302681 0 0 128 63 753 | -0.1278405 0.1399043 0.7287592 0 0 128 63 754 | -0.1420563 0.1399913 0.7334518 0 0 128 63 755 | -0.138611 0.1417214 0.7336265 0 0 128 63 756 | -0.1343069 0.1431841 0.7319834 0 0 128 63 757 | -0.1486975 0.1451756 0.7357711 0 0 128 63 758 | -0.1444669 0.1449925 0.7345032 0 0 128 63 759 | -0.1407012 0.1460556 0.7338284 0 0 128 63 760 | -0.1500257 0.1476949 0.7358744 0 0 128 63 761 | -0.1463986 0.1494544 0.7355244 0 0 128 63 762 | -0.1426615 0.1495401 0.7349414 0 0 128 63 763 | -0.1511676 0.1525273 0.7360893 0 0 128 63 764 | -0.148329 0.1544545 0.7360268 0 0 128 63 765 | -0.1534405 0.1555692 0.7358003 0 0 128 63 766 | -0.1501079 0.157217 0.7355396 0 0 128 63 767 | -0.06979722 0.05665926 0.7205737 0 0 128 63 768 | -0.0666531 0.05746735 0.7202313 0 0 128 63 769 | -0.0711036 0.06001202 0.7204626 0 0 128 63 770 | -0.06770179 0.06106322 0.7208257 0 0 128 63 771 | -0.07215598 0.06271286 0.720373 0 0 128 63 772 | -0.07079405 0.06519558 0.720031 0 0 128 63 773 | -0.07177928 0.07101003 0.7204759 0 0 128 63 774 | -0.07308152 0.07549029 0.7195075 0 0 128 63 775 | -0.07044992 0.07890142 0.7190021 0 0 128 63 776 | -0.07459503 0.08023474 0.7183306 0 0 128 63 777 | -0.07159516 0.08067768 0.7180257 0 0 128 63 778 | -0.07685527 0.08492639 0.7189982 0 0 128 63 779 | -0.07866433 0.08952781 0.7188129 0 0 128 63 780 | -0.08425829 0.0923497 0.71969 0 0 128 63 781 | -0.0806478 0.09404496 0.7193868 0 0 128 63 782 | -0.08586553 0.0970675 0.719409 0 0 128 63 783 | -0.08251575 0.09897194 0.719851 0 0 128 63 784 | -0.08753318 0.1021777 0.7190653 0 0 128 63 785 | -0.08453172 0.1021657 0.7195414 0 0 128 63 786 | -0.08854774 0.1069279 0.7205224 0 0 128 63 787 | -0.08507395 0.1076569 0.7198926 0 0 128 63 788 | -0.09544429 0.1122815 0.7208728 0 0 128 63 789 | -0.09147248 0.1118476 0.7206962 0 0 128 63 790 | -0.09638101 0.1150733 0.7210861 0 0 128 63 791 | -0.09263334 0.1161149 0.7207489 0 0 128 63 792 | -0.09957522 0.1194087 0.7216569 0 0 128 63 793 | -0.09488788 0.1202809 0.7204865 0 0 128 63 794 | -0.09356749 0.1223853 0.7185659 0 0 128 63 795 | -0.105022 0.1233419 0.7233461 0 0 128 63 796 | -0.1013936 0.1233918 0.7221527 0 0 128 63 797 | -0.09704778 0.1243104 0.7213015 0 0 128 63 798 | -0.1155062 0.1262922 0.7282802 0 0 128 63 799 | -0.1123816 0.1274446 0.7263156 0 0 128 63 800 | -0.1074523 0.1273852 0.723673 0 0 128 63 801 | -0.1030001 0.1281239 0.7226423 0 0 128 63 802 | -0.09931427 0.1290233 0.722373 0 0 128 63 803 | -0.1161493 0.128524 0.7286649 0 0 128 63 804 | -0.1134368 0.1300379 0.7262539 0 0 128 63 805 | -0.1094409 0.1314455 0.7243384 0 0 128 63 806 | -0.1053375 0.1325002 0.7232959 0 0 128 63 807 | -0.118859 0.13379 0.7282642 0 0 128 63 808 | -0.1150767 0.1342333 0.7266016 0 0 128 63 809 | -0.1098839 0.1364816 0.7252889 0 0 128 63 810 | -0.1205516 0.1399371 0.7284563 0 0 128 63 811 | -0.116203 0.139357 0.7275533 0 0 128 63 812 | -0.1123473 0.141081 0.726234 0 0 128 63 813 | -0.1219512 0.1426242 0.7293319 0 0 128 63 814 | -0.1173055 0.1437443 0.7284914 0 0 128 63 815 | -0.1139281 0.1443509 0.7265233 0 0 128 63 816 | -0.1354099 0.1436049 0.7351865 0 0 128 63 817 | -0.1310036 0.1449453 0.7339053 0 0 128 63 818 | -0.1277955 0.146119 0.7331329 0 0 128 63 819 | -0.1242927 0.145215 0.7319003 0 0 128 63 820 | -0.1372779 0.1479837 0.7361355 0 0 128 63 821 | -0.1339652 0.1486666 0.7348549 0 0 128 63 822 | -0.1429014 0.1522442 0.7367367 0 0 128 63 823 | -0.139791 0.1522233 0.7359101 0 0 128 63 824 | -0.136486 0.1523965 0.7355649 0 0 128 63 825 | -0.1446638 0.1554947 0.7372835 0 0 128 63 826 | -0.1413317 0.1569699 0.7373553 0 0 128 63 827 | -0.1376801 0.1556159 0.7365875 0 0 128 63 828 | -0.1456191 0.1592974 0.7385196 0 0 128 63 829 | -0.06527701 0.06352355 0.7222766 0 0 128 63 830 | -0.06244054 0.06361368 0.7218876 0 0 128 63 831 | -0.0667538 0.06770466 0.723605 0 0 128 63 832 | -0.06359211 0.06754243 0.7232955 0 0 128 63 833 | -0.06835845 0.07146002 0.7225887 0 0 128 63 834 | -0.06596896 0.07364259 0.7230934 0 0 128 63 835 | -0.06753433 0.0780438 0.7211242 0 0 128 63 836 | -0.06919375 0.08342197 0.7214079 0 0 128 63 837 | -0.07400826 0.08703884 0.7212649 0 0 128 63 838 | -0.07023644 0.08693223 0.7215812 0 0 128 63 839 | -0.07211897 0.09151278 0.7206522 0 0 128 63 840 | -0.07741937 0.09579327 0.7209748 0 0 128 63 841 | -0.0743432 0.09632777 0.7207357 0 0 128 63 842 | -0.07891122 0.09991268 0.7210677 0 0 128 63 843 | -0.07589376 0.1012763 0.7213362 0 0 128 63 844 | -0.08183533 0.1047109 0.7216846 0 0 128 63 845 | -0.07799989 0.1059903 0.7222934 0 0 128 63 846 | -0.08695439 0.1100648 0.7226442 0 0 128 63 847 | -0.08335415 0.1094254 0.721191 0 0 128 63 848 | -0.07991266 0.11034 0.7212341 0 0 128 63 849 | -0.08771643 0.1120206 0.7225794 0 0 128 63 850 | -0.08528057 0.1138609 0.7221097 0 0 128 63 851 | -0.0820069 0.1146137 0.7223564 0 0 128 63 852 | -0.09061953 0.1194712 0.7223325 0 0 128 63 853 | -0.08666983 0.1176617 0.7233542 0 0 128 63 854 | -0.09132499 0.1224447 0.7231514 0 0 128 63 855 | -0.08941022 0.1225957 0.7238252 0 0 128 63 856 | -0.09372702 0.1267794 0.7239731 0 0 128 63 857 | -0.09124601 0.1255627 0.7223507 0 0 128 63 858 | -0.0964784 0.131009 0.7250085 0 0 128 63 859 | -0.1016086 0.1339166 0.7247434 0 0 128 63 860 | -0.09872597 0.1352564 0.7248 0 0 128 63 861 | -0.1042187 0.1387767 0.7263415 0 0 128 63 862 | -0.100809 0.1389226 0.7259994 0 0 128 63 863 | -0.1088924 0.1416339 0.7270835 0 0 128 63 864 | -0.1057478 0.1432449 0.7281916 0 0 128 63 865 | -0.1168829 0.1463732 0.7299479 0 0 128 63 866 | -0.1119031 0.1469932 0.7281778 0 0 128 63 867 | -0.1077581 0.1460718 0.7285878 0 0 128 63 868 | -0.1250454 0.1481054 0.7350885 0 0 128 63 869 | -0.1217386 0.148335 0.7334824 0 0 128 63 870 | -0.1168049 0.1493179 0.7326751 0 0 128 63 871 | -0.1316132 0.1516936 0.7369817 0 0 128 63 872 | -0.1270507 0.1513181 0.7356206 0 0 128 63 873 | -0.123177 0.1512497 0.7356402 0 0 128 63 874 | -0.1332419 0.1551182 0.7382371 0 0 128 63 875 | -0.1287189 0.1542653 0.7378943 0 0 128 63 876 | -0.1373209 0.1589901 0.7402204 0 0 128 63 877 | -0.135689 0.1582585 0.7386473 0 0 128 63 878 | -0.1402256 0.1621232 0.7412567 0 0 128 63 879 | -0.05885625 0.06628551 0.7247273 0 0 128 63 880 | -0.06413057 0.07106083 0.7256346 0 0 128 63 881 | -0.06059426 0.07009567 0.7252411 0 0 128 63 882 | -0.0617356 0.07465123 0.7255359 0 0 128 63 883 | -0.05887464 0.0748181 0.7253731 0 0 128 63 884 | -0.06287152 0.07912158 0.7253194 0 0 128 63 885 | -0.06481388 0.08415782 0.7249481 0 0 128 63 886 | -0.06740746 0.08867545 0.7254412 0 0 128 63 887 | -0.06843916 0.09534409 0.7249566 0 0 128 63 888 | -0.07045218 0.09825971 0.7232027 0 0 128 63 889 | -0.06886408 0.09987407 0.7240841 0 0 128 63 890 | -0.07157421 0.10269 0.7242793 0 0 128 63 891 | -0.07000309 0.1033787 0.7244266 0 0 128 63 892 | -0.07414308 0.1074629 0.7240055 0 0 128 63 893 | -0.07133973 0.106809 0.724313 0 0 128 63 894 | -0.07580474 0.1123139 0.7242194 0 0 128 63 895 | -0.08209333 0.1171613 0.724107 0 0 128 63 896 | -0.07874236 0.1167245 0.724085 0 0 128 63 897 | -0.08362097 0.1204543 0.7258723 0 0 128 63 898 | -0.08064848 0.1208616 0.7256233 0 0 128 63 899 | -0.08572659 0.1244017 0.7261003 0 0 128 63 900 | -0.08311468 0.1265922 0.7258495 0 0 128 63 901 | -0.08772361 0.1292384 0.7262383 0 0 128 63 902 | -0.08391303 0.1286411 0.7257816 0 0 128 63 903 | -0.09347469 0.1323763 0.7265422 0 0 128 63 904 | -0.09004936 0.133274 0.726317 0 0 128 63 905 | -0.09532839 0.1371338 0.7263846 0 0 128 63 906 | -0.09194404 0.1379825 0.7273229 0 0 128 63 907 | -0.097489 0.1414582 0.7282403 0 0 128 63 908 | -0.09449902 0.140889 0.7273479 0 0 128 63 909 | -0.1029813 0.1453047 0.7293528 0 0 128 63 910 | -0.09942615 0.1451236 0.7296712 0 0 128 63 911 | -0.106026 0.1490022 0.7309247 0 0 128 63 912 | -0.1162946 0.152008 0.7340693 0 0 128 63 913 | -0.11184 0.1525478 0.7326986 0 0 128 63 914 | -0.1085077 0.1519471 0.7316293 0 0 128 63 915 | -0.1214236 0.1541996 0.7370758 0 0 128 63 916 | -0.1170929 0.1546874 0.734512 0 0 128 63 917 | -0.1130539 0.1549571 0.733348 0 0 128 63 918 | -0.127747 0.1574392 0.7396192 0 0 128 63 919 | -0.1223603 0.1586252 0.7385817 0 0 128 63 920 | -0.132718 0.1611741 0.7413574 0 0 128 63 921 | -0.1285347 0.161424 0.7409595 0 0 128 63 922 | -0.1246838 0.1616431 0.7397339 0 0 128 63 923 | -0.1346486 0.1646803 0.7423603 0 0 128 63 924 | -0.130603 0.1652119 0.7420568 0 0 128 63 925 | -0.1345432 0.1684454 0.7433945 0 0 128 63 926 | -0.05517903 0.07169595 0.7279574 0 0 128 63 927 | -0.05636644 0.07704639 0.7272327 0 0 128 63 928 | -0.05781594 0.08172178 0.7273834 0 0 128 63 929 | -0.05990678 0.08603346 0.7269363 0 0 128 63 930 | -0.06537238 0.09049921 0.7273859 0 0 128 63 931 | -0.06235138 0.09080175 0.7278415 0 0 128 63 932 | -0.06353766 0.09567524 0.72772 0 0 128 63 933 | -0.05960047 0.09838784 0.7258416 0 0 128 63 934 | -0.06458578 0.1001603 0.7268531 0 0 128 63 935 | -0.06230718 0.103674 0.7260152 0 0 128 63 936 | -0.06640235 0.1051298 0.7259324 0 0 128 63 937 | -0.06312367 0.1057695 0.7259457 0 0 128 63 938 | -0.06868032 0.1098464 0.7262518 0 0 128 63 939 | -0.06526467 0.1112643 0.7257636 0 0 128 63 940 | -0.07170299 0.1139111 0.7274288 0 0 128 63 941 | -0.07575089 0.1171351 0.7265033 0 0 128 63 942 | -0.0731658 0.118087 0.7280732 0 0 128 63 943 | -0.07847109 0.1226932 0.7266181 0 0 128 63 944 | -0.07529429 0.1229765 0.7276251 0 0 128 63 945 | -0.08029863 0.1262749 0.7273131 0 0 128 63 946 | -0.07723573 0.1279927 0.7281488 0 0 128 63 947 | -0.08190736 0.1312757 0.7278355 0 0 128 63 948 | -0.08728996 0.1363128 0.7280599 0 0 128 63 949 | -0.08420768 0.1357499 0.7285271 0 0 128 63 950 | -0.088898 0.139947 0.7289725 0 0 128 63 951 | -0.08594996 0.1399914 0.7293475 0 0 128 63 952 | -0.09191185 0.1438972 0.7305949 0 0 128 63 953 | -0.08729523 0.1431359 0.7298889 0 0 128 63 954 | -0.09615397 0.1475789 0.7315922 0 0 128 63 955 | -0.09299189 0.1473194 0.7319424 0 0 128 63 956 | -0.1028011 0.1513819 0.7333377 0 0 128 63 957 | -0.09845644 0.1510679 0.7330471 0 0 128 63 958 | -0.1082049 0.1551216 0.7347603 0 0 128 63 959 | -0.104919 0.1549262 0.7347792 0 0 128 63 960 | -0.1012252 0.1544551 0.7346453 0 0 128 63 961 | -0.1186693 0.1575467 0.7398114 0 0 128 63 962 | -0.1168511 0.1582173 0.7386683 0 0 128 63 963 | -0.1105072 0.1579314 0.7360925 0 0 128 63 964 | -0.1069219 0.1586386 0.7366987 0 0 128 63 965 | -0.120266 0.1616445 0.7396756 0 0 128 63 966 | -0.1166177 0.1613318 0.740399 0 0 128 63 967 | -0.1123763 0.1607886 0.7385352 0 0 128 63 968 | -0.1265497 0.1640137 0.7424867 0 0 128 63 969 | -0.1224442 0.1644753 0.7417589 0 0 128 63 970 | -0.1187109 0.1644629 0.7416373 0 0 128 63 971 | -0.1322464 0.1681972 0.7445402 0 0 128 63 972 | -0.1282687 0.1676239 0.7438028 0 0 128 63 973 | -0.1246625 0.1679527 0.7426029 0 0 128 63 974 | -0.1327544 0.169501 0.744497 0 0 128 63 975 | -0.1295855 0.1707234 0.7452025 0 0 128 63 976 | -0.05181715 0.07490381 0.7308421 0 0 128 63 977 | -0.05162624 0.07735575 0.7313047 0 0 128 63 978 | -0.05840617 0.0922683 0.7303373 0 0 128 63 979 | -0.05631801 0.0930141 0.730026 0 0 128 63 980 | -0.06018141 0.09580012 0.7291075 0 0 128 63 981 | -0.05804983 0.09685255 0.7277026 0 0 128 63 982 | -0.05977568 0.1026129 0.7272322 0 0 128 63 983 | -0.05988157 0.1074375 0.7284396 0 0 128 63 984 | -0.06739551 0.1163622 0.7309005 0 0 128 63 985 | -0.06334373 0.1154582 0.7300981 0 0 128 63 986 | -0.0695422 0.120234 0.7314648 0 0 128 63 987 | -0.07137594 0.1248642 0.7311724 0 0 128 63 988 | -0.07342514 0.1290267 0.7307485 0 0 128 63 989 | -0.07748112 0.1332742 0.7316439 0 0 128 63 990 | -0.07506719 0.1329627 0.7327418 0 0 128 63 991 | -0.07963249 0.1375634 0.734084 0 0 128 63 992 | -0.08460912 0.1421259 0.73101 0 0 128 63 993 | -0.08854929 0.1453594 0.7323477 0 0 128 63 994 | -0.08507556 0.1464752 0.7339215 0 0 128 63 995 | -0.09065905 0.1494052 0.7342438 0 0 128 63 996 | -0.08734667 0.1504827 0.7351007 0 0 128 63 997 | -0.09676132 0.1541008 0.7346487 0 0 128 63 998 | -0.09180957 0.1545096 0.7358935 0 0 128 63 999 | -0.08977801 0.1567225 0.7348939 0 0 128 63 1000 | -0.1031044 0.1580458 0.7371086 0 0 128 63 1001 | -0.09834222 0.1571105 0.7361631 0 0 128 63 1002 | -0.09346083 0.1583467 0.7364842 0 0 128 63 1003 | -0.1036373 0.1612691 0.7387244 0 0 128 63 1004 | -0.09945366 0.1617448 0.7382244 0 0 128 63 1005 | -0.1137631 0.1637927 0.7426186 0 0 128 63 1006 | -0.1100807 0.1641248 0.7410506 0 0 128 63 1007 | -0.1061684 0.1646312 0.741806 0 0 128 63 1008 | -0.1198138 0.16815 0.7459823 0 0 128 63 1009 | -0.1158975 0.1672247 0.743885 0 0 128 63 1010 | -0.1111816 0.168382 0.7435963 0 0 128 63 1011 | -0.1204243 0.171265 0.7467156 0 0 128 63 1012 | -0.1162786 0.171128 0.745676 0 0 128 63 1013 | -0.1268178 0.172414 0.7463974 0 0 128 63 1014 | -0.1234633 0.1738068 0.7470387 0 0 128 63 1015 | -0.04787394 0.07925154 0.7337005 0 0 128 63 1016 | -0.06238282 0.1183186 0.7314017 0 0 128 63 1017 | -0.06773773 0.1227955 0.7339741 0 0 128 63 1018 | -0.06348741 0.121823 0.7329052 0 0 128 63 1019 | -0.05916852 0.1228801 0.7324323 0 0 128 63 1020 | -0.06740656 0.1262327 0.7360578 0 0 128 63 1021 | -0.07379624 0.1357527 0.7371871 0 0 128 63 1022 | -0.07788336 0.1386501 0.7357813 0 0 128 63 1023 | -0.07515705 0.1392452 0.7370714 0 0 128 63 1024 | -0.08025208 0.1428381 0.7352929 0 0 128 63 1025 | -0.07733434 0.1448331 0.7368862 0 0 128 63 1026 | -0.08196959 0.1479784 0.7356327 0 0 128 63 1027 | -0.07815084 0.1469285 0.7368168 0 0 128 63 1028 | -0.08703607 0.1508484 0.736006 0 0 128 63 1029 | -0.08405522 0.1518416 0.7368684 0 0 128 63 1030 | -0.08803186 0.154567 0.7368004 0 0 128 63 1031 | -0.08556131 0.1552732 0.7387822 0 0 128 63 1032 | -0.09229955 0.1601828 0.7377352 0 0 128 63 1033 | -0.09759608 0.1640828 0.7400292 0 0 128 63 1034 | -0.09549889 0.1618938 0.7378819 0 0 128 63 1035 | -0.104325 0.1669756 0.7422753 0 0 128 63 1036 | -0.09983698 0.1674158 0.7427502 0 0 128 63 1037 | -0.1085169 0.1700193 0.7440853 0 0 128 63 1038 | -0.1048881 0.1709069 0.7444027 0 0 128 63 1039 | -0.1161298 0.17375 0.7465847 0 0 128 63 1040 | -0.1118625 0.1734646 0.7456317 0 0 128 63 1041 | -0.1206223 0.1758486 0.7480313 0 0 128 63 1042 | -0.1169545 0.1769049 0.7481208 0 0 128 63 1043 | -0.1126948 0.1771143 0.7480973 0 0 128 63 1044 | -0.06102863 0.12488 0.7352723 0 0 128 63 1045 | -0.05822086 0.125383 0.7336364 0 0 128 63 1046 | -0.06546068 0.1281352 0.7376444 0 0 128 63 1047 | -0.06237587 0.1278681 0.7375954 0 0 128 63 1048 | -0.0669474 0.1330083 0.7397391 0 0 128 63 1049 | -0.06452784 0.1320123 0.7389094 0 0 128 63 1050 | -0.06953272 0.1369106 0.7395864 0 0 128 63 1051 | -0.07252464 0.140829 0.7393333 0 0 128 63 1052 | -0.07364801 0.145847 0.7387188 0 0 128 63 1053 | -0.07596424 0.1503249 0.7390721 0 0 128 63 1054 | -0.08193856 0.1550069 0.7399923 0 0 128 63 1055 | -0.07854679 0.153486 0.7400827 0 0 128 63 1056 | -0.08394784 0.1581677 0.7412748 0 0 128 63 1057 | -0.08895957 0.162728 0.7428674 0 0 128 63 1058 | -0.08611301 0.1625037 0.7431301 0 0 128 63 1059 | -0.09405044 0.166317 0.744158 0 0 128 63 1060 | -0.09136391 0.1649531 0.7432352 0 0 128 63 1061 | -0.0964433 0.1695647 0.745322 0 0 128 63 1062 | -0.09247109 0.1681475 0.745185 0 0 128 63 1063 | -0.1027659 0.17329 0.7459987 0 0 128 63 1064 | -0.09935044 0.1727934 0.745938 0 0 128 63 1065 | -0.1082202 0.1762035 0.7490049 0 0 128 63 1066 | -0.1044638 0.1752386 0.7482989 0 0 128 63 1067 | -0.10113 0.1761382 0.7479095 0 0 128 63 1068 | -0.1134263 0.1804413 0.7523297 0 0 128 63 1069 | -0.1118807 0.1806372 0.750868 0 0 128 63 1070 | -0.1122132 0.1832347 0.7521582 0 0 128 63 1071 | -0.06063566 0.1301056 0.740373 0 0 128 63 1072 | -0.0630815 0.1338053 0.741179 0 0 128 63 1073 | -0.06663463 0.1364245 0.7412957 0 0 128 63 1074 | -0.06531689 0.1386529 0.7412052 0 0 128 63 1075 | -0.06881192 0.1420124 0.7411106 0 0 128 63 1076 | -0.06690601 0.1430047 0.7421653 0 0 128 63 1077 | -0.06920683 0.1453516 0.7428349 0 0 128 63 1078 | -0.06857529 0.1472888 0.7420234 0 0 128 63 1079 | -0.07196477 0.1524297 0.7426003 0 0 128 63 1080 | -0.07586408 0.1556528 0.743144 0 0 128 63 1081 | -0.08015084 0.1597044 0.7440822 0 0 128 63 1082 | -0.08301118 0.1632424 0.745151 0 0 128 63 1083 | -0.08830062 0.166886 0.7455673 0 0 128 63 1084 | -0.0946587 0.1725298 0.7476222 0 0 128 63 1085 | -0.09090659 0.1707001 0.7474387 0 0 128 63 1086 | -0.09646571 0.1759628 0.7486908 0 0 128 63 1087 | -0.1027089 0.1788051 0.7521783 0 0 128 63 1088 | -0.09836178 0.1778595 0.7494841 0 0 128 63 1089 | -0.1079494 0.1797176 0.7530386 0 0 128 63 1090 | -0.05504337 0.1328474 0.743856 0 0 128 63 1091 | -0.06016251 0.1350688 0.7433645 0 0 128 63 1092 | -0.05712408 0.1357523 0.7444648 0 0 128 63 1093 | -0.06188574 0.1391835 0.7438737 0 0 128 63 1094 | -0.06359905 0.1445598 0.7449421 0 0 128 63 1095 | -0.06611553 0.1491781 0.7452724 0 0 128 63 1096 | -0.06967774 0.152612 0.747132 0 0 128 63 1097 | -0.06823185 0.1512963 0.7455108 0 0 128 63 1098 | -0.06413013 0.1546225 0.7436527 0 0 128 63 1099 | -0.07442454 0.1575105 0.7450143 0 0 128 63 1100 | -0.07879025 0.161599 0.7463734 0 0 128 63 1101 | -0.07594553 0.1609548 0.7466232 0 0 128 63 1102 | -0.08047619 0.1654191 0.7479798 0 0 128 63 1103 | -0.07711807 0.1643541 0.7482874 0 0 128 63 1104 | -0.08579767 0.168672 0.7484308 0 0 128 63 1105 | -0.08253548 0.1687812 0.7495502 0 0 128 63 1106 | -0.08790785 0.1735786 0.7501178 0 0 128 63 1107 | -0.08436522 0.1722796 0.7502667 0 0 128 63 1108 | -0.090767 0.1765195 0.7513794 0 0 128 63 1109 | -0.09655023 0.1807246 0.7536196 0 0 128 63 1110 | -0.0931412 0.1803336 0.7530388 0 0 128 63 1111 | -0.1051947 0.1826192 0.7563666 0 0 128 63 1112 | -0.1018225 0.183013 0.7566797 0 0 128 63 1113 | -0.106741 0.1863778 0.7589001 0 0 128 63 1114 | -0.05465579 0.130854 0.746649 0 0 128 63 1115 | -0.05279717 0.1315395 0.7454804 0 0 128 63 1116 | -0.05376953 0.1381218 0.7461466 0 0 128 63 1117 | -0.05828047 0.1410109 0.7469075 0 0 128 63 1118 | -0.0553205 0.1417935 0.7476 0 0 128 63 1119 | -0.05875769 0.1462702 0.7497584 0 0 128 63 1120 | -0.05698305 0.1452737 0.7490441 0 0 128 63 1121 | -0.06179973 0.1504865 0.7480493 0 0 128 63 1122 | -0.0598157 0.1513806 0.7479242 0 0 128 63 1123 | -0.06607565 0.1546542 0.7481791 0 0 128 63 1124 | -0.06877938 0.1591434 0.7515654 0 0 128 63 1125 | -0.06608835 0.1595852 0.7486649 0 0 128 63 1126 | -0.06282547 0.160268 0.7485473 0 0 128 63 1127 | -0.07286161 0.1628627 0.7491438 0 0 128 63 1128 | -0.06880602 0.1630599 0.7490268 0 0 128 63 1129 | -0.07424539 0.1673737 0.7509099 0 0 128 63 1130 | -0.06894448 0.1669586 0.7502187 0 0 128 63 1131 | -0.0799835 0.170868 0.7517332 0 0 128 63 1132 | -0.07637617 0.1717677 0.752668 0 0 128 63 1133 | -0.08152923 0.1753598 0.7536319 0 0 128 63 1134 | -0.08799583 0.1794649 0.7543491 0 0 128 63 1135 | -0.08377156 0.1782233 0.7546974 0 0 128 63 1136 | -0.09363195 0.1833029 0.7560666 0 0 128 63 1137 | -0.08878875 0.1826396 0.756328 0 0 128 63 1138 | -0.1001456 0.184981 0.7580081 0 0 128 63 1139 | -0.0958803 0.1856838 0.757439 0 0 128 63 1140 | -0.09197053 0.1878648 0.7575471 0 0 128 63 1141 | -0.1061956 0.1865132 0.7608967 0 0 128 63 1142 | -0.1017642 0.1886613 0.7594378 0 0 128 63 1143 | -0.09690353 0.1905434 0.7593223 0 0 128 63 1144 | -0.05318436 0.1447655 0.7506054 0 0 128 63 1145 | -0.05800125 0.1468919 0.751523 0 0 128 63 1146 | -0.05483937 0.1485509 0.7514483 0 0 128 63 1147 | -0.05592725 0.1512482 0.7516692 0 0 128 63 1148 | -0.07118979 0.1698284 0.7530547 0 0 128 63 1149 | -0.06877407 0.1700803 0.7516912 0 0 128 63 1150 | -0.07333264 0.1728372 0.7534781 0 0 128 63 1151 | -0.07013193 0.1732467 0.7516531 0 0 128 63 1152 | -0.0758144 0.1770076 0.7555445 0 0 128 63 1153 | -0.07182401 0.1773401 0.7538935 0 0 128 63 1154 | -0.08179721 0.1808401 0.7572567 0 0 128 63 1155 | -0.08713868 0.185143 0.7579278 0 0 128 63 1156 | -0.08468017 0.1849544 0.758972 0 0 128 63 1157 | -0.09310582 0.1895462 0.7600737 0 0 128 63 1158 | -0.08940539 0.1883225 0.7598288 0 0 128 63 1159 | -0.09243801 0.1913903 0.7592652 0 0 128 63 1160 | -0.07364503 0.1791846 0.7575246 0 0 128 63 1161 | -0.08168557 0.1831528 0.7601194 0 0 128 63 1162 | -0.07412663 0.1816398 0.7595108 0 0 128 63 1163 | -0.08117425 0.1863439 0.7616237 0 0 128 63 1164 | -0.08644059 0.1880031 0.7615031 0 0 128 63 1165 | -0.08310261 0.190871 0.7619636 0 0 128 63 1166 | -0.07665756 0.1836537 0.7630961 0 0 128 63 1167 | -0.07424858 0.1844828 0.7620605 0 0 128 63 1168 | -0.0780547 0.1872392 0.7629773 0 0 128 63 1169 | -0.07639226 0.1874795 0.7620227 0 0 128 63 1170 | -0.08005056 0.1923615 0.7628075 0 0 128 63 1171 | -------------------------------------------------------------------------------- /data/object_templates.txt: -------------------------------------------------------------------------------- 1 | # A list of point clouds to try aligning 2 | ../data/object_template_0.pcd 3 | ../data/object_template_1.pcd 4 | ../data/object_template_2.pcd 5 | ../data/object_template_3.pcd 6 | ../data/object_template_4.pcd 7 | ../data/object_template_5.pcd 8 | -------------------------------------------------------------------------------- /data/person.pcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/person.pcd -------------------------------------------------------------------------------- /data/table_scene_lms400.pcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffdelmerico/pointcloud_tutorial/aa3cff3d266b4129bddebaeb7c79b80f31840e65/data/table_scene_lms400.pcd -------------------------------------------------------------------------------- /filtering/open3d_filtering.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | import numpy as np 6 | import math 7 | from open3d import * 8 | 9 | if __name__ == "__main__": 10 | 11 | print("Load a point cloud and render it") 12 | pcd = read_point_cloud("../data/table_scene_lms400.pcd") 13 | print(pcd) 14 | draw_geometries([pcd]) 15 | 16 | print("Crop the original point cloud (pass through filter)") 17 | cropped = crop_point_cloud(pcd, min_bound=np.array([-0.75, -math.inf, -math.inf]), max_bound=np.array([0.5, math.inf, math.inf])) 18 | draw_geometries([cropped]) 19 | print("") 20 | 21 | print("Downsample the point cloud with a voxel of 0.01") 22 | downpcd = voxel_down_sample(pcd, voxel_size = 0.01) 23 | draw_geometries([downpcd]) 24 | print("") 25 | -------------------------------------------------------------------------------- /filtering/pcl_filtering.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int 9 | main (int argc, char** argv) 10 | { 11 | if (argc != 2) 12 | { 13 | PCL_ERROR("Usage: %s mode --- mode 0 is pass through\n\t\t\t mode 1 is voxel grid\n\t\t\t mode 2 is statistical outlier removal\n", argv[0]); 14 | return(-1); 15 | } 16 | // Switch modes 17 | int mode = atoi(argv[1]); 18 | 19 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 20 | pcl::PointCloud::Ptr cloud_filtered (new pcl::PointCloud); 21 | 22 | // Fill in the cloud data 23 | pcl::PCDReader reader; 24 | reader.read ("../data/table_scene_lms400.pcd", *cloud); 25 | 26 | PCL_INFO("PointCloud before filtering: %d data points.\n", cloud->width * cloud->height); 27 | 28 | if(mode == 0) 29 | { 30 | // PassThrough filter 31 | pcl::PassThrough pass; 32 | pass.setInputCloud (cloud); 33 | pass.setFilterFieldName ("x"); 34 | pass.setFilterLimits (-0.75, 0.5); 35 | //pass.setFilterLimitsNegative (true); 36 | pass.filter (*cloud_filtered); 37 | } 38 | else if(mode == 1) 39 | { 40 | // Downsample to voxel grid 41 | pcl::VoxelGrid vg; 42 | vg.setInputCloud (cloud); 43 | vg.setLeafSize (0.01f, 0.01f, 0.01f); 44 | vg.filter (*cloud_filtered); 45 | } 46 | else 47 | { 48 | // Statistical Outlier Removal 49 | pcl::StatisticalOutlierRemoval sor; 50 | sor.setInputCloud (cloud); 51 | sor.setMeanK (50); 52 | sor.setStddevMulThresh (1.0); 53 | sor.filter (*cloud_filtered); 54 | } 55 | 56 | PCL_INFO("PointCloud before filtering: %d data points.\n", cloud_filtered->width * cloud_filtered->height); 57 | 58 | pcl::PCDWriter writer; 59 | writer.write ("table_scene_lms400_filtered.pcd", *cloud_filtered, false); 60 | 61 | return (0); 62 | } 63 | -------------------------------------------------------------------------------- /io/open3d_file_io.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | from open3d import * 6 | 7 | if __name__ == "__main__": 8 | 9 | print("Testing IO for point cloud ...") 10 | pcd = read_point_cloud("../data/robot1.pcd") 11 | print(pcd) 12 | write_point_cloud("../data/copy_of_robot1.pcd", pcd) 13 | 14 | print("Testing IO for meshes ...") 15 | mesh = read_triangle_mesh("../data/bunny.ply") 16 | print(mesh) 17 | write_triangle_mesh("../data/copy_of_bunny.ply", mesh) 18 | 19 | print("Testing IO for images ...") 20 | img = read_image("../data/lena_color.jpg") 21 | print(img) 22 | write_image("../data/copy_of_lena_color.jpg", img) 23 | -------------------------------------------------------------------------------- /io/pcl_read_pcd.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int 6 | main (int argc, char** argv) 7 | { 8 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 9 | 10 | if (pcl::io::loadPCDFile ("test_pcd.pcd", *cloud) == -1) //* load the file 11 | { 12 | PCL_ERROR ("Couldn't read file test_pcd.pcd \n"); 13 | return (-1); 14 | } 15 | std::cout << "Loaded " 16 | << cloud->width * cloud->height 17 | << " data points from test_pcd.pcd with the following fields: " 18 | << std::endl; 19 | for (size_t i = 0; i < cloud->points.size (); ++i) 20 | std::cout << " " << cloud->points[i].x 21 | << " " << cloud->points[i].y 22 | << " " << cloud->points[i].z << std::endl; 23 | 24 | return (0); 25 | } 26 | -------------------------------------------------------------------------------- /io/pcl_write_pcd.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int 6 | main (int argc, char** argv) 7 | { 8 | pcl::PointCloud cloud; 9 | 10 | // Fill in the cloud data 11 | cloud.width = 50; 12 | cloud.height = 1; 13 | cloud.is_dense = false; 14 | cloud.points.resize (cloud.width * cloud.height); 15 | 16 | for (size_t i = 0; i < cloud.points.size (); ++i) 17 | { 18 | cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f); 19 | cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f); 20 | cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f); 21 | } 22 | 23 | pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud); 24 | std::cerr << "Saved " << cloud.points.size () 25 | << " data points to test_pcd.pcd." << std::endl; 26 | 27 | for (size_t i = 0; i < cloud.points.size (); ++i) 28 | std::cerr << " " << cloud.points[i].x << " " 29 | << cloud.points[i].y << " " << cloud.points[i].z << std::endl; 30 | 31 | return (0); 32 | } 33 | -------------------------------------------------------------------------------- /keypoints/open3d_keypoints.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from open3d import * 3 | 4 | if __name__ == "__main__": 5 | 6 | pcd = read_point_cloud("../data/robot1.pcd") 7 | print("Compute the normals of the downsampled point cloud") 8 | voxel_size = 0.01 9 | downpcd = voxel_down_sample(pcd, voxel_size = voxel_size) 10 | estimate_normals(downpcd, search_param = KDTreeSearchParamHybrid( 11 | radius = 0.02, max_nn = 30)) 12 | print("Downsampled point cloud shape: ") 13 | print(np.asarray(downpcd.points).shape) 14 | 15 | radius_feature = voxel_size * 5 16 | print("Compute FPFH feature with search radius %.3f." % radius_feature) 17 | fpfh = compute_fpfh_feature(downpcd, 18 | KDTreeSearchParamHybrid(radius = radius_feature, max_nn = 100)) 19 | print("FPFH shape: ") 20 | print(fpfh.data.shape) 21 | -------------------------------------------------------------------------------- /keypoints/pcl_keypoints.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "pcl/point_types.h" 4 | #include "pcl/point_cloud.h" 5 | #include "pcl/io/pcd_io.h" 6 | #include "pcl/kdtree/kdtree_flann.h" 7 | #include "pcl/features/normal_3d.h" 8 | #include "pcl/features/pfh.h" 9 | #include "pcl/keypoints/sift_keypoint.h" 10 | #include 11 | #include 12 | 13 | void 14 | downsample (pcl::PointCloud::Ptr &points, float leaf_size, 15 | pcl::PointCloud::Ptr &downsampled_out) 16 | { 17 | pcl::VoxelGrid vox_grid; 18 | vox_grid.setLeafSize (leaf_size, leaf_size, leaf_size); 19 | vox_grid.setInputCloud (points); 20 | vox_grid.filter (*downsampled_out); 21 | } 22 | 23 | void 24 | compute_surface_normals (pcl::PointCloud::Ptr &points, float normal_radius, 25 | pcl::PointCloud::Ptr &normals_out) 26 | { 27 | pcl::NormalEstimation norm_est; 28 | 29 | // Use a FLANN-based KdTree to perform neighborhood searches 30 | norm_est.setSearchMethod (pcl::search::KdTree::Ptr (new pcl::search::KdTree)); 31 | 32 | // Specify the size of the local neighborhood to use when computing the surface normals 33 | norm_est.setRadiusSearch (normal_radius); 34 | 35 | // Set the input points 36 | norm_est.setInputCloud (points); 37 | 38 | // Estimate the surface normals and store the result in "normals_out" 39 | norm_est.compute (*normals_out); 40 | } 41 | 42 | void 43 | compute_PFH_features (pcl::PointCloud::Ptr &points, 44 | pcl::PointCloud::Ptr &normals, 45 | float feature_radius, 46 | pcl::PointCloud::Ptr &descriptors_out) 47 | { 48 | // Create a PFHEstimation object 49 | pcl::PFHEstimation pfh_est; 50 | 51 | // Set it to use a FLANN-based KdTree to perform its neighborhood searches 52 | pfh_est.setSearchMethod (pcl::search::KdTree::Ptr (new pcl::search::KdTree)); 53 | 54 | // Specify the radius of the PFH feature 55 | pfh_est.setRadiusSearch (feature_radius); 56 | 57 | // Set the input points and surface normals 58 | pfh_est.setInputCloud (points); 59 | pfh_est.setInputNormals (normals); 60 | 61 | // Compute the features 62 | pfh_est.compute (*descriptors_out); 63 | } 64 | 65 | void 66 | detect_keypoints (pcl::PointCloud::Ptr &points, 67 | float min_scale, int nr_octaves, int nr_scales_per_octave, float min_contrast, 68 | pcl::PointCloud::Ptr &keypoints_out) 69 | { 70 | pcl::SIFTKeypoint sift_detect; 71 | 72 | // Use a FLANN-based KdTree to perform neighborhood searches 73 | sift_detect.setSearchMethod (pcl::search::KdTree::Ptr (new pcl::search::KdTree)); 74 | 75 | // Set the detection parameters 76 | sift_detect.setScales (min_scale, nr_octaves, nr_scales_per_octave); 77 | sift_detect.setMinimumContrast (min_contrast); 78 | 79 | // Set the input 80 | sift_detect.setInputCloud (points); 81 | 82 | // Detect the keypoints and store them in "keypoints_out" 83 | sift_detect.compute (*keypoints_out); 84 | } 85 | 86 | void 87 | compute_PFH_features_at_keypoints (pcl::PointCloud::Ptr &points, 88 | pcl::PointCloud::Ptr &normals, 89 | pcl::PointCloud::Ptr &keypoints, float feature_radius, 90 | pcl::PointCloud::Ptr &descriptors_out) 91 | { 92 | // Create a PFHEstimation object 93 | pcl::PFHEstimation pfh_est; 94 | 95 | // Set it to use a FLANN-based KdTree to perform its neighborhood searches 96 | pfh_est.setSearchMethod (pcl::search::KdTree::Ptr (new pcl::search::KdTree)); 97 | 98 | // Specify the radius of the PFH feature 99 | pfh_est.setRadiusSearch (feature_radius); 100 | 101 | /* This is a little bit messy: since our keypoint detection returns PointWithScale points, but we want to 102 | * use them as an input to our PFH estimation, which expects clouds of PointXYZRGB points. To get around this, 103 | * we'll use copyPointCloud to convert "keypoints" (a cloud of type PointCloud) to 104 | * "keypoints_xyzrgb" (a cloud of type PointCloud). Note that the original cloud doesn't have any RGB 105 | * values, so when we copy from PointWithScale to PointXYZRGB, the new r,g,b fields will all be zero. 106 | */ 107 | pcl::PointCloud::Ptr keypoints_xyzrgb (new pcl::PointCloud); 108 | pcl::copyPointCloud (*keypoints, *keypoints_xyzrgb); 109 | 110 | // Use all of the points for analyzing the local structure of the cloud 111 | pfh_est.setSearchSurface (points); 112 | pfh_est.setInputNormals (normals); 113 | 114 | // But only compute features at the keypoints 115 | pfh_est.setInputCloud (keypoints_xyzrgb); 116 | 117 | // Compute the features 118 | pfh_est.compute (*descriptors_out); 119 | } 120 | 121 | void 122 | find_feature_correspondences (pcl::PointCloud::Ptr &source_descriptors, 123 | pcl::PointCloud::Ptr &target_descriptors, 124 | std::vector &correspondences_out, std::vector &correspondence_scores_out) 125 | { 126 | // Resize the output vector 127 | correspondences_out.resize (source_descriptors->size ()); 128 | correspondence_scores_out.resize (source_descriptors->size ()); 129 | 130 | // Use a KdTree to search for the nearest matches in feature space 131 | pcl::search::KdTree descriptor_kdtree; 132 | descriptor_kdtree.setInputCloud (target_descriptors); 133 | 134 | // Find the index of the best match for each keypoint, and store it in "correspondences_out" 135 | const int k = 1; 136 | std::vector k_indices (k); 137 | std::vector k_squared_distances (k); 138 | for (size_t i = 0; i < source_descriptors->size (); ++i) 139 | { 140 | descriptor_kdtree.nearestKSearch (*source_descriptors, i, k, k_indices, k_squared_distances); 141 | correspondences_out[i] = k_indices[0]; 142 | correspondence_scores_out[i] = k_squared_distances[0]; 143 | } 144 | } 145 | 146 | void visualize_normals (const pcl::PointCloud::Ptr points, 147 | const pcl::PointCloud::Ptr normal_points, 148 | const pcl::PointCloud::Ptr normals) 149 | { 150 | // Add the points and normals to the vizualizer 151 | pcl::visualization::PCLVisualizer viz; 152 | viz.addPointCloud (points, "points"); 153 | viz.addPointCloud (normal_points, "normal_points"); 154 | 155 | viz.addPointCloudNormals (normal_points, normals, 1, 0.01, "normals"); 156 | 157 | // Give control over to the visualizer 158 | viz.spin (); 159 | } 160 | 161 | void visualize_keypoints (const pcl::PointCloud::Ptr points, 162 | const pcl::PointCloud::Ptr keypoints) 163 | { 164 | // Add the points to the vizualizer 165 | pcl::visualization::PCLVisualizer viz; 166 | viz.addPointCloud (points, "points"); 167 | 168 | // Draw each keypoint as a sphere 169 | for (size_t i = 0; i < keypoints->size (); ++i) 170 | { 171 | // Get the point data 172 | const pcl::PointWithScale & p = keypoints->points[i]; 173 | 174 | // Pick the radius of the sphere * 175 | float r = 2 * p.scale; 176 | // * Note: the scale is given as the standard deviation of a Gaussian blur, so a 177 | // radius of 2*p.scale is a good illustration of the extent of the keypoint 178 | 179 | // Generate a unique string for each sphere 180 | std::stringstream ss ("keypoint"); 181 | ss << i; 182 | 183 | // Add a sphere at the keypoint 184 | viz.addSphere (p, 2*p.scale, 1.0, 0.0, 0.0, ss.str ()); 185 | } 186 | 187 | // Give control over to the visualizer 188 | viz.spin (); 189 | } 190 | 191 | void visualize_correspondences (const pcl::PointCloud::Ptr points1, 192 | const pcl::PointCloud::Ptr keypoints1, 193 | const pcl::PointCloud::Ptr points2, 194 | const pcl::PointCloud::Ptr keypoints2, 195 | const std::vector &correspondences, 196 | const std::vector &correspondence_scores) 197 | { 198 | // We want to visualize two clouds side-by-side, so do to this, we'll make copies of the clouds and transform them 199 | // by shifting one to the left and the other to the right. Then we'll draw lines between the corresponding points 200 | 201 | // Create some new point clouds to hold our transformed data 202 | pcl::PointCloud::Ptr points_left (new pcl::PointCloud); 203 | pcl::PointCloud::Ptr keypoints_left (new pcl::PointCloud); 204 | pcl::PointCloud::Ptr points_right (new pcl::PointCloud); 205 | pcl::PointCloud::Ptr keypoints_right (new pcl::PointCloud); 206 | 207 | // Shift the first clouds' points to the left 208 | //const Eigen::Vector3f translate (0.0, 0.0, 0.3); 209 | const Eigen::Vector3f translate (0.4, 0.0, 0.0); 210 | const Eigen::Quaternionf no_rotation (0, 0, 0, 0); 211 | pcl::transformPointCloud (*points1, *points_left, -translate, no_rotation); 212 | pcl::transformPointCloud (*keypoints1, *keypoints_left, -translate, no_rotation); 213 | 214 | // Shift the second clouds' points to the right 215 | pcl::transformPointCloud (*points2, *points_right, translate, no_rotation); 216 | pcl::transformPointCloud (*keypoints2, *keypoints_right, translate, no_rotation); 217 | 218 | // Add the clouds to the vizualizer 219 | pcl::visualization::PCLVisualizer viz; 220 | viz.addPointCloud (points_left, "points_left"); 221 | viz.addPointCloud (points_right, "points_right"); 222 | 223 | // Compute the median correspondence score 224 | std::vector temp (correspondence_scores); 225 | std::sort (temp.begin (), temp.end ()); 226 | float median_score = temp[temp.size ()/2]; 227 | 228 | // Draw lines between the best corresponding points 229 | for (size_t i = 0; i < keypoints_left->size (); ++i) 230 | { 231 | if (correspondence_scores[i] > median_score) 232 | { 233 | continue; // Don't draw weak correspondences 234 | } 235 | 236 | // Get the pair of points 237 | const pcl::PointWithScale & p_left = keypoints_left->points[i]; 238 | const pcl::PointWithScale & p_right = keypoints_right->points[correspondences[i]]; 239 | 240 | // Generate a random (bright) color 241 | double r = (rand() % 100); 242 | double g = (rand() % 100); 243 | double b = (rand() % 100); 244 | double max_channel = std::max (r, std::max (g, b)); 245 | r /= max_channel; 246 | g /= max_channel; 247 | b /= max_channel; 248 | 249 | // Generate a unique string for each line 250 | std::stringstream ss ("line"); 251 | ss << i; 252 | 253 | // Draw the line 254 | viz.addLine (p_left, p_right, r, g, b, ss.str ()); 255 | } 256 | 257 | // Give control over to the visualizer 258 | viz.spin (); 259 | } 260 | 261 | int normals_demo (const char * filename) 262 | { 263 | // Create some new point clouds to hold our data 264 | pcl::PointCloud::Ptr points (new pcl::PointCloud); 265 | pcl::PointCloud::Ptr downsampled (new pcl::PointCloud); 266 | pcl::PointCloud::Ptr normals (new pcl::PointCloud); 267 | 268 | // Load a point cloud 269 | pcl::io::loadPCDFile (filename, *points); 270 | 271 | // Downsample the cloud 272 | const float voxel_grid_leaf_size = 0.01; 273 | downsample (points, voxel_grid_leaf_size, downsampled); 274 | 275 | // Compute surface normals 276 | const float normal_radius = 0.03; 277 | compute_surface_normals (downsampled, normal_radius, normals); 278 | 279 | // Visualize the points and normals 280 | visualize_normals (points, downsampled, normals); 281 | 282 | return (0); 283 | } 284 | 285 | int keypoints_demo (const char * filename) 286 | { 287 | 288 | // Create some new point clouds to hold our data 289 | pcl::PointCloud::Ptr points (new pcl::PointCloud); 290 | pcl::PointCloud::Ptr keypoints (new pcl::PointCloud); 291 | 292 | // Load a point cloud 293 | pcl::io::loadPCDFile (filename, *points); 294 | 295 | // Compute keypoints 296 | const float min_scale = 0.01; 297 | const int nr_octaves = 3; 298 | const int nr_octaves_per_scale = 3; 299 | const float min_contrast = 10.0; 300 | detect_keypoints (points, min_scale, nr_octaves, nr_octaves_per_scale, min_contrast, keypoints); 301 | 302 | // Visualize the point cloud and its keypoints 303 | visualize_keypoints (points, keypoints); 304 | 305 | return (0); 306 | } 307 | 308 | int correspondences_demo (const char * filename_base) 309 | { 310 | // Create some new point clouds to hold our data 311 | pcl::PointCloud::Ptr points1 (new pcl::PointCloud); 312 | pcl::PointCloud::Ptr downsampled1 (new pcl::PointCloud); 313 | pcl::PointCloud::Ptr normals1 (new pcl::PointCloud); 314 | pcl::PointCloud::Ptr keypoints1 (new pcl::PointCloud); 315 | pcl::PointCloud::Ptr descriptors1 (new pcl::PointCloud); 316 | 317 | pcl::PointCloud::Ptr points2 (new pcl::PointCloud); 318 | pcl::PointCloud::Ptr downsampled2 (new pcl::PointCloud); 319 | pcl::PointCloud::Ptr normals2 (new pcl::PointCloud); 320 | pcl::PointCloud::Ptr keypoints2 (new pcl::PointCloud); 321 | pcl::PointCloud::Ptr descriptors2 (new pcl::PointCloud); 322 | 323 | // Load the pair of point clouds 324 | std::stringstream ss1, ss2; 325 | ss1 << filename_base << "1.pcd"; 326 | pcl::io::loadPCDFile (ss1.str (), *points1); 327 | ss2 << filename_base << "2.pcd"; 328 | pcl::io::loadPCDFile (ss2.str (), *points2); 329 | 330 | // Downsample the cloud 331 | const float voxel_grid_leaf_size = 0.01; 332 | downsample (points1, voxel_grid_leaf_size, downsampled1); 333 | downsample (points2, voxel_grid_leaf_size, downsampled2); 334 | 335 | // Compute surface normals 336 | const float normal_radius = 0.03; 337 | compute_surface_normals (downsampled1, normal_radius, normals1); 338 | compute_surface_normals (downsampled2, normal_radius, normals2); 339 | 340 | // Compute keypoints 341 | const float min_scale = 0.01; 342 | const int nr_octaves = 3; 343 | const int nr_octaves_per_scale = 3; 344 | const float min_contrast = 10.0; 345 | detect_keypoints (points1, min_scale, nr_octaves, nr_octaves_per_scale, min_contrast, keypoints1); 346 | detect_keypoints (points2, min_scale, nr_octaves, nr_octaves_per_scale, min_contrast, keypoints2); 347 | 348 | // Compute PFH features 349 | const float feature_radius = 0.08; 350 | compute_PFH_features_at_keypoints (downsampled1, normals1, keypoints1, feature_radius, descriptors1); 351 | compute_PFH_features_at_keypoints (downsampled2, normals2, keypoints2, feature_radius, descriptors2); 352 | 353 | // Find feature correspondences 354 | std::vector correspondences; 355 | std::vector correspondence_scores; 356 | find_feature_correspondences (descriptors1, descriptors2, correspondences, correspondence_scores); 357 | 358 | // Print out ( number of keypoints / number of points ) 359 | std::cout << "First cloud: Found " << keypoints1->size () << " keypoints " 360 | << "out of " << downsampled1->size () << " total points." << std::endl; 361 | std::cout << "Second cloud: Found " << keypoints2->size () << " keypoints " 362 | << "out of " << downsampled2->size () << " total points." << std::endl; 363 | 364 | // Visualize the two point clouds and their feature correspondences 365 | visualize_correspondences (points1, keypoints1, points2, keypoints2, correspondences, correspondence_scores); 366 | 367 | return (0); 368 | } 369 | 370 | int main (int argc, char ** argv) 371 | { 372 | if (argc != 3) 373 | { 374 | std::cout << "Please pass a filename and exactly one of the following arguments: " 375 | << "normals, keypoints, correspondences" << std::endl; 376 | return (-1); 377 | } 378 | 379 | if (strcmp (argv[2], "normals") == 0) 380 | { 381 | return (normals_demo (argv[1])); 382 | } 383 | else if (strcmp (argv[2], "keypoints") == 0) 384 | { 385 | return (keypoints_demo (argv[1])); 386 | } 387 | else if (strcmp (argv[2], "correspondences") == 0) 388 | { 389 | return (correspondences_demo (argv[1])); 390 | } 391 | } 392 | 393 | -------------------------------------------------------------------------------- /openni_grabber/pcl_openni_grabber.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | class SimpleOpenNIViewer 5 | { 6 | public: 7 | SimpleOpenNIViewer () : viewer ("PCL OpenNI Viewer") {} 8 | 9 | void cloud_cb_ (const pcl::PointCloud::ConstPtr &cloud) 10 | { 11 | if (!viewer.wasStopped()) 12 | viewer.showCloud (cloud); 13 | } 14 | 15 | void run () 16 | { 17 | pcl::Grabber* interface = new pcl::OpenNIGrabber(); 18 | 19 | boost::function::ConstPtr&)> f = 20 | boost::bind (&SimpleOpenNIViewer::cloud_cb_, this, _1); 21 | 22 | interface->registerCallback (f); 23 | 24 | interface->start (); 25 | 26 | while (!viewer.wasStopped()) 27 | { 28 | boost::this_thread::sleep (boost::posix_time::seconds (1)); 29 | } 30 | 31 | interface->stop (); 32 | } 33 | 34 | pcl::visualization::CloudViewer viewer; 35 | }; 36 | 37 | int main () 38 | { 39 | SimpleOpenNIViewer v; 40 | v.run (); 41 | return 0; 42 | } 43 | -------------------------------------------------------------------------------- /registration/open3d_colored_icp.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | import numpy as np 6 | import copy 7 | from open3d import * 8 | 9 | 10 | def draw_registration_result_original_color(source, target, transformation): 11 | source_temp = copy.deepcopy(source) 12 | source_temp.transform(transformation) 13 | draw_geometries([source_temp, target]) 14 | 15 | 16 | if __name__ == "__main__": 17 | 18 | print("1. Load two point clouds and show initial pose") 19 | source = read_point_cloud("../data/frag_115.ply") 20 | target = read_point_cloud("../data/frag_116.ply") 21 | 22 | # draw initial alignment 23 | current_transformation = np.identity(4) 24 | draw_registration_result_original_color( 25 | source, target, current_transformation) 26 | 27 | # point to plane ICP 28 | current_transformation = np.identity(4); 29 | print("2. Point-to-plane ICP registration is applied on original point") 30 | print(" clouds to refine the alignment. Distance threshold 0.02.") 31 | result_icp = registration_icp(source, target, 0.02, 32 | current_transformation, TransformationEstimationPointToPlane()) 33 | print(result_icp) 34 | draw_registration_result_original_color( 35 | source, target, result_icp.transformation) 36 | 37 | # colored pointcloud registration 38 | # This is implementation of following paper 39 | # J. Park, Q.-Y. Zhou, V. Koltun, 40 | # Colored Point Cloud Registration Revisited, ICCV 2017 41 | voxel_radius = [ 0.04, 0.02, 0.01 ]; 42 | max_iter = [ 50, 30, 14 ]; 43 | current_transformation = np.identity(4) 44 | print("3. Colored point cloud registration") 45 | for scale in range(3): 46 | iter = max_iter[scale] 47 | radius = voxel_radius[scale] 48 | print([iter,radius,scale]) 49 | 50 | print("3-1. Downsample with a voxel size %.2f" % radius) 51 | source_down = voxel_down_sample(source, radius) 52 | target_down = voxel_down_sample(target, radius) 53 | 54 | print("3-2. Estimate normal.") 55 | estimate_normals(source_down, KDTreeSearchParamHybrid( 56 | radius = radius * 2, max_nn = 30)) 57 | estimate_normals(target_down, KDTreeSearchParamHybrid( 58 | radius = radius * 2, max_nn = 30)) 59 | 60 | print("3-3. Applying colored point cloud registration") 61 | result_icp = registration_colored_icp(source_down, target_down, 62 | radius, current_transformation, 63 | ICPConvergenceCriteria(relative_fitness = 1e-6, 64 | relative_rmse = 1e-6, max_iteration = iter)) 65 | current_transformation = result_icp.transformation 66 | print(result_icp) 67 | draw_registration_result_original_color( 68 | source, target, result_icp.transformation) 69 | -------------------------------------------------------------------------------- /registration/open3d_fast_global_registration.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | from open3d import * 6 | from open3d_global_registration import * 7 | import numpy as np 8 | import copy 9 | 10 | import time 11 | 12 | def execute_fast_global_registration(source_down, target_down, 13 | source_fpfh, target_fpfh, voxel_size): 14 | distance_threshold = voxel_size * 0.5 15 | print(":: Apply fast global registration with distance threshold %.3f" \ 16 | % distance_threshold) 17 | result = registration_fast_based_on_feature_matching( 18 | source_down, target_down, source_fpfh, target_fpfh, 19 | FastGlobalRegistrationOption( 20 | maximum_correspondence_distance = distance_threshold)) 21 | return result 22 | 23 | if __name__ == "__main__": 24 | 25 | voxel_size = 0.05 # means 5cm for the dataset 26 | source, target, source_down, target_down, source_fpfh, target_fpfh = \ 27 | prepare_dataset(voxel_size) 28 | 29 | start = time.time() 30 | result_ransac = execute_global_registration(source_down, target_down, 31 | source_fpfh, target_fpfh, voxel_size) 32 | print(result_ransac) 33 | print("Global registration took %.3f sec.\n" % (time.time() - start)) 34 | draw_registration_result(source_down, target_down, 35 | result_ransac.transformation) 36 | 37 | start = time.time() 38 | result_fast = execute_fast_global_registration(source_down, target_down, 39 | source_fpfh, target_fpfh, voxel_size) 40 | print("Fast global registration took %.3f sec.\n" % (time.time() - start)) 41 | draw_registration_result(source_down, target_down, 42 | result_fast.transformation) 43 | -------------------------------------------------------------------------------- /registration/open3d_global_registration.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | from open3d import * 6 | import numpy as np 7 | import copy 8 | 9 | def draw_registration_result(source, target, transformation): 10 | source_temp = copy.deepcopy(source) 11 | target_temp = copy.deepcopy(target) 12 | source_temp.paint_uniform_color([1, 0.706, 0]) 13 | target_temp.paint_uniform_color([0, 0.651, 0.929]) 14 | source_temp.transform(transformation) 15 | draw_geometries([source_temp, target_temp]) 16 | 17 | def preprocess_point_cloud(pcd, voxel_size): 18 | print(":: Downsample with a voxel size %.3f." % voxel_size) 19 | pcd_down = voxel_down_sample(pcd, voxel_size) 20 | 21 | radius_normal = voxel_size * 2 22 | print(":: Estimate normal with search radius %.3f." % radius_normal) 23 | estimate_normals(pcd_down, KDTreeSearchParamHybrid( 24 | radius = radius_normal, max_nn = 30)) 25 | 26 | radius_feature = voxel_size * 5 27 | print(":: Compute FPFH feature with search radius %.3f." % radius_feature) 28 | pcd_fpfh = compute_fpfh_feature(pcd_down, 29 | KDTreeSearchParamHybrid(radius = radius_feature, max_nn = 100)) 30 | return pcd_down, pcd_fpfh 31 | 32 | def prepare_dataset(voxel_size): 33 | print(":: Load two point clouds and disturb initial pose.") 34 | source = read_point_cloud("../data/cloud_bin_0.pcd") 35 | target = read_point_cloud("../data/cloud_bin_1.pcd") 36 | trans_init = np.asarray([[0.0, 0.0, 1.0, 0.0], 37 | [1.0, 0.0, 0.0, 0.0], 38 | [0.0, 1.0, 0.0, 0.0], 39 | [0.0, 0.0, 0.0, 1.0]]) 40 | source.transform(trans_init) 41 | draw_registration_result(source, target, np.identity(4)) 42 | 43 | source_down, source_fpfh = preprocess_point_cloud(source, voxel_size) 44 | target_down, target_fpfh = preprocess_point_cloud(target, voxel_size) 45 | return source, target, source_down, target_down, source_fpfh, target_fpfh 46 | 47 | def execute_global_registration( 48 | source_down, target_down, source_fpfh, target_fpfh, voxel_size): 49 | distance_threshold = voxel_size * 1.5 50 | print(":: RANSAC registration on downsampled point clouds.") 51 | print(" Since the downsampling voxel size is %.3f," % voxel_size) 52 | print(" we use a liberal distance threshold %.3f." % distance_threshold) 53 | result = registration_ransac_based_on_feature_matching( 54 | source_down, target_down, source_fpfh, target_fpfh, 55 | distance_threshold, 56 | TransformationEstimationPointToPoint(False), 4, 57 | [CorrespondenceCheckerBasedOnEdgeLength(0.9), 58 | CorrespondenceCheckerBasedOnDistance(distance_threshold)], 59 | RANSACConvergenceCriteria(4000000, 500)) 60 | return result 61 | 62 | def refine_registration(source, target, source_fpfh, target_fpfh, voxel_size): 63 | distance_threshold = voxel_size * 0.4 64 | print(":: Point-to-plane ICP registration is applied on original point") 65 | print(" clouds to refine the alignment. This time we use a strict") 66 | print(" distance threshold %.3f." % distance_threshold) 67 | result = registration_icp(source, target, distance_threshold, 68 | result_ransac.transformation, 69 | TransformationEstimationPointToPlane()) 70 | return result 71 | 72 | if __name__ == "__main__": 73 | voxel_size = 0.05 # means 5cm for the dataset 74 | source, target, source_down, target_down, source_fpfh, target_fpfh = \ 75 | prepare_dataset(voxel_size) 76 | 77 | result_ransac = execute_global_registration(source_down, target_down, 78 | source_fpfh, target_fpfh, voxel_size) 79 | print(result_ransac) 80 | draw_registration_result(source_down, target_down, 81 | result_ransac.transformation) 82 | 83 | result_icp = refine_registration(source, target, 84 | source_fpfh, target_fpfh, voxel_size) 85 | print(result_icp) 86 | draw_registration_result(source, target, result_icp.transformation) 87 | -------------------------------------------------------------------------------- /registration/open3d_icp.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | from open3d import * 6 | import numpy as np 7 | import copy 8 | 9 | def draw_registration_result(source, target, transformation): 10 | source_temp = copy.deepcopy(source) 11 | target_temp = copy.deepcopy(target) 12 | source_temp.paint_uniform_color([1, 0.706, 0]) 13 | target_temp.paint_uniform_color([0, 0.651, 0.929]) 14 | source_temp.transform(transformation) 15 | draw_geometries([source_temp, target_temp]) 16 | 17 | if __name__ == "__main__": 18 | source = read_point_cloud("../data/cloud_bin_0.pcd") 19 | target = read_point_cloud("../data/cloud_bin_1.pcd") 20 | threshold = 0.02 21 | trans_init = np.asarray( 22 | [[0.862, 0.011, -0.507, 0.5], 23 | [-0.139, 0.967, -0.215, 0.7], 24 | [0.487, 0.255, 0.835, -1.4], 25 | [0.0, 0.0, 0.0, 1.0]]) 26 | draw_registration_result(source, target, trans_init) 27 | print("Initial alignment") 28 | evaluation = evaluate_registration(source, target, 29 | threshold, trans_init) 30 | print(evaluation) 31 | 32 | print("Apply point-to-point ICP") 33 | reg_p2p = registration_icp(source, target, threshold, trans_init, 34 | TransformationEstimationPointToPoint()) 35 | print(reg_p2p) 36 | print("Transformation is:") 37 | print(reg_p2p.transformation) 38 | print("") 39 | draw_registration_result(source, target, reg_p2p.transformation) 40 | 41 | print("Apply point-to-plane ICP") 42 | reg_p2l = registration_icp(source, target, threshold, trans_init, 43 | TransformationEstimationPointToPlane()) 44 | print(reg_p2l) 45 | print("Transformation is:") 46 | print(reg_p2l.transformation) 47 | print("") 48 | draw_registration_result(source, target, reg_p2l.transformation) 49 | -------------------------------------------------------------------------------- /registration/pcl_icp.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int 7 | main (int argc, char **argv) 8 | { 9 | pcl::PointCloud::Ptr cloud1 (new pcl::PointCloud); 10 | if (pcl::io::loadPCDFile (argv[1], *cloud1) == -1) 11 | { 12 | std::cout << "Could not read file" << std::endl; 13 | return -1; 14 | } 15 | std::cout << "width: " << cloud1->width << " height: " << cloud1->height << std::endl; 16 | 17 | pcl::PointCloud::Ptr cloud2 (new pcl::PointCloud); 18 | if (pcl::io::loadPCDFile (argv[2], *cloud2) == -1) 19 | { 20 | std::cout << "Could not read file" << std::endl; 21 | return -1; 22 | } 23 | std::cout << "width: " << cloud2->width << " height: " << cloud2->height << std::endl; 24 | Eigen::Matrix4f trafo; 25 | trafo << 0.862, 0.011, -0.507, 0.5, 26 | -0.139, 0.967, -0.215, 0.7, 27 | 0.487, 0.255, 0.835, -1.4, 28 | 0.0, 0.0, 0.0, 1.0; 29 | pcl::PointCloud::Ptr cloud1_init (new pcl::PointCloud); 30 | pcl::transformPointCloud (*cloud1, *cloud1_init, trafo); 31 | 32 | pcl::IterativeClosestPoint icp; 33 | icp.setInputCloud (cloud2); 34 | icp.setInputTarget (cloud1_init); 35 | icp.setMaximumIterations (30); 36 | icp.setMaxCorrespondenceDistance (0.02); 37 | pcl::PointCloud::Ptr aligned (new pcl::PointCloud); 38 | icp.align (*aligned); 39 | (*aligned) += *(cloud1_init); 40 | 41 | pcl::PointCloud::Ptr init (new pcl::PointCloud); 42 | (*init) = (*cloud1_init) + (*cloud2); 43 | pcl::io::savePCDFile ("../data/pcl_icp_aligned.pcd", *aligned); 44 | pcl::io::savePCDFile ("../data/pcl_icp_init.pcd", *init); 45 | std::cout << "Converged: " << (icp.hasConverged() ? "True" : "False") << " Score: " << 46 | icp.getFitnessScore() << std::endl; 47 | std::cout << "Transformation matrix:" << std::endl << icp.getFinalTransformation() << std::endl; 48 | 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /registration/pcl_template_matching.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | class FeatureCloud 16 | { 17 | public: 18 | // A bit of shorthand 19 | typedef pcl::PointCloud PointCloud; 20 | typedef pcl::PointCloud SurfaceNormals; 21 | typedef pcl::PointCloud LocalFeatures; 22 | typedef pcl::search::KdTree SearchMethod; 23 | 24 | FeatureCloud () : 25 | search_method_xyz_ (new SearchMethod), 26 | normal_radius_ (0.02f), 27 | feature_radius_ (0.02f) 28 | {} 29 | 30 | ~FeatureCloud () {} 31 | 32 | // Process the given cloud 33 | void 34 | setInputCloud (PointCloud::Ptr xyz) 35 | { 36 | xyz_ = xyz; 37 | processInput (); 38 | } 39 | 40 | // Load and process the cloud in the given PCD file 41 | void 42 | loadInputCloud (const std::string &pcd_file) 43 | { 44 | xyz_ = PointCloud::Ptr (new PointCloud); 45 | pcl::io::loadPCDFile (pcd_file, *xyz_); 46 | processInput (); 47 | } 48 | 49 | // Get a pointer to the cloud 3D points 50 | PointCloud::Ptr 51 | getPointCloud () const 52 | { 53 | return (xyz_); 54 | } 55 | 56 | // Get a pointer to the cloud of 3D surface normals 57 | SurfaceNormals::Ptr 58 | getSurfaceNormals () const 59 | { 60 | return (normals_); 61 | } 62 | 63 | // Get a pointer to the cloud of feature descriptors 64 | LocalFeatures::Ptr 65 | getLocalFeatures () const 66 | { 67 | return (features_); 68 | } 69 | 70 | protected: 71 | // Compute the surface normals and local features 72 | void 73 | processInput () 74 | { 75 | computeSurfaceNormals (); 76 | computeLocalFeatures (); 77 | } 78 | 79 | // Compute the surface normals 80 | void 81 | computeSurfaceNormals () 82 | { 83 | normals_ = SurfaceNormals::Ptr (new SurfaceNormals); 84 | 85 | pcl::NormalEstimation norm_est; 86 | norm_est.setInputCloud (xyz_); 87 | norm_est.setSearchMethod (search_method_xyz_); 88 | norm_est.setRadiusSearch (normal_radius_); 89 | norm_est.compute (*normals_); 90 | } 91 | 92 | // Compute the local feature descriptors 93 | void 94 | computeLocalFeatures () 95 | { 96 | features_ = LocalFeatures::Ptr (new LocalFeatures); 97 | 98 | pcl::FPFHEstimation fpfh_est; 99 | fpfh_est.setInputCloud (xyz_); 100 | fpfh_est.setInputNormals (normals_); 101 | fpfh_est.setSearchMethod (search_method_xyz_); 102 | fpfh_est.setRadiusSearch (feature_radius_); 103 | fpfh_est.compute (*features_); 104 | } 105 | 106 | private: 107 | // Point cloud data 108 | PointCloud::Ptr xyz_; 109 | SurfaceNormals::Ptr normals_; 110 | LocalFeatures::Ptr features_; 111 | SearchMethod::Ptr search_method_xyz_; 112 | 113 | // Parameters 114 | float normal_radius_; 115 | float feature_radius_; 116 | }; 117 | 118 | class TemplateAlignment 119 | { 120 | public: 121 | 122 | // A struct for storing alignment results 123 | struct Result 124 | { 125 | float fitness_score; 126 | Eigen::Matrix4f final_transformation; 127 | EIGEN_MAKE_ALIGNED_OPERATOR_NEW 128 | }; 129 | 130 | TemplateAlignment () : 131 | min_sample_distance_ (0.05f), 132 | max_correspondence_distance_ (0.01f*0.01f), 133 | nr_iterations_ (500) 134 | { 135 | // Intialize the parameters in the Sample Consensus Intial Alignment (SAC-IA) algorithm 136 | sac_ia_.setMinSampleDistance (min_sample_distance_); 137 | sac_ia_.setMaxCorrespondenceDistance (max_correspondence_distance_); 138 | sac_ia_.setMaximumIterations (nr_iterations_); 139 | } 140 | 141 | ~TemplateAlignment () {} 142 | 143 | // Set the given cloud as the target to which the templates will be aligned 144 | void 145 | setTargetCloud (FeatureCloud &target_cloud) 146 | { 147 | target_ = target_cloud; 148 | sac_ia_.setInputTarget (target_cloud.getPointCloud ()); 149 | sac_ia_.setTargetFeatures (target_cloud.getLocalFeatures ()); 150 | } 151 | 152 | // Add the given cloud to the list of template clouds 153 | void 154 | addTemplateCloud (FeatureCloud &template_cloud) 155 | { 156 | templates_.push_back (template_cloud); 157 | } 158 | 159 | // Align the given template cloud to the target specified by setTargetCloud () 160 | void 161 | align (FeatureCloud &template_cloud, TemplateAlignment::Result &result) 162 | { 163 | sac_ia_.setInputCloud (template_cloud.getPointCloud ()); 164 | sac_ia_.setSourceFeatures (template_cloud.getLocalFeatures ()); 165 | 166 | pcl::PointCloud registration_output; 167 | sac_ia_.align (registration_output); 168 | 169 | result.fitness_score = (float) sac_ia_.getFitnessScore (max_correspondence_distance_); 170 | result.final_transformation = sac_ia_.getFinalTransformation (); 171 | } 172 | 173 | // Align all of template clouds set by addTemplateCloud to the target specified by setTargetCloud () 174 | void 175 | alignAll (std::vector > &results) 176 | { 177 | results.resize (templates_.size ()); 178 | for (size_t i = 0; i < templates_.size (); ++i) 179 | { 180 | align (templates_[i], results[i]); 181 | } 182 | } 183 | 184 | // Align all of template clouds to the target cloud to find the one with best alignment score 185 | int 186 | findBestAlignment (TemplateAlignment::Result &result) 187 | { 188 | // Align all of the templates to the target cloud 189 | std::vector > results; 190 | alignAll (results); 191 | 192 | // Find the template with the best (lowest) fitness score 193 | float lowest_score = std::numeric_limits::infinity (); 194 | int best_template = 0; 195 | for (size_t i = 0; i < results.size (); ++i) 196 | { 197 | const Result &r = results[i]; 198 | if (r.fitness_score < lowest_score) 199 | { 200 | lowest_score = r.fitness_score; 201 | best_template = (int) i; 202 | } 203 | } 204 | 205 | // Output the best alignment 206 | result = results[best_template]; 207 | return (best_template); 208 | } 209 | 210 | private: 211 | // A list of template clouds and the target to which they will be aligned 212 | std::vector templates_; 213 | FeatureCloud target_; 214 | 215 | // The Sample Consensus Initial Alignment (SAC-IA) registration routine and its parameters 216 | pcl::SampleConsensusInitialAlignment sac_ia_; 217 | float min_sample_distance_; 218 | float max_correspondence_distance_; 219 | int nr_iterations_; 220 | }; 221 | 222 | // Align a collection of object templates to a sample point cloud 223 | int 224 | main (int argc, char **argv) 225 | { 226 | if (argc < 3) 227 | { 228 | printf ("No target PCD file given!\n"); 229 | return (-1); 230 | } 231 | 232 | // Load the object templates specified in the object_templates.txt file 233 | std::vector object_templates; 234 | std::ifstream input_stream (argv[1]); 235 | object_templates.resize (0); 236 | std::string pcd_filename; 237 | while (input_stream.good ()) 238 | { 239 | std::getline (input_stream, pcd_filename); 240 | if (pcd_filename.empty () || pcd_filename.at (0) == '#') // Skip blank lines or comments 241 | continue; 242 | 243 | FeatureCloud template_cloud; 244 | template_cloud.loadInputCloud (pcd_filename); 245 | object_templates.push_back (template_cloud); 246 | } 247 | input_stream.close (); 248 | 249 | // Load the target cloud PCD file 250 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 251 | pcl::io::loadPCDFile (argv[2], *cloud); 252 | 253 | // Preprocess the cloud by... 254 | // ...removing distant points 255 | const float depth_limit = 1.0; 256 | pcl::PassThrough pass; 257 | pass.setInputCloud (cloud); 258 | pass.setFilterFieldName ("z"); 259 | pass.setFilterLimits (0, depth_limit); 260 | pass.filter (*cloud); 261 | 262 | // ... and downsampling the point cloud 263 | const float voxel_grid_size = 0.005f; 264 | pcl::VoxelGrid vox_grid; 265 | vox_grid.setInputCloud (cloud); 266 | vox_grid.setLeafSize (voxel_grid_size, voxel_grid_size, voxel_grid_size); 267 | //vox_grid.filter (*cloud); // Please see this http://www.pcl-developers.org/Possible-problem-in-new-VoxelGrid-implementation-from-PCL-1-5-0-td5490361.html 268 | pcl::PointCloud::Ptr tempCloud (new pcl::PointCloud); 269 | vox_grid.filter (*tempCloud); 270 | cloud = tempCloud; 271 | 272 | // Assign to the target FeatureCloud 273 | FeatureCloud target_cloud; 274 | target_cloud.setInputCloud (cloud); 275 | 276 | // Set the TemplateAlignment inputs 277 | TemplateAlignment template_align; 278 | for (size_t i = 0; i < object_templates.size (); ++i) 279 | { 280 | template_align.addTemplateCloud (object_templates[i]); 281 | } 282 | template_align.setTargetCloud (target_cloud); 283 | 284 | // Find the best template alignment 285 | TemplateAlignment::Result best_alignment; 286 | int best_index = template_align.findBestAlignment (best_alignment); 287 | const FeatureCloud &best_template = object_templates[best_index]; 288 | 289 | // Print the alignment fitness score (values less than 0.00002 are good) 290 | printf ("Best fitness score: %f\n", best_alignment.fitness_score); 291 | 292 | // Print the rotation matrix and translation vector 293 | Eigen::Matrix3f rotation = best_alignment.final_transformation.block<3,3>(0, 0); 294 | Eigen::Vector3f translation = best_alignment.final_transformation.block<3,1>(0, 3); 295 | 296 | printf ("\n"); 297 | printf (" | %6.3f %6.3f %6.3f | \n", rotation (0,0), rotation (0,1), rotation (0,2)); 298 | printf ("R = | %6.3f %6.3f %6.3f | \n", rotation (1,0), rotation (1,1), rotation (1,2)); 299 | printf (" | %6.3f %6.3f %6.3f | \n", rotation (2,0), rotation (2,1), rotation (2,2)); 300 | printf ("\n"); 301 | printf ("t = < %0.3f, %0.3f, %0.3f >\n", translation (0), translation (1), translation (2)); 302 | 303 | // Save the aligned template for visualization 304 | pcl::PointCloud transformed_cloud; 305 | pcl::transformPointCloud (*best_template.getPointCloud (), transformed_cloud, best_alignment.final_transformation); 306 | pcl::io::savePCDFileBinary ("template_aligned.pcd", transformed_cloud); 307 | 308 | return (0); 309 | } 310 | -------------------------------------------------------------------------------- /sample_consensus/pcl_sample_consensus.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | boost::shared_ptr 13 | simpleVis (pcl::PointCloud::ConstPtr cloud) 14 | { 15 | // -------------------------------------------- 16 | // -----Open 3D viewer and add point cloud----- 17 | // -------------------------------------------- 18 | boost::shared_ptr viewer (new pcl::visualization::PCLVisualizer ("3D Viewer")); 19 | viewer->setBackgroundColor (0, 0, 0); 20 | viewer->addPointCloud (cloud, "sample cloud"); 21 | viewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "sample cloud"); 22 | //viewer->addCoordinateSystem (1.0); 23 | viewer->initCameraParameters (); 24 | return (viewer); 25 | } 26 | 27 | int 28 | main(int argc, char** argv) 29 | { 30 | // initialize PointClouds 31 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 32 | pcl::PointCloud::Ptr final (new pcl::PointCloud); 33 | 34 | // populate our PointCloud with points 35 | cloud->width = 500; 36 | cloud->height = 1; 37 | cloud->is_dense = false; 38 | cloud->points.resize (cloud->width * cloud->height); 39 | for (size_t i = 0; i < cloud->points.size (); ++i) 40 | { 41 | cloud->points[i].x = 1024 * rand () / (RAND_MAX + 1.0); 42 | cloud->points[i].y = 1024 * rand () / (RAND_MAX + 1.0); 43 | if( i % 2 == 0) 44 | cloud->points[i].z = 1024 * rand () / (RAND_MAX + 1.0); 45 | else 46 | cloud->points[i].z = -1 * (cloud->points[i].x + cloud->points[i].y); 47 | } 48 | 49 | std::vector inliers; 50 | 51 | // created RandomSampleConsensus object and compute the appropriated model 52 | pcl::SampleConsensusModelSphere::Ptr 53 | model_s(new pcl::SampleConsensusModelSphere (cloud)); 54 | pcl::SampleConsensusModelPlane::Ptr 55 | model_p (new pcl::SampleConsensusModelPlane (cloud)); 56 | if(pcl::console::find_argument (argc, argv, "-f") >= 0) 57 | { 58 | pcl::RandomSampleConsensus ransac (model_p); 59 | ransac.setDistanceThreshold (.01); 60 | ransac.computeModel(); 61 | ransac.getInliers(inliers); 62 | } 63 | 64 | // copies all inliers of the model computed to another PointCloud 65 | pcl::copyPointCloud(*cloud, inliers, *final); 66 | 67 | // creates the visualization object and adds either our orignial cloud or all of the inliers 68 | // depending on the command line arguments specified. 69 | boost::shared_ptr viewer; 70 | if (pcl::console::find_argument (argc, argv, "-f") >= 0 ) 71 | viewer = simpleVis(final); 72 | else 73 | viewer = simpleVis(cloud); 74 | while (!viewer->wasStopped ()) 75 | { 76 | viewer->spinOnce (100); 77 | boost::this_thread::sleep (boost::posix_time::microseconds (100000)); 78 | } 79 | return 0; 80 | } 81 | -------------------------------------------------------------------------------- /segmentation/pcl_euclidean_cluster_extraction.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | 14 | int 15 | main (int argc, char** argv) 16 | { 17 | // Read in the cloud data 18 | pcl::PCDReader reader; 19 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud), cloud_f (new pcl::PointCloud); 20 | reader.read ("../data/table_scene_lms400.pcd", *cloud); 21 | std::cout << "PointCloud before filtering has: " << cloud->points.size () << " data points." << std::endl; //* 22 | 23 | // Create the filtering object: downsample the dataset using a leaf size of 1cm 24 | pcl::VoxelGrid vg; 25 | pcl::PointCloud::Ptr cloud_filtered (new pcl::PointCloud); 26 | vg.setInputCloud (cloud); 27 | vg.setLeafSize (0.01f, 0.01f, 0.01f); 28 | vg.filter (*cloud_filtered); 29 | std::cout << "PointCloud after filtering has: " << cloud_filtered->points.size () << " data points." << std::endl; //* 30 | 31 | // Create the segmentation object for the planar model and set all the parameters 32 | pcl::SACSegmentation seg; 33 | pcl::PointIndices::Ptr inliers (new pcl::PointIndices); 34 | pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients); 35 | pcl::PointCloud::Ptr cloud_plane (new pcl::PointCloud ()); 36 | pcl::PCDWriter writer; 37 | seg.setOptimizeCoefficients (true); 38 | seg.setModelType (pcl::SACMODEL_PLANE); 39 | seg.setMethodType (pcl::SAC_RANSAC); 40 | seg.setMaxIterations (100); 41 | seg.setDistanceThreshold (0.02); 42 | 43 | int i=0, nr_points = (int) cloud_filtered->points.size (); 44 | while (cloud_filtered->points.size () > 0.3 * nr_points) 45 | { 46 | // Segment the largest planar component from the remaining cloud 47 | seg.setInputCloud (cloud_filtered); 48 | seg.segment (*inliers, *coefficients); 49 | if (inliers->indices.size () == 0) 50 | { 51 | std::cout << "Could not estimate a planar model for the given dataset." << std::endl; 52 | break; 53 | } 54 | 55 | // Extract the planar inliers from the input cloud 56 | pcl::ExtractIndices extract; 57 | extract.setInputCloud (cloud_filtered); 58 | extract.setIndices (inliers); 59 | extract.setNegative (false); 60 | 61 | // Write the planar inliers to disk 62 | extract.filter (*cloud_plane); 63 | std::cout << "PointCloud representing the planar component: " << cloud_plane->points.size () << " data points." << std::endl; 64 | 65 | // Remove the planar inliers, extract the rest 66 | extract.setNegative (true); 67 | extract.filter (*cloud_f); 68 | *cloud_filtered = *cloud_f; 69 | } 70 | 71 | // Creating the KdTree object for the search method of the extraction 72 | pcl::search::KdTree::Ptr tree (new pcl::search::KdTree); 73 | tree->setInputCloud (cloud_filtered); 74 | 75 | std::vector cluster_indices; 76 | pcl::EuclideanClusterExtraction ec; 77 | ec.setClusterTolerance (0.02); // 2cm 78 | ec.setMinClusterSize (100); 79 | ec.setMaxClusterSize (25000); 80 | ec.setSearchMethod (tree); 81 | ec.setInputCloud (cloud_filtered); 82 | ec.extract (cluster_indices); 83 | 84 | int j = 0; 85 | for (std::vector::const_iterator it = cluster_indices.begin (); it != cluster_indices.end (); ++it) 86 | { 87 | pcl::PointCloud::Ptr cloud_cluster (new pcl::PointCloud); 88 | for (std::vector::const_iterator pit = it->indices.begin (); pit != it->indices.end (); pit++) 89 | cloud_cluster->points.push_back (cloud_filtered->points[*pit]); //* 90 | cloud_cluster->width = cloud_cluster->points.size (); 91 | cloud_cluster->height = 1; 92 | cloud_cluster->is_dense = true; 93 | 94 | std::cout << "PointCloud representing the Cluster: " << cloud_cluster->points.size () << " data points." << std::endl; 95 | std::stringstream ss; 96 | ss << "cloud_cluster_" << j << ".pcd"; 97 | writer.write (ss.str (), *cloud_cluster, false); //* 98 | j++; 99 | } 100 | 101 | return (0); 102 | } 103 | -------------------------------------------------------------------------------- /segmentation/pcl_plane_segmentation.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | int 11 | main (int argc, char** argv) 12 | { 13 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 14 | pcl::PointCloud::Ptr cloud_segmented (new pcl::PointCloud); 15 | pcl::PointCloud::Ptr outliers (new pcl::PointCloud); 16 | pcl::PointCloud::Ptr outliers_segmented (new pcl::PointCloud); 17 | 18 | // Fill in the cloud data 19 | pcl::PCDReader reader; 20 | reader.read ("../data/table_scene_lms400.pcd", *cloud); 21 | 22 | pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients); 23 | pcl::PointIndices::Ptr inliers (new pcl::PointIndices); 24 | // Create the segmentation object 25 | pcl::SACSegmentation seg; 26 | // Optional 27 | seg.setOptimizeCoefficients (true); 28 | // Mandatory 29 | seg.setModelType (pcl::SACMODEL_PLANE); 30 | seg.setMethodType (pcl::SAC_RANSAC); 31 | seg.setDistanceThreshold (0.01); 32 | 33 | // Segment dominant plane 34 | seg.setInputCloud (cloud); 35 | seg.segment (*inliers, *coefficients); 36 | pcl::copyPointCloud(*cloud, *inliers, *cloud_segmented); 37 | 38 | if (inliers->indices.size () == 0) 39 | { 40 | PCL_ERROR ("Could not estimate a planar model for the given dataset."); 41 | return (-1); 42 | } 43 | 44 | PCL_INFO("Saving dominant plane in input cloud to: table_scene_lms400_first_plane.pcd\n"); 45 | pcl::PCDWriter writer; 46 | writer.write ("table_scene_lms400_first_plane.pcd", *cloud_segmented, false); 47 | 48 | // Remove inliers from input and repeat for 2nd dominant plane 49 | pcl::ExtractIndices extract; 50 | extract.setInputCloud (cloud); 51 | extract.setIndices (inliers); 52 | extract.setNegative (true); 53 | extract.filter (*outliers); 54 | 55 | // Run segmentation on outliers 56 | seg.setInputCloud (outliers); 57 | seg.segment (*inliers, *coefficients); 58 | pcl::copyPointCloud(*outliers, *inliers, *outliers_segmented); 59 | 60 | if (inliers->indices.size () == 0) 61 | { 62 | PCL_ERROR ("Could not estimate a planar model for the given dataset."); 63 | return (-1); 64 | } 65 | 66 | PCL_INFO("Saving dominant plane in outliers to: table_scene_lms400_second_plane.pcd\n"); 67 | writer.write ("table_scene_lms400_second_plane.pcd", *outliers_segmented, false); 68 | 69 | return (0); 70 | } 71 | -------------------------------------------------------------------------------- /trees/open3d_kdtree.py: -------------------------------------------------------------------------------- 1 | # Open3D: www.open3d.org 2 | # The MIT License (MIT) 3 | # See license file or visit www.open3d.org for details 4 | 5 | import numpy as np 6 | from open3d import * 7 | 8 | if __name__ == "__main__": 9 | 10 | print("Testing kdtree in open3d ...") 11 | print("Load a point cloud and paint it gray.") 12 | pcd = read_point_cloud("../data/cloud_bin_00.pcd") 13 | pcd.paint_uniform_color([0.5, 0.5, 0.5]) 14 | pcd_tree = KDTreeFlann(pcd) 15 | 16 | print("Paint the 1500th point red.") 17 | pcd.colors[1500] = [1, 0, 0] 18 | 19 | print("Find its 200 nearest neighbors, paint blue.") 20 | [k, idx, _] = pcd_tree.search_knn_vector_3d(pcd.points[1500], 200) 21 | np.asarray(pcd.colors)[idx[1:], :] = [0, 0, 1] 22 | 23 | print("Find its neighbors with distance less than 0.2, paint green.") 24 | [k, idx, _] = pcd_tree.search_radius_vector_3d(pcd.points[1500], 0.2) 25 | np.asarray(pcd.colors)[idx[1:], :] = [0, 1, 0] 26 | 27 | print("Visualize the point cloud.") 28 | draw_geometries([pcd]) 29 | print("") 30 | -------------------------------------------------------------------------------- /trees/pcl_kdtree.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | int 9 | main (int argc, char** argv) 10 | { 11 | srand (time (NULL)); 12 | 13 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 14 | 15 | // Generate pointcloud data 16 | cloud->width = 1000; 17 | cloud->height = 1; 18 | cloud->points.resize (cloud->width * cloud->height); 19 | 20 | for (size_t i = 0; i < cloud->points.size (); ++i) 21 | { 22 | cloud->points[i].x = 1024.0f * rand () / (RAND_MAX + 1.0f); 23 | cloud->points[i].y = 1024.0f * rand () / (RAND_MAX + 1.0f); 24 | cloud->points[i].z = 1024.0f * rand () / (RAND_MAX + 1.0f); 25 | } 26 | 27 | pcl::KdTreeFLANN kdtree; 28 | 29 | kdtree.setInputCloud (cloud); 30 | 31 | pcl::PointXYZ searchPoint; 32 | 33 | searchPoint.x = 1024.0f * rand () / (RAND_MAX + 1.0f); 34 | searchPoint.y = 1024.0f * rand () / (RAND_MAX + 1.0f); 35 | searchPoint.z = 1024.0f * rand () / (RAND_MAX + 1.0f); 36 | 37 | // K nearest neighbor search 38 | 39 | int K = 10; 40 | 41 | std::vector pointIdxNKNSearch(K); 42 | std::vector pointNKNSquaredDistance(K); 43 | 44 | std::cout << "K nearest neighbor search at (" << searchPoint.x 45 | << " " << searchPoint.y 46 | << " " << searchPoint.z 47 | << ") with K=" << K << std::endl; 48 | 49 | if ( kdtree.nearestKSearch (searchPoint, K, pointIdxNKNSearch, pointNKNSquaredDistance) > 0 ) 50 | { 51 | for (size_t i = 0; i < pointIdxNKNSearch.size (); ++i) 52 | std::cout << " " << cloud->points[ pointIdxNKNSearch[i] ].x 53 | << " " << cloud->points[ pointIdxNKNSearch[i] ].y 54 | << " " << cloud->points[ pointIdxNKNSearch[i] ].z 55 | << " (squared distance: " << pointNKNSquaredDistance[i] << ")" << std::endl; 56 | } 57 | 58 | // Neighbors within radius search 59 | 60 | std::vector pointIdxRadiusSearch; 61 | std::vector pointRadiusSquaredDistance; 62 | 63 | float radius = 256.0f * rand () / (RAND_MAX + 1.0f); 64 | 65 | std::cout << "Neighbors within radius search at (" << searchPoint.x 66 | << " " << searchPoint.y 67 | << " " << searchPoint.z 68 | << ") with radius=" << radius << std::endl; 69 | 70 | 71 | if ( kdtree.radiusSearch (searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0 ) 72 | { 73 | for (size_t i = 0; i < pointIdxRadiusSearch.size (); ++i) 74 | std::cout << " " << cloud->points[ pointIdxRadiusSearch[i] ].x 75 | << " " << cloud->points[ pointIdxRadiusSearch[i] ].y 76 | << " " << cloud->points[ pointIdxRadiusSearch[i] ].z 77 | << " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << std::endl; 78 | } 79 | 80 | 81 | return 0; 82 | } 83 | -------------------------------------------------------------------------------- /trees/pcl_octree.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | int 9 | main (int argc, char** argv) 10 | { 11 | srand ((unsigned int) time (NULL)); 12 | 13 | pcl::PointCloud::Ptr cloud (new pcl::PointCloud); 14 | 15 | // Generate pointcloud data 16 | cloud->width = 1000; 17 | cloud->height = 1; 18 | cloud->points.resize (cloud->width * cloud->height); 19 | 20 | for (size_t i = 0; i < cloud->points.size (); ++i) 21 | { 22 | cloud->points[i].x = 1024.0f * rand () / (RAND_MAX + 1.0f); 23 | cloud->points[i].y = 1024.0f * rand () / (RAND_MAX + 1.0f); 24 | cloud->points[i].z = 1024.0f * rand () / (RAND_MAX + 1.0f); 25 | } 26 | 27 | float resolution = 128.0f; 28 | 29 | pcl::octree::OctreePointCloudSearch octree (resolution); 30 | 31 | octree.setInputCloud (cloud); 32 | octree.addPointsFromInputCloud (); 33 | 34 | pcl::PointXYZ searchPoint; 35 | 36 | searchPoint.x = 1024.0f * rand () / (RAND_MAX + 1.0f); 37 | searchPoint.y = 1024.0f * rand () / (RAND_MAX + 1.0f); 38 | searchPoint.z = 1024.0f * rand () / (RAND_MAX + 1.0f); 39 | 40 | // Neighbors within voxel search 41 | 42 | std::vector pointIdxVec; 43 | 44 | if (octree.voxelSearch (searchPoint, pointIdxVec)) 45 | { 46 | std::cout << "Neighbors within voxel search at (" << searchPoint.x 47 | << " " << searchPoint.y 48 | << " " << searchPoint.z << ")" 49 | << std::endl; 50 | 51 | for (size_t i = 0; i < pointIdxVec.size (); ++i) 52 | std::cout << " " << cloud->points[pointIdxVec[i]].x 53 | << " " << cloud->points[pointIdxVec[i]].y 54 | << " " << cloud->points[pointIdxVec[i]].z << std::endl; 55 | } 56 | 57 | // K nearest neighbor search 58 | 59 | int K = 10; 60 | 61 | std::vector pointIdxNKNSearch; 62 | std::vector pointNKNSquaredDistance; 63 | 64 | std::cout << "K nearest neighbor search at (" << searchPoint.x 65 | << " " << searchPoint.y 66 | << " " << searchPoint.z 67 | << ") with K=" << K << std::endl; 68 | 69 | if (octree.nearestKSearch (searchPoint, K, pointIdxNKNSearch, pointNKNSquaredDistance) > 0) 70 | { 71 | for (size_t i = 0; i < pointIdxNKNSearch.size (); ++i) 72 | std::cout << " " << cloud->points[ pointIdxNKNSearch[i] ].x 73 | << " " << cloud->points[ pointIdxNKNSearch[i] ].y 74 | << " " << cloud->points[ pointIdxNKNSearch[i] ].z 75 | << " (squared distance: " << pointNKNSquaredDistance[i] << ")" << std::endl; 76 | } 77 | 78 | // Neighbors within radius search 79 | 80 | std::vector pointIdxRadiusSearch; 81 | std::vector pointRadiusSquaredDistance; 82 | 83 | float radius = 256.0f * rand () / (RAND_MAX + 1.0f); 84 | 85 | std::cout << "Neighbors within radius search at (" << searchPoint.x 86 | << " " << searchPoint.y 87 | << " " << searchPoint.z 88 | << ") with radius=" << radius << std::endl; 89 | 90 | 91 | if (octree.radiusSearch (searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0) 92 | { 93 | for (size_t i = 0; i < pointIdxRadiusSearch.size (); ++i) 94 | std::cout << " " << cloud->points[ pointIdxRadiusSearch[i] ].x 95 | << " " << cloud->points[ pointIdxRadiusSearch[i] ].y 96 | << " " << cloud->points[ pointIdxRadiusSearch[i] ].z 97 | << " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << std::endl; 98 | } 99 | 100 | return(0); 101 | } 102 | --------------------------------------------------------------------------------