Files
kicking-high/proto2/characters/drawable.gd
2019-08-22 23:56:07 +03:00

31 lines
988 B
GDScript

extends ColorRect
signal drawing_finished
const TEX_SIZE = 512
var triangles : Array = []
var min_point: Vector3 = Vector3(-1, -1, -1)
var max_point: Vector3 = Vector3(-1, -1, -1)
var normals = false
func _draw():
var default_color = Color(0.5, 0.5, 0.5, 1.0)
default_color.r = range_lerp(0, min_point.x, max_point.x, 0.0, 1.0)
default_color.g = range_lerp(0, min_point.y, max_point.y, 0.0, 1.0)
default_color.b = range_lerp(0, min_point.z, max_point.z, 0.0, 1.0)
draw_rect(Rect2(0, 0, TEX_SIZE, TEX_SIZE), default_color, true)
for t in triangles:
var colors = []
var uvs = []
for k in t:
# print(k.shape)
# print(k.uv)
if normals:
colors.push_back(Color(k.normal.x, k.normal.y, k.normal.z, 1))
else:
colors.push_back(Color(k.shape.x, k.shape.y, k.shape.z, 1))
uvs.push_back(k.uv * TEX_SIZE)
draw_polygon(PoolVector2Array(uvs), PoolColorArray(colors))
yield(get_tree(), "idle_frame")
yield(get_tree(), "idle_frame")
emit_signal("drawing_finished")