gitextract_7zef6l42/ ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml ├── .gitignore ├── .idea/ │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── jsLibraryMappings.xml │ ├── libraries/ │ │ ├── OSM2World.xml │ │ ├── annotations_java8.xml │ │ ├── com_google_code_findbugs_jsr305_3_0_2.xml │ │ ├── commons_math3_3_0.xml │ │ ├── commons_math3_3_01.xml │ │ ├── configuration.xml │ │ ├── configuration1.xml │ │ ├── guava_20_0.xml │ │ ├── guava_20_01.xml │ │ ├── jackson.xml │ │ ├── jackson1.xml │ │ ├── javailp_1_2a.xml │ │ ├── javailp_1_2a1.xml │ │ ├── javaproj_1_0_6.xml │ │ ├── javaproj_1_0_61.xml │ │ ├── jewelcli_0_6.xml │ │ ├── jewelcli_0_61.xml │ │ ├── jogl.xml │ │ ├── jogl1.xml │ │ ├── jquery_2_1_4_min.xml │ │ ├── jts.xml │ │ ├── jts1.xml │ │ ├── lpsolve55j.xml │ │ ├── lpsolve55j1.xml │ │ ├── osmosis.xml │ │ ├── osmosis1.xml │ │ ├── pngj_2_0_0.xml │ │ ├── pngj_2_0_01.xml │ │ ├── poly2tri_core_0_1_1_SNAPSHOT.xml │ │ ├── poly2tri_core_0_1_1_SNAPSHOT1.xml │ │ ├── slf4j.xml │ │ ├── slf4j1.xml │ │ ├── trove.xml │ │ └── trove1.xml │ ├── misc.xml │ ├── modules.xml │ ├── touch-mapper.iml │ ├── vcs.xml │ └── workspace.xml ├── .vscode/ │ └── settings.json ├── AGENTS.md ├── COPYING.txt ├── Makefile ├── OSM2World/ │ ├── .classpath │ ├── .gitignore │ ├── .project │ ├── .vscode/ │ │ └── settings.json │ ├── COPYING.txt │ ├── OSM2World.iml │ ├── build-adds/ │ │ ├── example_config.properties │ │ ├── osm2world-windows.bat │ │ └── osm2world.sh │ ├── build.xml │ ├── gpl.txt │ ├── lgpl.txt │ ├── lib/ │ │ ├── commons/ │ │ │ └── commons-math3-3.0.jar │ │ ├── configuration/ │ │ │ ├── LICENSE.txt │ │ │ ├── commons-collections-3.2.1.jar │ │ │ ├── commons-configuration-1.6.jar │ │ │ ├── commons-lang-2.6.jar │ │ │ └── commons-logging-1.1.1.jar │ │ ├── guava/ │ │ │ ├── COPYING │ │ │ └── guava-20.0.jar │ │ ├── jackson/ │ │ │ ├── jackson-annotations-2.8.0.jar │ │ │ ├── jackson-core-2.8.6.jar │ │ │ └── jackson-databind-2.3.1.jar │ │ ├── javailp/ │ │ │ └── javailp-1.2a.jar │ │ ├── javaproj/ │ │ │ └── javaproj-1.0.6.jar │ │ ├── jewelcli/ │ │ │ └── jewelcli-0.6.jar │ │ ├── jogl/ │ │ │ ├── gluegen-rt-natives-linux-amd64.jar │ │ │ ├── gluegen-rt-natives-linux-i586.jar │ │ │ ├── gluegen-rt-natives-macosx-universal.jar │ │ │ ├── gluegen-rt-natives-windows-amd64.jar │ │ │ ├── gluegen-rt-natives-windows-i586.jar │ │ │ ├── gluegen-rt.jar │ │ │ ├── jogl-all-natives-linux-amd64.jar │ │ │ ├── jogl-all-natives-linux-i586.jar │ │ │ ├── jogl-all-natives-macosx-universal.jar │ │ │ ├── jogl-all-natives-windows-amd64.jar │ │ │ ├── jogl-all-natives-windows-i586.jar │ │ │ ├── jogl-all.jar │ │ │ └── jogl.LICENSE.txt │ │ ├── jsr305-3.0.2.jar │ │ ├── jts/ │ │ │ ├── LICENSE.txt │ │ │ └── jts-1.11.jar │ │ ├── lp_solve/ │ │ │ ├── LGPL │ │ │ ├── README.html │ │ │ ├── lpsolve55j.jar │ │ │ ├── ux32/ │ │ │ │ ├── liblpsolve55.a │ │ │ │ └── lp_solve │ │ │ └── ux64/ │ │ │ ├── liblpsolve55.a │ │ │ └── lp_solve │ │ ├── osmosis/ │ │ │ ├── commons-compress-1.2.jar │ │ │ ├── copying.txt │ │ │ ├── osmosis-core-0.41.jar │ │ │ ├── osmosis-pbf-0.41.jar │ │ │ ├── osmosis-xml-0.41.jar │ │ │ ├── osmpbf-1.1.1-754a33af.jar │ │ │ ├── protobuf-java-2.4.1.jar │ │ │ └── xercesImpl-2.9.1.jar │ │ ├── pngj/ │ │ │ └── pngj-2.0.0.jar │ │ ├── poly2tri/ │ │ │ ├── LICENSE.txt │ │ │ └── poly2tri-core-0.1.1-SNAPSHOT.jar │ │ ├── slf4j/ │ │ │ ├── LICENSE.txt │ │ │ ├── slf4j-api-1.7.5.jar │ │ │ └── slf4j-simple-1.7.5.jar │ │ └── trove/ │ │ ├── AUTHORS.txt │ │ ├── LICENSE.txt │ │ ├── README-license.txt │ │ ├── README.txt │ │ ├── trove-111118193120.jar │ │ └── trove-3.0.1-src.jar │ ├── osm2world-rel20160312-to-bdb0c396e899ee9.patch │ ├── resources/ │ │ ├── osm2world_definitions.inc │ │ └── shaders/ │ │ ├── background.fragment │ │ ├── background.vertex │ │ ├── default.fragment │ │ ├── default.vertex │ │ ├── nonarea.fragment │ │ ├── nonarea.vertex │ │ ├── shadowmap.fragment │ │ ├── shadowmap.vertex │ │ ├── shadowvolume.fragment │ │ └── shadowvolume.vertex │ ├── src/ │ │ └── org/ │ │ ├── openstreetmap/ │ │ │ └── josm/ │ │ │ └── plugins/ │ │ │ └── graphview/ │ │ │ └── core/ │ │ │ ├── data/ │ │ │ │ ├── DataSource.java │ │ │ │ ├── DataSourceObserver.java │ │ │ │ ├── EmptyTagGroup.java │ │ │ │ ├── MapBasedTagGroup.java │ │ │ │ ├── Tag.java │ │ │ │ ├── TagGroup.java │ │ │ │ └── osmosis/ │ │ │ │ └── OSMFileDataSource.java │ │ │ └── util/ │ │ │ └── ValueStringParser.java │ │ └── osm2world/ │ │ ├── console/ │ │ │ ├── CLIArguments.java │ │ │ ├── CLIArgumentsGroup.java │ │ │ ├── CLIArgumentsUtil.java │ │ │ ├── ImageExporter.java │ │ │ ├── LatLonEle.java │ │ │ ├── OSM2World.java │ │ │ ├── Output.java │ │ │ ├── Resolution.java │ │ │ ├── package-info.java │ │ │ └── package.html │ │ ├── core/ │ │ │ ├── ConversionFacade.java │ │ │ ├── GlobalValues.java │ │ │ ├── heightmap/ │ │ │ │ ├── creation/ │ │ │ │ │ ├── EmptyTerrainElevationGrid.java │ │ │ │ │ ├── FlatTerrainElevation.java │ │ │ │ │ └── WaveTerrainElevation.java │ │ │ │ ├── data/ │ │ │ │ │ ├── AbstractCellularTerrainElevation.java │ │ │ │ │ ├── CellularTerrainElevation.java │ │ │ │ │ ├── TerrainElevation.java │ │ │ │ │ ├── TerrainElevationCell.java │ │ │ │ │ └── TerrainPoint.java │ │ │ │ └── package.html │ │ │ ├── map_data/ │ │ │ │ ├── creation/ │ │ │ │ │ ├── EmptyTerrainBuilder.java │ │ │ │ │ ├── LatLon.java │ │ │ │ │ ├── MapProjection.java │ │ │ │ │ ├── MercatorProjection.java │ │ │ │ │ ├── MetricMapProjection.java │ │ │ │ │ ├── MultipolygonAreaBuilder.java │ │ │ │ │ ├── OSMToMapDataConverter.java │ │ │ │ │ ├── OriginMapProjection.java │ │ │ │ │ ├── OrthographicAzimuthalMapProjection.java │ │ │ │ │ └── index/ │ │ │ │ │ ├── Map2dTree.java │ │ │ │ │ ├── MapDataIndex.java │ │ │ │ │ ├── MapIntersectionGrid.java │ │ │ │ │ └── MapQuadtree.java │ │ │ │ ├── data/ │ │ │ │ │ ├── MapArea.java │ │ │ │ │ ├── MapAreaSegment.java │ │ │ │ │ ├── MapData.java │ │ │ │ │ ├── MapElement.java │ │ │ │ │ ├── MapNode.java │ │ │ │ │ ├── MapSegment.java │ │ │ │ │ ├── MapWaySegment.java │ │ │ │ │ └── overlaps/ │ │ │ │ │ ├── MapIntersectionWW.java │ │ │ │ │ ├── MapOverlap.java │ │ │ │ │ ├── MapOverlapAA.java │ │ │ │ │ ├── MapOverlapNA.java │ │ │ │ │ ├── MapOverlapType.java │ │ │ │ │ └── MapOverlapWA.java │ │ │ │ ├── object_info/ │ │ │ │ │ ├── AddressGatherer.java │ │ │ │ │ ├── BaseObject.java │ │ │ │ │ ├── MapMetaWriter.java │ │ │ │ │ ├── ObjectInfoManager.java │ │ │ │ │ ├── ObjectType.java │ │ │ │ │ ├── PoiObject.java │ │ │ │ │ ├── Point.java │ │ │ │ │ ├── TouchMapperCategory.java │ │ │ │ │ └── WayObject.java │ │ │ │ └── package.html │ │ │ ├── map_elevation/ │ │ │ │ ├── creation/ │ │ │ │ │ ├── BridgeTunnelElevationCalculator.java │ │ │ │ │ ├── DelaunayTriangulation.java │ │ │ │ │ ├── EleConstraintEnforcer.java │ │ │ │ │ ├── EleConstraintValidator.java │ │ │ │ │ ├── EleTagElevationCalculator.java │ │ │ │ │ ├── ElevationCalculator.java │ │ │ │ │ ├── InverseDistanceWeightingInterpolator.java │ │ │ │ │ ├── LPEleConstraintEnforcer.java │ │ │ │ │ ├── LeastSquaresInterpolator.java │ │ │ │ │ ├── LevelTagElevationCalculator.java │ │ │ │ │ ├── LinearInterpolator.java │ │ │ │ │ ├── NNDebugViewer.java │ │ │ │ │ ├── NaturalNeighborInterpolator.java │ │ │ │ │ ├── NoneEleConstraintEnforcer.java │ │ │ │ │ ├── SRTMData.java │ │ │ │ │ ├── SRTMTile.java │ │ │ │ │ ├── SimpleEleConstraintEnforcer.java │ │ │ │ │ ├── TagElevationCalculator.java │ │ │ │ │ ├── TerrainElevationData.java │ │ │ │ │ ├── TerrainInterpolator.java │ │ │ │ │ ├── ZeroElevationCalculator.java │ │ │ │ │ └── ZeroInterpolator.java │ │ │ │ ├── data/ │ │ │ │ │ ├── AreaElevationProfile.java │ │ │ │ │ ├── EleConnector.java │ │ │ │ │ ├── EleConnectorGroup.java │ │ │ │ │ ├── ElevationProfile.java │ │ │ │ │ ├── GroundState.java │ │ │ │ │ ├── LPVariablePair.java │ │ │ │ │ ├── NodeElevationProfile.java │ │ │ │ │ └── WaySegmentElevationProfile.java │ │ │ │ └── package.html │ │ │ ├── math/ │ │ │ │ ├── AxisAlignedBoundingBoxXYZ.java │ │ │ │ ├── AxisAlignedBoundingBoxXZ.java │ │ │ │ ├── GeometryUtil.java │ │ │ │ ├── InvalidGeometryException.java │ │ │ │ ├── JTSConversionUtil.java │ │ │ │ ├── LineSegmentXYZ.java │ │ │ │ ├── LineSegmentXZ.java │ │ │ │ ├── Poly2TriUtil.java │ │ │ │ ├── PolygonWithHolesXZ.java │ │ │ │ ├── PolygonXYZ.java │ │ │ │ ├── PolygonXZ.java │ │ │ │ ├── SimplePolygonXZ.java │ │ │ │ ├── TriangleXYZ.java │ │ │ │ ├── TriangleXYZWithNormals.java │ │ │ │ ├── TriangleXZ.java │ │ │ │ ├── Vector3D.java │ │ │ │ ├── Vector4D.java │ │ │ │ ├── VectorGridXZ.java │ │ │ │ ├── VectorXYZ.java │ │ │ │ ├── VectorXYZW.java │ │ │ │ ├── VectorXZ.java │ │ │ │ ├── algorithms/ │ │ │ │ │ ├── CAGUtil.java │ │ │ │ │ ├── EarClippingTriangulationUtil.java │ │ │ │ │ ├── JTSTriangulationUtil.java │ │ │ │ │ ├── NormalCalculationUtil.java │ │ │ │ │ ├── Poly2TriTriangulationUtil.java │ │ │ │ │ ├── TriangulationInputSanitizer.java │ │ │ │ │ └── TriangulationUtil.java │ │ │ │ ├── datastructures/ │ │ │ │ │ ├── IntersectionGrid.java │ │ │ │ │ └── IntersectionTestObject.java │ │ │ │ └── package.html │ │ │ ├── osm/ │ │ │ │ ├── creation/ │ │ │ │ │ ├── JOSMFileHack.java │ │ │ │ │ ├── OSMDataReader.java │ │ │ │ │ └── OsmosisReader.java │ │ │ │ ├── data/ │ │ │ │ │ ├── OSMData.java │ │ │ │ │ ├── OSMElement.java │ │ │ │ │ ├── OSMMember.java │ │ │ │ │ ├── OSMNode.java │ │ │ │ │ ├── OSMRelation.java │ │ │ │ │ └── OSMWay.java │ │ │ │ ├── package.html │ │ │ │ └── ruleset/ │ │ │ │ ├── HardcodedRuleset.java │ │ │ │ └── Ruleset.java │ │ │ ├── target/ │ │ │ │ ├── Renderable.java │ │ │ │ ├── RenderableToAllTargets.java │ │ │ │ ├── Target.java │ │ │ │ ├── TargetUtil.java │ │ │ │ ├── common/ │ │ │ │ │ ├── AbstractTarget.java │ │ │ │ │ ├── FaceTarget.java │ │ │ │ │ ├── Primitive.java │ │ │ │ │ ├── PrimitiveTarget.java │ │ │ │ │ ├── RenderableToFaceTarget.java │ │ │ │ │ ├── RenderableToPrimitiveTarget.java │ │ │ │ │ ├── TextureData.java │ │ │ │ │ ├── lighting/ │ │ │ │ │ │ └── GlobalLightingParameters.java │ │ │ │ │ ├── material/ │ │ │ │ │ │ ├── ConfMaterial.java │ │ │ │ │ │ ├── ImmutableMaterial.java │ │ │ │ │ │ ├── Material.java │ │ │ │ │ │ ├── Materials.java │ │ │ │ │ │ ├── NamedTexCoordFunction.java │ │ │ │ │ │ ├── TexCoordFunction.java │ │ │ │ │ │ └── TexCoordUtil.java │ │ │ │ │ └── rendering/ │ │ │ │ │ ├── Camera.java │ │ │ │ │ ├── OrthoTilesUtil.java │ │ │ │ │ ├── Projection.java │ │ │ │ │ └── TileNumber.java │ │ │ │ ├── jogl/ │ │ │ │ │ ├── AbstractJOGLTarget.java │ │ │ │ │ ├── AbstractPrimitiveShader.java │ │ │ │ │ ├── AbstractShader.java │ │ │ │ │ ├── BackgroundShader.java │ │ │ │ │ ├── DefaultShader.java │ │ │ │ │ ├── DepthBufferShader.java │ │ │ │ │ ├── JOGLRenderer.java │ │ │ │ │ ├── JOGLRendererDisplayList.java │ │ │ │ │ ├── JOGLRendererVBO.java │ │ │ │ │ ├── JOGLRendererVBOFixedFunction.java │ │ │ │ │ ├── JOGLRendererVBONonAreaShader.java │ │ │ │ │ ├── JOGLRendererVBOShader.java │ │ │ │ │ ├── JOGLRendererVBOShadowVolume.java │ │ │ │ │ ├── JOGLRenderingParameters.java │ │ │ │ │ ├── JOGLTarget.java │ │ │ │ │ ├── JOGLTargetFixedFunction.java │ │ │ │ │ ├── JOGLTargetShader.java │ │ │ │ │ ├── JOGLTextureManager.java │ │ │ │ │ ├── NonAreaPrimitive.java │ │ │ │ │ ├── NonAreaShader.java │ │ │ │ │ ├── PrimitiveBuffer.java │ │ │ │ │ ├── RenderableToJOGL.java │ │ │ │ │ ├── SSAOShader.java │ │ │ │ │ ├── ShaderManager.java │ │ │ │ │ ├── ShadowMapShader.java │ │ │ │ │ ├── ShadowVolumeShader.java │ │ │ │ │ ├── VBOData.java │ │ │ │ │ ├── VBODataFixedFunction.java │ │ │ │ │ ├── VBODataNonAreaShader.java │ │ │ │ │ ├── VBODataShader.java │ │ │ │ │ └── VBODataShadowVolume.java │ │ │ │ ├── obj/ │ │ │ │ │ ├── ObjTarget.java │ │ │ │ │ ├── ObjWriter.java │ │ │ │ │ ├── RenderableToObj.java │ │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ ├── povray/ │ │ │ │ │ ├── POVRayTarget.java │ │ │ │ │ ├── POVRayWriter.java │ │ │ │ │ ├── RenderableToPOVRay.java │ │ │ │ │ └── package.html │ │ │ │ └── statistics/ │ │ │ │ └── StatisticsTarget.java │ │ │ ├── util/ │ │ │ │ ├── ConfigUtil.java │ │ │ │ ├── FaultTolerantIterationUtil.java │ │ │ │ ├── IgnoredExceptionLog.java │ │ │ │ ├── MinMaxUtil.java │ │ │ │ ├── Predicates.java │ │ │ │ ├── TouchMapperProfile.java │ │ │ │ ├── TriangulationConfig.java │ │ │ │ ├── exception/ │ │ │ │ │ └── TriangulationException.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── DefaultFactory.java │ │ │ │ │ └── Factory.java │ │ │ │ └── package.html │ │ │ └── world/ │ │ │ ├── creation/ │ │ │ │ ├── NetworkCalculator.java │ │ │ │ ├── WorldCreator.java │ │ │ │ └── WorldModule.java │ │ │ ├── data/ │ │ │ │ ├── AbstractAreaWorldObject.java │ │ │ │ ├── AreaWorldObject.java │ │ │ │ ├── NoOutlineNodeWorldObject.java │ │ │ │ ├── NoOutlineWaySegmentWorldObject.java │ │ │ │ ├── NodeWorldObject.java │ │ │ │ ├── OutlineNodeWorldObject.java │ │ │ │ ├── TerrainBoundaryWorldObject.java │ │ │ │ ├── WaySegmentWorldObject.java │ │ │ │ ├── WorldObject.java │ │ │ │ └── WorldObjectWithOutline.java │ │ │ ├── modules/ │ │ │ │ ├── BarrierModule.java │ │ │ │ ├── BridgeModule.java │ │ │ │ ├── BuildingModule.java │ │ │ │ ├── CliffModule.java │ │ │ │ ├── GolfModule.java │ │ │ │ ├── InvisibleModule.java │ │ │ │ ├── ParkingModule.java │ │ │ │ ├── PoolModule.java │ │ │ │ ├── PowerModule.java │ │ │ │ ├── RailwayModule.java │ │ │ │ ├── RoadModule.java │ │ │ │ ├── StreetFurnitureModule.java │ │ │ │ ├── SurfaceAreaModule.java │ │ │ │ ├── TrafficSignModule.java │ │ │ │ ├── TreeModule.java │ │ │ │ ├── TunnelModule.java │ │ │ │ ├── WaterModule.java │ │ │ │ └── common/ │ │ │ │ ├── AbstractModule.java │ │ │ │ ├── BridgeOrTunnel.java │ │ │ │ ├── ConfigurableWorldModule.java │ │ │ │ ├── WorldModuleBillboardUtil.java │ │ │ │ ├── WorldModuleGeometryUtil.java │ │ │ │ └── WorldModuleParseUtil.java │ │ │ ├── network/ │ │ │ │ ├── AbstractNetworkWaySegmentWorldObject.java │ │ │ │ ├── JunctionNodeWorldObject.java │ │ │ │ ├── NetworkAreaWorldObject.java │ │ │ │ ├── NetworkWaySegmentWorldObject.java │ │ │ │ ├── VisibleConnectorNodeWorldObject.java │ │ │ │ └── package.html │ │ │ └── package.html │ │ └── viewer/ │ │ ├── Viewer.java │ │ ├── control/ │ │ │ ├── actions/ │ │ │ │ ├── AboutAction.java │ │ │ │ ├── AbstractExportAction.java │ │ │ │ ├── ExitAction.java │ │ │ │ ├── ExportObjAction.java │ │ │ │ ├── ExportObjDirAction.java │ │ │ │ ├── ExportPOVRayAction.java │ │ │ │ ├── ExportScreenshotAction.java │ │ │ │ ├── HelpControlsAction.java │ │ │ │ ├── OpenOSMAction.java │ │ │ │ ├── OrthoBoundsAction.java │ │ │ │ ├── OrthoTileAction.java │ │ │ │ ├── ReloadOSMAction.java │ │ │ │ ├── ResetCameraAction.java │ │ │ │ ├── SetCameraToCoordinateAction.java │ │ │ │ ├── SetEleConstraintEnforcerAction.java │ │ │ │ ├── SetTerrainInterpolatorAction.java │ │ │ │ ├── ShowCameraConfigurationAction.java │ │ │ │ ├── StatisticsAction.java │ │ │ │ ├── ToggleBackfaceCullingAction.java │ │ │ │ ├── ToggleDebugViewAction.java │ │ │ │ ├── ToggleOrthographicProjectionAction.java │ │ │ │ ├── ToggleTerrainAction.java │ │ │ │ ├── ToggleWireframeAction.java │ │ │ │ └── ToggleWorldObjectsAction.java │ │ │ └── navigation/ │ │ │ └── DefaultNavigation.java │ │ ├── model/ │ │ │ ├── Data.java │ │ │ ├── Defaults.java │ │ │ ├── MessageManager.java │ │ │ └── RenderOptions.java │ │ ├── package.html │ │ └── view/ │ │ ├── FileDrop.java │ │ ├── ProgressDialog.java │ │ ├── RecentFilesUpdater.java │ │ ├── StatisticsDialog.java │ │ ├── TextRenderer.java │ │ ├── TextRendererFixedFunction.java │ │ ├── TextRendererShader.java │ │ ├── ViewerFrame.java │ │ ├── ViewerGLCanvas.java │ │ └── debug/ │ │ ├── ClearingDebugView.java │ │ ├── DebugView.java │ │ ├── EleConnectorDebugView.java │ │ ├── EleConstraintDebugView.java │ │ ├── EleDebugView.java │ │ ├── FaceDebugView.java │ │ ├── HelpView.java │ │ ├── InternalCoordsDebugView.java │ │ ├── InverseDistanceWeightingInterpolatorDebugView.java │ │ ├── LatLonDebugView.java │ │ ├── LeastSquaresInterpolatorDebugView.java │ │ ├── LinearInterpolatorDebugView.java │ │ ├── Map2dTreeDebugView.java │ │ ├── MapDataBoundsDebugView.java │ │ ├── MapDataDebugView.java │ │ ├── NaturalNeighborInterpolatorDebugView.java │ │ ├── NetworkDebugView.java │ │ ├── OrthoBoundsDebugView.java │ │ ├── QuadtreeDebugView.java │ │ ├── RoofDataDebugView.java │ │ ├── ShadowView.java │ │ ├── SkyboxView.java │ │ ├── TerrainBoundaryAABBDebugView.java │ │ ├── TerrainBoundaryDebugView.java │ │ ├── TerrainInterpolatorDebugView.java │ │ ├── WorldObjectNormalsDebugView.java │ │ └── WorldObjectView.java │ └── test/ │ ├── files/ │ │ ├── coastline_big_island.osm │ │ ├── coastline_islands.osm │ │ ├── coastline_islands_and_coast.osm │ │ ├── coastline_multiple_coasts.osm │ │ ├── mp_two_holes.osm │ │ ├── mp_two_holes_advanced.osm │ │ ├── mp_two_holes_advanced2.osm │ │ ├── mp_two_holes_outer_tagged.osm │ │ ├── mp_two_holes_touching_inners.osm │ │ ├── sameCoordNodes.osm │ │ ├── self_intersection.osm │ │ └── validFile.osm │ └── org/ │ ├── openstreetmap/ │ │ └── josm/ │ │ └── plugins/ │ │ └── graphview/ │ │ └── util/ │ │ └── ValueStringParserTest.java │ └── osm2world/ │ ├── DelaunayTriangulationTest.java │ └── core/ │ ├── map_data/ │ │ └── creation/ │ │ ├── OSMToMapDataConverterTest.java │ │ └── OrthographicAzimuthalMapProjectionTest.java │ ├── math/ │ │ ├── GeometryUtilTest.java │ │ ├── PolygonXZTest.java │ │ ├── SimplePolygonXZTest.java │ │ ├── TriangleXYZTest.java │ │ ├── TriangleXZTest.java │ │ ├── VectorXYZTest.java │ │ ├── VectorXZTest.java │ │ └── algorithms/ │ │ ├── CAGUtilTest.java │ │ ├── EarClippingTriangulationTest.java │ │ ├── NormalCalculationUtilTest.java │ │ ├── Poly2TriTriangulationUtilTest.java │ │ └── TriangulationInputSanitizerTest.java │ ├── osm/ │ │ └── creation/ │ │ └── OsmosisReaderTest.java │ ├── target/ │ │ └── common/ │ │ └── FaceTargetTest.java │ ├── test/ │ │ └── TestUtil.java │ ├── util/ │ │ └── TriangulationConfigTest.java │ └── world/ │ └── modules/ │ └── PowerModuleTest.java ├── README.md ├── TODO ├── agpl-3.0.txt ├── bin/ │ ├── monitor-converter.sh │ ├── repro-until-failure.py │ ├── summarize-monitor-log.py │ └── tmpctl ├── converter/ │ ├── .gitignore │ ├── clip-2d.js │ ├── map_desc/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── areas_raster.py │ │ ├── areas_raster_debug.py │ │ ├── feature_semantics.py │ │ ├── map-description-classifications.json │ │ ├── map_desc_loc_segments.py │ │ ├── map_desc_render.py │ │ └── ways_clip.py │ ├── obj-to-tactile.py │ ├── osm-to-tactile.py │ ├── poller.sh │ ├── process-request.py │ ├── prune-only-big-roads.js │ ├── run-stats-quicktime-smoke.py │ ├── stats_pipeline.py │ ├── tactile_constants.py │ ├── telemetry.py │ └── upload-pending-stats.py ├── doc/ │ ├── application-stats-telemetry.md │ ├── converter-pipeline-stages.md │ ├── creating-new-server.doc │ ├── deployed-map-inspection.md │ ├── development-conventions.md │ ├── development-setup.md │ ├── map-content-verification.md │ ├── map-description-introspection.md │ ├── map-description-model-schema.md │ ├── touch-mapper-en.txt │ ├── touch-mapper-fi.txt │ ├── ui-visual-baseline.md │ └── way-area-extrusion-tiers.md ├── init.sh ├── install/ │ ├── .gitignore │ ├── cloudformation-update.sh │ ├── cloudformation.json │ ├── ec2-init.sh │ ├── ec2-restart-pollers.sh │ ├── lambda-email-sending.py │ ├── lambda-update.sh │ ├── package.sh │ ├── parameters.sh │ ├── run-dev-converter.sh │ ├── setup-ec2.sh │ └── web-s3.sh ├── ol-custom.json ├── pyrightconfig.json ├── test/ │ ├── data/ │ │ ├── .gitignore │ │ ├── map-content.json │ │ ├── map-meta.indented.json │ │ ├── map.obj │ │ └── map.osm │ ├── e2e/ │ │ ├── README.md │ │ ├── run-touch-mapper-settings-regression.sh │ │ └── touch-mapper-settings-regression.js │ ├── map-content/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── cache/ │ │ │ └── .gitignore │ │ ├── check-railway-modes.js │ │ ├── generate-map-content-from-osm.py │ │ ├── inspect-map-description.js │ │ ├── render-text-simulation.js │ │ ├── run-tests.js │ │ ├── test-map-content-suite.sh │ │ └── tests.json │ ├── osm-parser-compat/ │ │ ├── README.md │ │ ├── compare-osm-parsers.js │ │ ├── fixtures/ │ │ │ ├── edge-entities.osm │ │ │ ├── edge-nested.osm │ │ │ └── edge-self-closing.osm │ │ └── package.json │ └── run-osm2world-regression.sh ├── translation/ │ ├── spreadsheet-to-translations.py │ ├── translations-de.xls │ ├── translations-fi.xls │ └── translations-to-spreadsheet.py └── web/ ├── .eslintrc ├── .gitignore ├── Makefile ├── build.js ├── create-env-js.sh ├── eslint.config.js ├── locales/ │ ├── de/ │ │ └── tm.json │ ├── en/ │ │ └── tm.json │ ├── es/ │ │ └── tm.json │ ├── fi/ │ │ └── tm.json │ └── nl/ │ └── tm.json ├── npm-shrinkwrap.json ├── package.json ├── pre-src/ │ ├── area.pre │ ├── end.pre │ ├── help.pre │ ├── index.pre │ ├── map.pre │ └── start.pre ├── pre2src.py ├── src/ │ ├── .gitignore │ ├── index.html │ ├── scripts/ │ │ ├── area.js │ │ ├── backbone-helpers.js │ │ ├── email.js │ │ ├── environment.js.dev │ │ ├── environment.js.prod │ │ ├── environment.js.test │ │ ├── help.js │ │ ├── index.js │ │ ├── language.js │ │ ├── map-calc.js │ │ ├── map-creation.js │ │ ├── map-desc-areas.js │ │ ├── map-desc-pois.js │ │ ├── map-desc-ways.js │ │ ├── map-description.js │ │ ├── map.js │ │ ├── model-preview.js │ │ ├── multipart-mode.js │ │ ├── osm-preview.js │ │ ├── util.js │ │ └── vendor-other/ │ │ ├── three-STLLoader-20160122.js │ │ ├── three-addons/ │ │ │ ├── controls/ │ │ │ │ └── OrbitControls.js │ │ │ ├── loaders/ │ │ │ │ └── STLLoader.js │ │ │ ├── math/ │ │ │ │ └── SimplexNoise.js │ │ │ ├── postprocessing/ │ │ │ │ ├── EffectComposer.js │ │ │ │ ├── MaskPass.js │ │ │ │ ├── Pass.js │ │ │ │ ├── RenderPass.js │ │ │ │ └── ShaderPass.js │ │ │ └── shaders/ │ │ │ └── CopyShader.js │ │ ├── three-r182.core.js │ │ └── three-r182.module.js │ └── styles/ │ ├── area.less │ ├── bottom.less │ ├── common.less │ ├── help.less │ ├── index.less │ ├── map.less │ ├── reset.less │ ├── top.less │ └── variables.less └── web.iml