Class: Mageo::Tetrahedron
- Inherits:
-
Polyhedron
- Object
- Polyhedron
- Mageo::Tetrahedron
- Defined in:
- lib/mageo/tetrahedron.rb
Overview
直交座標系 3次元空間内の四面体を表現するクラス。
Defined Under Namespace
Classes: InitializeError
Instance Attribute Summary
Attributes inherited from Polyhedron
Instance Method Summary collapse
-
#initialize(vertices) ⇒ Tetrahedron
constructor
vertices には四面体の頂点を順不同で入れた Array。.
Methods inherited from Polyhedron
#center, #edges, #include?, #inside?, #shared_vertices, #translate, #translate!, #triangles, #volume
Constructor Details
#initialize(vertices) ⇒ Tetrahedron
vertices には四面体の頂点を順不同で入れた Array。
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/mageo/tetrahedron.rb', line 12 def initialize( vertices ) raise InitializeError if vertices.class != Array raise InitializeError if vertices.size != 4 vertices.each do |vertex| raise InitializeError if vertex.size != 3 raise InitializeError unless vertex.methods.include?( :[] ) raise InitializeError unless vertex.methods.include?( :map ) end vertices.each do |vertex| raise InitializeError if vertex.class == Mageo::Vector3DInternal end @vertices = vertices.map { |vertex| vertex.to_v3d } @vertex_indices_of_triangles = [ [ 0, 1, 2 ], [ 1, 2, 3 ], [ 2, 3, 0 ], [ 3, 0, 1 ], ] raise InitializeError, "volume is zero." if volume == 0.0 end |