siren2 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +21 -0
  6. data/README.md +36 -0
  7. data/Rakefile +18 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +8 -0
  10. data/ext/siren2/extconf.rb +66 -0
  11. data/ext/siren2/inc/bndbox.h +51 -0
  12. data/ext/siren2/inc/bo.h +20 -0
  13. data/ext/siren2/inc/brep.h +17 -0
  14. data/ext/siren2/inc/common.h +98 -0
  15. data/ext/siren2/inc/curve.h +65 -0
  16. data/ext/siren2/inc/curve/bscurve.h +22 -0
  17. data/ext/siren2/inc/curve/bzcurve.h +17 -0
  18. data/ext/siren2/inc/curve/circle.h +29 -0
  19. data/ext/siren2/inc/curve/ellipse.h +15 -0
  20. data/ext/siren2/inc/curve/hyperbola.h +15 -0
  21. data/ext/siren2/inc/curve/line.h +17 -0
  22. data/ext/siren2/inc/curve/offsetcurve.h +15 -0
  23. data/ext/siren2/inc/curve/parabola.h +15 -0
  24. data/ext/siren2/inc/filler.h +26 -0
  25. data/ext/siren2/inc/heal.h +19 -0
  26. data/ext/siren2/inc/io/iges.h +19 -0
  27. data/ext/siren2/inc/io/step.h +18 -0
  28. data/ext/siren2/inc/io/stl.h +13 -0
  29. data/ext/siren2/inc/offset.h +35 -0
  30. data/ext/siren2/inc/shape.h +140 -0
  31. data/ext/siren2/inc/shape/chunk.h +26 -0
  32. data/ext/siren2/inc/shape/compound.h +22 -0
  33. data/ext/siren2/inc/shape/edge.h +50 -0
  34. data/ext/siren2/inc/shape/face.h +67 -0
  35. data/ext/siren2/inc/shape/shell.h +21 -0
  36. data/ext/siren2/inc/shape/solid.h +41 -0
  37. data/ext/siren2/inc/shape/vertex.h +23 -0
  38. data/ext/siren2/inc/shape/wire.h +31 -0
  39. data/ext/siren2/inc/siren.h +39 -0
  40. data/ext/siren2/inc/surface/dummy +0 -0
  41. data/ext/siren2/inc/topalgo.h +52 -0
  42. data/ext/siren2/inc/trans.h +48 -0
  43. data/ext/siren2/inc/vec.h +65 -0
  44. data/ext/siren2/src/bndbox.cpp +343 -0
  45. data/ext/siren2/src/bo.cpp +66 -0
  46. data/ext/siren2/src/brep.cpp +69 -0
  47. data/ext/siren2/src/common.cpp +18 -0
  48. data/ext/siren2/src/curve.cpp +75 -0
  49. data/ext/siren2/src/curve/bscurve.cpp +118 -0
  50. data/ext/siren2/src/curve/bzcurve.cpp +55 -0
  51. data/ext/siren2/src/curve/circle.cpp +146 -0
  52. data/ext/siren2/src/curve/ellipse.cpp +17 -0
  53. data/ext/siren2/src/curve/hyperbola.cpp +17 -0
  54. data/ext/siren2/src/curve/line.cpp +24 -0
  55. data/ext/siren2/src/curve/offsetcurve.cpp +17 -0
  56. data/ext/siren2/src/curve/parabola.cpp +17 -0
  57. data/ext/siren2/src/filler.cpp +191 -0
  58. data/ext/siren2/src/heal.cpp +92 -0
  59. data/ext/siren2/src/io/iges.cpp +85 -0
  60. data/ext/siren2/src/io/step.cpp +47 -0
  61. data/ext/siren2/src/io/stl.cpp +22 -0
  62. data/ext/siren2/src/offset.cpp +256 -0
  63. data/ext/siren2/src/shape.cpp +617 -0
  64. data/ext/siren2/src/shape/chunk.cpp +65 -0
  65. data/ext/siren2/src/shape/compound.cpp +96 -0
  66. data/ext/siren2/src/shape/edge.cpp +254 -0
  67. data/ext/siren2/src/shape/face.cpp +366 -0
  68. data/ext/siren2/src/shape/shell.cpp +41 -0
  69. data/ext/siren2/src/shape/solid.cpp +256 -0
  70. data/ext/siren2/src/shape/vertex.cpp +68 -0
  71. data/ext/siren2/src/shape/wire.cpp +100 -0
  72. data/ext/siren2/src/siren.cpp +80 -0
  73. data/ext/siren2/src/surface/dummy +0 -0
  74. data/ext/siren2/src/topalgo.cpp +246 -0
  75. data/ext/siren2/src/trans.cpp +330 -0
  76. data/ext/siren2/src/vec.cpp +454 -0
  77. data/lib/io/dxf.rb +68 -0
  78. data/lib/io/plot.rb +38 -0
  79. data/lib/io/ply.rb +57 -0
  80. data/lib/io/stl.rb +35 -0
  81. data/lib/io/svg.rb +44 -0
  82. data/lib/kernel/array.rb +133 -0
  83. data/lib/kernel/float.rb +15 -0
  84. data/lib/shape.rb +157 -0
  85. data/lib/shape/compound.rb +11 -0
  86. data/lib/shape/edge.rb +15 -0
  87. data/lib/shape/face.rb +7 -0
  88. data/lib/shape/shell.rb +21 -0
  89. data/lib/shape/solid.rb +10 -0
  90. data/lib/shape/vertex.rb +7 -0
  91. data/lib/shape/wire.rb +14 -0
  92. data/lib/shapes.rb +52 -0
  93. data/lib/siren.rb +166 -0
  94. data/lib/siren2/version.rb +3 -0
  95. data/lib/vec.rb +81 -0
  96. data/siren2.gemspec +28 -0
  97. metadata +195 -0
@@ -0,0 +1,11 @@
1
+ #
2
+ # Compound クラス拡張メソッド
3
+ #
4
+ class Siren::Compound
5
+
6
+ def empty?
7
+ self.subshapes.size == 0
8
+ end
9
+
10
+ end
11
+
@@ -0,0 +1,15 @@
1
+ #
2
+ # Edge クラス拡張メソッド
3
+ #
4
+ class Siren::Edge
5
+
6
+ def length
7
+ r = 0.0
8
+ self.to_pts.each_cons(2) do |prev, curr|
9
+ r += prev.dist curr
10
+ end
11
+ r
12
+ end
13
+
14
+ end
15
+
@@ -0,0 +1,7 @@
1
+ #
2
+ # Face クラス拡張メソッド
3
+ #
4
+ class Siren::Face
5
+
6
+ end
7
+
@@ -0,0 +1,21 @@
1
+ #
2
+ # Shell クラス拡張メソッド
3
+ #
4
+ class Siren::Shell
5
+
6
+ def area
7
+ self.faces.inject { |e| e.area }
8
+ end
9
+
10
+ def self.tol
11
+ @@tol
12
+ end
13
+
14
+ def self.tol=(val)
15
+ @@tol = val
16
+ end
17
+
18
+ @@tol = 1.0e-7
19
+
20
+ end
21
+
@@ -0,0 +1,10 @@
1
+ #
2
+ # Solid クラス拡張メソッド
3
+ #
4
+ class Siren::Solid
5
+
6
+ def area
7
+ self.shells.inject { |e| e.area }
8
+ end
9
+
10
+ end
@@ -0,0 +1,7 @@
1
+ #
2
+ # Vertex クラス拡張メソッド
3
+ #
4
+ class Siren::Vertex
5
+
6
+ end
7
+
@@ -0,0 +1,14 @@
1
+ #
2
+ # Wire クラス拡張メソッド
3
+ #
4
+ class Siren::Wire
5
+
6
+ def length
7
+ self.edges.inject { |e| e.length }
8
+ end
9
+
10
+ def curves
11
+ self.edges.map { |e| e.curve }
12
+ end
13
+
14
+ end
@@ -0,0 +1,52 @@
1
+ #
2
+ # Array クラス拡張メソッド
3
+ # Shape 配列
4
+ #
5
+ class Array
6
+
7
+ def to_polyline
8
+ Siren.polyline self
9
+ end
10
+
11
+ def to_polygon
12
+ Siren.polygon self
13
+ end
14
+
15
+ def to_wire(tol = 0.001)
16
+ Siren.wire self, tol
17
+ end
18
+
19
+ def to_loft
20
+ raise NotImplementedError
21
+ end
22
+
23
+ def to_revol
24
+ raise NotImplementedError
25
+ end
26
+
27
+ def to_shell
28
+ Siren.shell self
29
+ end
30
+
31
+ def to_solid
32
+ Siren.solid self.to_shell
33
+ end
34
+
35
+ def to_comp
36
+ Siren::Compound.new self
37
+ end
38
+
39
+ def vertices; self.map(&:vertices).flatten end
40
+ def edges; self.map(&:edges).flatten end
41
+ def wires; self.map(&:wires).flatten end
42
+ def faces; self.map(&:faces).flatten end
43
+ def shells; self.map(&:shells).flatten end
44
+ def solids; self.map(&:solids).flatten end
45
+ def compounds; self.map(&:compounds).flatten end
46
+
47
+ def bndbox
48
+ raise NotImplementedError
49
+ end
50
+
51
+ end
52
+
@@ -0,0 +1,166 @@
1
+ require 'siren2/version'
2
+ require 'siren2/siren2'
3
+ require 'vec'
4
+ require 'shape'
5
+ require 'shapes'
6
+ require 'io/dxf'
7
+ require 'io/plot'
8
+ require 'io/ply'
9
+ require 'io/stl'
10
+ require 'io/svg'
11
+ require 'kernel/float'
12
+ require 'kernel/array'
13
+ require 'shape/compound'
14
+ require 'shape/edge'
15
+ require 'shape/face'
16
+ require 'shape/shell'
17
+ require 'shape/solid'
18
+ require 'shape/vertex'
19
+ require 'shape/wire'
20
+
21
+ ##
22
+ #
23
+ # Siren module
24
+ #
25
+
26
+ module Siren
27
+
28
+ def self.warn(*msg)
29
+ return if $VERBOSE.nil? && msg.empty?
30
+ $stderr.puts("siren: warning: " + msg.join)
31
+ end
32
+
33
+ def self.save_model(shape, path)
34
+ e5 = path[-5, path.size].downcase
35
+ e4 = path[-4, path.size].downcase
36
+ if e5 == ".brep" || e4 == ".brp"
37
+ Siren.save_brep shape, path
38
+ elsif e5 == ".iges" || e4 == ".igs"
39
+ Siren.save_iges shape, path
40
+ elsif e5 == ".step" || e4 == ".stp"
41
+ Siren.save_step shape, path
42
+ elsif e4 == ".stl"
43
+ Siren.save_stl shape, path
44
+ elsif e4 == ".ply"
45
+ Siren.save_ply shape, path
46
+ elsif e4 == ".dxf"
47
+ Siren.save_dxf shape, path
48
+ elsif e4 == ".dat"
49
+ Siren.save_plot shape, path
50
+ else
51
+ raise TypeError
52
+ end
53
+ end
54
+
55
+ def save_model(shape, path)
56
+ Siren.save_model(shape, path)
57
+ end
58
+
59
+ def self.load_model(path)
60
+ e5 = path[-5, path.size].downcase
61
+ e4 = path[-4, path.size].downcase
62
+ if e5 == ".brep" || e4 == ".brp"
63
+ Siren.load_brep path
64
+ elsif e5 == ".iges" || e4 == ".igs"
65
+ Siren.load_iges path
66
+ elsif e5 == ".step" || e4 == ".stp"
67
+ Siren.load_step path
68
+ elsif e4 == ".stl"
69
+ Siren.load_stl path
70
+ else
71
+ raise TypeError
72
+ end
73
+ end
74
+
75
+ def load_model(path)
76
+ Siren.load_model(path)
77
+ end
78
+
79
+ def self.bscurve(*args)
80
+ c = nil
81
+ if args.size == 4
82
+ c = BSCurve.new(*args)
83
+ else
84
+ c = BSCurve.new(*(args[0..4]))
85
+ end
86
+ if args.size == 7 # with limit paramters
87
+ Edge.new c, args[5], args[6]
88
+ else
89
+ Edge.new c
90
+ end
91
+ end
92
+
93
+ def bscurve(*args)
94
+ Siren.bscurve(*args)
95
+ end
96
+
97
+ def self.bzcurve(*args)
98
+ c = nil
99
+ if args.size <= 2
100
+ c = BzCurve.new(*args)
101
+ else
102
+ c = BzCurve.new(*(args[0..1]))
103
+ end
104
+ if args.size == 4 # with limit parameters
105
+ Edge.new c, args[-2], args[-1]
106
+ else
107
+ Edge.new c
108
+ end
109
+ end
110
+
111
+ def bzcurve(*args)
112
+ Siren.bzcurve(*args)
113
+ end
114
+
115
+ # Alias
116
+ {
117
+ Siren::Vertex => {
118
+ :vertex => :new
119
+ },
120
+ Siren::Wire => {
121
+ :wire => :make,
122
+ },
123
+ Siren::Face => {
124
+ :plane => :plane,
125
+ :face => :face,
126
+ :infplane => :infplane,
127
+ :polygon => :polygon,
128
+ :bzsurf => :bzsurf,
129
+ :bssurf => :bssurf,
130
+ },
131
+ Siren::Shell => {
132
+ :sew => :make,
133
+ :shell => :make,
134
+ },
135
+ Siren::Solid => {
136
+ :box => :box,
137
+ :box2p => :box2p,
138
+ :boxax => :boxax,
139
+ :sphere => :sphere,
140
+ :cylinder => :cylinder,
141
+ :cone => :cone,
142
+ :torus => :torus,
143
+ :halfspace => :halfspace,
144
+ :prism => :prism,
145
+ :revol => :revol,
146
+ :revolution => :revolution,
147
+ :wedge => :wedge,
148
+ }
149
+ }.each do |c, ms|
150
+ ms.each do |ma, mo|
151
+ # ma = Alias method name
152
+ # mo = Original method name
153
+ # puts "Export #{c}.#{mo} as Siren.#{ma}"
154
+ self.define_singleton_method(ma) do |*args|
155
+ c.send(mo, *args)
156
+ end
157
+ self.class_eval do
158
+ self.send(:define_method, ma) do |*args|
159
+ c.send(mo, *args)
160
+ end
161
+ end
162
+ end
163
+ end
164
+
165
+ end
166
+
@@ -0,0 +1,3 @@
1
+ module Siren
2
+ VERSION = "0.1.2"
3
+ end
@@ -0,0 +1,81 @@
1
+ #
2
+ # Vec クラス拡張メソッド
3
+ #
4
+ class Siren::Vec
5
+
6
+ def self.zero
7
+ Siren::Vec.new 0.0, 0.0, 0.0
8
+ end
9
+
10
+ def self.o
11
+ Siren::Vec.new 0.0, 0.0, 0.0
12
+ end
13
+
14
+ def self.x
15
+ Siren::Vec.new 1.0, 0.0, 0.0
16
+ end
17
+
18
+ def self.y
19
+ Siren::Vec.new 0.0, 1.0, 0.0
20
+ end
21
+
22
+ def self.z
23
+ Siren::Vec.new 0.0, 0.0, 1.0
24
+ end
25
+
26
+ def self.xy
27
+ Siren::Vec.new 1.0, 1.0, 0.0
28
+ end
29
+
30
+ def self.xz
31
+ Siren::Vec.new 1.0, 0.0, 1.0
32
+ end
33
+
34
+ def self.yx
35
+ Siren::Vec.new 1.0, 1.0, 0.0
36
+ end
37
+
38
+ def self.yz
39
+ Siren::Vec.new 0.0, 1.0, 1.0
40
+ end
41
+
42
+ def self.zx
43
+ Siren::Vec.new 1.0, 0.0, 1.0
44
+ end
45
+
46
+ def self.zy
47
+ Siren::Vec.new 0.0, 1.0, 1.0
48
+ end
49
+
50
+ def self.xyz
51
+ Siren::Vec.new 1.0, 1.0, 1.0
52
+ end
53
+
54
+ def self.xdir
55
+ Siren::Vec.x
56
+ end
57
+
58
+ def self.ydir
59
+ Siren::Vec.y
60
+ end
61
+
62
+ def self.zdir
63
+ Siren::Vec.z
64
+ end
65
+
66
+ ##
67
+ # Return this object as a string.
68
+ def to_s
69
+ "#<Vec:0x%x @x=%f, @y=%f, @z=%f>" % [self.object_id, self.x, self.y, self.z]
70
+ end
71
+ alias_method :inspect, :to_s
72
+
73
+ ##
74
+ # Return x, y and z values of this object as an array.
75
+ def to_a
76
+ [self.x, self.y, self.z]
77
+ end
78
+ alias_method :to_ary, :to_a
79
+ alias_method :xyz, :to_a
80
+
81
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'siren2/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "siren2"
8
+ spec.version = Siren::VERSION
9
+ spec.authors = ["dyama"]
10
+ spec.email = ["dyama@member.fsf.org"]
11
+
12
+ spec.summary = "3D operation library"
13
+ spec.description = "3D operation libray"
14
+ spec.homepage = "http://siren.xyz/"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+ spec.extensions = ["ext/siren2/extconf.rb"]
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.14"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rake-compiler"
27
+ spec.add_development_dependency "minitest", "~> 5.0"
28
+ end
metadata ADDED
@@ -0,0 +1,195 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: siren2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - dyama
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-03-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.14'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake-compiler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ description: 3D operation libray
70
+ email:
71
+ - dyama@member.fsf.org
72
+ executables: []
73
+ extensions:
74
+ - ext/siren2/extconf.rb
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - Gemfile
80
+ - LICENSE
81
+ - README.md
82
+ - Rakefile
83
+ - bin/console
84
+ - bin/setup
85
+ - ext/siren2/extconf.rb
86
+ - ext/siren2/inc/bndbox.h
87
+ - ext/siren2/inc/bo.h
88
+ - ext/siren2/inc/brep.h
89
+ - ext/siren2/inc/common.h
90
+ - ext/siren2/inc/curve.h
91
+ - ext/siren2/inc/curve/bscurve.h
92
+ - ext/siren2/inc/curve/bzcurve.h
93
+ - ext/siren2/inc/curve/circle.h
94
+ - ext/siren2/inc/curve/ellipse.h
95
+ - ext/siren2/inc/curve/hyperbola.h
96
+ - ext/siren2/inc/curve/line.h
97
+ - ext/siren2/inc/curve/offsetcurve.h
98
+ - ext/siren2/inc/curve/parabola.h
99
+ - ext/siren2/inc/filler.h
100
+ - ext/siren2/inc/heal.h
101
+ - ext/siren2/inc/io/iges.h
102
+ - ext/siren2/inc/io/step.h
103
+ - ext/siren2/inc/io/stl.h
104
+ - ext/siren2/inc/offset.h
105
+ - ext/siren2/inc/shape.h
106
+ - ext/siren2/inc/shape/chunk.h
107
+ - ext/siren2/inc/shape/compound.h
108
+ - ext/siren2/inc/shape/edge.h
109
+ - ext/siren2/inc/shape/face.h
110
+ - ext/siren2/inc/shape/shell.h
111
+ - ext/siren2/inc/shape/solid.h
112
+ - ext/siren2/inc/shape/vertex.h
113
+ - ext/siren2/inc/shape/wire.h
114
+ - ext/siren2/inc/siren.h
115
+ - ext/siren2/inc/surface/dummy
116
+ - ext/siren2/inc/topalgo.h
117
+ - ext/siren2/inc/trans.h
118
+ - ext/siren2/inc/vec.h
119
+ - ext/siren2/src/bndbox.cpp
120
+ - ext/siren2/src/bo.cpp
121
+ - ext/siren2/src/brep.cpp
122
+ - ext/siren2/src/common.cpp
123
+ - ext/siren2/src/curve.cpp
124
+ - ext/siren2/src/curve/bscurve.cpp
125
+ - ext/siren2/src/curve/bzcurve.cpp
126
+ - ext/siren2/src/curve/circle.cpp
127
+ - ext/siren2/src/curve/ellipse.cpp
128
+ - ext/siren2/src/curve/hyperbola.cpp
129
+ - ext/siren2/src/curve/line.cpp
130
+ - ext/siren2/src/curve/offsetcurve.cpp
131
+ - ext/siren2/src/curve/parabola.cpp
132
+ - ext/siren2/src/filler.cpp
133
+ - ext/siren2/src/heal.cpp
134
+ - ext/siren2/src/io/iges.cpp
135
+ - ext/siren2/src/io/step.cpp
136
+ - ext/siren2/src/io/stl.cpp
137
+ - ext/siren2/src/offset.cpp
138
+ - ext/siren2/src/shape.cpp
139
+ - ext/siren2/src/shape/chunk.cpp
140
+ - ext/siren2/src/shape/compound.cpp
141
+ - ext/siren2/src/shape/edge.cpp
142
+ - ext/siren2/src/shape/face.cpp
143
+ - ext/siren2/src/shape/shell.cpp
144
+ - ext/siren2/src/shape/solid.cpp
145
+ - ext/siren2/src/shape/vertex.cpp
146
+ - ext/siren2/src/shape/wire.cpp
147
+ - ext/siren2/src/siren.cpp
148
+ - ext/siren2/src/surface/dummy
149
+ - ext/siren2/src/topalgo.cpp
150
+ - ext/siren2/src/trans.cpp
151
+ - ext/siren2/src/vec.cpp
152
+ - lib/io/dxf.rb
153
+ - lib/io/plot.rb
154
+ - lib/io/ply.rb
155
+ - lib/io/stl.rb
156
+ - lib/io/svg.rb
157
+ - lib/kernel/array.rb
158
+ - lib/kernel/float.rb
159
+ - lib/shape.rb
160
+ - lib/shape/compound.rb
161
+ - lib/shape/edge.rb
162
+ - lib/shape/face.rb
163
+ - lib/shape/shell.rb
164
+ - lib/shape/solid.rb
165
+ - lib/shape/vertex.rb
166
+ - lib/shape/wire.rb
167
+ - lib/shapes.rb
168
+ - lib/siren.rb
169
+ - lib/siren2/version.rb
170
+ - lib/vec.rb
171
+ - siren2.gemspec
172
+ homepage: http://siren.xyz/
173
+ licenses: []
174
+ metadata: {}
175
+ post_install_message:
176
+ rdoc_options: []
177
+ require_paths:
178
+ - lib
179
+ required_ruby_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ requirements: []
190
+ rubyforge_project:
191
+ rubygems_version: 2.2.2
192
+ signing_key:
193
+ specification_version: 4
194
+ summary: 3D operation library
195
+ test_files: []