Apply matrix to vertices parsed from collada models

This commit is contained in:
2020-05-12 09:32:00 -05:00
parent fa2873bb8f
commit 7c81dd93e3

View File

@@ -48,6 +48,7 @@ class IMICFPS
get_normals(geometry_id, mesh)
get_texture_coordinates(geometry_id, mesh)
project_node(geometry_name)
build_faces(geometry_id, mesh)
end
@@ -78,6 +79,21 @@ class IMICFPS
def get_texture_coordinates(id, mesh)
end
def project_node(name)
@collada.css("library_visual_scenes visual_scene node").each do |node|
if node.attributes["name"].value == name
transform = Transform.new( node.at_css("matrix").children.first.to_s.split(" ").map { |f| Float(f) } )
@model.current_object.vertices.each do |vert|
v = vert.multiply_transform(transform)
vert.x, vert.y, vert.z, vert.w = v.x, v.y, v.z, v.w
end
break
end
end
end
def build_faces(id, mesh)
material_name = mesh.at_css("triangles").attributes["material"].value
set_material(material_name)