lib/cyberarm_engine/model/parser.rb in cyberarm_engine-0.19.0 vs lib/cyberarm_engine/model/parser.rb in cyberarm_engine-0.19.1

- old
+ new

@@ -1,74 +1,74 @@ -module CyberarmEngine - TextureCoordinate = Struct.new(:u, :v, :weight) - Point = Struct.new(:x, :y) - Color = Struct.new(:red, :green, :blue, :alpha) - Face = Struct.new(:vertices, :uvs, :normals, :colors, :material, :smoothing) - - class Model - class Parser - @@parsers = [] - - def self.handles - raise NotImplementedError, - "Model::Parser#handles must return an array of file extensions that this parser supports" - end - - def self.inherited(parser) - @@parsers << parser - end - - def self.find(file_type) - @@parsers.find do |parser| - parser.handles.include?(file_type) - end - end - - def self.supported_formats - @@parsers.map { |parser| parser.handles }.flatten.map { |s| ".#{s}" }.join(", ") - end - - def initialize(model) - @model = model - end - - def parse - end - - def set_object(id: nil, name: nil) - _model = nil - - if id - _model = @model.objects.find { |o| o.id == id } - elsif name - _model = @model.objects.find { |o| o.name == name } - else - raise "Must provide either an id: or name:" - end - - if _model - @model.current_object = _model - else - raise "Couldn't find ModelObject!" - end - end - - def change_object(id, name) - @model.objects << Model::ModelObject.new(id, name) - @model.current_object = @model.objects.last - end - - def set_material(name) - @model.current_material = name - @model.current_object.materials << current_material - end - - def add_material(name, material) - @model.materials[name] = material - end - - def current_material - @model.materials[@model.current_material] - end - end - end -end +module CyberarmEngine + TextureCoordinate = Struct.new(:u, :v, :weight) + Point = Struct.new(:x, :y) + Color = Struct.new(:red, :green, :blue, :alpha) + Face = Struct.new(:vertices, :uvs, :normals, :colors, :material, :smoothing) + + class Model + class Parser + @@parsers = [] + + def self.handles + raise NotImplementedError, + "Model::Parser#handles must return an array of file extensions that this parser supports" + end + + def self.inherited(parser) + @@parsers << parser + end + + def self.find(file_type) + @@parsers.find do |parser| + parser.handles.include?(file_type) + end + end + + def self.supported_formats + @@parsers.map { |parser| parser.handles }.flatten.map { |s| ".#{s}" }.join(", ") + end + + def initialize(model) + @model = model + end + + def parse + end + + def set_object(id: nil, name: nil) + _model = nil + + if id + _model = @model.objects.find { |o| o.id == id } + elsif name + _model = @model.objects.find { |o| o.name == name } + else + raise "Must provide either an id: or name:" + end + + if _model + @model.current_object = _model + else + raise "Couldn't find ModelObject!" + end + end + + def change_object(id, name) + @model.objects << Model::ModelObject.new(id, name) + @model.current_object = @model.objects.last + end + + def set_material(name) + @model.current_material = name + @model.current_object.materials << current_material + end + + def add_material(name, material) + @model.materials[name] = material + end + + def current_material + @model.materials[@model.current_material] + end + end + end +end