Allows use to ease some pain when converting PackedVector2Array to std::vector<Vector2>.
30 lines
936 B
GDScript
30 lines
936 B
GDScript
extends Node
|
|
|
|
@onready var meshInstance = MeshInstance3D.new()
|
|
|
|
var lines = []
|
|
|
|
func _process(delta: float) -> void:
|
|
for l in lines:
|
|
DebugDraw3D.draw_lines(l, Color.DARK_RED)
|
|
|
|
meshInstance.rotate(Vector3.UP, (0.9 * delta))
|
|
meshInstance.rotate(Vector3.RIGHT, (0.9 * delta))
|
|
|
|
func _ready() -> void:
|
|
var p1 = [Vector2(4, 0), Vector2(4, 4), Vector2(0, 4), Vector2(0, 0)]
|
|
var p2 = [Vector2(0, 2), Vector2(0, 1), Vector2(2, 1), Vector2(2, 2)]
|
|
var p3 = [Vector2(2, 2), Vector2(2, 1), Vector2(4, 1), Vector2(4, 2)]
|
|
|
|
|
|
var trianglizationInstance = GeoPolyTriangulization.new(PackedVector2Array(p1), [PackedVector2Array(p2), PackedVector2Array(p3)], -0.001)
|
|
var vector_indexes = trianglizationInstance.triangulate()
|
|
var vectors_points = trianglizationInstance.vectors
|
|
|
|
var meshGenerator = GeoPolyMesh.new(vector_indexes, vectors_points)
|
|
var mesh = meshGenerator.commit_mesh()
|
|
|
|
meshInstance.mesh = mesh
|
|
|
|
add_child(meshInstance)
|