胡佳骏 il y a 1 an
commit
431991caf0
100 fichiers modifiés avec 5172 ajouts et 0 suppressions
  1. BIN
      Assets/1706849590028.png
  2. 92 0
      Assets/1706849590028.png.meta
  3. 8 0
      Assets/Infinity Code.meta
  4. 8 0
      Assets/Infinity Code/Real World Terrain.meta
  5. 9 0
      Assets/Infinity Code/Real World Terrain/Documentation.meta
  6. BIN
      Assets/Infinity Code/Real World Terrain/Documentation/API Reference (Do not unpack in assets folder).zip
  7. 4 0
      Assets/Infinity Code/Real World Terrain/Documentation/API Reference (Do not unpack in assets folder).zip.meta
  8. BIN
      Assets/Infinity Code/Real World Terrain/Documentation/Readme.pdf
  9. 6 0
      Assets/Infinity Code/Real World Terrain/Documentation/Readme.pdf.meta
  10. 9 0
      Assets/Infinity Code/Real World Terrain/Examples.meta
  11. 616 0
      Assets/Infinity Code/Real World Terrain/Examples/Antalya.unity
  12. 6 0
      Assets/Infinity Code/Real World Terrain/Examples/Antalya.unity.meta
  13. 1165 0
      Assets/Infinity Code/Real World Terrain/Examples/San Francisco.unity
  14. 6 0
      Assets/Infinity Code/Real World Terrain/Examples/San Francisco.unity.meta
  15. 9 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains.meta
  16. 5 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya.meta
  17. 77 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/New Material.mat
  18. 8 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/New Material.mat.meta
  19. BIN
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0.asset
  20. 4 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0.asset.meta
  21. BIN
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0r4096x4096.png
  22. 47 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0r4096x4096.png.meta
  23. 5 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco.meta
  24. BIN
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0.asset
  25. 4 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0.asset.meta
  26. BIN
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0r4096x4096.png
  27. 47 0
      Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0r4096x4096.png.meta
  28. 9 0
      Assets/Infinity Code/Real World Terrain/Helper.meta
  29. 1 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Coords.jscript
  30. 6 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Coords.jscript.meta
  31. 39 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.css
  32. 6 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.css.meta
  33. 119 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.html
  34. 6 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.html.meta
  35. 594 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.jscript
  36. 6 0
      Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.jscript.meta
  37. 9 0
      Assets/Infinity Code/Real World Terrain/Helper/images.meta
  38. BIN
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-down-icon.png
  39. 57 0
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-down-icon.png.meta
  40. BIN
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-left-icon.png
  41. 57 0
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-left-icon.png.meta
  42. BIN
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-right-icon.png
  43. 57 0
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-right-icon.png.meta
  44. BIN
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-up-icon.png
  45. 57 0
      Assets/Infinity Code/Real World Terrain/Helper/images/arrow-up-icon.png.meta
  46. BIN
      Assets/Infinity Code/Real World Terrain/Helper/images/grid.png
  47. 56 0
      Assets/Infinity Code/Real World Terrain/Helper/images/grid.png.meta
  48. 9 0
      Assets/Infinity Code/Real World Terrain/Icons.meta
  49. BIN
      Assets/Infinity Code/Real World Terrain/Icons/FinishIcon.png
  50. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/FinishIcon.png.meta
  51. BIN
      Assets/Infinity Code/Real World Terrain/Icons/HelpIcon.png
  52. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/HelpIcon.png.meta
  53. BIN
      Assets/Infinity Code/Real World Terrain/Icons/OpenIcon.png
  54. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/OpenIcon.png.meta
  55. BIN
      Assets/Infinity Code/Real World Terrain/Icons/RWT-uContext.png
  56. 92 0
      Assets/Infinity Code/Real World Terrain/Icons/RWT-uContext.png.meta
  57. BIN
      Assets/Infinity Code/Real World Terrain/Icons/RWT.png
  58. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/RWT.png.meta
  59. BIN
      Assets/Infinity Code/Real World Terrain/Icons/RawIcon.png
  60. 57 0
      Assets/Infinity Code/Real World Terrain/Icons/RawIcon.png.meta
  61. BIN
      Assets/Infinity Code/Real World Terrain/Icons/RefreshIcon.png
  62. 57 0
      Assets/Infinity Code/Real World Terrain/Icons/RefreshIcon.png.meta
  63. BIN
      Assets/Infinity Code/Real World Terrain/Icons/ResizeIcon.png
  64. 57 0
      Assets/Infinity Code/Real World Terrain/Icons/ResizeIcon.png.meta
  65. BIN
      Assets/Infinity Code/Real World Terrain/Icons/SaveIcon.png
  66. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/SaveIcon.png.meta
  67. BIN
      Assets/Infinity Code/Real World Terrain/Icons/TrashIcon.png
  68. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/TrashIcon.png.meta
  69. BIN
      Assets/Infinity Code/Real World Terrain/Icons/UtilsIcon.png
  70. 57 0
      Assets/Infinity Code/Real World Terrain/Icons/UtilsIcon.png.meta
  71. BIN
      Assets/Infinity Code/Real World Terrain/Icons/WarningIcon.png
  72. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/WarningIcon.png.meta
  73. BIN
      Assets/Infinity Code/Real World Terrain/Icons/WizardIcon.png
  74. 90 0
      Assets/Infinity Code/Real World Terrain/Icons/WizardIcon.png.meta
  75. 9 0
      Assets/Infinity Code/Real World Terrain/Materials.meta
  76. 28 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-House-Roof-Material.mat
  77. 6 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-House-Roof-Material.mat.meta
  78. 40 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-House-Wall-Material.mat
  79. 6 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-House-Wall-Material.mat.meta
  80. 46 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-River-Material.mat
  81. 6 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-River-Material.mat.meta
  82. 28 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Front-Material.mat
  83. 6 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Front-Material.mat.meta
  84. 28 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Top-Material.mat
  85. 6 0
      Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Top-Material.mat.meta
  86. 9 0
      Assets/Infinity Code/Real World Terrain/Packages.meta
  87. BIN
      Assets/Infinity Code/Real World Terrain/Packages/RWT-Playmaker-Integration-Kit.unitypackage
  88. 8 0
      Assets/Infinity Code/Real World Terrain/Packages/RWT-Playmaker-Integration-Kit.unitypackage.meta
  89. 9 0
      Assets/Infinity Code/Real World Terrain/Scripts.meta
  90. 9 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers.meta
  91. 20 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR2Material.cs
  92. 8 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR2Material.cs.meta
  93. 18 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR3Material.cs
  94. 11 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR3Material.cs.meta
  95. 16 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildRBuilding.cs
  96. 10 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildRBuilding.cs.meta
  97. 393 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuilding.cs
  98. 10 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuilding.cs.meta
  99. 169 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainContainer.cs
  100. 10 0
      Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainContainer.cs.meta

BIN
Assets/1706849590028.png


+ 92 - 0
Assets/1706849590028.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: a8b0bd41c439c284e95d770fc764fb57
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Infinity Code.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1db7aaaf2f2ea194a89ce0ece284ec1a
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Infinity Code/Real World Terrain.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 666f3d6d4c58948479a31ae3dfc7a4ae
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Documentation.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 40c3e0fdd3623884ea0a292cac3313ea
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Documentation/API Reference (Do not unpack in assets folder).zip


+ 4 - 0
Assets/Infinity Code/Real World Terrain/Documentation/API Reference (Do not unpack in assets folder).zip.meta

@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: fc58536c31b38704e9752b932fe98734
+DefaultImporter:
+  userData: 

BIN
Assets/Infinity Code/Real World Terrain/Documentation/Readme.pdf


+ 6 - 0
Assets/Infinity Code/Real World Terrain/Documentation/Readme.pdf.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 8775eab2597fad4439656f770cacf175
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Examples.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b18007ec15cba0e4aa9feaed9b956c80
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 616 - 0
Assets/Infinity Code/Real World Terrain/Examples/Antalya.unity

@@ -0,0 +1,616 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 9
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 1, g: 1, b: 1, a: 1}
+  m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 3
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 11
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 1
+    m_EnableRealtimeLightmaps: 0
+  m_LightmapEditorSettings:
+    serializedVersion: 12
+    m_Resolution: 1
+    m_BakeResolution: 50
+    m_AtlasSize: 1024
+    m_AO: 1
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_ExtractAmbientOcclusion: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 0
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 1
+    m_BakeBackend: 0
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 500
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 500
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 2
+    m_PVRDenoiserTypeDirect: 0
+    m_PVRDenoiserTypeIndirect: 0
+    m_PVRDenoiserTypeAO: 0
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 0
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+    m_ExportTrainingData: 0
+    m_TrainingDataDestination: TrainingData
+    m_LightProbeSampleCountMultiplier: 4
+  m_LightingDataAsset: {fileID: 0}
+  m_UseShadowmask: 0
+--- !u!196 &5
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666666
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1 &297762827
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 297762829}
+  - component: {fileID: 297762828}
+  m_Layer: 0
+  m_Name: RealWorld Terrain
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &297762828
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 297762827}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 35746522d0c34a74e98f963412f0defe, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 10418.5, y: 891, z: 10479.5}
+    m_Extent: {x: 10418.5, y: 891, z: 10479.5}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 0
+  generatedTrees: 0
+  maxElevation: 1981
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: Antalya
+  scale: {x: 89252.45, y: 0.89954567, z: 111195.41}
+  size: {x: 20837, y: 1782, z: 20959}
+  topLatitude: 36.7098388671875
+  topMercator: 0.39023737890073873
+  leftLongitude: 30.460329055786133
+  leftMercator: 0.5846120251549615
+  bottomLatitude: 36.5213508605957
+  bottomMercator: 0.39088968678642166
+  rightLongitude: 30.693790435791016
+  rightMercator: 0.5852605289883084
+  width: 0.2334613800048828
+  height: 0.18848800659179688
+  mercatorWidth: 0
+  mercatorHeight: 0
+  billboardStart: 50
+  detailDensity: 1
+  detailDistance: 80
+  folder: Assets/RWT_Result/2016-12-29 18-39
+  terrainCount:
+    x: 1
+    y: 1
+  title: Antalya
+  treeDistance: 2000
+  terrains:
+  - {fileID: 320706999}
+--- !u!4 &297762829
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 297762827}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 320707002}
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &320706998
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 320707002}
+  - component: {fileID: 320707001}
+  - component: {fileID: 320707000}
+  - component: {fileID: 320706999}
+  m_Layer: 0
+  m_Name: Terrain 0x0
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 4294967294
+  m_IsActive: 1
+--- !u!114 &320706999
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fc9fccbe3f9587140a1e1601f0e73d70, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 10418.5, y: 891, z: 10479.5}
+    m_Extent: {x: 10418.5, y: 891, z: 10479.5}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 1
+  generatedTrees: 0
+  maxElevation: 1981
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: Antalya
+  scale: {x: 89252.45, y: 0.89954567, z: 111195.41}
+  size: {x: 20837, y: 1782, z: 20959}
+  topLatitude: 36.7098388671875
+  topMercator: 0.39023737890073873
+  leftLongitude: 30.460329055786133
+  leftMercator: 0.5846120251549615
+  bottomLatitude: 36.5213508605957
+  bottomMercator: 0.39088968678642166
+  rightLongitude: 30.693790435791016
+  rightMercator: 0.5852605289883084
+  width: 0.2334613800048828
+  height: 0.18848800659179688
+  mercatorWidth: 0
+  mercatorHeight: 0
+  container: {fileID: 297762828}
+  x: 0
+  y: 0
+  ry: 0
+  needUpdate: 0
+  meshFilter: {fileID: 0}
+  terrain: {fileID: 320707001}
+--- !u!154 &320707000
+TerrainCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Material: {fileID: 0}
+  m_Enabled: 1
+  m_TerrainData: {fileID: 15600000, guid: dd9c06efb862d4645a36ec1ea465e5cb, type: 2}
+  m_EnableTreeColliders: 1
+--- !u!218 &320707001
+Terrain:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Enabled: 1
+  serializedVersion: 6
+  m_TerrainData: {fileID: 15600000, guid: dd9c06efb862d4645a36ec1ea465e5cb, type: 2}
+  m_TreeDistance: 2000
+  m_TreeBillboardDistance: 50
+  m_TreeCrossFadeLength: 5
+  m_TreeMaximumFullLODCount: 50
+  m_DetailObjectDistance: 80
+  m_DetailObjectDensity: 1
+  m_HeightmapPixelError: 1
+  m_SplatMapDistance: 2000
+  m_HeightmapMaximumLOD: 0
+  m_ShadowCastingMode: 2
+  m_DrawHeightmap: 1
+  m_DrawInstanced: 0
+  m_DrawTreesAndFoliage: 1
+  m_ReflectionProbeUsage: 1
+  m_MaterialTemplate: {fileID: 10650, guid: 0000000000000000f000000000000000, type: 0}
+  m_BakeLightProbesForTrees: 1
+  m_PreserveTreePrototypeLayers: 0
+  m_DeringLightProbesForTrees: 1
+  m_ScaleInLightmap: 1
+  m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
+  m_GroupingID: 0
+  m_RenderingLayerMask: 1
+  m_AllowAutoConnect: 0
+--- !u!4 &320707002
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 297762829}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1013228909
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1013228910}
+  - component: {fileID: 1013228911}
+  - component: {fileID: 1013228914}
+  - component: {fileID: 1013228912}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1013228910
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1013228909}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 1, z: -10}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &1013228911
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1013228909}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 0
+  orthographic size: 100
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 0
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!81 &1013228912
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1013228909}
+  m_Enabled: 1
+--- !u!124 &1013228914
+Behaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1013228909}
+  m_Enabled: 1

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Examples/Antalya.unity.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: c73b1990e895143428ce353f8acd81e6
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1165 - 0
Assets/Infinity Code/Real World Terrain/Examples/San Francisco.unity

@@ -0,0 +1,1165 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 9
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 1, g: 1, b: 1, a: 1}
+  m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 3
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 11
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 1
+    m_EnableRealtimeLightmaps: 0
+  m_LightmapEditorSettings:
+    serializedVersion: 12
+    m_Resolution: 1
+    m_BakeResolution: 50
+    m_AtlasSize: 1024
+    m_AO: 1
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_ExtractAmbientOcclusion: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 0
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 1
+    m_BakeBackend: 0
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 500
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 500
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 2
+    m_PVRDenoiserTypeDirect: 0
+    m_PVRDenoiserTypeIndirect: 0
+    m_PVRDenoiserTypeAO: 0
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 0
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+    m_ExportTrainingData: 0
+    m_TrainingDataDestination: TrainingData
+    m_LightProbeSampleCountMultiplier: 4
+  m_LightingDataAsset: {fileID: 0}
+  m_UseShadowmask: 0
+--- !u!196 &5
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666666
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1001 &106082916
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 6007065485426161915, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_Name
+      value: ShadowSystem
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 1.19
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0.95
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6007065485426162334, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9056915208821754902, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: far clip plane
+      value: 100000
+      objectReference: {fileID: 0}
+    - target: {fileID: 9076914349180199080, guid: 7cd0ceba7525bdc42a36be841a8aad16,
+        type: 3}
+      propertyPath: far clip plane
+      value: 100000
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 7cd0ceba7525bdc42a36be841a8aad16, type: 3}
+--- !u!1 &297762827
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 297762829}
+  - component: {fileID: 297762828}
+  m_Layer: 0
+  m_Name: RealWorld Terrain
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &297762828
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 297762827}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 35746522d0c34a74e98f963412f0defe, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 10418.5, y: 891, z: 10479.5}
+    m_Extent: {x: 10418.5, y: 891, z: 10479.5}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 0
+  generatedTrees: 0
+  maxElevation: 1981
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: Antalya
+  scale: {x: 89252.45, y: 0.89954567, z: 111195.41}
+  size: {x: 20837, y: 1782, z: 20959}
+  topLatitude: 36.7098388671875
+  topMercator: 0.39023737890073873
+  leftLongitude: 30.460329055786133
+  leftMercator: 0.5846120251549615
+  bottomLatitude: 36.5213508605957
+  bottomMercator: 0.39088968678642166
+  rightLongitude: 30.693790435791016
+  rightMercator: 0.5852605289883084
+  width: 0.2334613800048828
+  height: 0.18848800659179688
+  mercatorWidth: 0
+  mercatorHeight: 0
+  billboardStart: 50
+  detailDensity: 0.097
+  detailDistance: 80
+  folder: Assets/RWT_Result/2016-12-29 18-39
+  terrainCount:
+    x: 1
+    y: 1
+  title: Antalya
+  treeDistance: 2000
+  terrains:
+  - {fileID: 320706999}
+--- !u!4 &297762829
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 297762827}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0.48207897, y: 0.16449542, z: -0.51071477}
+  m_LocalScale: {x: 0.41203332, y: 18.27727, z: 0.42559564}
+  m_Children:
+  - {fileID: 320707002}
+  m_Father: {fileID: 951140766}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &320706998
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 320707002}
+  - component: {fileID: 320707001}
+  - component: {fileID: 320707000}
+  - component: {fileID: 320706999}
+  m_Layer: 0
+  m_Name: Terrain 0x0
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 4294967294
+  m_IsActive: 1
+--- !u!114 &320706999
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fc9fccbe3f9587140a1e1601f0e73d70, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 10418.5, y: 891, z: 10479.5}
+    m_Extent: {x: 10418.5, y: 891, z: 10479.5}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 1
+  generatedTrees: 0
+  maxElevation: 1981
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: Antalya
+  scale: {x: 89252.45, y: 0.89954567, z: 111195.41}
+  size: {x: 20837, y: 1782, z: 20959}
+  topLatitude: 36.7098388671875
+  topMercator: 0.39023737890073873
+  leftLongitude: 30.460329055786133
+  leftMercator: 0.5846120251549615
+  bottomLatitude: 36.5213508605957
+  bottomMercator: 0.39088968678642166
+  rightLongitude: 30.693790435791016
+  rightMercator: 0.5852605289883084
+  width: 0.2334613800048828
+  height: 0.18848800659179688
+  mercatorWidth: 0
+  mercatorHeight: 0
+  container: {fileID: 297762828}
+  x: 0
+  y: 0
+  ry: 0
+  needUpdate: 0
+  meshFilter: {fileID: 0}
+  terrain: {fileID: 320707001}
+--- !u!154 &320707000
+TerrainCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Material: {fileID: 0}
+  m_Enabled: 1
+  m_TerrainData: {fileID: 15600000, guid: dd9c06efb862d4645a36ec1ea465e5cb, type: 2}
+  m_EnableTreeColliders: 1
+--- !u!218 &320707001
+Terrain:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_Enabled: 1
+  serializedVersion: 6
+  m_TerrainData: {fileID: 15600000, guid: dd9c06efb862d4645a36ec1ea465e5cb, type: 2}
+  m_TreeDistance: 2000
+  m_TreeBillboardDistance: 5
+  m_TreeCrossFadeLength: 5
+  m_TreeMaximumFullLODCount: 50
+  m_DetailObjectDistance: 24
+  m_DetailObjectDensity: 0.085
+  m_HeightmapPixelError: 1
+  m_SplatMapDistance: 1457
+  m_HeightmapMaximumLOD: 0
+  m_ShadowCastingMode: 2
+  m_DrawHeightmap: 1
+  m_DrawInstanced: 0
+  m_DrawTreesAndFoliage: 1
+  m_ReflectionProbeUsage: 1
+  m_MaterialTemplate: {fileID: 2100000, guid: 8eff0daa22847ea42bdcbf06c847ccea, type: 2}
+  m_BakeLightProbesForTrees: 1
+  m_PreserveTreePrototypeLayers: 0
+  m_DeringLightProbesForTrees: 1
+  m_ScaleInLightmap: 1
+  m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
+  m_GroupingID: 0
+  m_RenderingLayerMask: 1
+  m_AllowAutoConnect: 0
+--- !u!4 &320707002
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 320706998}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 297762829}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &622949507
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 622949509}
+  - component: {fileID: 622949508}
+  m_Layer: 0
+  m_Name: RealWorld Terrain
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &622949508
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 622949507}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 35746522d0c34a74e98f963412f0defe, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 4910.5, y: 181, z: 3746}
+    m_Extent: {x: 4910.5, y: 181, z: 3746}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 0
+  generatedTrees: 0
+  maxElevation: 402
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: San Francisco
+  scale: {x: 87999.59, y: 0.9004975, z: 111191.92}
+  size: {x: 9821, y: 362, z: 7492}
+  topLatitude: 37.719120025634766
+  topMercator: 0.38671688988920516
+  leftLongitude: -122.47019958496094
+  leftMercator: 0.1598050011528863
+  bottomLatitude: 37.65174102783203
+  bottomMercator: 0.38695339339023976
+  rightLongitude: -122.35859680175781
+  rightMercator: 0.16011500888400607
+  width: 0.111602783203125
+  height: 0.06737899780273438
+  mercatorWidth: 0
+  mercatorHeight: 0
+  billboardStart: 50
+  detailDensity: 1
+  detailDistance: 35
+  folder: Assets/RWT_Result/2017-01-16 02-16
+  terrainCount:
+    x: 1
+    y: 1
+  title: San Francisco
+  treeDistance: 2000
+  terrains:
+  - {fileID: 1249861051}
+--- !u!4 &622949509
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 622949507}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -3697, y: -432.76, z: -2963}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1249861053}
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &951140759
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 951140766}
+  - component: {fileID: 951140765}
+  - component: {fileID: 951140764}
+  - component: {fileID: 951140763}
+  - component: {fileID: 951140762}
+  - component: {fileID: 951140761}
+  - component: {fileID: 951140760}
+  m_Layer: 0
+  m_Name: Cube2
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!114 &951140760
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0dbccc4d71ae5b447bab3997600fbdce, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  PointerEnter:
+    m_PersistentCalls:
+      m_Calls: []
+  PointerDown:
+    m_PersistentCalls:
+      m_Calls: []
+  PointerClick:
+    m_PersistentCalls:
+      m_Calls: []
+  PointerUp:
+    m_PersistentCalls:
+      m_Calls: []
+  PointerExit:
+    m_PersistentCalls:
+      m_Calls: []
+  PointerDrag:
+    m_PersistentCalls:
+      m_Calls: []
+  Target: {fileID: 0}
+  StartAudio: 6
+  EndAudio: 5
+  canOneHandRotate: 1
+  canTwoHandRotate: 0
+  canTwoHandScale: 0
+  minScaleRatio: 0.5
+  maxScaleRatio: 3
+--- !u!114 &951140761
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: b988d3bb15952dc47b03640faa058c7d, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  DistanceThreshold: 20
+--- !u!114 &951140762
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8f8ba16b6be60154694163e1357f21ab, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  GrabbaleTransform: {fileID: 0}
+--- !u!65 &951140763
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 1}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &951140764
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Enabled: 0
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RenderingLayerMask: 4294967295
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: b0fcdc3322e34d9ea83e8399bd9f4031, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!33 &951140765
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &951140766
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 951140759}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 1.17, y: -0.009, z: 1.2}
+  m_LocalScale: {x: 2.4269881, y: 0.05471277, z: 2.349648}
+  m_Children:
+  - {fileID: 297762829}
+  m_Father: {fileID: 0}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1249861050
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1249861053}
+  - component: {fileID: 1249861052}
+  - component: {fileID: 1249861054}
+  - component: {fileID: 1249861051}
+  m_Layer: 0
+  m_Name: Terrain 0x0
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 4294967294
+  m_IsActive: 1
+--- !u!114 &1249861051
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1249861050}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fc9fccbe3f9587140a1e1601f0e73d70, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  bounds:
+    m_Center: {x: 4910.5, y: 181, z: 3746}
+    m_Extent: {x: 4910.5, y: 181, z: 3746}
+  generateGrass: 0
+  generatedRivers: 0
+  generateRoads: 0
+  generateTextures: 1
+  generateTrees: 0
+  generatedBuildings: 0
+  generatedGrass: 0
+  generatedTextures: 1
+  generatedTrees: 0
+  maxElevation: 402
+  minElevation: -1
+  prefs:
+    buildingBasementDepth: 0
+    buildingBottomMode: 0
+    buildingFloorHeight: 3.5
+    buildingFloorLimits:
+      min: 5
+      minLimit: 1
+      max: 7
+      maxLimit: 50
+    buildingGenerator: 0
+    buildingMaterials: []
+    buildingPrefabs: []
+    buildingSaveInResult: 1
+    buildingSingleRequest: 1
+    buildingUseColorTags: 1
+    buildRCollider: 0
+    buildR3Collider: 0
+    buildRRenderMode: 0
+    customBuildRGeneratorStyle: 0
+    customBuildRGeneratorTexturePack: 0
+    customBuildRPresets: []
+    dynamicBuildings: 1
+    grassDensity: 100
+    grassEngine: 
+    grassPrefabs: []
+    vegetationStudioGrassTypes: 
+    volumeGrassOutsidePoints: 0
+    erRoadTypes: []
+    erGenerateConnection: 1
+    erSnapToTerrain: 1
+    erWidthMultiplier: 1
+    roadEngine: 
+    roadTypes: -1
+    roadTypeMode: 0
+    splineBendMaterial: {fileID: 0}
+    splineBendMesh: {fileID: 0}
+    alignWaterLine: 0
+    autoDetectElevationOffset: {x: 100, y: 100}
+    baseMapResolution: 1024
+    bingMapsUseZeroAsUnknown: 0
+    controlTextureResolution: 512
+    depthSharpness: 0
+    detailResolution: 2048
+    elevationProvider: 1
+    elevationRange: 0
+    elevationType: 0
+    fixedTerrainSize: {x: 500, y: 600, z: 500}
+    gaiaStampResolution: 1024
+    generateUnderWater: 0
+    heightmapResolution: 2049
+    ignoreSRTMErrors: 0
+    fixedMaxElevation: 1000
+    fixedMinElevation: 0
+    maxElevationType: 0
+    nodataValue: 0
+    rawByteOrder: 0
+    rawFilename: terrain
+    rawHeight: 1024
+    rawWidth: 1024
+    rawType: 0
+    resolutionPerPatch: 16
+    resultType: 0
+    sizeType: 0
+    terrainScale: {x: 1, y: 1, z: 1}
+    waterDetectionTexture: {fileID: 0}
+    hugeTexturePageSize: 2048
+    hugeTextureRows: 13
+    hugeTextureCols: 13
+    mapTypeID: 
+    mapTypeExtraFields: 
+    maxTextureLevel: 0
+    reduceTextures: 1
+    textureCount:
+      x: 1
+      y: 1
+    textureFileType: 1
+    textureFileQuality: 100
+    textureProvider: 4
+    textureProviderURL: http://localhost/tiles/{zoom}/{x}/{y}
+    textureSize:
+      x: 4096
+      y: 4096
+    textureMipMaps: 0
+    textureResultType: 0
+    textureType: 0
+    vectorTerrainBaseLayers: []
+    vectorTerrainBaseLayersNoiseOffset: {x: 0, y: 0}
+    vectorTerrainBaseLayersNoiseScale: 16
+    vectorTerrainLayers: []
+    treeDensity: 100
+    treeEngine: 
+    treePrefabs: []
+    vegetationStudioTreeTypes: 
+    POI: []
+    riverEngine: 
+    riverMaterial: {fileID: 0}
+    title: San Francisco
+  scale: {x: 87999.59, y: 0.9004975, z: 111191.92}
+  size: {x: 9821, y: 362, z: 7492}
+  topLatitude: 37.719120025634766
+  topMercator: 0.38671688988920516
+  leftLongitude: -122.47019958496094
+  leftMercator: 0.1598050011528863
+  bottomLatitude: 37.65174102783203
+  bottomMercator: 0.38695339339023976
+  rightLongitude: -122.35859680175781
+  rightMercator: 0.16011500888400607
+  width: 0.111602783203125
+  height: 0.06737899780273438
+  mercatorWidth: 0
+  mercatorHeight: 0
+  container: {fileID: 622949508}
+  x: 0
+  y: 0
+  ry: 0
+  needUpdate: 0
+  meshFilter: {fileID: 0}
+  terrain: {fileID: 1249861052}
+--- !u!218 &1249861052
+Terrain:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1249861050}
+  m_Enabled: 1
+  serializedVersion: 6
+  m_TerrainData: {fileID: 15600000, guid: ff300183479991840917cc341192d187, type: 2}
+  m_TreeDistance: 2000
+  m_TreeBillboardDistance: 50
+  m_TreeCrossFadeLength: 5
+  m_TreeMaximumFullLODCount: 50
+  m_DetailObjectDistance: 35
+  m_DetailObjectDensity: 1
+  m_HeightmapPixelError: 1
+  m_SplatMapDistance: 2155
+  m_HeightmapMaximumLOD: 0
+  m_ShadowCastingMode: 2
+  m_DrawHeightmap: 1
+  m_DrawInstanced: 0
+  m_DrawTreesAndFoliage: 1
+  m_ReflectionProbeUsage: 1
+  m_MaterialTemplate: {fileID: 10650, guid: 0000000000000000f000000000000000, type: 0}
+  m_BakeLightProbesForTrees: 1
+  m_PreserveTreePrototypeLayers: 0
+  m_DeringLightProbesForTrees: 1
+  m_ScaleInLightmap: 1
+  m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0}
+  m_GroupingID: 0
+  m_RenderingLayerMask: 1
+  m_AllowAutoConnect: 0
+--- !u!4 &1249861053
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1249861050}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 622949509}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!154 &1249861054
+TerrainCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1249861050}
+  m_Material: {fileID: 0}
+  m_Enabled: 1
+  m_TerrainData: {fileID: 15600000, guid: ff300183479991840917cc341192d187, type: 2}
+  m_EnableTreeColliders: 1

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Examples/San Francisco.unity.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 5441a632a63572744b951fa7dc390d39
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f4fdb0b4c561f35479d6b31bd1e42091
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 5 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya.meta

@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 3c4be58254c72d44ca8f68558f0dd6b1
+folderAsset: yes
+DefaultImporter:
+  userData: 

+ 77 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/New Material.mat

@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: New Material
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: a8b0bd41c439c284e95d770fc764fb57, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/New Material.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8eff0daa22847ea42bdcbf06c847ccea
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0.asset


+ 4 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0.asset.meta

@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: dd9c06efb862d4645a36ec1ea465e5cb
+NativeFormatImporter:
+  userData: 

BIN
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0r4096x4096.png


+ 47 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/Antalya/Terrain 0x0r4096x4096.png.meta

@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 3893a5a95789ef448ae1ec9e900b1577
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: .25
+    normalMapFilter: 0
+  isReadable: 1
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 4096
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: .5, y: .5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    sprites: []
+  spritePackingTag: 
+  userData: 

+ 5 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco.meta

@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: cec5001483eb1534d8aad293fbbf2738
+folderAsset: yes
+DefaultImporter:
+  userData: 

BIN
Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0.asset


+ 4 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0.asset.meta

@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: ff300183479991840917cc341192d187
+NativeFormatImporter:
+  userData: 

BIN
Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0r4096x4096.png


+ 47 - 0
Assets/Infinity Code/Real World Terrain/Examples/Terrains/San Francisco/Terrain 0x0r4096x4096.png.meta

@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: e27b50ec4762bc043974a36e4a1175c0
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: .25
+    normalMapFilter: 0
+  isReadable: 1
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 4096
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: .5, y: .5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    sprites: []
+  spritePackingTag: 
+  userData: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Helper.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 27880f03fd27a534b88985a6e391fd7c
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Coords.jscript

@@ -0,0 +1 @@
+var Coords = {tlx: 27.14821, tly: 37.52797, brx: 27.47093, bry: 37.29017};var POI = [];

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Coords.jscript.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 6b4cd8ea119eb914889916823bef364b
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.css

@@ -0,0 +1,39 @@
+@charset "utf-8";
+
+#map-canvas {
+    width:700px;
+    height:600px;
+}
+
+.hidden {
+    display: none;
+}
+
+.wrong {
+    color: red;
+}
+
+.ildiv {
+    display:inline;
+}
+
+.poi > div {
+    display: inline-block;
+}
+
+.poiIndex {
+    text-align: center;
+}
+
+.poiDelete {
+	cursor: pointer;
+}
+
+#coordNode {
+    margin-top: 30px;
+    margin-bottom: 15px;
+}
+
+.field {
+    margin-top: 5px;
+}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.css.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: ec18cada1f2345d47821b03012d8caf3
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 119 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.html

@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
+    <title>Real World Terrain Helper</title>
+
+    <link href="https://developers.google.com/maps/documentation/javascript/examples/default.css" rel="stylesheet">
+    <link href="RWT_Helper.css" rel="stylesheet">
+    <link href="https://cdn.jsdelivr.net/semantic-ui/2.2.10/semantic.min.css" rel="stylesheet">
+
+    <script src="http://code.jquery.com/jquery-2.0.0.min.js"></script>
+    <script src="https://cdn.jsdelivr.net/semantic-ui/2.2.10/semantic.min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.6.0/clipboard.min.js"></script>
+    <script src="RWT_Helper.jscript"></script>
+    <script src="RWT_Coords.jscript"></script>
+    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDz0rQ5_imGCXQ8qfx-fF7sQaEzqaSDXzw&libraries=places"></script>
+</head>
+<body onkeydown="OnKeyDown(event)" onkeyup="OnKeyUp(event)">
+	<h2 class="ui center aligned header" style="margin-top:20px">Real World Terrain Helper</h2>
+    <div class="ui container">
+    	<div class="ui two column stackable grid">
+    		<div class="ten wide column">
+    			<p>
+			        <div id="search-block">
+			            <div class="ui fluid icon input">
+			            	<input type="text" placeholder="Location name..." id="search-address" value=""/>
+			            	<i class="inverted circular search link icon" id="btnSearch"></i>
+			            </div>
+			        </div>
+		        </p>
+			    <p>
+			        <div id="map-canvas"></div>
+			    </p>
+			    <p>
+			    	<div class="ui info message">Hold CTRL to move the entire frame or markers.</div>
+			    </p>
+		        <p>
+			        <div id="POIs" class="hidden">
+			            <h2 class="ui dividing header">Points of interest</h2>
+			            <div class="ui ignored info message">Double click on POI title to edit</div>
+			            <div id="poiContainer"></div>
+			        </div>
+		        </p>
+		        <p>
+			        <div id="download-links-srtm" class="hidden">
+			            <h2 class="ui dividing header">Heightmaps</h2>
+			            <div class="ui info message">Download the files and extract the files «*.asc» from archives in the folder «{Project}/RWT_Cache/Heightmaps».</div>
+			            <div id="dlHeightmaps"></div>
+					</div>
+					<div id="download-links-srtm30" class="hidden">
+			            <h2 class="ui dividing header">Heightmaps</h2>
+			            <div class="ui info message">Download the files and extract the files «*.hgt» from archives in the folder «{Project}/RWT_Cache/Heightmaps».</div>
+			            <div id="dlHeightmaps30"></div>
+			        </div>
+			    </p>
+		    </div>
+		    <div class="six wide column">
+		    	<p><button class="fluid ui primary button" id="btnCreateSelector">Place selector</button></p>
+				<p><button class="fluid ui button" id="btnOpenOSM">Show Open Street Map</button></p>
+	            <div class="ui sub header">Elevation</div>
+				<select name="elevationprovider" class="ui selection fluid dropdown" id="elevation-provider" style="height: 43px;">
+					<option value="srtm">SRTM</option>
+					<option value="srtm30">SRTM30</option>
+                    <option value="bing">Bing Maps</option>
+					<option value="mapbox">Mapbox</option>
+				</select>
+
+                <h4 class="ui dividing header">Top-Left</h4>
+                <div id='topLatRow'>Latitude: <div id="TLLat" class="ildiv"></div></div>
+                <div>Longitude: <div id="TLLon" class="ildiv"></div></div>
+                
+                <h4 class="ui dividing header">Bottom-Right</h4>
+                <div id='bottomLatRow'>Latitude: <div id="BRLat" class="ildiv"></div></div>
+                <div>Longitude: <div id="BRLon" class="ildiv"></div></div>
+                
+                <h4 class="ui dividing header" id="AreaSize">Area</h4>
+                <div>Width: <div id="AreaWidth" class="ildiv">0</div> km</div>
+                <div>Height: <div id="AreaHeight" class="ildiv">0</div> km</div>
+				<div>Area: <div id="AreaArea" class="ildiv">0</div> km²</div>
+				<div class="grouped fields">
+					<div class="field">
+						<div class="ui checkbox">
+							<input name="showgrid" id="showgrid" type="checkbox">
+							<label>Show grid</label>
+						</div>
+					</div>
+					<div class="field">
+						<div class="ui checkbox">
+							<input name="bestrect" id="bestrect" type="checkbox">
+							<label>Show best rect <i id="bestrectHint" class="question circle icon" data-content="Adjust the selected area to match the size of the tiles"></i></label>
+						</div>
+					</div>
+					<div class="field">
+						<button class="fluid ui primary button" id="btnSelectBestRect" style="display: none">Adjust the selected area</button>
+					</div>
+				</div>
+                <h4 class="ui dividing header">Move selector</h4>
+                <div id="MoveSelector">
+                    <div align="center">
+                        <img src="images/arrow-left-icon.png" alt="Left" title="Left" onclick="MoveSelectorLeft();"/>
+                        <img src="images/arrow-right-icon.png" alt="Right" title="Right" onclick="MoveSelectorRight();" />
+                        <img src="images/arrow-up-icon.png" alt="Up" title="Up" onclick="MoveSelectorUp();" />
+                        <img src="images/arrow-down-icon.png" alt="Down" title="Down" onclick="MoveSelectorDown();" />
+                    </div>
+                </div>
+                <div class="ui segment">
+                	<div class="ui attached label">Copy this to Clipboard</div>
+	                <div id="coordNode" onclick="SelectText('coordNode')"></div>
+	                <button class="ui button icon fluid" id="copyBtn" data-clipboard-target="#coordNode">Copy <i class="icon copy"></i></button>
+                </div>
+                <p><button class="fluid ui button" id="btnAddPOI">Add POI</button></p>
+                <p><button class="fluid ui button" id="btnShowLinks">Show download links</button></p>
+		    </div>
+	    </div>
+    </div>
+</body>
+</html>

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.html.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: b5d427ede233abe46ac1ce081dbb871b
+TextScriptImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 594 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.jscript

@@ -0,0 +1,594 @@
+var autocomplete;
+var geocoder;
+var map;
+var markers = [];
+var provider = "srtm";
+var rectangle;
+var bestResultRect;
+var tileSize = 256;
+var tilelayer;
+
+function AddPOI()
+{
+    CreatePOI(map.getCenter(), "New POI " + (markers.length + 1));
+    
+    $("#POIs").show("fast");
+    UpdateInfo();
+}
+
+function Clip(val, min, max)
+{
+    if (val < min) return min;
+    if (val > max) return max;
+    return val;
+}
+
+function CreatePOI(position, title)
+{
+    var marker = new google.maps.Marker({
+        position: position,
+        title: title,
+    });
+
+    marker.setMap(map);
+    markers.push(marker);
+    
+    google.maps.event.addListener(marker, 'drag', OnMarkerDrag);
+    
+    var markerPosition = "Lat: " + marker.position.lat() + ", Lng: " + marker.position.lng();
+    var el = "<div class='poi ui attached segment'><div class='ui stackable grid'>";
+    el += "<div class='one wide column poiIndex'>" + markers.length + "</div>";
+    el += "<div class='four wide column poiTitle'>" + marker.title + "</div>";
+    el += "<div class='ten wide column'>" + markerPosition + "</div>";
+    el += "<div class='one wide column poiDelete'><i class='icon trash alternate'></i></div>";
+    el += "</div></div>";
+    $("#poiContainer").append(el);
+    
+    $(".poiTitle:last").dblclick(OnPOITitleDoubleClick);
+    var lastDelete = $(".poiDelete:last");
+    lastDelete.find("i").popup({
+        title: "Delete",
+        position: "top center"
+    });
+    lastDelete.click(OnDeletePOI);
+    
+    $('html, body').animate({
+        scrollTop: $("#poiContainer").offset().top
+    }, 500);
+}
+
+function GenerateLinks()
+{
+    if (provider == "srtm") GenerateLinksSRTM();
+    else if (provider == "srtm30") GenerateLinksSRTM30();
+}
+
+function GenerateLinksSRTM()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+    var x1 = sw.lng();
+    var x2 = ne.lng();
+    var y1 = ne.lat();
+    var y2 = sw.lat();
+    var x1u = Math.floor(x1 / 5) * 5 + 180;
+    var x2u = Math.floor(x2 / 5) * 5 + 180;
+    var y1u = 90 - Math.floor(y1 / 5) * 5;
+    var y2u = 90 - Math.floor(y2 / 5) * 5;
+
+    var el = $("#dlHeightmaps");
+
+    el.text("");
+    $("#dlTextures").text("");
+    var server = "http://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/ASCII/";
+
+    for (var x = x1u; x <= x2u; x += 5)
+    {
+        for (var y = y1u; y <= y2u; y += 5)
+        {
+            var ax = Math.floor(x / 5 + 1);
+            var ay = Math.floor(y / 5 - 6);
+            var filename = "srtm_" + ((ax > 9)? ax: "0" + ax) + "_" + ((ay > 9)? ay: "0" + ay);
+            var e = "<a class='ui icon button' href='" + server + filename + ".zip'><i class='icon download'></i>" + filename + "</a>";
+            el.append(e);
+        }
+    }
+
+    var links = $("#download-links-srtm");
+    links.show("fast");
+
+    $('html, body').animate({
+        scrollTop: links.offset().top
+    }, 500);
+}
+
+function GenerateLinksSRTM30()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+    var x1 = sw.lng();
+    var x2 = ne.lng();
+    var y1 = ne.lat();
+    var y2 = sw.lat();
+    var x1u = Math.floor(x1 + 180) - 180;
+    var x2u = Math.floor(x2 + 180) - 180;
+    var y1u = Math.floor(y1 + 90) - 90;
+    var y2u = Math.floor(y2 + 90) - 90;
+
+    var el = $("#dlHeightmaps30");
+
+    el.text("");
+    $("#dlTextures").text("");
+    var server = "https://e4ftl01.cr.usgs.gov/MODV6_Dal_D/SRTM/SRTMGL1.003/2000.02.11/";
+
+    console.log(x1u + "  " + x2u + "  " + y2u + "   " + y1u);
+
+    for (var x = x1u; x <= x2u; x++)
+    {
+        for (var y = y2u; y <= y1u; y++)
+        {
+            var ax = x < 0 ? "W" : "E";
+            var absX = Math.abs(x);
+            if (absX < 100) ax += "0";
+            if (absX < 10) ax += "0";
+            ax += absX;
+
+            var ay = y < 0 ? "S" : "N";
+            var absY = Math.abs(y);
+            if (absY < 10) ay += "0";
+            ay += absY;
+
+            var filename = ay + ax + ".SRTMGL1.hgt.zip";
+
+            var e = "<a class='ui icon button' href='" + server + filename + "' target='_blank'><i class='icon download'></i>" + filename + "</a>";
+            el.append(e);
+        }
+    }
+
+    var links = $("#download-links-srtm30");
+    links.show("fast");
+
+    $('html, body').animate({
+        scrollTop: links.offset().top
+    }, 500);
+}
+
+function Initialize() 
+{
+    var centerPoint = new google.maps.LatLng((Coords.tly + Coords.bry) / 2, (Coords.tlx + Coords.brx) / 2);
+
+    var mapOptions = 
+    {
+        center: centerPoint,
+        zoom: 9,
+        zoomControl: true,
+        zoomControlOptions: {
+            style: google.maps.ZoomControlStyle.DEFAULT,
+        },
+        mapTypeControl: true,
+        panControl: false,
+        scaleControl: true,
+        scrollwheel: true,
+        streetViewControl: false,
+        draggable : true,
+        overviewMapControl: false,
+        mapTypeId: google.maps.MapTypeId.HYBRID
+    };
+
+    var bounds = new google.maps.LatLngBounds(
+        new google.maps.LatLng(Coords.bry, Coords.tlx),
+        new google.maps.LatLng(Coords.tly, Coords.brx)
+    );
+    
+    autocomplete = new google.maps.places.Autocomplete(
+        (document.getElementById('search-address')),
+        {types: ['geocode']});
+
+    tilelayer = new google.maps.ImageMapType({
+        getTileUrl: function(tile, zoom) { return "images/grid.png"; },
+        tileSize: new google.maps.Size(256, 256)
+    });
+
+    geocoder = new google.maps.Geocoder();
+    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
+    if ($("#showgrid").prop("checked")) map.overlayMapTypes.insertAt(0, tilelayer);
+    map.fitBounds(bounds);
+
+    rectangle = new google.maps.Rectangle({
+        bounds: bounds,
+        editable: true
+    });
+    rectangle.setMap(map);
+    rectangle.addListener("bounds_changed", UpdateInfo);
+
+    bestResultRect = new google.maps.Rectangle({
+        bounds: bounds,
+        strokeColor: '#00FF00',
+        strokeOpacity: 0.8,
+        strokeWeight: 2,
+        visible: false
+    });
+    bestResultRect.setMap(map);
+    if ($("#bestrect").prop("checked"))
+    {
+        bestResultRect.setVisible(true);
+        $("#btnSelectBestRect").show();
+    }
+    
+    UpdateBestRect();
+    
+    if (typeof(POI) != 'undefined')
+    {
+        for (var i = 0; i < POI.length; i++)
+        {
+            var p = POI[i];
+            CreatePOI(new google.maps.LatLng(p.y, p.x), p.title);
+        }
+        if (POI.length > 0) $("#POIs").removeClass("hidden");
+    }
+    
+    UpdateInfo();
+
+    $("#search-address").keyup(function(event){
+        if(event.keyCode == 13) $("#btnSearch").click();
+    });
+    
+    var clipboard = new Clipboard("#copyBtn");
+    $('#copyBtn').popup({
+        on: "click",
+        title: 'Copied',
+        content: 'Now click "Insert the coordinates from the clipboard" in Real World Terrain.'
+    });
+
+    provider = $("#elevation-provider").find('option:selected').val();
+
+    $("#bestrectHint").popup();
+
+    $("#btnCreateSelector").click(ShowRectangle);
+    $("#btnSearch").click(Search);
+    $("#btnAddPOI").click(AddPOI);
+    $("#btnShowLinks").click(GenerateLinks);
+    $("#btnOpenOSM").click(OnShowOSM);
+    $("#elevation-provider").change(OnChangeProvider);
+    $("#showgrid").change(OnToggleGrid);
+    $("#bestrect").change(OnToggleBestRect);
+    $("#btnSelectBestRect").click(SelectBestRect);
+}
+
+function LatLngToTile(latLng, zoom)
+{
+    var sy = Math.sin(latLng.lat() * Math.PI / 180);
+    var lng = (latLng.lng() + 180) / 360;
+    var lat = 0.5 - Math.log((1 + sy) / (1 - sy)) / (Math.PI * 4);
+    var mapSize = tileSize * (1 << zoom);
+    var px = lng * mapSize + 0.5;
+    var py = lat * mapSize + 0.5;
+
+    if (px < 0) px = 0;
+    else if (px > mapSize - 1) px = mapSize - 1;
+    if (py < 0) py = 0;
+    else if (py > mapSize - 1) py = mapSize - 1;
+
+    var tx = px / tileSize;
+    var ty = py / tileSize;
+
+    return new google.maps.Point(tx, ty);
+}
+
+function MoveSelectorDown()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+
+    var off = ne.lat() - sw.lat();
+
+    var ne2 = new google.maps.LatLng(ne.lat() - off, ne.lng());
+    var sw2 = new google.maps.LatLng(sw.lat() - off, sw.lng());
+
+    rectangle.setBounds(new google.maps.LatLngBounds(sw2, ne2));
+}
+
+function MoveSelectorLeft()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+
+    var off = ne.lng() - sw.lng();
+
+    var ne2 = new google.maps.LatLng(ne.lat(), ne.lng() - off);
+    var sw2 = new google.maps.LatLng(sw.lat(), sw.lng() - off);
+
+    rectangle.setBounds(new google.maps.LatLngBounds(sw2, ne2));
+}
+
+function MoveSelectorRight()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+
+    var off = ne.lng() - sw.lng();
+
+    var ne2 = new google.maps.LatLng(ne.lat(), ne.lng() + off);
+    var sw2 = new google.maps.LatLng(sw.lat(), sw.lng() + off);
+
+    rectangle.setBounds(new google.maps.LatLngBounds(sw2, ne2));
+}
+
+function MoveSelectorUp()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+
+    var off = ne.lat() - sw.lat();
+
+    var ne2 = new google.maps.LatLng(ne.lat() + off, ne.lng());
+    var sw2 = new google.maps.LatLng(sw.lat() + off, sw.lng());
+
+    rectangle.setBounds(new google.maps.LatLngBounds(sw2, ne2));
+}
+
+function OnChangeProvider()
+{
+    provider = $("#elevation-provider").find('option:selected').val();
+    if (provider == "srtm" || provider == "srtm30") $("#btnShowLinks").show();
+    else $("#btnShowLinks").hide();
+    
+    $("#download-links-srtm").hide();
+    $("#download-links-srtm30").hide();
+    
+    UpdateInfo();
+}
+
+function OnDeletePOI()
+{
+    var index = $(".poiDelete").index($(this));
+    var marker = markers.splice(index, 1)[0];
+    marker.setMap(null);
+    $(this).parent().parent().remove();
+    
+    if (markers.length > 0)
+    {
+        $(".poiIndex").each(function(index) {
+            $(this).text(index + 1);
+        })
+    }
+    else $("#POIs").hide("fast");
+    UpdateInfo();
+}
+
+function OnKeyDown(event)
+{
+    if (event.ctrlKey == 1) 
+    {
+        rectangle.setDraggable(true);
+        for(i = 0; i < markers.length; i++) markers[i].setDraggable(true);
+    }
+}
+
+function OnKeyUp(event)
+{
+    if (event.ctrlKey == 0) 
+    {
+        rectangle.setDraggable(false);
+        for(i = 0; i < markers.length; i++) markers[i].setDraggable(false);
+    }
+}
+
+function OnMarkerDrag()
+{
+    var markerIndex = markers.indexOf(this);
+    var markerPosition = "Lat: " + this.position.lat() + ", Lng: " + this.position.lng();
+    $(".poi .poiPosition").eq(markerIndex).text(markerPosition);
+    UpdateInfo();
+}
+
+function OnPOITitleDoubleClick()
+{
+    var newTitle = prompt("POI title:", $(this).text());
+    
+    if (newTitle != null) 
+    {
+        $(this).text(newTitle);
+        var index = $(".poiTitle").index($(this));
+        markers[index].title = newTitle;
+        UpdateInfo();
+    }
+}
+
+function OnShowOSM()
+{
+    var center = map.getCenter();
+    var win = window.open("http://www.openstreetmap.org/#map=" + map.getZoom() + "/" + center.lat() + "/" + center.lng(), '_blank');
+    win.focus();
+}
+
+function OnToggleBestRect()
+{
+    if ($("#bestrect").prop("checked"))
+    {
+        bestResultRect.setVisible(true);
+        $("#btnSelectBestRect").show();
+    }
+    else
+    {
+        bestResultRect.setVisible(false);
+        $("#btnSelectBestRect").hide();
+    }
+}
+
+function OnToggleGrid()
+{
+    if ($("#showgrid").prop("checked")) map.overlayMapTypes.insertAt(0, tilelayer);
+    else map.overlayMapTypes.removeAt(0);
+}
+
+function Repeat(value, minValue, maxValue)
+{
+    var range = maxValue - minValue;
+    while (value < minValue || value > maxValue)
+    {
+        if (value < minValue) value += range;
+        else value -= range;
+    }
+    return value;
+}
+
+function SelectBestRect()
+{
+    rectangle.setBounds(bestResultRect.getBounds());
+}
+
+function Search() 
+{
+    geocoder.geocode({'address': $("#search-address").val()}, 
+        function(results, status) { 
+            if (status == google.maps.GeocoderStatus.OK) { 
+                var loc = results[0].geometry.location;
+                map.panTo(loc);
+            } 
+            else {
+                alert("Not found: " + status); 
+            } 
+        }
+    );
+}
+
+function SelectText(containerid) 
+{
+    if (document.selection) 
+    {
+        var range = document.body.createTextRange();
+        range.moveToElementText(document.getElementById(containerid));
+        range.select();
+    } 
+    else if (window.getSelection) 
+    {
+        var range = document.createRange();
+        range.selectNode(document.getElementById(containerid));
+        window.getSelection().addRange(range);
+    }
+    new Clipboard('.btn', {
+    	text: function(trigger) {
+        	return $("#" + containerid).text();
+	    }
+	});
+}
+
+function ShowRectangle()
+{
+    var center = map.getCenter();
+    var bounds = map.getBounds();
+    var bne = bounds.getNorthEast();
+    var bsw = bounds.getSouthWest();
+    var x1 = Repeat(bsw.lng(), -180, 180);
+    var y1 = Repeat(bne.lat(), -90, 90);
+    var x2 = Repeat(bne.lng(), -180, 180);
+    var y2 = Repeat(bsw.lat(), -90, 90);
+    var cx = Repeat(center.lng(), -180, 180);
+    var cy = Repeat(center.lat(), -90, 90);
+    var ne = new google.maps.LatLng(cy + (y1 - cy) * 0.7, cx + (cx - x1) * 0.7);
+    var sw = new google.maps.LatLng(cy + (y2 - cy) * 0.7, cx + (cx - x2) * 0.7);
+    rectangle.setBounds(new google.maps.LatLngBounds(sw, ne));
+    $("#map-coord").show("fast");
+}
+
+function TileToLatLng(tilePos, zoom)
+{
+    var mapSize = tileSize << zoom;
+    var lng = 360 * (Repeat(tilePos.x * tileSize, 0, mapSize - 1) / mapSize - 0.5);
+    var lat = 90 - 360 * Math.atan(Math.exp((Clip(tilePos.y * tileSize, 0, mapSize - 1) / mapSize - 0.5) * Math.PI * 2)) / Math.PI;
+    return new google.maps.LatLng(lat, lng);
+}
+
+function UpdateBestRect()
+{
+    var c = bestResultRect;
+    var zoom = map.zoom + 3;
+
+    var bounds = c.getBounds();
+
+    var ne = LatLngToTile(bounds.getNorthEast(), zoom);
+    var sw = LatLngToTile(bounds.getSouthWest(), zoom);
+    ne.x = Math.round(ne.x);
+    ne.y = Math.round(ne.y);
+    sw.x = Math.round(sw.x);
+    sw.y = Math.round(sw.y);
+
+    ne = TileToLatLng(ne, zoom);
+    sw = TileToLatLng(sw, zoom);
+
+    c.setBounds(new google.maps.LatLngBounds(sw, ne));
+}
+
+function UpdateInfo()
+{
+    var bounds = rectangle.getBounds();
+    var ne = bounds.getNorthEast();
+    var sw = bounds.getSouthWest();
+    
+    $("#TLLat").text(ne.lat());
+    $("#TLLon").text(sw.lng());
+    $("#BRLat").text(sw.lat());
+    $("#BRLon").text(ne.lng());
+
+    var D2R = Math.PI / 180.0;
+    var R = 6371;
+
+    var scfY = Math.sin(ne.lat() * D2R);
+    var sctY = Math.sin(sw.lat() * D2R);
+    var ccfY = Math.cos(ne.lat() * D2R);
+    var cctY = Math.cos(sw.lat() * D2R);
+    var cX = Math.cos((sw.lng() - ne.lng()) * D2R);
+    var sizeX1 = Math.abs(R * Math.acos(scfY * scfY + ccfY * ccfY * cX));
+    var sizeX2 = Math.abs(R * Math.acos(sctY * sctY + cctY * cctY * cX));
+    sizeX = ((sizeX1 + sizeX2) / 2.0);
+    sizeY = (R * Math.acos(scfY * sctY + ccfY * cctY));
+
+    $("#AreaWidth").text(sizeX.toFixed(2));
+    $("#AreaHeight").text(sizeY.toFixed(2));
+    $("#AreaArea").text((sizeX * sizeY).toFixed(2));
+
+    bestResultRect.bounds = rectangle.getBounds();
+    UpdateBestRect();
+
+    $("div").removeClass("wrong");
+    var wrong = false;
+    if (provider == "srtm" || provider == "srtm30")
+    {
+        if (ne.lat() > 60 || ne.lat() < -60) { $("#topLatRow").addClass("wrong"); wrong = true;}
+        if (sw.lat() > 60 || sw.lat() < -60) { $("#bottomLatRow").addClass("wrong"); wrong = true;}
+    }
+
+    if (!wrong)
+    {
+        var hasMarkers = markers.length > 0;
+        var str = '<Coords tlx="' + sw.lng() + '" tly="' + ne.lat() + '" brx="' + ne.lng() + '" bry="' + sw.lat() + '"' + (hasMarkers?"": "/") + '>';
+        if (hasMarkers)
+        {
+            str += "<POIs>";
+            
+            for (var i = 0; i < markers.length; i++)
+            {
+                var marker = markers[i];
+                str += '<POI x="' + marker.position.lng() + '" y="' + marker.position.lat() + '">' + marker.title + "</POI>";
+            }
+            
+            str += "</POIs>";
+            str += "</Coords>";
+        }
+        
+        $("#coordNode").text(str);
+    }
+    else
+    {
+        $("#coordNode").text("Wrong latitude");
+    }
+}
+
+$(Initialize);

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Helper/RWT_Helper.jscript.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: a1fbf7f2b0d5a46468050568cc51b0f7
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Helper/images.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4aa36c5916c665443a0a0c017f25ab2f
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-down-icon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-down-icon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: b0804b129edbcf44d934932852bacf19
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-left-icon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-left-icon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: de00cc4bce942a441bac92ea5c4f00bc
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-right-icon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-right-icon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: a9103dbdddd939041bc235ddb6b36580
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-up-icon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Helper/images/arrow-up-icon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: 494f2e619fd9d7443a9c25b9366200fb
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Helper/images/grid.png


+ 56 - 0
Assets/Infinity Code/Real World Terrain/Helper/images/grid.png.meta

@@ -0,0 +1,56 @@
+fileFormatVersion: 2
+guid: 3935ae4abbd900841bbb3efa5a0b0fc0
+timeCreated: 1529499406
+licenseType: Store
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: .25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 8
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: .5, y: .5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 0
+  textureType: -1
+  buildTargetSettings: []
+  spriteSheet:
+    sprites: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Icons.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: e4f0022da752269489e7d8fb0752b502
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/FinishIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/FinishIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: e7c4de509b1857b49a251a775bfa542b
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/HelpIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/HelpIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: ca89956b637d1e248a7e124bca48041e
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/OpenIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/OpenIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: 90df6a8819c4f0040af8fc83cff186a9
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/RWT-uContext.png


+ 92 - 0
Assets/Infinity Code/Real World Terrain/Icons/RWT-uContext.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: dae6dd6340dd651459c6a5dc93d552f0
+timeCreated: 1564669258
+licenseType: Store
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/RWT.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/RWT.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: 134034eedd55f28429b3bc9f38a60ab5
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/RawIcon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Icons/RawIcon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: 3d35ac5cba271f249941cc75137cfade
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 1
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 32
+  textureSettings:
+    filterMode: -1
+    aniso: 1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/RefreshIcon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Icons/RefreshIcon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: b936b5526d3ea03438adae58bc8bfe22
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 1
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 32
+  textureSettings:
+    filterMode: -1
+    aniso: 1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/ResizeIcon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Icons/ResizeIcon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: 001c1b75f6a34a54a94d6adc0891da6d
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 1
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 32
+  textureSettings:
+    filterMode: -1
+    aniso: 1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/SaveIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/SaveIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: a7c5cf89b0ea3494fb0de801da7ed229
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/TrashIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/TrashIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: 87220f57e8229d54096cee2d3be95137
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/UtilsIcon.png


+ 57 - 0
Assets/Infinity Code/Real World Terrain/Icons/UtilsIcon.png.meta

@@ -0,0 +1,57 @@
+fileFormatVersion: 2
+guid: 54718ff155710f747b641b68199c6964
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 1
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 32
+  textureSettings:
+    filterMode: -1
+    aniso: 1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/WarningIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/WarningIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: 6c99427791f954d42a62e008324dd607
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Icons/WizardIcon.png


+ 90 - 0
Assets/Infinity Code/Real World Terrain/Icons/WizardIcon.png.meta

@@ -0,0 +1,90 @@
+fileFormatVersion: 2
+guid: 0e80487784e797248b225dfdf435b1b4
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 4
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 0
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 1024
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: -1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - buildTarget: DefaultTexturePlatform
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Standalone
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: Android
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  - buildTarget: WebGL
+    maxTextureSize: 32
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Materials.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 3245736206dd655489a0052a1e7aaffc
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 28 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-House-Roof-Material.mat

@@ -0,0 +1,28 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Default-House-Roof-Material
+  m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats: []
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-House-Roof-Material.mat.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: fe56b0c90ce2b3e46b135b0412006891
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 40 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-House-Wall-Material.mat

@@ -0,0 +1,40 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Default-House-Wall-Material
+  m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _DecalTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Illum:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _EmissionLM: 0
+    - _Shininess: 0.078125
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Emission: {r: 0, g: 0, b: 0, a: 0}
+    - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-House-Wall-Material.mat.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: f0185c5d71c62d742a9d4006bdaff727
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 46 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-River-Material.mat

@@ -0,0 +1,46 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Default-River-Material
+  m_Shader: {fileID: 4800000, guid: 66a7f69d0bc939443b23d648156d9cf5, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _DistortionMap:
+        m_Texture: {fileID: 2800000, guid: d89a74a2c1daff243b2e1c70e8327783, type: 3}
+        m_Scale: {x: 10, y: 10}
+        m_Offset: {x: 0.3, y: 0.3}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Texture1:
+        m_Texture: {fileID: 2800000, guid: 8823c23874613074eb9e2d6367531359, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Texture2:
+        m_Texture: {fileID: 2800000, guid: 8823c23874613074eb9e2d6367531359, type: 3}
+        m_Scale: {x: 2, y: 2}
+        m_Offset: {x: 0.5, y: 0.3}
+    m_Floats:
+    - _DistortionPower: 0.006567164
+    - _DistortionSpeed: 0.31
+    - _Gloss: 1.4626865
+    - _MainTexSpeed: 0.2
+    - _Specular: 5.1791043
+    - _Texture2Speed: -0.2
+    m_Colors:
+    - _Color: {r: 0.20392157, g: 0.18431373, b: 0.21568628, a: 0.69411767}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-River-Material.mat.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: e0f183e6ecf07f5409d8d7de7a57c931
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 28 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Front-Material.mat

@@ -0,0 +1,28 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Default-Wall-Front-Material
+  m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats: []
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Front-Material.mat.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: b49c4b19ad2c6dd4c90c6331ca44a053
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 28 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Top-Material.mat

@@ -0,0 +1,28 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Default-Wall-Top-Material
+  m_Shader: {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats: []
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}

+ 6 - 0
Assets/Infinity Code/Real World Terrain/Materials/Default-Wall-Top-Material.mat.meta

@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: f58a888000e904540866ba416ea88aa3
+NativeFormatImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Packages.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b709a987617dcfd4faca1038651ca42f
+folderAsset: yes
+timeCreated: 1523353453
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Infinity Code/Real World Terrain/Packages/RWT-Playmaker-Integration-Kit.unitypackage


+ 8 - 0
Assets/Infinity Code/Real World Terrain/Packages/RWT-Playmaker-Integration-Kit.unitypackage.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e6ea2053a3a06d489dab9947c71642b
+timeCreated: 1523353453
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Scripts.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 374fcc2ce7e46144f9ba33c1bfd05fa8
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6434ef3aa9e9ea44fb9e27f0695b84f8
+folderAsset: yes
+timeCreated: 1470870903
+licenseType: Store
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR2Material.cs

@@ -0,0 +1,20 @@
+/*     INFINITY CODE 2013-2019      */
+/*   http://www.infinity-code.com   */
+
+#if BUILDR2
+using System.Collections.Generic;
+using BuildR2;
+#endif
+
+namespace InfinityCode.RealWorldTerrain
+{
+    public class RealWorldTerrainBuildR2Material
+    {
+#if BUILDR2
+        public Facade applyFacade;
+        public Surface roofSurface;
+        public Roof.Types roofType = Roof.Types.Flat;
+        public List<Facade> facades;
+#endif
+    }
+}

+ 8 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR2Material.cs.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3c28a4517ca6c5c469273a4fffa52a46
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 

+ 18 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR3Material.cs

@@ -0,0 +1,18 @@
+/*         INFINITY CODE         */
+/*   https://infinity-code.com   */
+
+#if BUILDR3
+using BuildRCities;
+#endif
+
+namespace InfinityCode.RealWorldTerrain
+{
+    public class RealWorldTerrainBuildR3Material
+    {
+#if BUILDR3
+        public FacadeAsset wallFacade;
+        public DynamicTextureAsset roofTexture;
+        public Roof.Types roofType;
+#endif
+    }
+}

+ 11 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildR3Material.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 434cc2378df29a74299c7f3a3dd96dd7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 16 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildRBuilding.cs

@@ -0,0 +1,16 @@
+/*     INFINITY CODE 2013-2019      */
+/*   http://www.infinity-code.com   */
+
+using UnityEngine;
+
+namespace InfinityCode.RealWorldTerrain
+{
+    /// <summary>
+    /// This class contains basic information about BuildR building.
+    /// </summary>
+    [AddComponentMenu("")]
+    public class RealWorldTerrainBuildRBuilding : MonoBehaviour
+    {
+
+    }
+}

+ 10 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuildRBuilding.cs.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f2c1d10b35fec2c4a824c7d1cc6dd498
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 393 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuilding.cs

@@ -0,0 +1,393 @@
+/*         INFINITY CODE         */
+/*   https://infinity-code.com   */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+namespace InfinityCode.RealWorldTerrain
+{
+    /// <summary>
+    /// This class contains basic information about the building.
+    /// </summary>
+    [AddComponentMenu("")]
+    [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
+    public class RealWorldTerrainBuilding : MonoBehaviour
+    {
+        /// <summary>
+        /// The height of the walls.
+        /// </summary>
+        public float baseHeight;
+
+        /// <summary>
+        /// Array of base vertices.
+        /// </summary>
+        public Vector3[] baseVertices;
+
+        /// <summary>
+        /// Reference to RealWorldTerrainContainer instance.
+        /// </summary>
+        public RealWorldTerrainContainer container;
+
+        /// <summary>
+        /// ID of the building
+        /// </summary>
+        public string id;
+
+        /// <summary>
+        /// Indicates that roof normals is inverted.
+        /// </summary>
+        public bool invertRoof;
+
+        /// <summary>
+        /// Indicates that walls normals is inverted.
+        /// </summary>
+        public bool invertWall;
+
+        /// <summary>
+        /// Height of roof.
+        /// </summary>
+        public float roofHeight;
+
+        /// <summary>
+        /// Type of roof.
+        /// </summary>
+        public RealWorldTerrainRoofType roofType;
+
+        /// <summary>
+        /// Whether to generate the wall?
+        /// </summary>
+        public bool generateWall;
+
+        /// <summary>
+        /// Material of the roof.
+        /// </summary>
+        public Material roofMaterial;
+
+        public float startHeight = 0;
+
+        /// <summary>
+        /// Size of a tile texture in meters.
+        /// </summary>
+        public Vector2 tileSize = new Vector2(30, 30);
+
+        public Vector2 uvOffset = Vector2.zero;
+
+        /// <summary>
+        /// Material of the wall.
+        /// </summary>
+        public Material wallMaterial;
+
+        private MeshFilter _meshFilter;
+
+        /// <summary>
+        /// Reference to MeshFilter of the building.
+        /// </summary>
+        public MeshFilter meshFilter
+        {
+            get
+            {
+                if (_meshFilter == null) _meshFilter = GetComponent<MeshFilter>();
+                return _meshFilter;
+            }
+        }
+
+        /// <summary>
+        /// Reference to MeshFilter of roof.
+        /// </summary>
+        [Obsolete("Use meshFilter instead.")]
+        public MeshFilter roof
+        {
+            get { return meshFilter; }
+        }
+
+        /// <summary>
+        /// Reference to MeshFilter of wall.
+        /// </summary>
+        [Obsolete("Use meshFilter instead.")]
+        public MeshFilter wall
+        {
+            get { return meshFilter; }
+        }
+
+        private void CreateRoofDome(List<Vector3> vertices, List<int> triangles)
+        {
+            Vector3 roofTopPoint = Vector3.zero;
+            roofTopPoint = vertices.Aggregate(roofTopPoint, (current, point) => current + point) / vertices.Count;
+            roofTopPoint.y = (baseHeight + roofHeight) * container.scale.y;
+            int vIndex = vertices.Count;
+
+            for (int i = 0; i < vertices.Count; i++)
+            {
+                int p1 = i;
+                int p2 = i + 1;
+                if (p2 >= vertices.Count) p2 -= vertices.Count;
+
+                triangles.AddRange(new[] { p1, p2, vIndex });
+            }
+
+            vertices.Add(roofTopPoint);
+        }
+
+        private void CreateRoofMesh(List<Vector3> vertices, out List<Vector2> uv, out List<int> triangles)
+        {
+            List<Vector2> roofPoints = CreateRoofVertices(vertices);
+            triangles = CreateRoofTriangles(vertices, roofPoints);
+
+            if (invertRoof) triangles.Reverse();
+
+            float minX = vertices.Min(p => p.x);
+            float minZ = vertices.Min(p => p.z);
+            float maxX = vertices.Max(p => p.x);
+            float maxZ = vertices.Max(p => p.z);
+            float offX = maxX - minX;
+            float offZ = maxZ - minZ;
+
+            uv = vertices.Select(v => new Vector2((v.x - minX) / offX, (v.z - minZ) / offZ)).ToList();
+        }
+
+        private List<int> CreateRoofTriangles(List<Vector3> vertices, List<Vector2> roofPoints)
+        {
+            List<int> triangles = new List<int>();
+            if (roofType == RealWorldTerrainRoofType.flat)
+            {
+                int[] trs = RealWorldTerrainTriangulator.Triangulate(roofPoints);
+                if (trs != null) triangles.AddRange(trs);
+            }
+            else if (roofType == RealWorldTerrainRoofType.dome)
+            {
+                CreateRoofDome(vertices, triangles);
+            }
+            return triangles;
+        }
+
+        private List<Vector2> CreateRoofVertices(List<Vector3> vertices)
+        {
+            Vector3[] targetVertices = new Vector3[baseVertices.Length];
+            Array.Copy(baseVertices, targetVertices, baseVertices.Length);
+
+            if (container.prefs.buildingBottomMode == RealWorldTerrainBuildingBottomMode.followTerrain)
+            {
+                Vector3 tp = transform.position;
+                RealWorldTerrainItem terrainItem = container.GetItemByWorldPosition(baseVertices[0] + tp);
+                if (terrainItem != null)
+                {
+                    TerrainData t = terrainItem.terrainData;
+
+                    Vector3 offset = tp - terrainItem.transform.position;
+
+                    for (int i = 0; i < targetVertices.Length; i++)
+                    {
+                        Vector3 v = targetVertices[i];
+                        Vector3 localPos = offset + v;
+                        float y = t.GetInterpolatedHeight(localPos.x / t.size.x, localPos.z / t.size.z);
+                        v.y = terrainItem.transform.position.y + y - tp.y;
+                        targetVertices[i] = v;
+                    }
+                }
+            }
+
+            List<Vector2> roofPoints = new List<Vector2>();
+            float topPoint = targetVertices.Max(v => v.y) + baseHeight * container.scale.y;
+            foreach (Vector3 p in targetVertices)
+            {
+                Vector3 tv = new Vector3(p.x, topPoint, p.z);
+                Vector2 rp = new Vector2(p.x, p.z);
+
+                vertices.Add(tv);
+                roofPoints.Add(rp);
+            }
+
+            return roofPoints;
+        }
+
+        private void CreateWallMesh(List<Vector3> vertices, List<Vector2> uv, out List<int> triangles)
+        {
+            List<Vector3> wv = new List<Vector3>();
+            List<Vector2> wuv = new List<Vector2>();
+            bool reversed = CreateWallVertices(wv, wuv);
+            if (invertWall) reversed = !reversed;
+            triangles = CreateWallTriangles(wv, vertices.Count, reversed);
+            vertices.AddRange(wv);
+            uv.AddRange(wuv);
+        }
+
+        private List<int> CreateWallTriangles(List<Vector3> vertices, int offset, bool reversed)
+        {
+            List<int> triangles = new List<int>();
+            for (int i = 0; i < vertices.Count / 4; i++)
+            {
+                int p1 = i * 4;
+                int p2 = i * 4 + 2;
+                int p3 = i * 4 + 3;
+                int p4 = i * 4 + 1;
+
+                if (p2 >= vertices.Count) p2 -= vertices.Count;
+                if (p3 >= vertices.Count) p3 -= vertices.Count;
+
+                p1 += offset;
+                p2 += offset;
+                p3 += offset;
+                p4 += offset;
+
+                if (reversed)
+                {
+                    triangles.AddRange(new[] { p1, p4, p3, p1, p3, p2 });
+                }
+                else
+                {
+                    triangles.AddRange(new[] { p2, p3, p1, p3, p4, p1 });
+                }
+            }
+            return triangles;
+        }
+
+        private bool CreateWallVertices(List<Vector3> vertices, List<Vector2> uv)
+        {
+            Vector3[] targetVertices = new Vector3[baseVertices.Length];
+            Array.Copy(baseVertices, targetVertices, baseVertices.Length);
+
+            if (container.prefs.buildingBottomMode == RealWorldTerrainBuildingBottomMode.followTerrain)
+            {
+                Vector3 tp = transform.position;
+                RealWorldTerrainItem terrainItem = container.GetItemByWorldPosition(baseVertices[0] + tp);
+                if (terrainItem != null)
+                {
+                    TerrainData t = terrainItem.terrainData;
+
+                    Vector3 offset = tp - terrainItem.transform.position;
+
+                    for (int i = 0; i < targetVertices.Length; i++)
+                    {
+                        Vector3 v = targetVertices[i];
+                        Vector3 localPos = offset + v;
+                        float y = t.GetInterpolatedHeight(localPos.x / t.size.x, localPos.z / t.size.z);
+                        v.y = terrainItem.transform.position.y + y - tp.y;
+                        targetVertices[i] = v;
+                    }
+                }
+            }
+
+            float topPoint = targetVertices.Max(v => v.y) + baseHeight * container.scale.y;
+
+            float startY = startHeight * container.scale.y;
+            float offsetY = startY < 0 ? startY : 0;
+
+            for (int i = 0; i < targetVertices.Length; i++)
+            {
+                Vector3 p1 = targetVertices[i];
+                Vector3 p2 = i < targetVertices.Length - 1 ? targetVertices[i + 1] : targetVertices[0];
+                if (p1.y < startY) p1.y = startY;
+                if (p2.y < startY) p2.y = startY;
+                p1.y += offsetY;
+                p2.y += offsetY;
+                vertices.Add(p1);
+                vertices.Add(new Vector3(p1.x, topPoint, p1.z));
+                vertices.Add(p2);
+                vertices.Add(new Vector3(p2.x, topPoint, p2.z));
+            }
+
+            float totalDistance = 0;
+            float bottomPoint = float.MaxValue;
+
+            for (int i = 0; i < vertices.Count / 4; i++)
+            {
+                int i1 = Mathf.RoundToInt(Mathf.Repeat(i * 4, vertices.Count));
+                int i2 = Mathf.RoundToInt(Mathf.Repeat((i + 1) * 4, vertices.Count));
+                Vector3 v1 = vertices[i1];
+                Vector3 v2 = vertices[i2];
+                v1.y = v2.y = 0;
+                totalDistance += (v1 - v2).magnitude;
+                if (bottomPoint > targetVertices[i].y) bottomPoint = targetVertices[i].y;
+            }
+
+            Vector3 lv1 = vertices[vertices.Count - 4];
+            Vector3 lv2 = vertices[0];
+            lv1.y = lv2.y = 0;
+            totalDistance += (lv1 - lv2).magnitude;
+
+            float currentDistance = 0;
+            float nextU = 0;
+            float uMul = totalDistance / tileSize.x;
+            float vMax = topPoint / tileSize.y;
+            float vMinMul = container.scale.y * tileSize.y;
+
+            for (int i = 0; i < vertices.Count / 4; i++)
+            {
+                int i1 = Mathf.RoundToInt(Mathf.Repeat(i * 4, vertices.Count));
+                int i2 = Mathf.RoundToInt(Mathf.Repeat((i + 1) * 4, vertices.Count));
+                float curU = nextU;
+                uv.Add(new Vector2(curU * uMul + uvOffset.x, (vertices[i * 4].y - bottomPoint) / vMinMul + uvOffset.y));
+                uv.Add(new Vector2(curU * uMul + uvOffset.x, vMax + uvOffset.y));
+
+                Vector3 v1 = vertices[i1];
+                Vector3 v2 = vertices[i2];
+                v1.y = v2.y = 0;
+                currentDistance += (v1 - v2).magnitude;
+                nextU = currentDistance / totalDistance;
+
+                uv.Add(new Vector2(nextU * uMul + uvOffset.x, (vertices[i * 4 + 2].y - bottomPoint) / vMinMul + uvOffset.y));
+                uv.Add(new Vector2(nextU * uMul + uvOffset.x, vMax + uvOffset.y)); 
+            }
+
+            int southIndex = -1;
+            float southZ = float.MaxValue;
+
+            for (int i = 0; i < targetVertices.Length; i++)
+            {
+                if (targetVertices[i].z < southZ)
+                {
+                    southZ = targetVertices[i].z;
+                    southIndex = i;
+                }
+            }
+
+            int prevIndex = southIndex - 1;
+            if (prevIndex < 0) prevIndex = targetVertices.Length - 1;
+
+            int nextIndex = southIndex + 1;
+            if (nextIndex >= targetVertices.Length) nextIndex = 0;
+
+            float angle1 = RealWorldTerrainUtils.Angle2D(targetVertices[southIndex], targetVertices[nextIndex]);
+            float angle2 = RealWorldTerrainUtils.Angle2D(targetVertices[southIndex], targetVertices[prevIndex]);
+
+            return angle1 < angle2;
+        }
+
+        public void Generate()
+        {
+            Mesh mesh;
+            if (meshFilter.sharedMesh != null) mesh = meshFilter.sharedMesh;
+            else
+            {
+                mesh = new Mesh();
+                mesh.name = "Building " + id;
+                mesh.subMeshCount = 2;
+                meshFilter.sharedMesh = mesh;
+            }
+
+            List<Vector3> vertices = new List<Vector3>();
+            List<Vector2> uv;
+            List<int> roofTriangles;
+            List<int> wallTriangles = null;
+
+            CreateRoofMesh(vertices, out uv, out roofTriangles);
+            if (generateWall) CreateWallMesh(vertices, uv, out wallTriangles);
+
+            mesh.SetVertices(vertices);
+            mesh.SetUVs(0, uv);
+            mesh.SetTriangles(roofTriangles, 0);
+            if (generateWall) mesh.SetTriangles(wallTriangles, 1);
+
+            mesh.RecalculateNormals();
+            mesh.RecalculateBounds();
+
+            GetComponent<MeshRenderer>().materials = new[]
+            {
+                roofMaterial,
+                wallMaterial,
+            };
+        }
+    }
+}

+ 10 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainBuilding.cs.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 3c16844aceaeec04999e14ee80b7b8e2
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 169 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainContainer.cs

@@ -0,0 +1,169 @@
+/*     INFINITY CODE 2013-2019      */
+/*   http://www.infinity-code.com   */
+
+using System;
+using System.Linq;
+using UnityEngine;
+
+namespace InfinityCode.RealWorldTerrain
+{
+    /// <summary>
+    /// This class is added to the resulting container.\n
+    /// It contains all information about terrains.
+    /// </summary>
+    [Serializable]
+    [AddComponentMenu("")]
+    public class RealWorldTerrainContainer : RealWorldTerrainMonoBase
+    {
+        /// <summary>
+        /// Billboard start.
+        /// </summary>
+        public float billboardStart = 50;
+
+        /// <summary>
+        /// Detail density.
+        /// </summary>
+        public float detailDensity = 1;
+
+        /// <summary>
+        /// Detail distance.
+        /// </summary>
+        public float detailDistance = 80;
+
+        /// <summary>
+        /// The folder in the project where located terrains.
+        /// </summary>
+        public string folder;
+
+        /// <summary>
+        /// Count of terrains.
+        /// </summary>
+        public RealWorldTerrainVector2i terrainCount;
+
+        /// <summary>
+        /// Title
+        /// </summary>
+        public string title;
+
+        /// <summary>
+        /// Tree distance.
+        /// </summary>
+        public float treeDistance = 2000;
+
+        /// <summary>
+        /// The array of elements that belong to the current process of generation.
+        /// </summary>
+        public RealWorldTerrainItem[] terrains;
+
+        /// <summary>
+        /// Gets all instances of RealWorldTerrainContainer.
+        /// </summary>
+        /// <returns>Instances of RealWorldTerrainContainer</returns>
+        public static RealWorldTerrainContainer[] GetInstances()
+        {
+            return FindObjectsOfType<RealWorldTerrainContainer>().ToArray();
+        }
+
+        public override RealWorldTerrainItem GetItemByWorldPosition(Vector3 worldPosition)
+        {
+            for (int i = 0; i < terrains.Length; i++)
+            {
+                RealWorldTerrainItem item = terrains[i];
+                if (item == null) continue;
+                Bounds b = new Bounds(item.bounds.center + transform.position, item.bounds.size);
+                if (b.min.x <= worldPosition.x && b.min.z <= worldPosition.z && b.max.x >= worldPosition.x && b.max.z >= worldPosition.z)
+                {
+                    return item;
+                }
+            }
+            return null;
+        }
+
+        public override bool GetWorldPosition(double lng, double lat, out Vector3 worldPosition)
+        {
+            worldPosition = new Vector3();
+
+            if (!Contains(lng, lat))
+            {
+                Debug.Log("Wrong coordinates");
+                return false;
+            }
+
+            if (terrains == null || terrains.Length == 0) return false;
+
+            double mx, my;
+            RealWorldTerrainUtils.LatLongToMercat(lng, lat, out mx, out my);
+
+            double lX = RealWorldTerrainUtils.Clamp((mx - leftMercator) / (rightMercator - leftMercator), 0, 1);
+            double lZ = RealWorldTerrainUtils.Clamp(1 - (my - topMercator) / (bottomMercator - topMercator), 0, 1);
+
+            Bounds cb = new Bounds(bounds.center + transform.position, bounds.size);
+
+            double x = cb.size.x * lX + cb.min.x;
+            double z = cb.size.z * lZ + cb.min.z;
+
+            if (prefs.resultType == RealWorldTerrainResultType.terrain)
+            {
+                Terrain terrain = null;
+                for (int i = 0; i < terrains.Length; i++)
+                {
+                    RealWorldTerrainItem item = terrains[i];
+                    Bounds b = new Bounds(item.bounds.center + transform.position, item.bounds.size);
+                    if (b.min.x <= x && b.min.z <= z && b.max.x >= x && b.max.z >= z)
+                    {
+                        terrain = item.terrain;
+                        break;
+                    }
+                }
+
+                if (terrain == null) return false;
+
+                double ix = (x - terrain.gameObject.transform.position.x) / terrain.terrainData.size.x;
+                double iz = (z - terrain.gameObject.transform.position.z) / terrain.terrainData.size.z;
+                double y = terrain.terrainData.GetInterpolatedHeight((float)ix, (float)iz) + terrain.gameObject.transform.position.y;
+
+                worldPosition.x = (float)x;
+                worldPosition.y = (float)y;
+                worldPosition.z = (float)z;
+            }
+            else if (prefs.resultType == RealWorldTerrainResultType.mesh)
+            {
+                bool success = false;
+                for (int i = 0; i < terrains.Length; i++)
+                {
+                    RealWorldTerrainItem item = terrains[i];
+                    Bounds b = new Bounds(item.bounds.center + transform.position, item.bounds.size);
+                    if (b.min.x <= x && b.min.z <= z && b.max.x >= x && b.max.z >= z)
+                    {
+                        float y = 0;
+                        RaycastHit[] hits = Physics.RaycastAll(new Vector3((float)x, item.bounds.max.y + 10, (float)z), Vector3.down, float.MaxValue);
+                        foreach (RaycastHit hit in hits)
+                        {
+                            if (hit.transform.gameObject.GetComponentInParent<RealWorldTerrainItem>() != null)
+                            {
+                                y = hit.point.y;
+                                break;
+                            }
+                        }
+
+                        worldPosition.x = (float)x;
+                        worldPosition.y = y;
+                        worldPosition.z = (float)z;
+                        success = true;
+                        break;
+                    }
+                }
+
+                if (!success) return false;
+            }
+
+            
+            return true;
+        }
+
+        public override bool GetWorldPosition(Vector2 coordinates, out Vector3 worldPosition)
+        {
+            return GetWorldPosition(coordinates.x, coordinates.y, out worldPosition);
+        }
+    }
+}

+ 10 - 0
Assets/Infinity Code/Real World Terrain/Scripts/Containers/RealWorldTerrainContainer.cs.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 35746522d0c34a74e98f963412f0defe
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff