class GMath3D::Polyline
Polyline
represents a closed or open polyline on 3D space.
Attributes
is_open[RW]
vertices[RW]
Public Class Methods
new(vertices = [], is_open = true)
click to toggle source
Calls superclass method
GMath3D::Geom::new
# File lib/polyline.rb, line 18 def initialize(vertices = [], is_open = true) Util3D.check_arg_type(Array, vertices) super() @vertices = vertices @is_open = is_open end
Public Instance Methods
==(rhs)
click to toggle source
- Input
-
rhs is
Polyline
. - Output
-
return true if rhs equals myself.
# File lib/polyline.rb, line 37 def ==(rhs) return false if rhs == nil return false if( !rhs.kind_of?(Polyline) ) return false if( self.is_open != rhs.is_open ) return false if(@vertices.size != rhs.vertices.size) for i in 0..(@vertices.size-1) return false if( self.vertices[i] != rhs.vertices[i]) end return true end
center()
click to toggle source
- Output
-
return center point as
Vector3
.
# File lib/polyline.rb, line 62 def center center = Vector3.new() @vertices.each do |vertex| center += vertex end center /= @vertices.size return center end
initialize_copy( original_obj )
click to toggle source
# File lib/polyline.rb, line 25 def initialize_copy( original_obj ) @vertices = Array.new(original_obj.vertices.size) for i in 0..@vertices.size-1 @vertices[i] = original_obj.vertices[i].dup end @is_open = original_obj.is_open end
to_s()
click to toggle source
# File lib/polyline.rb, line 48 def to_s str = "Polyline[" vertices.each do |vertex| str += vertex.to_element_s + ", " end str.slice!(str.length - 2, 2) if(vertices.size > 0) str += "] " str += "open" if(@is_open) str += "closed" if(!@is_open) return str end