diff --git a/src/yaml/objectParser.cc b/src/yaml/objectParser.cc index ec2c365..b8f7366 100644 --- a/src/yaml/objectParser.cc +++ b/src/yaml/objectParser.cc @@ -11,11 +11,15 @@ #include #include "material.h" +#include "object.h" #include "object_sphere.h" #include "yaml/objectParser.hh" #include "yaml/vectorParser.hh" +using namespace charles; + + namespace yaml { ObjectParser::ObjectParser(Scene& scene, @@ -80,10 +84,7 @@ ObjectParser::HandleColorEvent(yaml_event_t& event) } auto onDone = [this](Color color) { - if (!mObject->get_material()) { - mObject->set_material(new Material()); - } - mObject->get_material()->set_diffuse_color(color); + mObject->GetMaterial().SetDiffuseColor(color); mSection = NoSection; SetShouldExpectKey(true); }; @@ -102,7 +103,7 @@ ObjectParser::HandleOriginEvent(yaml_event_t& event) } auto onDone = [this](Vector3 origin) { - mObject->set_origin(origin); + mObject->SetOrigin(origin); mSection = NoSection; SetShouldExpectKey(true); }; diff --git a/src/yaml/objectParser.hh b/src/yaml/objectParser.hh index b7be8bd..f83a85f 100644 --- a/src/yaml/objectParser.hh +++ b/src/yaml/objectParser.hh @@ -9,13 +9,11 @@ #ifndef __YAML_OBJECTPARSER_HH__ #define __YAML_OBJECTPARSER_HH__ +#include "object_sphere.h" #include "yaml/parsers.hh" #include "yaml/scalarMappingParser.hh" -class Sphere; - - namespace yaml { struct ObjectParser @@ -40,7 +38,7 @@ private: void HandleOriginEvent(yaml_event_t& event); void HandleRadiusEvent(yaml_event_t& event); - Sphere* mObject; + charles::Sphere::Ptr mObject; Section mSection; };