|
@@ -9,12 +9,15 @@ var lonMax:float = 1.0
|
|
var resolution:int = 512
|
|
var resolution:int = 512
|
|
var radius:float = 10
|
|
var radius:float = 10
|
|
|
|
|
|
-func setParams(latMinIN, latMaxIN, lonMinIN, lonMaxIN, resolutionIN):
|
|
|
|
|
|
+var origin:Vector3
|
|
|
|
+
|
|
|
|
+func setParams(latMinIN, latMaxIN, lonMinIN, lonMaxIN, resolutionIN, radiusIN:float):
|
|
latMin = latMinIN
|
|
latMin = latMinIN
|
|
latMax = latMaxIN
|
|
latMax = latMaxIN
|
|
lonMin = lonMinIN
|
|
lonMin = lonMinIN
|
|
lonMax = lonMaxIN
|
|
lonMax = lonMaxIN
|
|
resolution = resolutionIN
|
|
resolution = resolutionIN
|
|
|
|
+ radius = radiusIN
|
|
|
|
|
|
func _ready():
|
|
func _ready():
|
|
pass
|
|
pass
|
|
@@ -22,33 +25,36 @@ func _ready():
|
|
#self.genMesh()
|
|
#self.genMesh()
|
|
|
|
|
|
func genMesh():
|
|
func genMesh():
|
|
- print("generating Mesh:")
|
|
|
|
- print("latMin: " + str(latMin))
|
|
|
|
- print("latMax: " + str(latMax))
|
|
|
|
- print("lonMin: " + str(lonMin))
|
|
|
|
- print("lonMax: " + str(lonMax))
|
|
|
|
- print("resolution: " + str(resolution))
|
|
|
|
|
|
+ #print("generating Mesh:")
|
|
|
|
+ #print("latMin: " + str(latMin))
|
|
|
|
+ #print("latMax: " + str(latMax))
|
|
|
|
+ #print("lonMin: " + str(lonMin))
|
|
|
|
+ #print("lonMax: " + str(lonMax))
|
|
|
|
+ #print("resolution: " + str(resolution))
|
|
|
|
|
|
var verts = convertToCartesian(genSphereCoords())
|
|
var verts = convertToCartesian(genSphereCoords())
|
|
var arr = []
|
|
var arr = []
|
|
arr.resize(Mesh.ARRAY_MAX)
|
|
arr.resize(Mesh.ARRAY_MAX)
|
|
arr[Mesh.ARRAY_VERTEX] = verts
|
|
arr[Mesh.ARRAY_VERTEX] = verts
|
|
- #arr[Mesh.ARRAY_TEX_UV] = genUV()
|
|
|
|
|
|
+ arr[Mesh.ARRAY_TEX_UV] = genUV()
|
|
arr[Mesh.ARRAY_NORMAL] = genNormals(verts)
|
|
arr[Mesh.ARRAY_NORMAL] = genNormals(verts)
|
|
arr[Mesh.ARRAY_INDEX] = genIndex()
|
|
arr[Mesh.ARRAY_INDEX] = genIndex()
|
|
mesh = Mesh.new()
|
|
mesh = Mesh.new()
|
|
mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arr)
|
|
mesh.add_surface_from_arrays(Mesh.PRIMITIVE_TRIANGLES, arr)
|
|
|
|
+ var mat = SpatialMaterial.new()
|
|
|
|
+ mat.albedo_color = Color(0.7,0.7,0.7,1)
|
|
|
|
+ mesh.surface_set_material(0,mat)
|
|
|
|
|
|
- var drawBubbles = true
|
|
|
|
|
|
+ var drawBubbles = false
|
|
if drawBubbles:
|
|
if drawBubbles:
|
|
var i = 0.0
|
|
var i = 0.0
|
|
for vert in verts:
|
|
for vert in verts:
|
|
var point = Point.instance()
|
|
var point = Point.instance()
|
|
point.translate(vert)
|
|
point.translate(vert)
|
|
- var mat = SpatialMaterial.new()#point.mesh.surface_get_material(0)
|
|
|
|
|
|
+ var pointMat = SpatialMaterial.new()#point.mesh.surface_get_material(0)
|
|
mat.albedo_color = Color(i,0,0,1)
|
|
mat.albedo_color = Color(i,0,0,1)
|
|
i+=0.1
|
|
i+=0.1
|
|
- point.mesh.surface_set_material(0,mat)
|
|
|
|
|
|
+ point.mesh.surface_set_material(0,pointMat)
|
|
.get_parent().add_child(point)
|
|
.get_parent().add_child(point)
|
|
|
|
|
|
func genNormals(verts:PoolVector3Array):
|
|
func genNormals(verts:PoolVector3Array):
|
|
@@ -58,8 +64,8 @@ func genNormals(verts:PoolVector3Array):
|
|
for vert in verts:
|
|
for vert in verts:
|
|
normals[v_idx] = vert.normalized()
|
|
normals[v_idx] = vert.normalized()
|
|
v_idx+=1
|
|
v_idx+=1
|
|
- print("normals")
|
|
|
|
- print(len(normals))
|
|
|
|
|
|
+ #print("normals")
|
|
|
|
+ #print(len(normals))
|
|
return normals
|
|
return normals
|
|
|
|
|
|
func genUV():
|
|
func genUV():
|
|
@@ -70,8 +76,8 @@ func genUV():
|
|
var y = v_idx / resolution
|
|
var y = v_idx / resolution
|
|
var x = v_idx % resolution
|
|
var x = v_idx % resolution
|
|
uvs[v_idx]=Vector2(clamp(x, 0, resolution),clamp(y, 0, resolution))
|
|
uvs[v_idx]=Vector2(clamp(x, 0, resolution),clamp(y, 0, resolution))
|
|
- print("uv")
|
|
|
|
- print(len(uvs))
|
|
|
|
|
|
+ #print("uv")
|
|
|
|
+ #print(len(uvs))
|
|
return uvs
|
|
return uvs
|
|
|
|
|
|
|
|
|
|
@@ -98,8 +104,8 @@ func genIndex():
|
|
indices[i_idx] = v_idx + 1
|
|
indices[i_idx] = v_idx + 1
|
|
i_idx+=1
|
|
i_idx+=1
|
|
|
|
|
|
- print("indices")
|
|
|
|
- print(len(indices))
|
|
|
|
|
|
+ #print("indices")
|
|
|
|
+ #print(len(indices))
|
|
return indices
|
|
return indices
|
|
|
|
|
|
func genSphereCoords():
|
|
func genSphereCoords():
|
|
@@ -123,8 +129,8 @@ func genSphereCoords():
|
|
# v_idx+=1
|
|
# v_idx+=1
|
|
# lon += (lonMax-lonMin)/resolution
|
|
# lon += (lonMax-lonMin)/resolution
|
|
# lat += (latMax-latMin)/resolution
|
|
# lat += (latMax-latMin)/resolution
|
|
- print("verts")
|
|
|
|
- print(len(verts))
|
|
|
|
|
|
+ #print("verts")
|
|
|
|
+ #print(len(verts))
|
|
return verts
|
|
return verts
|
|
|
|
|
|
|
|
|
|
@@ -133,8 +139,10 @@ func convertToCartesian(verts:PoolVector3Array):
|
|
carVerts.resize(len(verts))
|
|
carVerts.resize(len(verts))
|
|
var v_idx = 0
|
|
var v_idx = 0
|
|
for vert in verts:
|
|
for vert in verts:
|
|
- carVerts[v_idx] = Common.latLonToGlobal(vert.x, vert.y, vert.z, Vector3(), Vector3())
|
|
|
|
|
|
+ if not origin:
|
|
|
|
+ origin = vert
|
|
|
|
+ carVerts[v_idx] = Common.latLonToGlobal(vert.x, vert.y, vert.z, Vector3(), origin)
|
|
v_idx+=1
|
|
v_idx+=1
|
|
- print("Cartesian")
|
|
|
|
- print(len(carVerts))
|
|
|
|
|
|
+ #print("Cartesian")
|
|
|
|
+ #print(len(carVerts))
|
|
return carVerts
|
|
return carVerts
|