From 08e2a25200564fdc9ef89ac31d98754301c399d0 Mon Sep 17 00:00:00 2001 From: LihanChen2004 <757003373@qq.com> Date: Sun, 22 Sep 2024 21:23:09 +0800 Subject: [PATCH] Remove `visualization_tools` and `vehicle_simulator` --- .gitignore | 12 - cmu_nav_bringup/launch/bringup_sim.launch.py | 11 - pb_cmu_navigation/package.xml | 1 - vehicle_simulator/CMakeLists.txt | 73 - .../launch/system_campus.launch.py | 140 - .../launch/system_forest.launch.py | 140 - .../launch/system_garage.launch.py | 202 - .../launch/system_indoor.launch.py | 140 - .../launch/system_real_robot.launch.py | 102 - .../launch/system_tunnel.launch.py | 140 - .../launch/vehicle_simulator.launch.py | 201 - vehicle_simulator/log/readme.txt | 5 - .../mesh/download_environments.sh | 25 - vehicle_simulator/package.xml | 30 - vehicle_simulator/rviz/vehicle_simulator.rviz | 502 - vehicle_simulator/src/transform_pcd_node.cpp | 63 - vehicle_simulator/src/vehicleSimulator.cpp | 479 - vehicle_simulator/urdf/camera.urdf.xacro | 57 - vehicle_simulator/urdf/lidar.urdf.xacro | 11 - vehicle_simulator/urdf/robot.sdf | 115 - vehicle_simulator/world/campus.world | 100 - vehicle_simulator/world/forest.world | 29657 ---------------- vehicle_simulator/world/garage.world | 39 - vehicle_simulator/world/indoor.world | 39 - vehicle_simulator/world/tunnel.world | 39 - visualization_tools/CMakeLists.txt | 58 - .../launch/visualization_tools.launch | 20 - visualization_tools/package.xml | 30 - visualization_tools/scripts/realTimePlot.py | 156 - .../src/visualizationTools.cpp | 318 - .../visualization_tools/__init__.py | 0 31 files changed, 32905 deletions(-) delete mode 100644 vehicle_simulator/CMakeLists.txt delete mode 100644 vehicle_simulator/launch/system_campus.launch.py delete mode 100644 vehicle_simulator/launch/system_forest.launch.py delete mode 100644 vehicle_simulator/launch/system_garage.launch.py delete mode 100644 vehicle_simulator/launch/system_indoor.launch.py delete mode 100644 vehicle_simulator/launch/system_real_robot.launch.py delete mode 100644 vehicle_simulator/launch/system_tunnel.launch.py delete mode 100644 vehicle_simulator/launch/vehicle_simulator.launch.py delete mode 100644 vehicle_simulator/log/readme.txt delete mode 100755 vehicle_simulator/mesh/download_environments.sh delete mode 100644 vehicle_simulator/package.xml delete mode 100644 vehicle_simulator/rviz/vehicle_simulator.rviz delete mode 100644 vehicle_simulator/src/transform_pcd_node.cpp delete mode 100644 vehicle_simulator/src/vehicleSimulator.cpp delete mode 100644 vehicle_simulator/urdf/camera.urdf.xacro delete mode 100644 vehicle_simulator/urdf/lidar.urdf.xacro delete mode 100644 vehicle_simulator/urdf/robot.sdf delete mode 100755 vehicle_simulator/world/campus.world delete mode 100644 vehicle_simulator/world/forest.world delete mode 100644 vehicle_simulator/world/garage.world delete mode 100644 vehicle_simulator/world/indoor.world delete mode 100644 vehicle_simulator/world/tunnel.world delete mode 100644 visualization_tools/CMakeLists.txt delete mode 100755 visualization_tools/launch/visualization_tools.launch delete mode 100755 visualization_tools/package.xml delete mode 100755 visualization_tools/scripts/realTimePlot.py delete mode 100644 visualization_tools/src/visualizationTools.cpp delete mode 100644 visualization_tools/visualization_tools/__init__.py diff --git a/.gitignore b/.gitignore index 05bc098..578cc57 100644 --- a/.gitignore +++ b/.gitignore @@ -18,18 +18,6 @@ __pycache__ .DS_Store -vehicle_simulator/mesh/* - -!vehicle_simulator/mesh/matterport - -vehicle_simulator/mesh/matterport/meshes/* - -vehicle_simulator/mesh/matterport/segmentations/* - -vehicle_simulator/mesh/matterport/preview/* - -vehicle_simulator/log/* - !download_environments.sh !readme.txt diff --git a/cmu_nav_bringup/launch/bringup_sim.launch.py b/cmu_nav_bringup/launch/bringup_sim.launch.py index 5a9b436..e7b7270 100644 --- a/cmu_nav_bringup/launch/bringup_sim.launch.py +++ b/cmu_nav_bringup/launch/bringup_sim.launch.py @@ -162,16 +162,6 @@ def generate_launch_description(): }.items(), ) - start_visualization_tools = IncludeLaunchDescription( - PythonLaunchDescriptionSource( - os.path.join(get_package_share_directory("visualization_tools"), "launch", "visualization_tools.launch") - ), - launch_arguments={ - "namespace": namespace, - "world_name": world_name, - }.items(), - ) - start_joy = Node( package="joy", executable="joy_node", @@ -216,7 +206,6 @@ def generate_launch_description(): ld.add_action(TimerAction(period=5.0, actions=[start_far_planner])) ld.add_action(TimerAction(period=5.0, actions=[start_map_trans_publisher])) - # ld.add_action(start_visualization_tools) ld.add_action(start_joy) ld.add_action(start_rviz) diff --git a/pb_cmu_navigation/package.xml b/pb_cmu_navigation/package.xml index c123326..43a888a 100644 --- a/pb_cmu_navigation/package.xml +++ b/pb_cmu_navigation/package.xml @@ -15,7 +15,6 @@ terrain_analysis_ext local_planner teleop_rviz_plugin - visualization_tools waypoint_example waypoint_rviz_plugin diff --git a/vehicle_simulator/CMakeLists.txt b/vehicle_simulator/CMakeLists.txt deleted file mode 100644 index 34e922a..0000000 --- a/vehicle_simulator/CMakeLists.txt +++ /dev/null @@ -1,73 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(vehicle_simulator) - -# Default to C99 -if(NOT CMAKE_C_STANDARD) - set(CMAKE_C_STANDARD 99) -endif() - -# Default to C++14 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 14) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) -endif() - -include_directories( - ${catkin_INCLUDE_DIRS} - ${OpenCV_INCLUDE_DIRS} - ${PCL_INCLUDE_DIRS} - "${PROJECT_SOURCE_DIR}/include" - /usr/local/include - /usr/include -) - -find_package(ament_cmake REQUIRED) -find_package(rclcpp REQUIRED) -find_package(std_msgs REQUIRED) -find_package(nav_msgs REQUIRED) -find_package(geometry_msgs REQUIRED) -find_package(sensor_msgs REQUIRED) -find_package(tf2_ros REQUIRED) -find_package(tf2_geometry_msgs REQUIRED) -find_package(tf2 REQUIRED) -find_package(gazebo_msgs REQUIRED) -find_package(gazebo_ros REQUIRED) -find_package(message_filters REQUIRED) -find_package(OpenCV REQUIRED) -find_package(PCL REQUIRED) -find_package(pcl_conversions REQUIRED) -find_package(pcl_ros REQUIRED) - -add_executable(vehicleSimulator src/vehicleSimulator.cpp) -ament_target_dependencies(vehicleSimulator rclcpp std_msgs sensor_msgs nav_msgs geometry_msgs tf2 tf2_ros tf2_geometry_msgs message_filters pcl_ros pcl_conversions gazebo_ros gazebo_msgs) -target_link_libraries(vehicleSimulator ${OpenCV_LIBRARIES} ${PCL_LIBRARIES}) - -add_executable(transform_pcd_node src/transform_pcd_node.cpp) -ament_target_dependencies(transform_pcd_node rclcpp std_msgs sensor_msgs nav_msgs pcl_ros pcl_conversions) -target_link_libraries(transform_pcd_node ${PCL_LIBRARIES}) - -install(TARGETS - vehicleSimulator - transform_pcd_node - DESTINATION lib/${PROJECT_NAME}) - -install( - DIRECTORY - launch - log - mesh - rviz - urdf - world - DESTINATION share/${PROJECT_NAME} -) - -if(BUILD_TESTING) - find_package(ament_lint_auto REQUIRED) - ament_lint_auto_find_test_dependencies() -endif() - -ament_package() diff --git a/vehicle_simulator/launch/system_campus.launch.py b/vehicle_simulator/launch/system_campus.launch.py deleted file mode 100644 index 149b621..0000000 --- a/vehicle_simulator/launch/system_campus.launch.py +++ /dev/null @@ -1,140 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource, FrontendLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration - -def generate_launch_description(): - world_name = LaunchConfiguration('world_name') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - gazebo_gui = LaunchConfiguration('gazebo_gui') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_world_name = DeclareLaunchArgument('world_name', default_value='campus', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_gazebo_gui = DeclareLaunchArgument('gazebo_gui', default_value='false', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='false', description='') - - start_local_planner = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ) - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_vehicle_simulator = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('vehicle_simulator'), 'launch', 'vehicle_simulator.launch.py') - ), - launch_arguments={ - 'world_name': world_name, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'gui': gazebo_gui, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ) - ) - - start_visualization_tools = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('visualization_tools'), 'launch', 'visualization_tools.launch') - ), - launch_arguments={ - 'world_name': world_name, - }.items() - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - start_rviz = Node( - package='rviz2', - executable='rviz2', - arguments=['-d', rviz_config_file], - output='screen' - ) - - delayed_start_rviz = TimerAction( - period=8.0, - actions=[ - start_rviz - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_world_name) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_gazebo_gui) - ld.add_action(declare_checkTerrainConn) - - ld.add_action(start_local_planner) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_vehicle_simulator) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_visualization_tools) - ld.add_action(start_joy) - ld.add_action(delayed_start_rviz) - - return ld diff --git a/vehicle_simulator/launch/system_forest.launch.py b/vehicle_simulator/launch/system_forest.launch.py deleted file mode 100644 index 47ac2ad..0000000 --- a/vehicle_simulator/launch/system_forest.launch.py +++ /dev/null @@ -1,140 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource, FrontendLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration - -def generate_launch_description(): - world_name = LaunchConfiguration('world_name') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - gazebo_gui = LaunchConfiguration('gazebo_gui') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_world_name = DeclareLaunchArgument('world_name', default_value='forest', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_gazebo_gui = DeclareLaunchArgument('gazebo_gui', default_value='false', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='true', description='') - - start_local_planner = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ) - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_vehicle_simulator = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('vehicle_simulator'), 'launch', 'vehicle_simulator.launch.py') - ), - launch_arguments={ - 'world_name': world_name, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'gui': gazebo_gui, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ) - ) - - start_visualization_tools = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('visualization_tools'), 'launch', 'visualization_tools.launch') - ), - launch_arguments={ - 'world_name': world_name, - }.items() - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - start_rviz = Node( - package='rviz2', - executable='rviz2', - arguments=['-d', rviz_config_file], - output='screen' - ) - - delayed_start_rviz = TimerAction( - period=8.0, - actions=[ - start_rviz - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_world_name) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_gazebo_gui) - ld.add_action(declare_checkTerrainConn) - - ld.add_action(start_local_planner) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_vehicle_simulator) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_visualization_tools) - ld.add_action(start_joy) - ld.add_action(delayed_start_rviz) - - return ld diff --git a/vehicle_simulator/launch/system_garage.launch.py b/vehicle_simulator/launch/system_garage.launch.py deleted file mode 100644 index 8d5f171..0000000 --- a/vehicle_simulator/launch/system_garage.launch.py +++ /dev/null @@ -1,202 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription -from launch.launch_description_sources import PythonLaunchDescriptionSource, PythonLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration -from nav2_common.launch import ReplaceString - -def generate_launch_description(): - namespace = LaunchConfiguration('namespace') - world_name = LaunchConfiguration('world_name') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - gazebo_gui = LaunchConfiguration('gazebo_gui') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_namespace = DeclareLaunchArgument('namespace', default_value='red_standard_robot1', description='') - declare_world_name = DeclareLaunchArgument('world_name', default_value='garage', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_gazebo_gui = DeclareLaunchArgument('gazebo_gui', default_value='false', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='true', description='') - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - - # Map fully qualified names to relative ones so the node's namespace can be prepended. - # In case of the transforms (tf), currently, there doesn't seem to be a better alternative - # https://github.com/ros/geometry2/issues/32 - # https://github.com/ros/robot_state_publisher/pull/30 - # TODO(orduno) Substitute with `PushNodeRemapping` - # https://github.com/ros2/launch_ros/issues/56 - remappings = [("/tf", "tf"), ("/tf_static", "tf_static")] - - namespaced_rviz_config_file = ReplaceString( - source_file=rviz_config_file, - replacements={"": ("/", namespace)}, - ) - - start_sim_pcd_transform = Node( - package='vehicle_simulator', - executable='transform_pcd_node', - name='sim_transform_pcd', - namespace=namespace, - remappings=remappings, - output='screen', - ) - - start_loam_interface = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('loam_interface'), 'launch', 'loam_interface.launch.py') - ) - ) - - start_local_planner = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'namespace': namespace, - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ), - launch_arguments={ - 'namespace': namespace, - }.items() - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'namespace': namespace, - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_vehicle_simulator = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('vehicle_simulator'), 'launch', 'vehicle_simulator.launch.py') - ), - launch_arguments={ - 'world_name': world_name, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'gui': gazebo_gui, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ), - launch_arguments={ - 'namespace': namespace, - }.items() - ) - - # In the future, the transform will be provided by relocalization module - start_map_trans_publisher = Node( - package='tf2_ros', - executable='static_transform_publisher', - name='sensorTransPublisher', - namespace=namespace, - remappings=remappings, - arguments=[ - '--x', '0.0', - '--y', '0.0', - '--z', '0', - '--roll', '0', - '--pitch', '0.0', - '--yaw', '0', - '--frame-id', 'map', - '--child-frame-id', 'odom' - ], - ) - - start_visualization_tools = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('visualization_tools'), 'launch', 'visualization_tools.launch') - ), - launch_arguments={ - 'namespace': namespace, - 'world_name': world_name, - }.items() - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - namespace=namespace, - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - start_rviz = Node( - namespace=namespace, - package='rviz2', - executable='rviz2', - arguments=['-d', namespaced_rviz_config_file], - remappings=remappings, - output='screen' - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_namespace) - ld.add_action(declare_world_name) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_gazebo_gui) - ld.add_action(declare_checkTerrainConn) - - # ld.add_action(start_sim_pcd_transform) - ld.add_action(start_loam_interface) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_local_planner) - ld.add_action(start_map_trans_publisher) - - # ld.add_action(start_vehicle_simulator) - # ld.add_action(start_visualization_tools) - ld.add_action(start_joy) - - ld.add_action(start_rviz) - - return ld diff --git a/vehicle_simulator/launch/system_indoor.launch.py b/vehicle_simulator/launch/system_indoor.launch.py deleted file mode 100644 index 4fcbe9a..0000000 --- a/vehicle_simulator/launch/system_indoor.launch.py +++ /dev/null @@ -1,140 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource, FrontendLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration - -def generate_launch_description(): - world_name = LaunchConfiguration('world_name') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - gazebo_gui = LaunchConfiguration('gazebo_gui') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_world_name = DeclareLaunchArgument('world_name', default_value='indoor', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_gazebo_gui = DeclareLaunchArgument('gazebo_gui', default_value='false', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='false', description='') - - start_local_planner = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ) - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_vehicle_simulator = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('vehicle_simulator'), 'launch', 'vehicle_simulator.launch.py') - ), - launch_arguments={ - 'world_name': world_name, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'gui': gazebo_gui, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ) - ) - - start_visualization_tools = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('visualization_tools'), 'launch', 'visualization_tools.launch') - ), - launch_arguments={ - 'world_name': world_name, - }.items() - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - start_rviz = Node( - package='rviz2', - executable='rviz2', - arguments=['-d', rviz_config_file], - output='screen' - ) - - delayed_start_rviz = TimerAction( - period=8.0, - actions=[ - start_rviz - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_world_name) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_gazebo_gui) - ld.add_action(declare_checkTerrainConn) - - ld.add_action(start_local_planner) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_vehicle_simulator) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_visualization_tools) - ld.add_action(start_joy) - ld.add_action(delayed_start_rviz) - - return ld diff --git a/vehicle_simulator/launch/system_real_robot.launch.py b/vehicle_simulator/launch/system_real_robot.launch.py deleted file mode 100644 index 22e98ae..0000000 --- a/vehicle_simulator/launch/system_real_robot.launch.py +++ /dev/null @@ -1,102 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource, FrontendLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration - -def generate_launch_description(): - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='true', description='') - - start_local_planner = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ) - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ) - ) - - start_loam_interface = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('loam_interface'), 'launch', 'loam_interface.launch.py') - ) - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - start_rviz = Node( - package='rviz2', - executable='rviz2', - arguments=['-d', rviz_config_file], - output='screen' - ) - - delayed_start_rviz = TimerAction( - period=8.0, - actions=[ - start_rviz - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_checkTerrainConn) - - ld.add_action(start_local_planner) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_loam_interface) - ld.add_action(start_joy) - ld.add_action(delayed_start_rviz) - - return ld diff --git a/vehicle_simulator/launch/system_tunnel.launch.py b/vehicle_simulator/launch/system_tunnel.launch.py deleted file mode 100644 index aa6763c..0000000 --- a/vehicle_simulator/launch/system_tunnel.launch.py +++ /dev/null @@ -1,140 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource, FrontendLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import LaunchConfiguration - -def generate_launch_description(): - world_name = LaunchConfiguration('world_name') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - gazebo_gui = LaunchConfiguration('gazebo_gui') - checkTerrainConn = LaunchConfiguration('checkTerrainConn') - - declare_world_name = DeclareLaunchArgument('world_name', default_value='tunnel', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_gazebo_gui = DeclareLaunchArgument('gazebo_gui', default_value='false', description='') - declare_checkTerrainConn = DeclareLaunchArgument('checkTerrainConn', default_value='false', description='') - - start_local_planner = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('local_planner'), 'launch', 'local_planner.launch.py') - ), - launch_arguments={ - 'cameraOffsetZ': cameraOffsetZ, - 'goalX': vehicleX, - 'goalY': vehicleY, - }.items() - ) - - start_terrain_analysis = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis'), 'launch', 'terrain_analysis.launch.py') - ) - ) - - start_terrain_analysis_ext = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('terrain_analysis_ext'), 'launch', 'terrain_analysis_ext.launch.py') - ), - launch_arguments={ - 'checkTerrainConn': checkTerrainConn, - }.items() - ) - - start_vehicle_simulator = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('vehicle_simulator'), 'launch', 'vehicle_simulator.launch.py') - ), - launch_arguments={ - 'world_name': world_name, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'gui': gazebo_gui, - }.items() - ) - - start_sensor_scan_generation = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('sensor_scan_generation'), 'launch', 'sensor_scan_generation.launch.py') - ) - ) - - start_visualization_tools = IncludeLaunchDescription( - FrontendLaunchDescriptionSource(os.path.join( - get_package_share_directory('visualization_tools'), 'launch', 'visualization_tools.launch') - ), - launch_arguments={ - 'world_name': world_name, - }.items() - ) - - start_joy = Node( - package='joy', - executable='joy_node', - name='ps3_joy', - output='screen', - parameters=[{ - 'dev': "/dev/input/js0", - 'deadzone': 0.12, - 'autorepeat_rate': 0.0, - }] - ) - - rviz_config_file = os.path.join(get_package_share_directory('vehicle_simulator'), 'rviz', 'vehicle_simulator.rviz') - start_rviz = Node( - package='rviz2', - executable='rviz2', - arguments=['-d', rviz_config_file], - output='screen' - ) - - delayed_start_rviz = TimerAction( - period=8.0, - actions=[ - start_rviz - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_world_name) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_gazebo_gui) - ld.add_action(declare_checkTerrainConn) - - ld.add_action(start_local_planner) - ld.add_action(start_terrain_analysis) - ld.add_action(start_terrain_analysis_ext) - ld.add_action(start_vehicle_simulator) - ld.add_action(start_sensor_scan_generation) - ld.add_action(start_visualization_tools) - ld.add_action(start_joy) - ld.add_action(delayed_start_rviz) - - return ld diff --git a/vehicle_simulator/launch/vehicle_simulator.launch.py b/vehicle_simulator/launch/vehicle_simulator.launch.py deleted file mode 100644 index 3095e19..0000000 --- a/vehicle_simulator/launch/vehicle_simulator.launch.py +++ /dev/null @@ -1,201 +0,0 @@ -import os - -from ament_index_python.packages import get_package_share_directory -from launch import LaunchDescription -from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, OpaqueFunction, TimerAction -from launch.launch_description_sources import PythonLaunchDescriptionSource -from launch_ros.actions import Node -from launch.substitutions import Command, LaunchConfiguration - -def declare_world_action(context, world_name): - world_name_str = str(world_name.perform(context)) - declare_world = DeclareLaunchArgument('world', default_value=[os.path.join(get_package_share_directory('vehicle_simulator'), 'world', world_name_str + '.world')], description='') - return [declare_world] - -def generate_launch_description(): - sensorOffsetX = LaunchConfiguration('sensorOffsetX') - sensorOffsetY = LaunchConfiguration('sensorOffsetY') - vehicleHeight = LaunchConfiguration('vehicleHeight') - cameraOffsetZ = LaunchConfiguration('cameraOffsetZ') - vehicleX = LaunchConfiguration('vehicleX') - vehicleY = LaunchConfiguration('vehicleY') - vehicleZ = LaunchConfiguration('vehicleZ') - terrainZ = LaunchConfiguration('terrainZ') - vehicleYaw = LaunchConfiguration('vehicleYaw') - terrainVoxelSize = LaunchConfiguration('terrainVoxelSize') - groundHeightThre = LaunchConfiguration('groundHeightThre') - adjustZ = LaunchConfiguration('adjustZ') - terrainRadiusZ = LaunchConfiguration('terrainRadiusZ') - minTerrainPointNumZ = LaunchConfiguration('minTerrainPointNumZ') - smoothRateZ = LaunchConfiguration('smoothRateZ') - adjustIncl = LaunchConfiguration('adjustIncl') - terrainRadiusIncl = LaunchConfiguration('terrainRadiusIncl') - minTerrainPointNumIncl = LaunchConfiguration('minTerrainPointNumIncl') - smoothRateIncl = LaunchConfiguration('smoothRateIncl') - InclFittingThre = LaunchConfiguration('InclFittingThre') - maxIncl = LaunchConfiguration('maxIncl') - pause = LaunchConfiguration('pause') - use_sim_time = LaunchConfiguration('use_sim_time') - gui = LaunchConfiguration('gui') - record = LaunchConfiguration('record') - verbose = LaunchConfiguration('verbose') - world_name = LaunchConfiguration('world_name') - - declare_sensorOffsetX = DeclareLaunchArgument('sensorOffsetX', default_value='0.0', description='') - declare_sensorOffsetY = DeclareLaunchArgument('sensorOffsetY', default_value='0.0', description='') - declare_vehicleHeight = DeclareLaunchArgument('vehicleHeight', default_value='0.75', description='') - declare_cameraOffsetZ = DeclareLaunchArgument('cameraOffsetZ', default_value='0.0', description='') - declare_vehicleX = DeclareLaunchArgument('vehicleX', default_value='0.0', description='') - declare_vehicleY = DeclareLaunchArgument('vehicleY', default_value='0.0', description='') - declare_vehicleZ = DeclareLaunchArgument('vehicleZ', default_value='0.0', description='') - declare_terrainZ = DeclareLaunchArgument('terrainZ', default_value='0.0', description='') - declare_vehicleYaw = DeclareLaunchArgument('vehicleYaw', default_value='0.0', description='') - declare_terrainVoxelSize = DeclareLaunchArgument('terrainVoxelSize', default_value='0.05', description='') - declare_groundHeightThre = DeclareLaunchArgument('groundHeightThre', default_value='0.1', description='') - declare_adjustZ = DeclareLaunchArgument('adjustZ', default_value='true', description='') - declare_terrainRadiusZ = DeclareLaunchArgument('terrainRadiusZ', default_value='1.0', description='') - declare_minTerrainPointNumZ = DeclareLaunchArgument('minTerrainPointNumZ', default_value='5', description='') - declare_smoothRateZ = DeclareLaunchArgument('smoothRateZ', default_value='0.5', description='') - declare_adjustIncl = DeclareLaunchArgument('adjustIncl', default_value='true', description='') - declare_terrainRadiusIncl = DeclareLaunchArgument('terrainRadiusIncl', default_value='2.0', description='') - declare_minTerrainPointNumIncl = DeclareLaunchArgument('minTerrainPointNumIncl', default_value='200', description='') - declare_smoothRateIncl = DeclareLaunchArgument('smoothRateIncl', default_value='0.5', description='') - declare_InclFittingThre = DeclareLaunchArgument('InclFittingThre', default_value='0.2', description='') - declare_maxIncl = DeclareLaunchArgument('maxIncl', default_value='30.0', description='') - declare_pause = DeclareLaunchArgument('pause', default_value='false', description='') - declare_use_sim_time = DeclareLaunchArgument('use_sim_time', default_value='false', description='') - declare_gui = DeclareLaunchArgument('gui', default_value='false', description='') - declare_record = DeclareLaunchArgument('record', default_value='false', description='') - declare_verbose = DeclareLaunchArgument('verbose', default_value='false', description='') - declare_world_name = DeclareLaunchArgument('world_name', default_value='garage', description='') - - lidar_xacro = os.path.join(get_package_share_directory('vehicle_simulator'), 'urdf', 'lidar.urdf.xacro') - lidar_description = Command(['xacro',' ', lidar_xacro]) - start_lidar_state_publisher = Node( - package='robot_state_publisher', - executable='robot_state_publisher', - name='robot_state_publisher', - output='screen', - parameters=[{ - 'use_sim_time': use_sim_time, - 'robot_description': lidar_description - }] - ) - - spawn_lidar = Node( - package='gazebo_ros', - executable='spawn_entity.py', - arguments=[ - '-entity', 'lidar', - '-topic', 'robot_description', - ], - output='screen', - ) - - robot_xacro = os.path.join(get_package_share_directory('vehicle_simulator'), 'urdf', 'robot.sdf') - spawn_robot = Node( - package='gazebo_ros', - executable='spawn_entity.py', - arguments=[ - '-file', robot_xacro, - '-entity', 'robot' - ], - output='screen', - ) - - camera_xacro = os.path.join(get_package_share_directory('vehicle_simulator'), 'urdf', 'camera.urdf.xacro') - spawn_camera = Node( - package='gazebo_ros', - executable='spawn_entity.py', - arguments=[ - '-file', camera_xacro, - '-entity', 'camera' - ], - output='screen' - ) - - start_gazebo = IncludeLaunchDescription( - PythonLaunchDescriptionSource(os.path.join( - get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')) - ) - - start_vehicle_simulator = Node( - package='vehicle_simulator', - executable='vehicleSimulator', - parameters=[ - { - 'use_gazebo_time': False, - 'sensorOffsetX': sensorOffsetX, - 'sensorOffsetY': sensorOffsetY, - 'vehicleHeight': vehicleHeight, - 'cameraOffsetZ': cameraOffsetZ, - 'vehicleX': vehicleX, - 'vehicleY': vehicleY, - 'vehicleZ': vehicleZ, - 'terrainZ': terrainZ, - 'vehicleYaw': vehicleYaw, - 'terrainVoxelSize': terrainVoxelSize, - 'groundHeightThre': groundHeightThre, - 'adjustZ': adjustZ, - 'terrainRadiusZ': terrainRadiusZ, - 'minTerrainPointNumZ': minTerrainPointNumZ, - 'smoothRateZ': smoothRateZ, - 'adjustIncl': adjustIncl, - 'terrainRadiusIncl': terrainRadiusIncl, - 'minTerrainPointNumIncl': minTerrainPointNumIncl, - 'smoothRateIncl': smoothRateIncl, - 'InclFittingThre': InclFittingThre, - 'maxIncl': maxIncl, - 'use_sim_time': use_sim_time - } - ], - output='screen' - ) - - delayed_start_vehicle_simulator = TimerAction( - period=5.0, - actions=[ - start_vehicle_simulator - ] - ) - - ld = LaunchDescription() - - # Add the actions - ld.add_action(declare_sensorOffsetX) - ld.add_action(declare_sensorOffsetY) - ld.add_action(declare_vehicleHeight) - ld.add_action(declare_cameraOffsetZ) - ld.add_action(declare_vehicleX) - ld.add_action(declare_vehicleY) - ld.add_action(declare_vehicleZ) - ld.add_action(declare_terrainZ) - ld.add_action(declare_vehicleYaw) - ld.add_action(declare_terrainVoxelSize) - ld.add_action(declare_groundHeightThre) - ld.add_action(declare_adjustZ) - ld.add_action(declare_terrainRadiusZ) - ld.add_action(declare_minTerrainPointNumZ) - ld.add_action(declare_smoothRateZ) - ld.add_action(declare_adjustIncl) - ld.add_action(declare_terrainRadiusIncl) - ld.add_action(declare_minTerrainPointNumIncl) - ld.add_action(declare_smoothRateIncl) - ld.add_action(declare_InclFittingThre) - ld.add_action(declare_maxIncl) - ld.add_action(declare_pause) - ld.add_action(declare_use_sim_time) - ld.add_action(declare_gui) - ld.add_action(declare_record) - ld.add_action(declare_verbose) - ld.add_action(declare_world_name) - ld.add_action(OpaqueFunction(function=declare_world_action, args=[world_name])) - - ld.add_action(start_gazebo) - ld.add_action(start_lidar_state_publisher) - ld.add_action(spawn_lidar) - ld.add_action(spawn_robot) - ld.add_action(spawn_camera) - ld.add_action(delayed_start_vehicle_simulator) - - return ld diff --git a/vehicle_simulator/log/readme.txt b/vehicle_simulator/log/readme.txt deleted file mode 100644 index 8bf70aa..0000000 --- a/vehicle_simulator/log/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -Exploration metrics and vehicle trajectory are saved in this folder. - -'metric_xxx.txt' contains four columns, respectively explored volume (m^3), traveling distance (m), algorithm runtime (second), and time duration from start of the run (second). Note that the runtime is recorded by receiving numbers as 'std_msgs::Float32' typed messages on ROS topic '/runtime'. - -'trajectory_xxx.txt' contains seven columns, respectively x (m), y (m), z (m), roll (rad), pitch (rad), yaw (rad), and time duration from start of the run (second). diff --git a/vehicle_simulator/mesh/download_environments.sh b/vehicle_simulator/mesh/download_environments.sh deleted file mode 100755 index a709726..0000000 --- a/vehicle_simulator/mesh/download_environments.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" - -echo "" -echo "Downloading simulation environments..." -echo "" - -ggID='1GMT8tptb3nAb87F8eFfmIgjma6Bu0reV' -ggURL='https://drive.usercontent.google.com/download' - -filename="$(curl -sc /tmp/gcokie "${ggURL}?id=${ggID}" | grep -o '="uc-name.*' | sed 's/.*">//;s/<.a> .*//')" -curl -Lb /tmp/gcokie "${ggURL}?id=${ggID}&confirm=xxx" -o ${filename} - -echo "" -echo "Unzipping files..." -echo "" - -unzip "${filename}" - -rm "${filename}" - -echo "" -echo "Done, simulation environments are kept in 'src/vehicle_simulator/mesh'." -echo "" diff --git a/vehicle_simulator/package.xml b/vehicle_simulator/package.xml deleted file mode 100644 index f6ed85e..0000000 --- a/vehicle_simulator/package.xml +++ /dev/null @@ -1,30 +0,0 @@ - - vehicle_simulator - 0.0.1 - Vehicle Simulator - Ji Zhang - BSD - - ament_cmake - - rclcpp - std_msgs - nav_msgs - sensor_msgs - pcl_ros - tf2 - tf2_ros - tf2_geometry_msgs - message_filters - pcl_conversions - gazebo_ros - gazebo_msgs - - ament_lint_auto - ament_lint_common - - - ament_cmake - - - diff --git a/vehicle_simulator/rviz/vehicle_simulator.rviz b/vehicle_simulator/rviz/vehicle_simulator.rviz deleted file mode 100644 index ef3bec5..0000000 --- a/vehicle_simulator/rviz/vehicle_simulator.rviz +++ /dev/null @@ -1,502 +0,0 @@ -Panels: - - Class: rviz_common/Displays - Help Height: 0 - Name: Displays - Property Tree Widget: - Expanded: - - /Global Options1 - Splitter Ratio: 0.5 - Tree Height: 808 - - Class: rviz_common/Selection - Name: Selection - - Class: rviz_common/Tool Properties - Expanded: - - /Waypoint1 - Name: Tool Properties - Splitter Ratio: 0.5886790156364441 - - Class: rviz_common/Views - Expanded: - - /Current View1 - Name: Views - Splitter Ratio: 0.5 - - Class: rviz_common/Time - Experimental: false - Name: Time - SyncMode: 0 - SyncSource: TerrainMap - - Class: teleop_rviz_plugin/TeleopPanel - Name: TeleopPanel -Visualization Manager: - Class: "" - Displays: - - Class: rviz_default_plugins/Axes - Enabled: true - Length: 1.5 - Name: GimbalYaw - Radius: 0.2 - Reference Frame: gimbal_yaw - Value: true - - Alpha: 1 - Class: rviz_default_plugins/RobotModel - Collision Enabled: false - Description File: "" - Description Source: Topic - Description Topic: - Depth: 5 - Durability Policy: Volatile - History Policy: Keep Last - Reliability Policy: Reliable - Value: /robot_description - Enabled: true - Links: - All Links Enabled: true - Expand Joint Details: false - Expand Link Details: false - Expand Tree: false - Link Tree Style: Links in Alphabetic Order - Mass Properties: - Inertia: false - Mass: false - Name: RobotModel - TF Prefix: "" - Update Interval: 0 - Value: true - Visual Enabled: true - - Class: rviz_default_plugins/TF - Enabled: true - Frame Timeout: 15 - Frames: - All Enabled: true - Marker Scale: 0.5 - Name: TF - Show Arrows: true - Show Axes: true - Show Names: false - Tree: - Update Interval: 0 - Value: true - - Alpha: 0.10000000149011612 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 0.9582680463790894 - Min Value: -0.043718695640563965 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: FlatColor - Decay Time: 10 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 0 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: RegScan - Position Transformer: XYZ - Selectable: true - Size (Pixels): 1 - Size (m): 0.05000000074505806 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /registered_scan - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 0.20000000298023224 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 0.9582680463790894 - Min Value: -0.043718695640563965 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: FlatColor - Decay Time: 10 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 0 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: SensorScan - Position Transformer: XYZ - Selectable: true - Size (Pixels): 2 - Size (m): 0.10000000149011612 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /sensor_scan - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: false - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: Intensity - Decay Time: 0 - Enabled: true - Invert Rainbow: true - Max Color: 255; 255; 255 - Max Intensity: 0.10000000149011612 - Min Color: 0; 0; 0 - Min Intensity: -0.10000000149011612 - Name: TerrainMap - Position Transformer: XYZ - Selectable: true - Size (Pixels): 4 - Size (m): 0.03999999910593033 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /terrain_map - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 1 - Autocompute Intensity Bounds: false - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: Intensity - Decay Time: 0 - Enabled: false - Invert Rainbow: true - Max Color: 255; 255; 255 - Max Intensity: 0.20000000298023224 - Min Color: 0; 0; 0 - Min Intensity: -0.20000000298023224 - Name: TerrainMapExt - Position Transformer: XYZ - Selectable: true - Size (Pixels): 4 - Size (m): 0.03999999910593033 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /terrain_map_ext - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Buffer Length: 1 - Class: rviz_default_plugins/Path - Color: 25; 255; 0 - Enabled: true - Head Diameter: 0.30000001192092896 - Head Length: 0.20000000298023224 - Length: 0.30000001192092896 - Line Style: Billboards - Line Width: 0.05000000074505806 - Name: Path - Offset: - X: 0 - Y: 0 - Z: 0 - Pose Color: 255; 85; 255 - Pose Style: None - Radius: 0.03 - Shaft Diameter: 0.10000000149011612 - Shaft Length: 0.10000000149011612 - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /path - Value: true - - Alpha: 1 - Autocompute Intensity Bounds: false - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 0; 170; 255 - Color Transformer: Intensity - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 6 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: FreePaths - Position Transformer: XYZ - Selectable: true - Size (Pixels): 2 - Size (m): 0.019999999552965164 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /free_paths - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 1 - Class: rviz_default_plugins/PointStamped - Color: 204; 41; 204 - Enabled: true - History Length: 1 - Name: Waypoint - Radius: 0.3 - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /way_point - Value: true - - Alpha: 1 - Class: rviz_default_plugins/Polygon - Color: 0; 255; 0 - Enabled: true - Name: Boundary - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /navigation_boundary - Value: true - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 25; 0 - Color Transformer: "" - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 4096 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: AddedObstacles - Position Transformer: "" - Selectable: true - Size (Pixels): 3 - Size (m): 0.05000000074505806 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /added_obstacles - Use Fixed Frame: true - Use rainbow: true - Value: true - - Alpha: 0.10000000149011612 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 0 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: OverallMap - Position Transformer: XYZ - Selectable: true - Size (Pixels): 2 - Size (m): 0.009999999776482582 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /overall_map - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 0.20000000298023224 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 0; 170; 255 - Color Transformer: FlatColor - Decay Time: 0 - Enabled: false - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 0 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: ExploredAreas - Position Transformer: XYZ - Selectable: true - Size (Pixels): 3 - Size (m): 0.009999999776482582 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /explored_areas - Use Fixed Frame: true - Use rainbow: true - Value: false - - Alpha: 1 - Autocompute Intensity Bounds: true - Autocompute Value Bounds: - Max Value: 10 - Min Value: -10 - Value: true - Axis: Z - Channel Name: intensity - Class: rviz_default_plugins/PointCloud2 - Color: 255; 255; 255 - Color Transformer: Intensity - Decay Time: 0 - Enabled: true - Invert Rainbow: false - Max Color: 255; 255; 255 - Max Intensity: 1.9702274799346924 - Min Color: 0; 0; 0 - Min Intensity: 0 - Name: Trajectory - Position Transformer: XYZ - Selectable: true - Size (Pixels): 7 - Size (m): 0.009999999776482582 - Style: Points - Topic: - Depth: 5 - Durability Policy: Volatile - Filter size: 10 - History Policy: Keep Last - Reliability Policy: Reliable - Value: /trajectory - Use Fixed Frame: true - Use rainbow: true - Value: true - Enabled: true - Global Options: - Background Color: 0; 0; 0 - Fixed Frame: odom - Frame Rate: 15 - Name: root - Tools: - - Class: rviz_default_plugins/MoveCamera - - Class: rviz_default_plugins/FocusCamera - - Class: waypoint_rviz_plugin/WaypointTool - Topic: - Depth: 5 - Durability Policy: Volatile - History Policy: Keep Last - Reliability Policy: Reliable - Value: /waypoint - Transformation: - Current: - Class: rviz_default_plugins/TF - Value: true - Views: - Current: - Class: rviz_default_plugins/Orbit - Distance: 16.485105514526367 - Enable Stereo Rendering: - Stereo Eye Separation: 0.05999999865889549 - Stereo Focal Distance: 1 - Swap Stereo Eyes: false - Value: false - Focal Point: - X: 3.1890013217926025 - Y: 0.6079180836677551 - Z: -0.004307345487177372 - Focal Shape Fixed Size: false - Focal Shape Size: 0.05000000074505806 - Invert Z Axis: false - Name: Current View - Near Clip Distance: 0.009999999776482582 - Pitch: 1.5697963237762451 - Target Frame: vehicle - Value: Orbit (rviz) - Yaw: 3.135115623474121 - Saved: ~ -Window Geometry: - Displays: - collapsed: false - Height: 1376 - Hide Left Dock: false - Hide Right Dock: false - QMainWindow State: 000000ff00000000fd00000004000000000000015f00000506fc020000000cfb0000001200530065006c0065006300740069006f006e000000003d000001b80000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000365000000c900fffffffb0000000a0049006d00610067006502000005ea0000026d0000019a000000fefb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000001400430061006d0065007200610049006e006900740100000474000000160000000000000000fb0000000a0049006d00610067006503000004000000035600000199000000fdfb0000001600540065006c0065006f007000500061006e0065006c01000003a80000019b0000004700ffffff000000010000010f000003a7fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000003a7000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073d0000003efc0100000002fb0000000800540069006d006500000000000000073d000002fb00fffffffb0000000800540069006d00650100000000000004500000000000000000000003780000050600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 - Selection: - collapsed: false - TeleopPanel: - collapsed: false - Time: - collapsed: false - Tool Properties: - collapsed: false - Views: - collapsed: false - Width: 1245 - X: 70 - Y: 27 \ No newline at end of file diff --git a/vehicle_simulator/src/transform_pcd_node.cpp b/vehicle_simulator/src/transform_pcd_node.cpp deleted file mode 100644 index cadea19..0000000 --- a/vehicle_simulator/src/transform_pcd_node.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include -#include - -#include -#include -#include -#include -#include - -class PointCloudTransformer : public rclcpp::Node -{ -public: - PointCloudTransformer() : Node("point_cloud_transformer") - { - odom_sub_ = this->create_subscription( - "odometry", 10, std::bind(&PointCloudTransformer::odomCallback, this, std::placeholders::_1)); - pointcloud_sub_ = this->create_subscription( - "livox/lidar", 10, - std::bind(&PointCloudTransformer::pointcloudCallback, this, std::placeholders::_1)); - pointcloud_pub_ = this->create_publisher("registered_scan", 10); - } - -private: - void odomCallback(const nav_msgs::msg::Odometry::SharedPtr msg) { latest_odom_ = *msg; } - - void pointcloudCallback(const sensor_msgs::msg::PointCloud2::SharedPtr msg) - { - pcl::PointCloud pcl_cloud; - pcl::fromROSMsg(*msg, pcl_cloud); - - Eigen::Affine3d transform = Eigen::Affine3d::Identity(); - transform.translation() << latest_odom_.pose.pose.position.x, latest_odom_.pose.pose.position.y, - latest_odom_.pose.pose.position.z; - Eigen::Quaterniond q( - latest_odom_.pose.pose.orientation.w, latest_odom_.pose.pose.orientation.x, - latest_odom_.pose.pose.orientation.y, latest_odom_.pose.pose.orientation.z); - transform.rotate(q); - - pcl::PointCloud transformed_cloud; - pcl::transformPointCloud(pcl_cloud, transformed_cloud, transform); - - sensor_msgs::msg::PointCloud2 output; - pcl::toROSMsg(transformed_cloud, output); - output.header.stamp = msg->header.stamp; - output.header.frame_id = "odom"; - - pointcloud_pub_->publish(output); - } - - rclcpp::Subscription::SharedPtr odom_sub_; - rclcpp::Subscription::SharedPtr pointcloud_sub_; - rclcpp::Publisher::SharedPtr pointcloud_pub_; - nav_msgs::msg::Odometry latest_odom_; -}; - -int main(int argc, char * argv[]) -{ - rclcpp::init(argc, argv); - rclcpp::spin(std::make_shared()); - rclcpp::shutdown(); - return 0; -} \ No newline at end of file diff --git a/vehicle_simulator/src/vehicleSimulator.cpp b/vehicle_simulator/src/vehicleSimulator.cpp deleted file mode 100644 index 48be4cc..0000000 --- a/vehicle_simulator/src/vehicleSimulator.cpp +++ /dev/null @@ -1,479 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "rclcpp/rclcpp.hpp" -#include "rclcpp/time.hpp" -#include "rclcpp/clock.hpp" -#include "builtin_interfaces/msg/time.hpp" - -#include "nav_msgs/msg/odometry.hpp" -#include "sensor_msgs/msg/point_cloud2.hpp" -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "tf2/transform_datatypes.h" -#include "tf2_ros/transform_broadcaster.h" -#include "tf2_geometry_msgs/tf2_geometry_msgs.hpp" - -#include -#include - -#include -#include -#include -#include -#include - -#include "message_filters/subscriber.h" -#include "message_filters/synchronizer.h" -#include "message_filters/sync_policies/approximate_time.h" -#include "rmw/types.h" -#include "rmw/qos_profiles.h" - -using namespace std; - -const double PI = 3.1415926; - -bool use_gazebo_time = false; -double cameraOffsetZ = 0; -double sensorOffsetX = 0; -double sensorOffsetY = 0; -double vehicleHeight = 0.75; -double terrainVoxelSize = 0.05; -double groundHeightThre = 0.1; -bool adjustZ = false; -double terrainRadiusZ = 0.5; -int minTerrainPointNumZ = 10; -double smoothRateZ = 0.2; -bool adjustIncl = false; -double terrainRadiusIncl = 1.5; -int minTerrainPointNumIncl = 500; -double smoothRateIncl = 0.2; -double InclFittingThre = 0.2; -double maxIncl = 30.0; - -const int systemDelay = 5; -int systemInitCount = 0; -bool systemInited = false; - -pcl::PointCloud::Ptr scanData(new pcl::PointCloud()); -pcl::PointCloud::Ptr terrainCloud(new pcl::PointCloud()); -pcl::PointCloud::Ptr terrainCloudIncl(new pcl::PointCloud()); -pcl::PointCloud::Ptr terrainCloudDwz(new pcl::PointCloud()); - -std::vector scanInd; - -rclcpp::Time odomTime; - -float vehicleX = 0; -float vehicleY = 0; -float vehicleZ = 0; -float vehicleRoll = 0; -float vehiclePitch = 0; -float vehicleYaw = 0; - -float vehicleYawRate = 0; -float vehicleSpeed = 0; - -float terrainZ = 0; -float terrainRoll = 0; -float terrainPitch = 0; - -const int stackNum = 400; -float vehicleXStack[stackNum]; -float vehicleYStack[stackNum]; -float vehicleZStack[stackNum]; -float vehicleRollStack[stackNum]; -float vehiclePitchStack[stackNum]; -float vehicleYawStack[stackNum]; -float terrainRollStack[stackNum]; -float terrainPitchStack[stackNum]; -double odomTimeStack[stackNum]; -int odomSendIDPointer = -1; -int odomRecIDPointer = 0; - -pcl::VoxelGrid terrainDwzFilter; - -rclcpp::Publisher::SharedPtr pubScanPointer; - -void scanHandler(const sensor_msgs::msg::PointCloud2::ConstSharedPtr scanIn) -{ - if (!systemInited) { - systemInitCount++; - if (systemInitCount > systemDelay) { - systemInited = true; - } - return; - } - - double scanTime = rclcpp::Time(scanIn->header.stamp).seconds(); - if (odomSendIDPointer < 0) - { - return; - } - while (odomTimeStack[(odomRecIDPointer + 1) % stackNum] < scanTime && - odomRecIDPointer != (odomSendIDPointer + 1) % stackNum) - { - odomRecIDPointer = (odomRecIDPointer + 1) % stackNum; - } - - double odomRecTime = odomTime.seconds(); - float vehicleRecX = vehicleX; - float vehicleRecY = vehicleY; - float vehicleRecZ = vehicleZ; - float terrainRecRoll = terrainRoll; - float terrainRecPitch = terrainPitch; - - if (use_gazebo_time) - { - odomRecTime = odomTimeStack[odomRecIDPointer]; - vehicleRecX = vehicleXStack[odomRecIDPointer]; - vehicleRecY = vehicleYStack[odomRecIDPointer]; - vehicleRecZ = vehicleZStack[odomRecIDPointer]; - terrainRecRoll = terrainRollStack[odomRecIDPointer]; - terrainRecPitch = terrainPitchStack[odomRecIDPointer]; - } - - float sinTerrainRecRoll = sin(terrainRecRoll); - float cosTerrainRecRoll = cos(terrainRecRoll); - float sinTerrainRecPitch = sin(terrainRecPitch); - float cosTerrainRecPitch = cos(terrainRecPitch); - - scanData->clear(); - pcl::fromROSMsg(*scanIn, *scanData); - pcl::removeNaNFromPointCloud(*scanData, *scanData, scanInd); - - int scanDataSize = scanData->points.size(); - for (int i = 0; i < scanDataSize; i++) - { - float pointX1 = scanData->points[i].x; - float pointY1 = scanData->points[i].y * cosTerrainRecRoll - scanData->points[i].z * sinTerrainRecRoll; - float pointZ1 = scanData->points[i].y * sinTerrainRecRoll + scanData->points[i].z * cosTerrainRecRoll; - - float pointX2 = pointX1 * cosTerrainRecPitch + pointZ1 * sinTerrainRecPitch; - float pointY2 = pointY1; - float pointZ2 = -pointX1 * sinTerrainRecPitch + pointZ1 * cosTerrainRecPitch; - - float pointX3 = pointX2 + vehicleRecX; - float pointY3 = pointY2 + vehicleRecY; - float pointZ3 = pointZ2 + vehicleRecZ; - - scanData->points[i].x = pointX3; - scanData->points[i].y = pointY3; - scanData->points[i].z = pointZ3; - } - - // publish 5Hz registered scan messages - sensor_msgs::msg::PointCloud2 scanData2; - pcl::toROSMsg(*scanData, scanData2); - scanData2.header.stamp = rclcpp::Time(static_cast(odomRecTime * 1e9)); - scanData2.header.frame_id = "odom"; - pubScanPointer->publish(scanData2); -} - -void terrainCloudHandler(const sensor_msgs::msg::PointCloud2::ConstSharedPtr terrainCloud2) -{ - if (!adjustZ && !adjustIncl) - { - return; - } - - terrainCloud->clear(); - pcl::fromROSMsg(*terrainCloud2, *terrainCloud); - - pcl::PointXYZI point; - terrainCloudIncl->clear(); - int terrainCloudSize = terrainCloud->points.size(); - double elevMean = 0; - int elevCount = 0; - bool terrainValid = true; - for (int i = 0; i < terrainCloudSize; i++) - { - point = terrainCloud->points[i]; - - float dis = sqrt((point.x - vehicleX) * (point.x - vehicleX) + (point.y - vehicleY) * (point.y - vehicleY)); - - if (dis < terrainRadiusZ) - { - if (point.intensity < groundHeightThre) - { - elevMean += point.z; - elevCount++; - } - else - { - terrainValid = false; - } - } - - if (dis < terrainRadiusIncl && point.intensity < groundHeightThre) - { - terrainCloudIncl->push_back(point); - } - } - - if (elevCount >= minTerrainPointNumZ) - elevMean /= elevCount; - else - terrainValid = false; - - if (terrainValid && adjustZ) - { - terrainZ = (1.0 - smoothRateZ) * terrainZ + smoothRateZ * elevMean; - } - - terrainCloudDwz->clear(); - terrainDwzFilter.setInputCloud(terrainCloudIncl); - terrainDwzFilter.filter(*terrainCloudDwz); - int terrainCloudDwzSize = terrainCloudDwz->points.size(); - - if (terrainCloudDwzSize < minTerrainPointNumIncl || !terrainValid) - { - return; - } - - cv::Mat matA(terrainCloudDwzSize, 2, CV_32F, cv::Scalar::all(0)); - cv::Mat matAt(2, terrainCloudDwzSize, CV_32F, cv::Scalar::all(0)); - cv::Mat matAtA(2, 2, CV_32F, cv::Scalar::all(0)); - cv::Mat matB(terrainCloudDwzSize, 1, CV_32F, cv::Scalar::all(0)); - cv::Mat matAtB(2, 1, CV_32F, cv::Scalar::all(0)); - cv::Mat matX(2, 1, CV_32F, cv::Scalar::all(0)); - - int inlierNum = 0; - matX.at(0, 0) = terrainPitch; - matX.at(1, 0) = terrainRoll; - for (int iterCount = 0; iterCount < 5; iterCount++) - { - int outlierCount = 0; - for (int i = 0; i < terrainCloudDwzSize; i++) - { - point = terrainCloudDwz->points[i]; - - matA.at(i, 0) = -point.x + vehicleX; - matA.at(i, 1) = point.y - vehicleY; - matB.at(i, 0) = point.z - elevMean; - - if (fabs(matA.at(i, 0) * matX.at(0, 0) + matA.at(i, 1) * matX.at(1, 0) - - matB.at(i, 0)) > InclFittingThre && - iterCount > 0) - { - matA.at(i, 0) = 0; - matA.at(i, 1) = 0; - matB.at(i, 0) = 0; - outlierCount++; - } - } - - cv::transpose(matA, matAt); - matAtA = matAt * matA; - matAtB = matAt * matB; - cv::solve(matAtA, matAtB, matX, cv::DECOMP_QR); - - if (inlierNum == terrainCloudDwzSize - outlierCount) - break; - inlierNum = terrainCloudDwzSize - outlierCount; - } - - if (inlierNum < minTerrainPointNumIncl || fabs(matX.at(0, 0)) > maxIncl * PI / 180.0 || - fabs(matX.at(1, 0)) > maxIncl * PI / 180.0) - { - terrainValid = false; - } - - if (terrainValid && adjustIncl) - { - terrainPitch = (1.0 - smoothRateIncl) * terrainPitch + smoothRateIncl * matX.at(0, 0); - terrainRoll = (1.0 - smoothRateIncl) * terrainRoll + smoothRateIncl * matX.at(1, 0); - } -} - -void speedHandler(const geometry_msgs::msg::Twist::ConstSharedPtr speedIn) -{ - vehicleSpeed = speedIn->linear.x; - vehicleYawRate = speedIn->angular.z; -} - -int main(int argc, char** argv) -{ - rclcpp::init(argc, argv); - auto nh = rclcpp::Node::make_shared("vehicleSimulator"); - - nh->declare_parameter("use_gazebo_time", use_gazebo_time); - nh->declare_parameter("cameraOffsetZ", cameraOffsetZ); - nh->declare_parameter("sensorOffsetX", sensorOffsetX); - nh->declare_parameter("sensorOffsetY", sensorOffsetY); - nh->declare_parameter("vehicleHeight", vehicleHeight); - nh->declare_parameter("vehicleX", vehicleX); - nh->declare_parameter("vehicleY", vehicleY); - nh->declare_parameter("vehicleZ", vehicleZ); - nh->declare_parameter("terrainZ", terrainZ); - nh->declare_parameter("vehicleYaw", vehicleYaw); - nh->declare_parameter("terrainVoxelSize", terrainVoxelSize); - nh->declare_parameter("groundHeightThre", groundHeightThre); - nh->declare_parameter("adjustZ", adjustZ); - nh->declare_parameter("terrainRadiusZ", terrainRadiusZ); - nh->declare_parameter("minTerrainPointNumZ", minTerrainPointNumZ); - nh->declare_parameter("adjustIncl", adjustIncl); - nh->declare_parameter("terrainRadiusIncl", terrainRadiusIncl); - nh->declare_parameter("minTerrainPointNumIncl", minTerrainPointNumIncl); - nh->declare_parameter("InclFittingThre", InclFittingThre); - nh->declare_parameter("maxIncl", maxIncl); - - nh->get_parameter("use_gazebo_time", use_gazebo_time); - nh->get_parameter("cameraOffsetZ", cameraOffsetZ); - nh->get_parameter("sensorOffsetX", sensorOffsetX); - nh->get_parameter("sensorOffsetY", sensorOffsetY); - nh->get_parameter("vehicleHeight", vehicleHeight); - nh->get_parameter("vehicleX", vehicleX); - nh->get_parameter("vehicleY", vehicleY); - nh->get_parameter("vehicleZ", vehicleZ); - nh->get_parameter("terrainZ", terrainZ); - nh->get_parameter("vehicleYaw", vehicleYaw); - nh->get_parameter("terrainVoxelSize", terrainVoxelSize); - nh->get_parameter("groundHeightThre", groundHeightThre); - nh->get_parameter("adjustZ", adjustZ); - nh->get_parameter("terrainRadiusZ", terrainRadiusZ); - nh->get_parameter("minTerrainPointNumZ", minTerrainPointNumZ); - nh->get_parameter("adjustIncl", adjustIncl); - nh->get_parameter("terrainRadiusIncl", terrainRadiusIncl); - nh->get_parameter("minTerrainPointNumIncl", minTerrainPointNumIncl); - nh->get_parameter("InclFittingThre", InclFittingThre); - nh->get_parameter("maxIncl", maxIncl); - - auto subScan = nh->create_subscription("velodyne_points", 2, scanHandler); - - auto subTerrainCloud = nh->create_subscription("terrain_map", 2, terrainCloudHandler); - - auto subSpeed = nh->create_subscription("cmd_vel", 5, speedHandler); - - auto pubVehicleOdom = nh->create_publisher("odometry", 5); - nav_msgs::msg::Odometry odomData; - odomData.header.frame_id = "odom"; - odomData.child_frame_id = "right_mid360"; - - auto tfBroadcaster = std::make_unique(*nh); - tf2::Stamped odomTrans; - geometry_msgs::msg::TransformStamped transformTfGeom ; - odomTrans.frame_id_ = "odom"; - - gazebo_msgs::msg::EntityState cameraState; - cameraState.name = "camera"; - gazebo_msgs::msg::EntityState lidarState; - lidarState.name = "lidar"; - gazebo_msgs::msg::EntityState robotState; - robotState.name = "robot"; - - rclcpp::Client::SharedPtr client = nh->create_client("/set_entity_state"); - auto request = std::make_shared(); - - pubScanPointer = nh->create_publisher("registered_scan", 2); - - terrainDwzFilter.setLeafSize(terrainVoxelSize, terrainVoxelSize, terrainVoxelSize); - - RCLCPP_INFO(nh->get_logger(), "Simulation started."); - - rclcpp::Rate rate(200); - bool status = rclcpp::ok(); - while (status) - { - rclcpp::spin_some(nh); - float vehicleRecRoll = vehicleRoll; - float vehicleRecPitch = vehiclePitch; - float vehicleRecZ = vehicleZ; - - vehicleRoll = terrainRoll * cos(vehicleYaw) + terrainPitch * sin(vehicleYaw); - vehiclePitch = -terrainRoll * sin(vehicleYaw) + terrainPitch * cos(vehicleYaw); - vehicleYaw += 0.005 * vehicleYawRate; - if (vehicleYaw > PI) - vehicleYaw -= 2 * PI; - else if (vehicleYaw < -PI) - vehicleYaw += 2 * PI; - - vehicleX += 0.005 * cos(vehicleYaw) * vehicleSpeed + - 0.005 * vehicleYawRate * (-sin(vehicleYaw) * sensorOffsetX - cos(vehicleYaw) * sensorOffsetY); - vehicleY += 0.005 * sin(vehicleYaw) * vehicleSpeed + - 0.005 * vehicleYawRate * (cos(vehicleYaw) * sensorOffsetX - sin(vehicleYaw) * sensorOffsetY); - vehicleZ = terrainZ + vehicleHeight; - - odomTime = nh->now(); - - odomSendIDPointer = (odomSendIDPointer + 1) % stackNum; - odomTimeStack[odomSendIDPointer] = odomTime.seconds(); - vehicleXStack[odomSendIDPointer] = vehicleX; - vehicleYStack[odomSendIDPointer] = vehicleY; - vehicleZStack[odomSendIDPointer] = vehicleZ; - vehicleRollStack[odomSendIDPointer] = vehicleRoll; - vehiclePitchStack[odomSendIDPointer] = vehiclePitch; - vehicleYawStack[odomSendIDPointer] = vehicleYaw; - terrainRollStack[odomSendIDPointer] = terrainRoll; - terrainPitchStack[odomSendIDPointer] = terrainPitch; - - // publish 200Hz odometry messages - tf2::Quaternion quat_tf; - quat_tf.setRPY(vehicleRoll, vehiclePitch, vehicleYaw); - geometry_msgs::msg::Quaternion geoQuat; - tf2::convert(quat_tf, geoQuat); - - odomData.header.stamp = odomTime; - odomData.pose.pose.orientation = geoQuat; - odomData.pose.pose.position.x = vehicleX; - odomData.pose.pose.position.y = vehicleY; - odomData.pose.pose.position.z = vehicleZ; - odomData.twist.twist.angular.x = 200.0 * (vehicleRoll - vehicleRecRoll); - odomData.twist.twist.angular.y = 200.0 * (vehiclePitch - vehicleRecPitch); - odomData.twist.twist.angular.z = vehicleYawRate; - odomData.twist.twist.linear.x = vehicleSpeed; - odomData.twist.twist.linear.z = 200.0 * (vehicleZ - vehicleRecZ); - pubVehicleOdom->publish(odomData); - - // publish 200Hz tf messages - odomTrans.setRotation(tf2::Quaternion(geoQuat.x, geoQuat.y, geoQuat.z, geoQuat.w)); - odomTrans.setOrigin(tf2::Vector3(vehicleX, vehicleY, vehicleZ)); - transformTfGeom = tf2::toMsg(odomTrans); - transformTfGeom.child_frame_id = "right_mid360"; - transformTfGeom.header.stamp = odomTime; - tfBroadcaster->sendTransform(transformTfGeom); - - // publish 200Hz Gazebo model state messages (this is for Gazebo simulation) - cameraState.pose.orientation = geoQuat; - cameraState.pose.position.x = vehicleX; - cameraState.pose.position.y = vehicleY; - cameraState.pose.position.z = vehicleZ + cameraOffsetZ; - request->state = cameraState; - auto response = client->async_send_request(request); - - robotState.pose.orientation = geoQuat; - robotState.pose.position.x = vehicleX; - robotState.pose.position.y = vehicleY; - robotState.pose.position.z = vehicleZ; - request->state = robotState; - response = client->async_send_request(request); - - quat_tf.setRPY(terrainRoll, terrainPitch, 0); - tf2::convert(quat_tf, geoQuat); - lidarState.pose.orientation = geoQuat; - lidarState.pose.position.x = vehicleX; - lidarState.pose.position.y = vehicleY; - lidarState.pose.position.z = vehicleZ; - request->state = lidarState; - response = client->async_send_request(request); - - status = rclcpp::ok(); - rate.sleep(); - } - - return 0; -} diff --git a/vehicle_simulator/urdf/camera.urdf.xacro b/vehicle_simulator/urdf/camera.urdf.xacro deleted file mode 100644 index c122f45..0000000 --- a/vehicle_simulator/urdf/camera.urdf.xacro +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 15.0 - - 2.0 - - 320 - 180 - R8G8B8 - - - 0.1 - 200.0 - - - - true - 0.0 - camera - image - camera_info - camera - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - - - - - diff --git a/vehicle_simulator/urdf/lidar.urdf.xacro b/vehicle_simulator/urdf/lidar.urdf.xacro deleted file mode 100644 index fa30bf0..0000000 --- a/vehicle_simulator/urdf/lidar.urdf.xacro +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vehicle_simulator/urdf/robot.sdf b/vehicle_simulator/urdf/robot.sdf deleted file mode 100644 index d6f9ff2..0000000 --- a/vehicle_simulator/urdf/robot.sdf +++ /dev/null @@ -1,115 +0,0 @@ - - - - - 0 0 0 0 0 0 - 1.0 - - 0.1 - 0 - 0 - 0.1 - 0 - 0.1 - - - - 0 0 0 0 0 0 - - - 0.01 0.01 0.01 - - - - - 0 0 -0.5 0 0 0 - - - 0.6 0.4 0.3 - - - - - - - - 0.2 -0.25 -0.6 1.57 0 0 - - - 0.1 - 0.15 - - - - - - - - -0.2 -0.25 -0.6 1.57 0 0 - - - 0.1 - 0.15 - - - - - - - - -0.2 0.25 -0.6 -1.57 0 0 - - - 0.1 - 0.15 - - - - - - - - 0.2 0.25 -0.6 -1.57 0 0 - - - 0.1 - 0.15 - - - - - - - - 0 0 -0.175 0 0 0 - - - 0.35 - 0.03 - - - - - - - - - diff --git a/vehicle_simulator/world/campus.world b/vehicle_simulator/world/campus.world deleted file mode 100755 index ac78a8e..0000000 --- a/vehicle_simulator/world/campus.world +++ /dev/null @@ -1,100 +0,0 @@ - - - - 1 - 0 0 300 0 0 0 - 1 1 1 1 - 0 0 0 1 - - 1000 - 1 - 0 - 0 - - 0 1 -1 - - - 0.001 - 1 - 1000 - - - 0.8 0.8 0.8 1 - 0.3 0.3 0.3 1 - 0 - - - - - EARTH_WGS84 - 0 - 0 - 0 - 0 - - - 4176 536000000 - 49 494850140 - 1541177620 221891024 - 48963 - - 0 0 0 0 0 0 - 1 1 1 - - 0 0 0 0 0 0 - 0 0 0 0 0 0 - 0 0 0 0 0 0 - 0 0 0 0 0 0 - - - - 0 0 300 0 0 0 - - - - - 0 0 150 0 1.5708 0 - orbit - perspective - - - 0 0 0 - 0 0 0 - - - 1 - - - - - model://campus/meshes/campus.dae - - - 10 - - - - - - - - - - - - - - - - - model://campus/meshes/campus.dae - - - - 0 - 0 - - 0 0 1 0 0 0 - - - diff --git a/vehicle_simulator/world/forest.world b/vehicle_simulator/world/forest.world deleted file mode 100644 index e5a83ae..0000000 --- a/vehicle_simulator/world/forest.world +++ /dev/null @@ -1,29657 +0,0 @@ - - - - 1 - 0 0 10 0 -0 0 - 0.8 0.8 0.8 1 - 0.2 0.2 0.2 1 - - 1000 - 0.9 - 0.01 - 0.001 - - -0.5 0.1 -0.9 - - 0 0 0 - 6e-06 2.3e-05 -4.2e-05 - - - 0.001 - 1 - 1000 - - - 0.4 0.4 0.4 1 - 0.7 0.7 0.7 1 - 1 - - - - - - EARTH_WGS84 - 0 - 0 - 0 - 0 - - - 1 - - - - - 0 0 1 - 150 150 - - - - - - 0.5 - 0.5 - - - - - - - - - - - 10 - - - 0 0 0 0 -0 0 - 0 - - - 0 0 1 - 150 150 - - - - - - - 0 - 0 - 0 - - 6.27224 -2.36963 0 0 -0 0 - - - 2972 803000000 - 1867 360116064 - 1605983815 288989504 - 1464130 - - 60.0955 -7.80987 0 0 0 -1.55974 - 1 1 1 - - 60.0955 -7.80987 0 0 0 -1.55974 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -26.9528 33.384 0 0 -0 1.59585 - 1 1 1 - - -26.9528 33.384 0 0 -0 1.59585 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 1.0908 -35.9795 0 0 0 -3.12948 - 1 1 1 - - 1.0908 -35.9795 0 0 -0 -3.12948 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2487 8.94341 0 0 0 -1.56932 - 1 1 1 - - 81.2487 8.94341 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.3001 -66.0858 0 0 0 -1.56932 - 1 1 1 - - 81.3001 -66.0858 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2442 -73.5802 0 0 0 -1.5802 - 1 1 1 - - 81.2442 -73.5802 1.4 0 0 -1.5802 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.241 23.9604 0 0 0 -1.56932 - 1 1 1 - - 81.241 23.9604 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.233 31.4667 0 0 0 -1.56932 - 1 1 1 - - 81.233 31.4667 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2299 38.978 0 0 0 -1.56932 - 1 1 1 - - 81.2299 38.978 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2399 46.4861 0 0 0 -1.56932 - 1 1 1 - - 81.2399 46.4861 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2341 53.9889 0 0 0 -1.56932 - 1 1 1 - - 81.2341 53.9889 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2319 61.4946 0 0 0 -1.56932 - 1 1 1 - - 81.2319 61.4946 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2148 68.9647 0 0 0 -1.56932 - 1 1 1 - - 81.2148 68.9647 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2538 1.43804 0 0 0 -1.56932 - 1 1 1 - - 81.2538 1.43804 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.262 -6.06923 0 0 0 -1.56932 - 1 1 1 - - 81.262 -6.06923 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2554 -13.5842 0 0 0 -1.56932 - 1 1 1 - - 81.2554 -13.5842 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2736 -21.0806 0 0 0 -1.56932 - 1 1 1 - - 81.2736 -21.0806 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7572 68.7982 0 0 0 -1.56932 - 1 1 1 - - -68.7572 68.7982 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7575 61.2964 0 0 0 -1.56932 - 1 1 1 - - -68.7575 61.2964 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7526 53.7973 0 0 0 -1.56932 - 1 1 1 - - -68.7526 53.7973 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6471 -13.729 0 0 0 -1.56932 - 1 1 1 - - -68.6471 -13.729 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6449 -21.2378 0 0 0 -1.56932 - 1 1 1 - - -68.6449 -21.2378 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6227 -28.7312 0 0 0 -1.56932 - 1 1 1 - - -68.6227 -28.7312 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.621 -36.2363 0 0 0 -1.56932 - 1 1 1 - - -68.621 -36.2363 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.5988 -43.7335 0 0 0 -1.56932 - 1 1 1 - - -68.5988 -43.7335 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.5877 -51.2413 0 0 0 -1.56932 - 1 1 1 - - -68.5877 -51.2413 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.5839 -58.7528 0 0 0 -1.56932 - 1 1 1 - - -68.5839 -58.7528 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.5608 -66.2516 0 0 0 -1.56932 - 1 1 1 - - -68.5608 -66.2516 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.5453 -73.5293 0 0 0 -1.56932 - 1 1 1 - - -68.5453 -73.5293 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7342 46.3034 0 0 0 -1.56932 - 1 1 1 - - -68.7342 46.3034 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7287 38.8101 0 0 0 -1.56932 - 1 1 1 - - -68.7287 38.8101 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7201 31.3023 0 0 0 -1.56932 - 1 1 1 - - -68.7201 31.3023 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.7145 23.7907 0 0 0 -1.56932 - 1 1 1 - - -68.7145 23.7907 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6998 16.2892 0 0 0 -1.56932 - 1 1 1 - - -68.6998 16.2892 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6952 8.77311 0 0 0 -1.56932 - 1 1 1 - - -68.6952 8.77311 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6796 1.26105 0 0 0 -1.56932 - 1 1 1 - - -68.6796 1.26105 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -68.6605 -6.23997 0 0 0 -1.56932 - 1 1 1 - - -68.6605 -6.23997 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2728 -28.5811 0 0 0 -1.56932 - 1 1 1 - - 81.2728 -28.5811 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2767 -36.0958 0 0 0 -1.56932 - 1 1 1 - - 81.2767 -36.0958 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2788 -43.6064 0 0 0 -1.56932 - 1 1 1 - - 81.2788 -43.6064 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2777 -51.1177 0 0 0 -1.56932 - 1 1 1 - - 81.2777 -51.1177 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.2777 -58.6142 0 0 0 -1.56932 - 1 1 1 - - 81.2777 -58.6142 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 81.244 16.4592 0 0 0 -1.56932 - 1 1 1 - - 81.244 16.4592 1.4 0 0 -1.56932 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.3508 72.6116 0 0 -0 0 - 1 1 1 - - 77.3508 72.6116 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.8438 72.6289 0 0 -0 0 - 1 1 1 - - 69.8438 72.6289 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 2.37975 72.635 0 0 -0 0 - 1 1 1 - - 2.37975 72.635 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.09788 72.6331 0 0 -0 0 - 1 1 1 - - -5.09788 72.6331 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -12.6061 72.6425 0 0 -0 0 - 1 1 1 - - -12.6061 72.6425 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -20.1193 72.6527 0 0 -0 0 - 1 1 1 - - -20.1193 72.6527 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -27.6199 72.6558 0 0 -0 0 - 1 1 1 - - -27.6199 72.6558 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -35.1125 72.6503 0 0 -0 0 - 1 1 1 - - -35.1125 72.6503 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -42.606 72.6465 0 0 -0 0 - 1 1 1 - - -42.606 72.6465 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -50.1127 72.6522 0 0 -0 0 - 1 1 1 - - -50.1127 72.6522 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -57.6217 72.6499 0 0 -0 0 - 1 1 1 - - -57.6217 72.6499 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -65.1107 72.6364 0 0 -0 0 - 1 1 1 - - -65.1107 72.6364 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 62.3519 72.6417 0 0 -0 0 - 1 1 1 - - 62.3519 72.6417 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.875 72.6299 0 0 -0 0 - 1 1 1 - - 54.875 72.6299 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47.3663 72.6324 0 0 -0 0 - 1 1 1 - - 47.3663 72.6324 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 39.8774 72.6251 0 0 -0 0 - 1 1 1 - - 39.8774 72.6251 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.3692 72.6193 0 0 -0 0 - 1 1 1 - - 32.3692 72.6193 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 24.8712 72.6187 0 0 -0 0 - 1 1 1 - - 24.8712 72.6187 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 17.3775 72.6269 0 0 -0 0 - 1 1 1 - - 17.3775 72.6269 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.8792 72.6386 0 0 -0 0 - 1 1 1 - - 9.8792 72.6386 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -64.823 -77.1867 0 0 -0 0 - 1 1 1 - - -64.823 -77.1867 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -57.5346 -77.2024 0 0 -0 0 - 1 1 1 - - -57.5346 -77.2024 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -50.026 -77.2083 0 0 -0 0 - 1 1 1 - - -50.026 -77.2083 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -42.5276 -77.1982 0 0 -0 0 - 1 1 1 - - -42.5276 -77.1982 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 24.9441 -77.2473 0 0 -0 0 - 1 1 1 - - 24.9441 -77.2473 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.4421 -77.2463 0 0 -0 0 - 1 1 1 - - 32.4421 -77.2463 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 39.9314 -77.2456 0 0 -0 0 - 1 1 1 - - 39.9314 -77.2456 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47.429 -77.2489 0 0 -0 0 - 1 1 1 - - 47.429 -77.2489 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.8935 -77.2438 0 0 -0 0 - 1 1 1 - - 54.8935 -77.2438 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 62.4043 -77.2429 0 0 -0 0 - 1 1 1 - - 62.4043 -77.2429 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.8968 -77.2494 0 0 -0 0 - 1 1 1 - - 69.8968 -77.2494 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.4066 -77.2521 0 0 -0 0 - 1 1 1 - - 77.4066 -77.2521 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -35.0175 -77.2078 0 0 -0 0 - 1 1 1 - - -35.0175 -77.2078 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -27.5544 -77.2087 0 0 -0 0 - 1 1 1 - - -27.5544 -77.2087 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -20.0557 -77.2142 0 0 -0 0 - 1 1 1 - - -20.0557 -77.2142 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -12.5467 -77.224 0 0 -0 0 - 1 1 1 - - -12.5467 -77.224 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.04952 -77.2253 0 0 -0 0 - 1 1 1 - - -5.04952 -77.2253 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 2.45064 -77.2385 0 0 -0 0 - 1 1 1 - - 2.45064 -77.2385 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.9578 -77.2456 0 0 -0 0 - 1 1 1 - - 9.9578 -77.2456 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 17.442 -77.2428 0 0 -0 0 - 1 1 1 - - 17.442 -77.2428 1.4 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 4.17312 6.74389 0 0 -0 0 - 1 1 1 - - 4.17312 6.74389 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 3.67877 23.0221 0 0 -0 0 - 1 1 1 - - 3.67877 23.0221 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.87027 6.04045 0 0 -0 0 - 1 1 1 - - -5.87027 6.04045 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.96404 -4.90831 0 0 -0 0 - 1 1 1 - - -5.96404 -4.90831 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 25.2556 26.8571 0 0 -0 0 - 1 1 1 - - 25.2556 26.8571 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -1.86632 13.2234 0 0 -0 0 - 1 1 1 - - -1.86632 13.2234 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 38.1372 39.7799 0 0 -0 0 - 1 1 1 - - 38.1372 39.7799 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 34.394 19.3769 0 0 -0 0 - 1 1 1 - - 34.394 19.3769 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 23.3048 19.1155 0 0 -0 0 - 1 1 1 - - 23.3048 19.1155 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 35.9409 28.361 0 0 -0 0 - 1 1 1 - - 35.9409 28.361 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.02 40.5617 0 0 -0 0 - 1 1 1 - - 27.02 40.5617 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 16.0778 31.2112 0 0 -0 0 - 1 1 1 - - 16.0778 31.2112 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -28.7782 18.8144 0 0 -0 0 - 1 1 1 - - -28.7782 18.8144 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -41.1977 4.88937 0 0 -0 0 - 1 1 1 - - -41.1977 4.88937 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -35.9044 12.5787 0 0 -0 0 - 1 1 1 - - -35.9044 12.5787 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -36.4915 -1.8949 0 0 -0 0 - 1 1 1 - - -36.4915 -1.8949 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -38.8952 -13.8905 0 0 -0 0 - 1 1 1 - - -38.8952 -13.8905 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 23.1258 -5.80132 0 0 -0 0 - 1 1 1 - - 23.1258 -5.80132 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -43.006 -6.95526 0 0 -0 0 - 1 1 1 - - -43.006 -6.95526 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.34001 39.5769 0 0 -0 0 - 1 1 1 - - 9.34001 39.5769 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -1.72714 38.6391 0 0 -0 0 - 1 1 1 - - -1.72714 38.6391 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -12.7814 35.8637 0 0 -0 0 - 1 1 1 - - -12.7814 35.8637 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.50308 30.3053 0 0 -0 0 - 1 1 1 - - -5.50308 30.3053 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -14.5645 26.9922 0 0 -0 0 - 1 1 1 - - -14.5645 26.9922 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -16.6381 19.1844 0 0 -0 0 - 1 1 1 - - -16.6381 19.1844 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -25.3794 10.5729 0 0 -0 0 - 1 1 1 - - -25.3794 10.5729 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -29.9351 3.47194 0 0 -0 0 - 1 1 1 - - -29.9351 3.47194 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -21.6467 -4.35849 0 0 -0 0 - 1 1 1 - - -21.6467 -4.35849 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -14.0321 -6.86022 0 0 -0 0 - 1 1 1 - - -14.0321 -6.86022 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 36.6021 4.60032 0 0 -0 0 - 1 1 1 - - 36.6021 4.60032 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 10.9634 -48.5098 0 0 -0 0 - 1 1 1 - - 10.9634 -48.5098 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -14.6732 -23.1903 0 0 -0 0 - 1 1 1 - - -14.6732 -23.1903 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -4.66983 -20.0209 0 0 -0 0 - 1 1 1 - - -4.66983 -20.0209 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 4.40709 -15.3128 0 0 -0 0 - 1 1 1 - - 4.40709 -15.3128 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -44.3512 -34.3322 0 0 -0 0 - 1 1 1 - - -44.3512 -34.3322 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -14.6431 -49.144 0 0 -0 0 - 1 1 1 - - -14.6431 -49.144 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -16 -40 0 0 -0 0 - 1 1 1 - - -16 -40 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -6 -50 0 0 -0 0 - 1 1 1 - - -6 -50 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 16.7872 -38.0142 0 0 -0 0 - 1 1 1 - - 16.7872 -38.0142 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 23.6567 -32.095 0 0 -0 0 - 1 1 1 - - 23.6567 -32.095 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 14.9852 -29.7884 0 0 -0 0 - 1 1 1 - - 14.9852 -29.7884 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 29.9933 -25.0772 0 0 -0 0 - 1 1 1 - - 29.9933 -25.0772 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 37.9527 -28.3942 0 0 -0 0 - 1 1 1 - - 37.9527 -28.3942 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.2813 -5.47636 0 0 -0 0 - 1 1 1 - - -62.2813 -5.47636 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -57.5865 3.35755 0 0 -0 0 - 1 1 1 - - -57.5865 3.35755 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -52.8352 -27.0341 0 0 -0 0 - 1 1 1 - - -52.8352 -27.0341 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -51.7446 8.73379 0 0 -0 0 - 1 1 1 - - -51.7446 8.73379 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -61.9776 11.9992 0 0 -0 0 - 1 1 1 - - -61.9776 11.9992 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -44.8289 12.8711 0 0 -0 0 - 1 1 1 - - -44.8289 12.8711 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -55.1383 17.4575 0 0 -0 0 - 1 1 1 - - -55.1383 17.4575 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.4801 23.0808 0 0 -0 0 - 1 1 1 - - -62.4801 23.0808 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -50.089 20.4232 0 0 -0 0 - 1 1 1 - - -50.089 20.4232 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -39 20.4781 0 0 -0 0 - 1 1 1 - - -39 20.4781 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -60.9015 30.6773 0 0 -0 0 - 1 1 1 - - -60.9015 30.6773 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -52.7292 27.6893 0 0 -0 0 - 1 1 1 - - -52.7292 27.6893 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -45.8013 25.7865 0 0 -0 0 - 1 1 1 - - -45.8013 25.7865 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -58.7865 -19.5654 0 0 -0 0 - 1 1 1 - - -58.7865 -19.5654 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -41.629 28.9616 0 0 -0 0 - 1 1 1 - - -41.629 28.9616 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -45 36 0 0 -0 0 - 1 1 1 - - -45 36 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -55.6196 38.8698 0 0 -0 0 - 1 1 1 - - -55.6196 38.8698 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -61.2322 44.4389 0 0 -0 0 - 1 1 1 - - -61.2322 44.4389 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -55.1991 50.8798 0 0 -0 0 - 1 1 1 - - -55.1991 50.8798 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -50 46.5551 0 0 -0 0 - 1 1 1 - - -50 46.5551 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -42 44 0 0 -0 0 - 1 1 1 - - -42 44 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -32.6812 44.1469 0 0 -0 0 - 1 1 1 - - -32.6812 44.1469 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -39.3405 53.7776 0 0 -0 0 - 1 1 1 - - -39.3405 53.7776 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -49.9576 56.5581 0 0 -0 0 - 1 1 1 - - -49.9576 56.5581 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -54.8874 -34.969 0 0 -0 0 - 1 1 1 - - -54.8874 -34.969 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -63.6871 54.2124 0 0 -0 0 - 1 1 1 - - -63.6871 54.2124 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -60.6268 62.225 0 0 -0 0 - 1 1 1 - - -60.6268 62.225 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -55 67 0 0 -0 0 - 1 1 1 - - -55 67 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -43 67.4304 0 0 -0 0 - 1 1 1 - - -43 67.4304 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -32.2059 60.626 0 0 -0 0 - 1 1 1 - - -32.2059 60.626 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -29.6237 67.9398 0 0 -0 0 - 1 1 1 - - -29.6237 67.9398 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -29.8396 51.975 0 0 -0 0 - 1 1 1 - - -29.8396 51.975 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -24.87 47.0793 0 0 -0 0 - 1 1 1 - - -24.87 47.0793 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -14.6686 45.145 0 0 -0 0 - 1 1 1 - - -14.6686 45.145 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -19.9631 53.8104 0 0 -0 0 - 1 1 1 - - -19.9631 53.8104 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -39.7029 -41.7499 0 0 -0 0 - 1 1 1 - - -39.7029 -41.7499 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -24.0733 60.511 0 0 -0 0 - 1 1 1 - - -24.0733 60.511 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -20.8909 67.4922 0 0 -0 0 - 1 1 1 - - -20.8909 67.4922 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -16 65 0 0 -0 0 - 1 1 1 - - -16 65 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -10.2865 53.048 0 0 -0 0 - 1 1 1 - - -10.2865 53.048 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -6.29459 68.2 0 0 -0 0 - 1 1 1 - - -6.29459 68.2 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -4.38097 58.2504 0 0 -0 0 - 1 1 1 - - -4.38097 58.2504 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -1.36364 49.3606 0 0 -0 0 - 1 1 1 - - -1.36364 49.3606 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 8.14698 48.4083 0 0 -0 0 - 1 1 1 - - 8.14698 48.4083 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 11.9911 56.6409 0 0 -0 0 - 1 1 1 - - 11.9911 56.6409 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 11.8961 66.9075 0 0 -0 0 - 1 1 1 - - 11.8961 66.9075 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -49.2699 -40.9497 0 0 -0 0 - 1 1 1 - - -49.2699 -40.9497 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 4.5027 64 0 0 -0 0 - 1 1 1 - - 4.5027 64 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 17.6476 44.778 0 0 -0 0 - 1 1 1 - - 17.6476 44.778 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 21.6588 52.7008 0 0 -0 0 - 1 1 1 - - 21.6588 52.7008 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 23.2249 62.8452 0 0 -0 0 - 1 1 1 - - 23.2249 62.8452 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.9467 65.8155 0 0 -0 0 - 1 1 1 - - 32.9467 65.8155 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 36.5349 55.037 0 0 -0 0 - 1 1 1 - - 36.5349 55.037 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 35.1683 45.8932 0 0 -0 0 - 1 1 1 - - 35.1683 45.8932 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.6248 46.6188 0 0 -0 0 - 1 1 1 - - 46.6248 46.6188 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47 58 0 0 -0 0 - 1 1 1 - - 47 58 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 49 37 0 0 -0 0 - 1 1 1 - - 49 37 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.7574 -27.5779 0 0 -0 0 - 1 1 1 - - -62.7574 -27.5779 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 48 26 0 0 -0 0 - 1 1 1 - - 48 26 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 45 14 0 0 -0 0 - 1 1 1 - - 45 14 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 56 15 0 0 -0 0 - 1 1 1 - - 56 15 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59.1228 22.9106 0 0 -0 0 - 1 1 1 - - 59.1228 22.9106 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 57.0193 31.3924 0 0 -0 0 - 1 1 1 - - 57.0193 31.3924 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 58.1809 41.7352 0 0 -0 0 - 1 1 1 - - 58.1809 41.7352 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 56.2112 51.2191 0 0 -0 0 - 1 1 1 - - 56.2112 51.2191 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.2945 61.7061 0 0 -0 0 - 1 1 1 - - 54.2945 61.7061 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 43.2411 69.8798 0 0 -0 0 - 1 1 1 - - 43.2411 69.8798 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59.815 68.1882 0 0 -0 0 - 1 1 1 - - 59.815 68.1882 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -63.3796 -38.8115 0 0 -0 0 - 1 1 1 - - -63.3796 -38.8115 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 71.02 67.3089 0 0 -0 0 - 1 1 1 - - 71.02 67.3089 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 78.469 60.0576 0 0 -0 0 - 1 1 1 - - 78.469 60.0576 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 75.7067 49.9254 0 0 -0 0 - 1 1 1 - - 75.7067 49.9254 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 78.4004 38 0 0 -0 0 - 1 1 1 - - 78.4004 38 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 75.4999 27.3375 0 0 -0 0 - 1 1 1 - - 75.4999 27.3375 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 68 35.5523 0 0 -0 0 - 1 1 1 - - 68 35.5523 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 64 55 0 0 -0 0 - 1 1 1 - - 64 55 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 65.4102 46.0637 0 0 -0 0 - 1 1 1 - - 65.4102 46.0637 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 68.691 18.1189 0 0 -0 0 - 1 1 1 - - 68.691 18.1189 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.7243 9.68384 0 0 -0 0 - 1 1 1 - - 77.7243 9.68384 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.7403 -46.3749 0 0 -0 0 - 1 1 1 - - -62.7403 -46.3749 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.7378 17.6558 0 0 -0 0 - 1 1 1 - - 77.7378 17.6558 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.2478 -53.7113 0 0 -0 0 - 1 1 1 - - -62.2478 -53.7113 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 15.9692 -12.8837 0 0 -0 0 - 1 1 1 - - 15.9692 -12.8837 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -62.2744 -60.8257 0 0 -0 0 - 1 1 1 - - -62.2744 -60.8257 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -63.7712 -12.467 0 0 -0 0 - 1 1 1 - - -63.7712 -12.467 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -63.0722 -68.2479 0 0 -0 0 - 1 1 1 - - -63.0722 -68.2479 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -54.0003 -73.4236 0 0 -0 0 - 1 1 1 - - -54.0003 -73.4236 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -48.9565 -65.2874 0 0 -0 0 - 1 1 1 - - -48.9565 -65.2874 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -52.7411 -56.6765 0 0 -0 0 - 1 1 1 - - -52.7411 -56.6765 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -42 -54 0 0 -0 0 - 1 1 1 - - -42 -54 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -41.501 -61.7372 0 0 -0 0 - 1 1 1 - - -41.501 -61.7372 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -41.0505 -70.9592 0 0 -0 0 - 1 1 1 - - -41.0505 -70.9592 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -29.0516 -72.6201 0 0 -0 0 - 1 1 1 - - -29.0516 -72.6201 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.9493 -11.9536 0 0 -0 0 - 1 1 1 - - 27.9493 -11.9536 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -15.9859 -72.7452 0 0 -0 0 - 1 1 1 - - -15.9859 -72.7452 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -3.19683 -73.0549 0 0 -0 0 - 1 1 1 - - -3.19683 -73.0549 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 7.7129 -73.551 0 0 -0 0 - 1 1 1 - - 7.7129 -73.551 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 17.1055 -74.2371 0 0 -0 0 - 1 1 1 - - 17.1055 -74.2371 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 25.6415 -73.3181 0 0 -0 0 - 1 1 1 - - 25.6415 -73.3181 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 31.8976 -73.4729 0 0 -0 0 - 1 1 1 - - 31.8976 -73.4729 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 39.0487 -73.0839 0 0 -0 0 - 1 1 1 - - 39.0487 -73.0839 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 48.0509 -73.8488 0 0 -0 0 - 1 1 1 - - 48.0509 -73.8488 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59.5601 -74.2367 0 0 -0 0 - 1 1 1 - - 59.5601 -74.2367 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.3174 -73.7487 0 0 -0 0 - 1 1 1 - - 69.3174 -73.7487 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 36.9517 -4.00698 0 0 -0 0 - 1 1 1 - - 36.9517 -4.00698 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.4956 -67.1057 0 0 -0 0 - 1 1 1 - - 77.4956 -67.1057 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 65.4514 -65.7257 0 0 -0 0 - 1 1 1 - - 65.4514 -65.7257 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 57.207 -60.5626 0 0 -0 0 - 1 1 1 - - 57.207 -60.5626 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 68.1395 -51.7723 0 0 -0 0 - 1 1 1 - - 68.1395 -51.7723 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 68.5982 -58.4039 0 0 -0 0 - 1 1 1 - - 68.5982 -58.4039 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.5804 -56.9497 0 0 -0 0 - 1 1 1 - - 77.5804 -56.9497 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 78.4801 -44.2247 0 0 -0 0 - 1 1 1 - - 78.4801 -44.2247 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 70.4557 -42.6074 0 0 -0 0 - 1 1 1 - - 70.4557 -42.6074 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59 -46 0 0 -0 0 - 1 1 1 - - 59 -46 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 45 -54 0 0 -0 0 - 1 1 1 - - 45 -54 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -51.8566 -13.0406 0 0 -0 0 - 1 1 1 - - -51.8566 -13.0406 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.4555 -45.0153 0 0 -0 0 - 1 1 1 - - 46.4555 -45.0153 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 34.7769 -60.0377 0 0 -0 0 - 1 1 1 - - 34.7769 -60.0377 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 20.3377 -64.2489 0 0 -0 0 - 1 1 1 - - 20.3377 -64.2489 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 20.8803 -56.0962 0 0 -0 0 - 1 1 1 - - 20.8803 -56.0962 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 29 -46 0 0 -0 0 - 1 1 1 - - 29 -46 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.5084 -51 0 0 -0 0 - 1 1 1 - - 32.5084 -51 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 37.5311 -42 0 0 -0 0 - 1 1 1 - - 37.5311 -42 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 53 -39.4989 0 0 -0 0 - 1 1 1 - - 53 -39.4989 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.2628 -53.8578 0 0 -0 0 - 1 1 1 - - 54.2628 -53.8578 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.5077 -63.1766 0 0 -0 0 - 1 1 1 - - 46.5077 -63.1766 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -46.0559 -21.0324 0 0 -0 0 - 1 1 1 - - -46.0559 -21.0324 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.57815 -63.1233 0 0 -0 0 - 1 1 1 - - 9.57815 -63.1233 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -1.27961 -65.1182 0 0 -0 0 - 1 1 1 - - -1.27961 -65.1182 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -13.4312 -65.0864 0 0 -0 0 - 1 1 1 - - -13.4312 -65.0864 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -26 -65 0 0 -0 0 - 1 1 1 - - -26 -65 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -18 -59.491 0 0 -0 0 - 1 1 1 - - -18 -59.491 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -8.44293 -56 0 0 -0 0 - 1 1 1 - - -8.44293 -56 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 3 -59.4231 0 0 -0 0 - 1 1 1 - - 3 -59.4231 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 11 -53 0 0 -0 0 - 1 1 1 - - 11 -53 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 17.8011 -46.2771 0 0 -0 0 - 1 1 1 - - 17.8011 -46.2771 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 25.7664 -39.1516 0 0 -0 0 - 1 1 1 - - 25.7664 -39.1516 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -37.7183 -27.806 0 0 -0 0 - 1 1 1 - - -37.7183 -27.806 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 33.6266 -35.9008 0 0 -0 0 - 1 1 1 - - 33.6266 -35.9008 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 42 -34 0 0 -0 0 - 1 1 1 - - 42 -34 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 49 -33 0 0 -0 0 - 1 1 1 - - 49 -33 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 57 -32 0 0 -0 0 - 1 1 1 - - 57 -32 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 66 -30 0 0 -0 0 - 1 1 1 - - 66 -30 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 75 -33 0 0 -0 0 - 1 1 1 - - 75 -33 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.1748 -21.023 0 0 -0 0 - 1 1 1 - - 77.1748 -21.023 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 64.1568 -21.3364 0 0 -0 0 - 1 1 1 - - 64.1568 -21.3364 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 44.4007 -14.4829 0 0 -0 0 - 1 1 1 - - 44.4007 -14.4829 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.2912 -4.07325 0 0 -0 0 - 1 1 1 - - 46.2912 -4.07325 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -27.2585 -28.3269 0 0 -0 0 - 1 1 1 - - -27.2585 -28.3269 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 53.5679 4.43675 0 0 -0 0 - 1 1 1 - - 53.5679 4.43675 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 62.8101 3.9948 0 0 -0 0 - 1 1 1 - - 62.8101 3.9948 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 70 5 0 0 -0 0 - 1 1 1 - - 70 5 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 76.5877 -1.60865 0 0 -0 0 - 1 1 1 - - 76.5877 -1.60865 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 71.8862 -6.6932 0 0 -0 0 - 1 1 1 - - 71.8862 -6.6932 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 78 -11 0 0 -0 0 - 1 1 1 - - 78 -11 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 33.9296 -17.577 0 0 -0 0 - 1 1 1 - - 33.9296 -17.577 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 22.0641 -20.5765 0 0 -0 0 - 1 1 1 - - 22.0641 -20.5765 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.51281 -21.4337 0 0 -0 0 - 1 1 1 - - 9.51281 -21.4337 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -0.068423 -26.1561 0 0 -0 0 - 1 1 1 - - -0.068423 -26.1561 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -31.3495 -36.2051 0 0 -0 0 - 1 1 1 - - -31.3495 -36.2051 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -10.6374 -30.3795 0 0 -0 0 - 1 1 1 - - -10.6374 -30.3795 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -21.5163 -33.5285 0 0 -0 0 - 1 1 1 - - -21.5163 -33.5285 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -26.2536 -40.7312 0 0 -0 0 - 1 1 1 - - -26.2536 -40.7312 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -34.1035 -45.0207 0 0 -0 0 - 1 1 1 - - -34.1035 -45.0207 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -46.1549 -47.7814 0 0 -0 0 - 1 1 1 - - -46.1549 -47.7814 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -55.1644 -47.7732 0 0 -0 0 - 1 1 1 - - -55.1644 -47.7732 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -34.2352 -52.2046 0 0 -0 0 - 1 1 1 - - -34.2352 -52.2046 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -34.879 -60.041 0 0 -0 0 - 1 1 1 - - -34.879 -60.041 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -25.608 -55.1349 0 0 -0 0 - 1 1 1 - - -25.608 -55.1349 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -23.5549 -48.5314 0 0 -0 0 - 1 1 1 - - -23.5549 -48.5314 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -17.0812 -15.3564 0 0 -0 0 - 1 1 1 - - -17.0812 -15.3564 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -32.784 -19.3656 0 0 -0 0 - 1 1 1 - - -32.784 -19.3656 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -30.6482 -6.95158 0 0 -0 0 - 1 1 1 - - -30.6482 -6.95158 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 1.66284 -8.32895 0 0 -0 0 - 1 1 1 - - 1.66284 -8.32895 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -8.19573 -13.2852 0 0 -0 0 - 1 1 1 - - -8.19573 -13.2852 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 11.7503 -6.40353 0 0 -0 0 - 1 1 1 - - 11.7503 -6.40353 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 18.1538 -0.653096 0 0 -0 0 - 1 1 1 - - 18.1538 -0.653096 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -11.7442 11.5102 0 0 -0 0 - 1 1 1 - - -11.7442 11.5102 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -48.7188 -0.777518 0 0 -0 0 - 1 1 1 - - -48.7188 -0.777518 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.7125 2.00048 0 0 -0 0 - 1 1 1 - - 27.7125 2.00048 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 22.7195 10.5008 0 0 -0 0 - 1 1 1 - - 22.7195 10.5008 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.9249 11.1544 0 0 -0 0 - 1 1 1 - - 32.9249 11.1544 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 13.709 21.9719 0 0 -0 0 - 1 1 1 - - 13.709 21.9719 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -5.57517 20.3481 0 0 -0 0 - 1 1 1 - - -5.57517 20.3481 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 4.43792 30.9787 0 0 -0 0 - 1 1 1 - - 4.43792 30.9787 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 7.24292 14.6466 0 0 -0 0 - 1 1 1 - - 7.24292 14.6466 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 6.60508 0.636365 0 0 -0 0 - 1 1 1 - - 6.60508 0.636365 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -23.9442 -12.5753 0 0 -0 0 - 1 1 1 - - -23.9442 -12.5753 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -18.1817 3.8328 0 0 -0 0 - 1 1 1 - - -18.1817 3.8328 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -10.4152 -0.910006 0 0 -0 0 - 1 1 1 - - -10.4152 -0.910006 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 13.6994 8.72561 0 0 -0 0 - 1 1 1 - - 13.6994 8.72561 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -9.88673 -44.2109 0 0 -0 0 - 1 1 1 - - -9.88673 -44.2109 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -3.32715 -43.808 0 0 -0 0 - 1 1 1 - - -3.32715 -43.808 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 8.55761 -43.5871 0 0 -0 0 - 1 1 1 - - 8.55761 -43.5871 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 9.11384 -38.2933 0 0 -0 0 - 1 1 1 - - 9.11384 -38.2933 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 6.12616 -30.2248 0 0 -0 0 - 1 1 1 - - 6.12616 -30.2248 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -3.75387 -29.9243 0 0 -0 0 - 1 1 1 - - -3.75387 -29.9243 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.944 13.8016 0 0 -0 0 - 1 1 1 - - 46.944 13.8016 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 23.1543 34.9869 0 0 -0 0 - 1 1 1 - - 23.1543 34.9869 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 51.1308 -22.5253 0 0 -0 0 - 1 1 1 - - 51.1308 -22.5253 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 28.8334 -67.3355 0 0 -0 0 - 1 1 1 - - 28.8334 -67.3355 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.0699 -59.1616 0 0 -0 0 - 1 1 1 - - 27.0699 -59.1616 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 53.8259 -68.3886 0 0 -0 0 - 1 1 1 - - 53.8259 -68.3886 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.992 -14.8876 0 0 -0 0 - 1 1 1 - - 69.992 -14.8876 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 65.0019 12.1 0 0 -0 0 - 1 1 1 - - 65.0019 12.1 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 71.5812 13.4216 0 0 -0 0 - 1 1 1 - - 71.5812 13.4216 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59.2975 10.314 0 0 -0 0 - 1 1 1 - - 59.2975 10.314 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 61.3863 14.9731 0 0 -0 0 - 1 1 1 - - 61.3863 14.9731 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 64.2265 25.0402 0 0 -0 0 - 1 1 1 - - 64.2265 25.0402 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 64 32 0 0 -0 0 - 1 1 1 - - 64 32 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 67.7841 26.4724 0 0 -0 0 - 1 1 1 - - 67.7841 26.4724 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 63.011 29.4965 0 0 -0 0 - 1 1 1 - - 63.011 29.4965 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.0419 30.8163 0 0 -0 0 - 1 1 1 - - 69.0419 30.8163 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 40.1204 -58.4858 0 0 -0 0 - 1 1 1 - - 40.1204 -58.4858 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 73 38 0 0 -0 0 - 1 1 1 - - 73 38 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 71.3919 43.3348 0 0 -0 0 - 1 1 1 - - 71.3919 43.3348 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 76.5372 44.1054 0 0 -0 0 - 1 1 1 - - 76.5372 44.1054 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 79.7208 47.325 0 0 -0 0 - 1 1 1 - - 79.7208 47.325 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 80.0264 55.1815 0 0 -0 0 - 1 1 1 - - 80.0264 55.1815 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 80.3566 69.1754 0 0 -0 0 - 1 1 1 - - 80.3566 69.1754 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 76.5702 66.5129 0 0 -0 0 - 1 1 1 - - 76.5702 66.5129 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 69.5213 61.2371 0 0 -0 0 - 1 1 1 - - 69.5213 61.2371 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 63.8298 64.2027 0 0 -0 0 - 1 1 1 - - 63.8298 64.2027 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 59 60 0 0 -0 0 - 1 1 1 - - 59 60 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 61.3203 -54.2018 0 0 -0 0 - 1 1 1 - - 61.3203 -54.2018 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 70.9131 54.6604 0 0 -0 0 - 1 1 1 - - 70.9131 54.6604 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 41.9707 52.4694 0 0 -0 0 - 1 1 1 - - 41.9707 52.4694 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 49.7169 67.5848 0 0 -0 0 - 1 1 1 - - 49.7169 67.5848 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 53.308 70.7978 0 0 -0 0 - 1 1 1 - - 53.308 70.7978 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 42.5201 66 0 0 -0 0 - 1 1 1 - - 42.5201 66 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 38.7471 61.0747 0 0 -0 0 - 1 1 1 - - 38.7471 61.0747 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 25.5759 71.4018 0 0 -0 0 - 1 1 1 - - 25.5759 71.4018 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 19.5276 70.9953 0 0 -0 0 - 1 1 1 - - 19.5276 70.9953 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 5.18182 71.4838 0 0 -0 0 - 1 1 1 - - 5.18182 71.4838 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -0.986733 70.8127 0 0 -0 0 - 1 1 1 - - -0.986733 70.8127 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 62.7756 -37.725 0 0 -0 0 - 1 1 1 - - 62.7756 -37.725 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 16.5156 65.9262 0 0 -0 0 - 1 1 1 - - 16.5156 65.9262 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 16.9861 58.6751 0 0 -0 0 - 1 1 1 - - 16.9861 58.6751 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 24.6458 58.4984 0 0 -0 0 - 1 1 1 - - 24.6458 58.4984 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 28.9389 61.3237 0 0 -0 0 - 1 1 1 - - 28.9389 61.3237 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 28.9457 57.6613 0 0 -0 0 - 1 1 1 - - 28.9457 57.6613 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 32.8404 60.4845 0 0 -0 0 - 1 1 1 - - 32.8404 60.4845 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.7389 55.7525 0 0 -0 0 - 1 1 1 - - 27.7389 55.7525 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 26.4025 50.9028 0 0 -0 0 - 1 1 1 - - 26.4025 50.9028 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 30.9274 50.8357 0 0 -0 0 - 1 1 1 - - 30.9274 50.8357 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 24.6308 47.3855 0 0 -0 0 - 1 1 1 - - 24.6308 47.3855 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 67 -37 0 0 -0 0 - 1 1 1 - - 67 -37 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 37.0651 34.0781 0 0 -0 0 - 1 1 1 - - 37.0651 34.0781 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 42.9857 33.4827 0 0 -0 0 - 1 1 1 - - 42.9857 33.4827 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47.5051 33 0 0 -0 0 - 1 1 1 - - 47.5051 33 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 42.129 29.9889 0 0 -0 0 - 1 1 1 - - 42.129 29.9889 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 40.2837 23.1067 0 0 -0 0 - 1 1 1 - - 40.2837 23.1067 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 45.9239 21.7435 0 0 -0 0 - 1 1 1 - - 45.9239 21.7435 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 41.1235 19.9878 0 0 -0 0 - 1 1 1 - - 41.1235 19.9878 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 39.0177 9.81479 0 0 -0 0 - 1 1 1 - - 39.0177 9.81479 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 44.0627 8.73817 0 0 -0 0 - 1 1 1 - - 44.0627 8.73817 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 41.9987 4.7101 0 0 -0 0 - 1 1 1 - - 41.9987 4.7101 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 77.7785 -74.6332 0 0 -0 0 - 1 1 1 - - 77.7785 -74.6332 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 44.7904 1.3087 0 0 -0 0 - 1 1 1 - - 44.7904 1.3087 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 49 10 0 0 -0 0 - 1 1 1 - - 49 10 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.3732 10.5565 0 0 -0 0 - 1 1 1 - - 54.3732 10.5565 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 41.3418 -8.33335 0 0 -0 0 - 1 1 1 - - 41.3418 -8.33335 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 37.3316 -10.2025 0 0 -0 0 - 1 1 1 - - 37.3316 -10.2025 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 33.2046 -9.53105 0 0 -0 0 - 1 1 1 - - 33.2046 -9.53105 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 29.4941 -6.27443 0 0 -0 0 - 1 1 1 - - 29.4941 -6.27443 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 27.6132 -2.68511 0 0 -0 0 - 1 1 1 - - 27.6132 -2.68511 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 35.6953 -12.8196 0 0 -0 0 - 1 1 1 - - 35.6953 -12.8196 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 40.0153 -19.7531 0 0 -0 0 - 1 1 1 - - 40.0153 -19.7531 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 75.22 -49.8305 0 0 -0 0 - 1 1 1 - - 75.22 -49.8305 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 42.6785 -25.759 0 0 -0 0 - 1 1 1 - - 42.6785 -25.759 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47.3198 -26.6873 0 0 -0 0 - 1 1 1 - - 47.3198 -26.6873 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 51.9116 -26.4095 0 0 -0 0 - 1 1 1 - - 51.9116 -26.4095 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 55 -26 0 0 -0 0 - 1 1 1 - - 55 -26 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 58.8178 -25.4046 0 0 -0 0 - 1 1 1 - - 58.8178 -25.4046 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 54.2901 -21.9769 0 0 -0 0 - 1 1 1 - - 54.2901 -21.9769 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 55.8502 -18.6755 0 0 -0 0 - 1 1 1 - - 55.8502 -18.6755 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 50.7176 -19.1857 0 0 -0 0 - 1 1 1 - - 50.7176 -19.1857 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 46.3715 -19.4167 0 0 -0 0 - 1 1 1 - - 46.3715 -19.4167 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 47.2199 -22.8531 0 0 -0 0 - 1 1 1 - - 47.2199 -22.8531 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 71.2879 -26.0819 0 0 -0 0 - 1 1 1 - - 71.2879 -26.0819 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 3.58111 -48.4435 0 0 -0 0 - 1 1 1 - - 3.58111 -48.4435 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -1.8022 -53.8429 0 0 -0 0 - 1 1 1 - - -1.8022 -53.8429 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -38.7697 35.0752 0 0 -0 0 - 1 1 1 - - -38.7697 35.0752 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -35.9612 25.6637 0 0 -0 0 - 1 1 1 - - -35.9612 25.6637 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -38.9282 39.8173 0 0 -0 0 - 1 1 1 - - -38.9282 39.8173 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -42 56 0 0 -0 0 - 1 1 1 - - -42 56 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -49.3952 62.557 0 0 -0 0 - 1 1 1 - - -49.3952 62.557 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -43.2511 62.0049 0 0 -0 0 - 1 1 1 - - -43.2511 62.0049 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -39 65 0 0 -0 0 - 1 1 1 - - -39 65 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -64.8681 38.3857 0 0 -0 0 - 1 1 1 - - -64.8681 38.3857 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 79.2818 -27.8106 0 0 -0 0 - 1 1 1 - - 79.2818 -27.8106 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -66 6 0 0 -0 0 - 1 1 1 - - -66 6 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -57 -5 0 0 -0 0 - 1 1 1 - - -57 -5 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -51.8739 -7.37106 0 0 -0 0 - 1 1 1 - - -51.8739 -7.37106 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 44.1203 -22.2121 0 0 -0 0 - 1 1 1 - - 44.1203 -22.2121 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 37.762 -22.2351 0 0 -0 0 - 1 1 1 - - 37.762 -22.2351 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -9.98674 -40.8592 0 0 -0 0 - 1 1 1 - - -9.98674 -40.8592 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - -9.83852 -35.8121 0 0 -0 0 - 1 1 1 - - -9.83852 -35.8121 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 3.07368 -43.7653 0 0 -0 0 - 1 1 1 - - 3.07368 -43.7653 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 6.27224 -2.36963 0 0 -0 0 - 1 1 1 - - 6.27224 -2.36963 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - 0 0 0 0 -0 0 - - - - 0 0 10 0 -0 0 - - - - - 38.6145 50.429 340.665 0 1.41416 -3.10788 - orbit - perspective - - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 9.91312 -0.020544 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 0.21125 10.0085 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -4.23582 -2.70174 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 7.30409 -11.436 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -11.7442 11.5102 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 11.6258 16.3816 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 19.1938 5.55905 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 18.5357 -8.6846 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -6.56011 -13.5116 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -18.1817 3.8328 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -19.9913 -7.29111 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 16.2903 -19.3402 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 32.1208 -0.819093 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 30.4122 20.5859 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 7.43357 28.6577 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -5.23482 24.6288 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -30.1433 10.0247 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -31.3491 -2.20169 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -29.6711 -15.9655 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -16.5501 -21.1883 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 0.21746 -24.2837 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -14.0854 -32.9591 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 15.5274 -30.8645 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 30.7307 -15.3035 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 31.8693 -27.592 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 24.2692 33.1403 0 0 -0 0 - - - 1 - - - - - model://forest/house_2/meshes/house_2.dae - 1.5 1.5 1.5 - - - 10 - - - - - - - - - - - - - - - - - model://forest/house_2/meshes/house_2.dae - 1.5 1.5 1.5 - - - - - - model://forest/house_1/materials/textures/House_1_Normal.png - - - - 0 - 0 - 0 - - 1.0908 -35.9795 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 10.9634 -48.5098 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -2.06905 -50.1057 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -33.7612 -46.9023 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -33.8247 -28.9338 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 34.7554 -38.1414 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 27.8444 -49.1687 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 43 -47 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 45.8098 -28.1092 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -11.1903 -41.7554 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -3.58173 -43.2625 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 4.64956 -43.4073 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 8.55761 -43.5871 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 9.11384 -38.2933 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 6.12616 -30.2248 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -3.75387 -29.9243 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -9.98674 -40.8592 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -9.83852 -35.8121 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.1721 19.9685 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.0721 31.7417 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 44.933 42.3197 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 29.657 42.2097 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 17.1565 37.419 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 19.378 24.9381 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 5.4845 43.366 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -6.29292 37.3058 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39.5409 19.8319 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39.9129 -8.11068 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39.7271 5.09254 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -41.2619 -20.0382 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -20.979 -47.3301 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 53.0475 -40.621 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -26.8614 -36.6505 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.944 13.8016 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 39.0622 13.7055 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 51.1308 -22.5253 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 44.1203 -22.2121 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 37.762 -22.2351 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 36.2848 31.1886 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 14.4934 35.1831 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -16.6381 19.1844 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -65.1256 -77.197 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -57.5346 -77.2024 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -50.026 -77.2083 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -42.5276 -77.1982 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -35.0175 -77.2078 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -27.5544 -77.2087 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -20.0557 -77.2142 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -12.5467 -77.224 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -5.04952 -77.2253 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 2.45064 -77.2385 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 9.9578 -77.2456 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 17.442 -77.2428 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 24.9441 -77.2473 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 32.4421 -77.2463 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 39.9314 -77.2456 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 47.429 -77.2489 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 54.8935 -77.2438 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 62.4043 -77.2429 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 69.8968 -77.2494 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 77.4066 -77.2521 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2442 -73.5802 0 0 0 -1.5802 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.3001 -66.0858 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2777 -58.6142 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2777 -51.1177 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2788 -43.6064 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2767 -36.0958 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2728 -28.5811 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2736 -21.0806 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2554 -13.5842 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.262 -6.06923 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2538 1.43804 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2487 8.94341 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.244 16.4592 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.241 23.9604 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.233 31.4667 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2299 38.978 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2399 46.4861 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2341 53.9889 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2319 61.4946 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 81.2148 68.9647 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 77.3508 72.6116 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 69.8438 72.6289 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 62.3519 72.6417 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 54.875 72.6299 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 47.3663 72.6324 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 39.8774 72.6251 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 32.3692 72.6193 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 24.8712 72.6187 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 17.3775 72.6269 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 9.8792 72.6386 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - 2.37975 72.635 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -5.09788 72.6331 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -12.6061 72.6425 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -20.1193 72.6527 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -27.6199 72.6558 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -35.1125 72.6503 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -42.606 72.6465 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -50.1127 72.6522 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -57.6217 72.6499 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -65.1107 72.6364 0 0 -0 0 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7572 68.7982 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7575 61.2964 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7526 53.7973 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7342 46.3034 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7287 38.8101 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7201 31.3023 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.7145 23.7907 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6998 16.2892 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6952 8.77311 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6796 1.26105 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6605 -6.23997 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6471 -13.729 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6449 -21.2378 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.6227 -28.7312 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.621 -36.2363 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.5988 -43.7335 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.5877 -51.2413 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.5839 -58.7528 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.5608 -66.2516 0 0 0 -1.56932 - - - 1 - - 0 0 1.4 0 -0 0 - - - - 7.5 0.2 2.8 - - - 10 - - - - - - - - - - - - - - - 0 - - - 7.5 0.2 2.8 - - - - - - - 0 - 0 - 0 - - -68.5367 -73.742 0 0 0 -1.56932 - - - 1 - - - - - model://forest/house_1/meshes/house_1.dae - 1.5 1.5 1.5 - - - 10 - - - - - - - - - - - - - - - - - model://forest/house_1/meshes/house_1.dae - 1.5 1.5 1.5 - - - - - - House_1_Normal.png - - - - 0 - 0 - 0 - - 60.0955 -7.80987 0 0 -0 0 - - - 1 - - - - - model://forest/house_1/meshes/house_1.dae - 1.5 1.5 1.5 - - - 10 - - - - - - - - - - - - - - - - - model://forest/house_1/meshes/house_1.dae - 1.5 1.5 1.5 - - - - - - House_1_Normal.png - - - - 0 - 0 - 0 - - -26.9528 33.384 0 0 0 -1.55974 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -14.6732 -23.1903 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -4.66983 -20.0209 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 4.40709 -15.3128 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 15.9692 -12.8837 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 27.9493 -11.9536 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 36.9517 -4.00698 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -51.8566 -13.0406 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -46.0559 -21.0324 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -37.7183 -27.806 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -27.2585 -28.3269 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -31.3495 -36.2051 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -44.3512 -34.3322 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -52.8352 -27.0341 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -58.7865 -19.5654 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -54.8874 -34.969 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39.7029 -41.7499 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -49.2699 -40.9497 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.7574 -27.5779 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -63.3796 -38.8115 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.7403 -46.3749 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.2478 -53.7113 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.2744 -60.8257 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -63.7712 -12.467 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -63.0722 -68.2479 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -54.0003 -73.4236 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -48.9565 -65.2874 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -52.7411 -56.6765 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -42 -54 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -41.501 -61.7372 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -41.0505 -70.9592 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -29.0516 -72.6201 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -15.9859 -72.7452 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -3.19683 -73.0549 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 7.7129 -73.551 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 18.8334 -74.1865 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 25.6415 -73.3181 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 30.6191 -73.321 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 36.3031 -72.9245 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 48.0509 -73.8488 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59.5601 -74.2367 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 69.3174 -73.7487 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.4956 -67.1057 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 65.4514 -65.7257 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 57.207 -60.5626 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 68.1395 -51.7723 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 68.5982 -58.4039 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.5804 -56.9497 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 78.4801 -44.2247 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 70.4557 -42.6074 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59 -46 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 45 -54 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.4555 -45.0153 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 34.7769 -60.0377 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 20.3377 -64.2489 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 20.8803 -56.0962 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 29 -46 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 32.5084 -51 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 37.5311 -42 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 53 -39.4989 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 54.2628 -53.8578 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.5077 -63.1766 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 9.57815 -63.1233 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -1.27961 -65.1182 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -13.4312 -65.0864 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -26 -65 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -18 -59.491 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -8.44293 -56 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 3 -59.4231 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 11 -53 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 17.8011 -46.2771 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 25.7664 -39.1516 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 33.6266 -35.9008 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 42 -34 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 49 -33 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 57 -32 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 66 -30 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 75 -33 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.1748 -21.023 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 64.1568 -21.3364 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 44.4007 -14.4829 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.2912 -4.07325 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 53.5679 4.43675 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 62.8101 3.9948 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 70 5 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 76.5877 -1.60865 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 71.8862 -6.6932 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 78 -11 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 33.9296 -17.577 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 22.0641 -20.5765 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 9.51281 -21.4337 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -0.068423 -26.1561 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -10.6374 -30.3795 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -21.5163 -33.5285 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -26.2536 -40.7312 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -34.1035 -45.0207 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -46.1549 -47.7814 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -55.1644 -47.7732 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -34.2352 -52.2046 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -34.879 -60.041 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -25.608 -55.1349 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -23.5549 -48.5314 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -14.6431 -49.144 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -16 -40 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -6 -50 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 16.7872 -38.0142 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 23.6567 -32.095 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 14.9852 -29.7884 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 29.9933 -25.0772 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 37.9527 -28.3942 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.2813 -5.47636 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -57.5865 3.35755 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -51.7446 8.73379 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -61.9776 11.9992 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -44.8289 12.8711 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -55.1383 17.4575 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -62.4801 23.0808 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -50.089 20.4232 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39 20.4781 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -60.9015 30.6773 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -52.7292 27.6893 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -45.8013 25.7865 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -41.629 28.9616 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -45 36 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -55.6196 38.8698 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -61.2322 44.4389 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -55.1991 50.8798 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -50 46.5551 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -42 44 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -32.6812 44.1469 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39.3405 53.7776 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -49.9576 56.5581 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -63.6871 54.2124 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -60.6268 62.225 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -55 67 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -43 67.4304 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -32.2059 60.626 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -29.6237 67.9398 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -29.8396 51.975 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -24.87 47.0793 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -14.6686 45.145 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -19.9631 53.8104 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -24.0733 60.511 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -20.8909 67.4922 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -16 65 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -10.2865 53.048 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -6.29459 68.2 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -4.38097 58.2504 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -1.36364 49.3606 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 8.14698 48.4083 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 11.9911 56.6409 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 11.8961 66.9075 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 4.5027 64 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 17.6476 44.778 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 21.6588 52.7008 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 23.2249 62.8452 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 32.9467 65.8155 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 36.5349 55.037 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 35.1683 45.8932 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.6248 46.6188 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 47 58 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 49 37 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 48 26 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 45 14 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 56 15 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59.1228 22.9106 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 57.0193 31.3924 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 58.1809 41.7352 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 56.2112 51.2191 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 54.2945 61.7061 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 43.2411 69.8798 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59.815 68.1882 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 71.02 67.3089 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 78.469 60.0576 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 75.7067 49.9254 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 78.4004 38 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 76 25 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 68 35.5523 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 64 55 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 65.4102 46.0637 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 68.691 18.1189 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.7243 9.68384 0 0 -0 0 - - - 1 - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Branch - - - - - - - - - - - model://forest/oak_tree/meshes/oak_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.7378 17.6558 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 28.8334 -67.3355 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 27.0699 -59.1616 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 53.8259 -68.3886 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 40.1204 -58.4858 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 61.3203 -54.2018 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 62.7756 -37.725 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 67 -37 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 77.7785 -74.6332 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 75.22 -49.8305 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 71.2879 -26.0819 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 79.2818 -27.8106 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 69.992 -14.8876 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 65.0019 12.1 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 71.5812 13.4216 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59.2975 10.314 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 61.3863 14.9731 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 64.2265 25.0402 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 64 32 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 67.7841 26.4724 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 63.011 29.4965 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 69.0419 30.8163 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 73 38 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 71.3919 43.3348 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 76.5372 44.1054 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 79.7208 47.325 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 80.0264 55.1815 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 80.3566 69.1754 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 76.5702 66.5129 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 69.5213 61.2371 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 63.8298 64.2027 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 59 60 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 70.9131 54.6604 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 41.9707 52.4694 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 49.7169 67.5848 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 53.308 70.7978 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 42.5201 66 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 38.7471 61.0747 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 25.5759 71.4018 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 19.5276 70.9953 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 5.18182 71.4838 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -0.986733 70.8127 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 16.5156 65.9262 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 16.9861 58.6751 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 24.6458 58.4984 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 28.9389 61.3237 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 28.9457 57.6613 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 32.8404 60.4845 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 27.7389 55.7525 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 26.4025 50.9028 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 30.9274 50.8357 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 24.6308 47.3855 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 37.0651 34.0781 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 42.9857 33.4827 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 47.5051 33 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 42.129 29.9889 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 40.2837 23.1067 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 45.9239 21.7435 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 41.1235 19.9878 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 39.0177 9.81479 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 44.0627 8.73817 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 41.9987 4.7101 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 44.7904 1.3087 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 49 10 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 54.3732 10.5565 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 41.3418 -8.33335 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 37.3316 -10.2025 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 33.2046 -9.53105 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 29.4941 -6.27443 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 27.6132 -2.68511 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 35.6953 -12.8196 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 40.0153 -19.7531 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 42.6785 -25.759 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 47.3198 -26.6873 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 51.9116 -26.4095 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 55 -26 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 58.8178 -25.4046 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 54.2901 -21.9769 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 55.8502 -18.6755 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 50.7176 -19.1857 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 46.3715 -19.4167 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 47.2199 -22.8531 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - 3.58111 -48.4435 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -1.8022 -53.8429 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -38.7697 35.0752 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -35.9612 25.6637 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -38.9282 39.8173 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -42 56 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -49.3952 62.557 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -43.2511 62.0049 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -39 65 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -64.8681 38.3857 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -66 6 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -57 -5 0 0 -0 0 - - - 1 - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - - 10 - - - - - - - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Branch - - - - - - - - - - - model://forest/pine_tree/meshes/pine_tree.dae - - Bark - - - - - - - - 0 - 0 - 0 - - -51.8739 -7.37106 0 0 -0 0 - - - diff --git a/vehicle_simulator/world/garage.world b/vehicle_simulator/world/garage.world deleted file mode 100644 index aca5c48..0000000 --- a/vehicle_simulator/world/garage.world +++ /dev/null @@ -1,39 +0,0 @@ - - - - - model://sun - - - model://garage - - - - - EARTH_WGS84 - 47.3667 - 8.5500 - 500.0 - 0 - - - - - quick - 1000 - 1.3 - - - 0 - 0.2 - 100 - 0.001 - - - 0.001 - 1 - 1000 - 0 0 0 - - - diff --git a/vehicle_simulator/world/indoor.world b/vehicle_simulator/world/indoor.world deleted file mode 100644 index 0257bdf..0000000 --- a/vehicle_simulator/world/indoor.world +++ /dev/null @@ -1,39 +0,0 @@ - - - - - model://sun - - - model://indoor - - - - - EARTH_WGS84 - 47.3667 - 8.5500 - 500.0 - 0 - - - - - quick - 1000 - 1.3 - - - 0 - 0.2 - 100 - 0.001 - - - 0.001 - 1 - 1000 - 0 0 0 - - - diff --git a/vehicle_simulator/world/tunnel.world b/vehicle_simulator/world/tunnel.world deleted file mode 100644 index 293a188..0000000 --- a/vehicle_simulator/world/tunnel.world +++ /dev/null @@ -1,39 +0,0 @@ - - - - - model://sun - - - model://tunnel - - - - - EARTH_WGS84 - 47.3667 - 8.5500 - 500.0 - 0 - - - - - quick - 1000 - 1.3 - - - 0 - 0.2 - 100 - 0.001 - - - 0.001 - 1 - 1000 - 0 0 0 - - - diff --git a/visualization_tools/CMakeLists.txt b/visualization_tools/CMakeLists.txt deleted file mode 100644 index cd4745c..0000000 --- a/visualization_tools/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(visualization_tools) - -# Default to C99 -if(NOT CMAKE_C_STANDARD) - set(CMAKE_C_STANDARD 99) -endif() - -# Default to C++14 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 14) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_compile_options(-Wall -Wextra -Wpedantic) -endif() - -find_package(ament_cmake REQUIRED) -find_package(ament_cmake_python REQUIRED) -find_package(rclcpp REQUIRED) -find_package(rclpy REQUIRED) -find_package(std_msgs REQUIRED) -find_package(nav_msgs REQUIRED) -find_package(geometry_msgs REQUIRED) -find_package(sensor_msgs REQUIRED) -find_package(tf2_ros REQUIRED) -find_package(tf2_geometry_msgs REQUIRED) -find_package(tf2 REQUIRED) -find_package(message_filters REQUIRED) -find_package(pcl_conversions REQUIRED) -find_package(pcl_ros REQUIRED) - -add_executable(visualizationTools src/visualizationTools.cpp) -ament_target_dependencies(visualizationTools rclcpp rclpy std_msgs sensor_msgs nav_msgs geometry_msgs tf2 tf2_ros tf2_geometry_msgs message_filters pcl_ros pcl_conversions) - -install(TARGETS - visualizationTools - DESTINATION lib/${PROJECT_NAME}) - -install( - DIRECTORY - launch - DESTINATION share/${PROJECT_NAME} -) - -ament_python_install_package(${PROJECT_NAME}) - -install(PROGRAMS - scripts/realTimePlot.py - DESTINATION lib/${PROJECT_NAME} -) - -if(BUILD_TESTING) - find_package(ament_lint_auto REQUIRED) - ament_lint_auto_find_test_dependencies() -endif() - -ament_package() diff --git a/visualization_tools/launch/visualization_tools.launch b/visualization_tools/launch/visualization_tools.launch deleted file mode 100755 index 7ce2058..0000000 --- a/visualization_tools/launch/visualization_tools.launch +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/visualization_tools/package.xml b/visualization_tools/package.xml deleted file mode 100755 index 1bb01a1..0000000 --- a/visualization_tools/package.xml +++ /dev/null @@ -1,30 +0,0 @@ - - visualization_tools - 0.0.1 - Visulization Tools - Hongbiao Zhu - BSD - - ament_cmake - ament_cmake_python - - rclcpp - rclpy - std_msgs - sensor_msgs - message_filters - pcl_ros - pcl_conversions - nav_msgs - geometry_msgs - tf2 - tf2_ros - tf2_geometry_msgs - - ament_lint_auto - ament_lint_common - - - ament_cmake - - diff --git a/visualization_tools/scripts/realTimePlot.py b/visualization_tools/scripts/realTimePlot.py deleted file mode 100755 index 9dbc512..0000000 --- a/visualization_tools/scripts/realTimePlot.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/python3 - -import numpy as np -import matplotlib.pyplot as plt -import matplotlib as mpl - -import rclpy -from rclpy.node import Node -from std_msgs.msg import Float32 - -mpl.rcParams['toolbar'] = 'None' -plt.ion() - -time_duration = 0 -start_time_duration = 0 -first_iteration = 'True' - -explored_volume = 0 -traveling_distance = 0 -run_time = 0 -max_explored_volume = 0 -max_traveling_diatance = 0 -max_run_time = 0 - -time_list1 = np.array([]) -time_list2 = np.array([]) -time_list3 = np.array([]) -run_time_list = np.array([]) -explored_volume_list = np.array([]) -traveling_distance_list = np.array([]) - -def timeDurationCallback(msg): - global time_duration, start_time_duration, first_iteration - time_duration = msg.data - if first_iteration == 'True': - start_time_duration = time_duration - first_iteration = 'False' - -def runTimeCallback(msg): - global run_time - run_time = msg.data - -def exploredVolumeCallback(msg): - global explored_volume - explored_volume = msg.data - -def travelingDistanceCallback(msg): - global traveling_distance - traveling_distance = msg.data - -class Listener(Node): - - def __init__(self): - global time_duration, start_time_duration, explored_volume, traveling_distance, run_time, max_explored_volume, max_traveling_diatance, max_run_time, time_list1, time_list2, time_list3, run_time_list, explored_volume_list, traveling_distance_list - super().__init__('realTimePlot') - - self.fig=plt.figure(figsize=(8,7)) - self.fig1=self.fig.add_subplot(311) - plt.title("Exploration Metrics\n", fontsize=14) - plt.margins(x=0.001) - self.fig1.set_ylabel("Explored\nVolume (m$^3$)", fontsize=12) - self.l1, = self.fig1.plot(time_list2, explored_volume_list, color='r', label='Explored Volume') - self.fig2=self.fig.add_subplot(312) - self.fig2.set_ylabel("Traveling\nDistance (m)", fontsize=12) - self.l2, = self.fig2.plot(time_list3, traveling_distance_list, color='r', label='Traveling Distance') - self.fig3=self.fig.add_subplot(313) - self.fig3.set_ylabel("Algorithm\nRuntime (s)", fontsize=12) - self.fig3.set_xlabel("Time Duration (s)", fontsize=12) #only set once - self.l3, = self.fig3.plot(time_list1, run_time_list, color='r', label='Algorithm Runtime') - - self.fig.canvas.draw() - - self.count = 0 - - self.time_duration_subscription = self.create_subscription( - Float32, - 'time_duration', - timeDurationCallback, - 10) - self.time_duration_subscription # prevent unused variable warning - - self.runtime_subscription = self.create_subscription( - Float32, - 'runtime', - runTimeCallback, - 10) - self.runtime_subscription # prevent unused variable warning - - self.explored_volume_subscription = self.create_subscription( - Float32, - 'explored_volume', - exploredVolumeCallback, - 10) - self.explored_volume_subscription - - self.traveling_distance_subscription = self.create_subscription( - Float32, - 'traveling_distance', - travelingDistanceCallback, - 10) - self.traveling_distance_subscription - - timer_period = 0.01 # 100hz - self.timer = self.create_timer(timer_period, self.plot_callback) - - def plot_callback(self): - global time_duration, start_time_duration, explored_volume, traveling_distance, run_time, max_explored_volume, max_traveling_diatance, max_run_time, time_list1, time_list2, time_list3, run_time_list, explored_volume_list, traveling_distance_list - self.count = self.count + 1 - - if self.count % 25 == 0: - max_explored_volume = explored_volume - max_traveling_diatance = traveling_distance - if run_time > max_run_time: - max_run_time = run_time - - time_list2 = np.append(time_list2, time_duration) - explored_volume_list = np.append(explored_volume_list, explored_volume) - time_list3 = np.append(time_list3, time_duration) - traveling_distance_list = np.append(traveling_distance_list, traveling_distance) - time_list1 = np.append(time_list1, time_duration) - run_time_list = np.append(run_time_list, run_time) - - if self.count >= 100: - self.count = 0 - self.l1.set_xdata(time_list2) - self.l2.set_xdata(time_list3) - self.l3.set_xdata(time_list1) - self.l1.set_ydata(explored_volume_list) - self.l2.set_ydata(traveling_distance_list) - self.l3.set_ydata(run_time_list) - - self.fig1.set_ylim(0, max_explored_volume + 500) - self.fig1.set_xlim(start_time_duration, time_duration + 10) - self.fig2.set_ylim(0, max_traveling_diatance + 20) - self.fig2.set_xlim(start_time_duration, time_duration + 10) - self.fig3.set_ylim(0, max_run_time + 0.2) - self.fig3.set_xlim(start_time_duration, time_duration + 10) - - self.fig.canvas.draw() - plt.pause(0.01) - -def main(args=None): - rclpy.init(args=args) - - listener = Listener() - - rclpy.spin(listener) - - # Destroy the node explicitly - # (optional - otherwise it will be done automatically - # when the garbage collector destroys the node object) - listener.destroy_node() - rclpy.shutdown() - -if __name__ == '__main__': - main() diff --git a/visualization_tools/src/visualizationTools.cpp b/visualization_tools/src/visualizationTools.cpp deleted file mode 100644 index 759cd66..0000000 --- a/visualization_tools/src/visualizationTools.cpp +++ /dev/null @@ -1,318 +0,0 @@ -#include -#include -#include -#include -#include - -#include "rclcpp/rclcpp.hpp" -#include "rclcpp/time.hpp" -#include "builtin_interfaces/msg/time.hpp" - -#include "nav_msgs/msg/odometry.hpp" -#include "sensor_msgs/msg/point_cloud2.hpp" -#include -#include -#include - -#include "tf2/transform_datatypes.h" -#include "tf2_ros/transform_broadcaster.h" -#include "tf2_geometry_msgs/tf2_geometry_msgs.hpp" - -#include -#include -#include -#include -#include -#include - -#include "message_filters/subscriber.h" -#include "message_filters/synchronizer.h" -#include "message_filters/sync_policies/approximate_time.h" -#include "rmw/types.h" -#include "rmw/qos_profiles.h" - -using namespace std; - -const double PI = 3.1415926; - -string metricFile; -string trajFile; -string mapFile; -double overallMapVoxelSize = 0.5; -double exploredAreaVoxelSize = 0.3; -double exploredVolumeVoxelSize = 0.5; -double transInterval = 0.2; -double yawInterval = 10.0; -int overallMapDisplayInterval = 2; -int overallMapDisplayCount = 0; -int exploredAreaDisplayInterval = 1; -int exploredAreaDisplayCount = 0; - -pcl::PointCloud::Ptr laserCloud(new pcl::PointCloud()); -pcl::PointCloud::Ptr overallMapCloud(new pcl::PointCloud()); -pcl::PointCloud::Ptr overallMapCloudDwz(new pcl::PointCloud()); -pcl::PointCloud::Ptr exploredAreaCloud(new pcl::PointCloud()); -pcl::PointCloud::Ptr exploredAreaCloud2(new pcl::PointCloud()); -pcl::PointCloud::Ptr exploredVolumeCloud(new pcl::PointCloud()); -pcl::PointCloud::Ptr exploredVolumeCloud2(new pcl::PointCloud()); -pcl::PointCloud::Ptr trajectory(new pcl::PointCloud()); - -const int systemDelay = 5; -int systemDelayCount = 0; -bool systemDelayInited = false; -double systemTime = 0; -double systemInitTime = 0; -bool systemInited = false; - -float vehicleYaw = 0; -float vehicleX = 0, vehicleY = 0, vehicleZ = 0; -float exploredVolume = 0, travelingDis = 0, runtime = 0, timeDuration = 0; - -pcl::VoxelGrid overallMapDwzFilter; -pcl::VoxelGrid exploredAreaDwzFilter; -pcl::VoxelGrid exploredVolumeDwzFilter; - -sensor_msgs::msg::PointCloud2 overallMap2; - -shared_ptr> pubExploredAreaPtr; - -shared_ptr> pubTrajectoryPtr; - -shared_ptr> pubExploredVolumePtr; - -shared_ptr> pubTravelingDisPtr; - -shared_ptr> pubTimeDurationPtr; - -FILE *metricFilePtr = NULL; -FILE *trajFilePtr = NULL; - -void odometryHandler(const nav_msgs::msg::Odometry::ConstSharedPtr odom) -{ - systemTime = rclcpp::Time(odom->header.stamp).seconds(); - double roll, pitch, yaw; - geometry_msgs::msg::Quaternion geoQuat = odom->pose.pose.orientation; - tf2::Matrix3x3(tf2::Quaternion(geoQuat.x, geoQuat.y, geoQuat.z, geoQuat.w)).getRPY(roll, pitch, yaw); - - float dYaw = fabs(yaw - vehicleYaw); - if (dYaw > PI) dYaw = 2 * PI - dYaw; - - float dx = odom->pose.pose.position.x - vehicleX; - float dy = odom->pose.pose.position.y - vehicleY; - float dz = odom->pose.pose.position.z - vehicleZ; - float dis = sqrt(dx * dx + dy * dy + dz * dz); - - if (!systemDelayInited) { - vehicleYaw = yaw; - vehicleX = odom->pose.pose.position.x; - vehicleY = odom->pose.pose.position.y; - vehicleZ = odom->pose.pose.position.z; - return; - } - - if (systemInited) { - timeDuration = systemTime - systemInitTime; - - std_msgs::msg::Float32 timeDurationMsg; - timeDurationMsg.data = timeDuration; - pubTimeDurationPtr->publish(timeDurationMsg); - } - - if (dis < transInterval && dYaw < yawInterval) { - return; - } - - if (!systemInited) { - dis = 0; - systemInitTime = systemTime; - systemInited = true; - } - - travelingDis += dis; - - vehicleYaw = yaw; - vehicleX = odom->pose.pose.position.x; - vehicleY = odom->pose.pose.position.y; - vehicleZ = odom->pose.pose.position.z; - - fprintf(trajFilePtr, "%f %f %f %f %f %f %f\n", vehicleX, vehicleY, vehicleZ, roll, pitch, yaw, timeDuration); - - pcl::PointXYZI point; - point.x = vehicleX; - point.y = vehicleY; - point.z = vehicleZ; - point.intensity = travelingDis; - trajectory->push_back(point); - - sensor_msgs::msg::PointCloud2 trajectory2; - pcl::toROSMsg(*trajectory, trajectory2); - trajectory2.header.stamp = odom->header.stamp; - trajectory2.header.frame_id = "odom"; - pubTrajectoryPtr->publish(trajectory2); -} - -void laserCloudHandler(const sensor_msgs::msg::PointCloud2::ConstSharedPtr laserCloudIn) -{ - if (!systemDelayInited) { - systemDelayCount++; - if (systemDelayCount > systemDelay) { - systemDelayInited = true; - } - } - - if (!systemInited) { - return; - } - - laserCloud->clear(); - pcl::fromROSMsg(*laserCloudIn, *laserCloud); - - *exploredVolumeCloud += *laserCloud; - - exploredVolumeCloud2->clear(); - exploredVolumeDwzFilter.setInputCloud(exploredVolumeCloud); - exploredVolumeDwzFilter.filter(*exploredVolumeCloud2); - - pcl::PointCloud::Ptr tempCloud = exploredVolumeCloud; - exploredVolumeCloud = exploredVolumeCloud2; - exploredVolumeCloud2 = tempCloud; - - exploredVolume = exploredVolumeVoxelSize * exploredVolumeVoxelSize * - exploredVolumeVoxelSize * exploredVolumeCloud->points.size(); - - *exploredAreaCloud += *laserCloud; - - exploredAreaDisplayCount++; - if (exploredAreaDisplayCount >= 5 * exploredAreaDisplayInterval) { - exploredAreaCloud2->clear(); - exploredAreaDwzFilter.setInputCloud(exploredAreaCloud); - exploredAreaDwzFilter.filter(*exploredAreaCloud2); - - tempCloud = exploredAreaCloud; - exploredAreaCloud = exploredAreaCloud2; - exploredAreaCloud2 = tempCloud; - - sensor_msgs::msg::PointCloud2 exploredArea2; - pcl::toROSMsg(*exploredAreaCloud, exploredArea2); - exploredArea2.header.stamp = laserCloudIn->header.stamp; - exploredArea2.header.frame_id = "map"; - pubExploredAreaPtr->publish(exploredArea2); - - exploredAreaDisplayCount = 0; - } - - fprintf(metricFilePtr, "%f %f %f %f\n", exploredVolume, travelingDis, runtime, timeDuration); - - std_msgs::msg::Float32 exploredVolumeMsg; - exploredVolumeMsg.data = exploredVolume; - pubExploredVolumePtr->publish(exploredVolumeMsg); - - std_msgs::msg::Float32 travelingDisMsg; - travelingDisMsg.data = travelingDis; - pubTravelingDisPtr->publish(travelingDisMsg); -} - -void runtimeHandler(const std_msgs::msg::Float32::ConstSharedPtr runtimeIn) -{ - runtime = runtimeIn->data; -} - -int main(int argc, char** argv) -{ - rclcpp::init(argc, argv); - auto nh = rclcpp::Node::make_shared("visualizationTools"); - - nh->declare_parameter("metricFile", metricFile); - nh->declare_parameter("trajFile", trajFile); - nh->declare_parameter("mapFile", mapFile); - nh->declare_parameter("overallMapVoxelSize", overallMapVoxelSize); - nh->declare_parameter("exploredAreaVoxelSize", exploredAreaVoxelSize); - nh->declare_parameter("exploredVolumeVoxelSize", exploredVolumeVoxelSize); - nh->declare_parameter("transInterval", transInterval); - nh->declare_parameter("yawInterval", yawInterval); - nh->declare_parameter("overallMapDisplayInterval", overallMapDisplayInterval); - nh->declare_parameter("exploredAreaDisplayInterval", exploredAreaDisplayInterval); - - nh->get_parameter("metricFile", metricFile); - nh->get_parameter("trajFile", trajFile); - nh->get_parameter("mapFile", mapFile); - nh->get_parameter("overallMapVoxelSize", overallMapVoxelSize); - nh->get_parameter("exploredAreaVoxelSize", exploredAreaVoxelSize); - nh->get_parameter("exploredVolumeVoxelSize", exploredVolumeVoxelSize); - nh->get_parameter("transInterval", transInterval); - nh->get_parameter("yawInterval", yawInterval); - nh->get_parameter("overallMapDisplayInterval", overallMapDisplayInterval); - nh->get_parameter("exploredAreaDisplayInterval", exploredAreaDisplayInterval); - - // No direct replacement present for $(find pkg) in ROS2. Edit file path. - metricFile.replace(metricFile.find("/install/"), 8, "/src"); - trajFile.replace(trajFile.find("/install/"), 8, "/src"); - - auto subOdometry = nh->create_subscription("odometry", 5, odometryHandler); - - auto subLaserCloud = nh->create_subscription("registered_scan", 5, laserCloudHandler); - - auto subRuntime = nh->create_subscription("runtime", 5, runtimeHandler); - - auto pubOverallMap = nh->create_publisher("overall_map", 5); - - pubExploredAreaPtr = nh->create_publisher("explored_areas", 5); - - pubTrajectoryPtr = nh->create_publisher("trajectory", 5); - - pubExploredVolumePtr = nh->create_publisher("explored_volume", 5); - - pubTravelingDisPtr = nh->create_publisher("traveling_distance", 5); - - pubTimeDurationPtr = nh->create_publisher("time_duration", 5); - - overallMapDwzFilter.setLeafSize(overallMapVoxelSize, overallMapVoxelSize, overallMapVoxelSize); - exploredAreaDwzFilter.setLeafSize(exploredAreaVoxelSize, exploredAreaVoxelSize, exploredAreaVoxelSize); - exploredVolumeDwzFilter.setLeafSize(exploredVolumeVoxelSize, exploredVolumeVoxelSize, exploredVolumeVoxelSize); - - pcl::PLYReader ply_reader; - if (ply_reader.read(mapFile, *overallMapCloud) == -1) { - RCLCPP_INFO(nh->get_logger(), "Couldn't read pointcloud.ply file."); - } - - overallMapCloudDwz->clear(); - overallMapDwzFilter.setInputCloud(overallMapCloud); - overallMapDwzFilter.filter(*overallMapCloudDwz); - overallMapCloud->clear(); - - pcl::toROSMsg(*overallMapCloudDwz, overallMap2); - - time_t logTime = time(0); - tm *ltm = localtime(&logTime); - string timeString = to_string(1900 + ltm->tm_year) + "-" + to_string(1 + ltm->tm_mon) + "-" + to_string(ltm->tm_mday) + "-" + - to_string(ltm->tm_hour) + "-" + to_string(ltm->tm_min) + "-" + to_string(ltm->tm_sec); - - metricFile += "_" + timeString + ".txt"; - trajFile += "_" + timeString + ".txt"; - metricFilePtr = fopen(metricFile.c_str(), "w"); - trajFilePtr = fopen(trajFile.c_str(), "w"); - - rclcpp::Rate rate(100); - bool status = rclcpp::ok(); - while (status) { - rclcpp::spin_some(nh); - overallMapDisplayCount++; - if (overallMapDisplayCount >= 100 * overallMapDisplayInterval) { - overallMap2.header.stamp = rclcpp::Time(static_cast(systemTime * 1e9)); - overallMap2.header.frame_id = "map"; - pubOverallMap->publish(overallMap2); - - overallMapDisplayCount = 0; - } - - status = rclcpp::ok(); - rate.sleep(); - } - - fclose(metricFilePtr); - fclose(trajFilePtr); - - RCLCPP_INFO(nh->get_logger(), "Exploration metrics and vehicle trajectory are saved in 'src/vehicle_simulator/log'."); - - return 0; -} diff --git a/visualization_tools/visualization_tools/__init__.py b/visualization_tools/visualization_tools/__init__.py deleted file mode 100644 index e69de29..0000000