class Disp3D::NodeTris
Constants
- NORMAL_EACH_FACE
- NORMAL_EACH_VERTEX
Public Class Methods
new(geom, name = nil)
click to toggle source
Calls superclass method
Disp3D::NodeLeaf::new
# File lib/node/node_tris.rb, line 10 def initialize(geom, name = nil) Util3D.check_arg_type(Symbol, name, true) geom_inner = geom if(geom.kind_of?(STL)) geom_inner = geom.tri_mesh end Util3D.check_arg_type(GMath3D::TriMesh, geom_inner, false) super(geom_inner, name) @normal_mode = NORMAL_EACH_VERTEX end
Protected Instance Methods
draw_element()
click to toggle source
# File lib/node/node_tris.rb, line 22 def draw_element if(@geom) draw_color if( @normal_mode == NORMAL_EACH_VERTEX && @each_vertex_normal.nil?) @each_vertex_normal = @geom.normals_for_each_vertices end GL.Begin(GL::TRIANGLES) if(@geom.kind_of?(GMath3D::TriMesh)) @geom.triangles.each_with_index do |tri_geom, i| draw_colors(i) GL.Normal(tri_geom.normal.x, tri_geom.normal.y, tri_geom.normal.z) if(@normal_mode == NORMAL_EACH_FACE) tri_geom.vertices.each do |vertex| if(@normal_mode == NORMAL_EACH_VERTEX) vert_normal = @each_vertex_normal[vertex] GL.Normal(vert_normal.x, vert_normal.y, vert_normal.z) if(vert_normal != nil) end GL.Vertex( vertex.x, vertex.y, vertex.z ) end end end GL.End() else raise end end