Class: Rgltf::Builder::MeshBuilder
- Inherits:
-
Object
- Object
- Rgltf::Builder::MeshBuilder
- Defined in:
- lib/rgltf/builder/component_builders.rb
Instance Attribute Summary collapse
-
#primitives ⇒ Object
readonly
Returns the value of attribute primitives.
Instance Method Summary collapse
-
#initialize(builder) ⇒ MeshBuilder
constructor
A new instance of MeshBuilder.
- #primitive(attributes:, indices: nil, material: nil, mode: :triangles, targets: nil, extensions: nil, extras: nil, **properties) ⇒ Object
Constructor Details
#initialize(builder) ⇒ MeshBuilder
Returns a new instance of MeshBuilder.
8 9 10 11 |
# File 'lib/rgltf/builder/component_builders.rb', line 8 def initialize(builder) @builder = builder @primitives = [] end |
Instance Attribute Details
#primitives ⇒ Object (readonly)
Returns the value of attribute primitives.
6 7 8 |
# File 'lib/rgltf/builder/component_builders.rb', line 6 def primitives @primitives end |
Instance Method Details
#primitive(attributes:, indices: nil, material: nil, mode: :triangles, targets: nil, extensions: nil, extras: nil, **properties) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rgltf/builder/component_builders.rb', line 13 def primitive(attributes:, indices: nil, material: nil, mode: :triangles, targets: nil, extensions: nil, extras: nil, **properties) value = { 'attributes' => attributes_json(attributes) } if indices @builder.mark_accessor_target(indices, :element_array) value['indices'] = @builder.reference(indices, :accessor) end value['material'] = @builder.reference(material, :material) if material mode_number = Primitive::MODES.key(mode.to_sym) raise ArgumentError, "unsupported primitive mode #{mode.inspect}" unless mode_number value['mode'] = mode_number unless mode_number == 4 value['targets'] = targets.map { |target| attributes_json(target) } if targets value['extensions'] = extensions if extensions value['extras'] = extras unless extras.nil? properties.each { |key, property| value[@builder.send(:camelize, key)] = property } @primitives << value self end |