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_normals(geometry_id, mesh)
|
||||||
get_texture_coordinates(geometry_id, mesh)
|
get_texture_coordinates(geometry_id, mesh)
|
||||||
|
|
||||||
|
project_node(geometry_name)
|
||||||
build_faces(geometry_id, mesh)
|
build_faces(geometry_id, mesh)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -78,6 +79,21 @@ class IMICFPS
|
|||||||
def get_texture_coordinates(id, mesh)
|
def get_texture_coordinates(id, mesh)
|
||||||
end
|
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)
|
def build_faces(id, mesh)
|
||||||
material_name = mesh.at_css("triangles").attributes["material"].value
|
material_name = mesh.at_css("triangles").attributes["material"].value
|
||||||
set_material(material_name)
|
set_material(material_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user