mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-16 16:12:35 +00:00
Apply matrix to vertices parsed from collada models
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user