diff --git a/src/yaml/sceneParser.cc b/src/yaml/sceneParser.cc index 5ed7e0f..611aa92 100644 --- a/src/yaml/sceneParser.cc +++ b/src/yaml/sceneParser.cc @@ -9,6 +9,7 @@ #include #include +#include "cameraParser.hh" #include "objectParser.hh" #include "sceneParser.hh" #include "vectorParser.hh" @@ -31,6 +32,7 @@ void SceneParser::HandleKeyEvent(const std::string& key) { static const std::map sSections = { + {"camera", CameraSection}, {"dimensions", DimensionsSection}, {"objects", ObjectsSection} }; @@ -49,6 +51,7 @@ SceneParser::HandleValueEvent(yaml_event_t& event) { switch (mSection) { case CameraSection: + HandleCameraEvent(event); break; case DimensionsSection: HandleDimensionsEvent(event); @@ -64,6 +67,18 @@ SceneParser::HandleValueEvent(yaml_event_t& event) } +void +SceneParser::HandleCameraEvent(yaml_event_t& event) +{ + if (event.type != YAML_MAPPING_START_EVENT) { + assert(event.type != YAML_MAPPING_START_EVENT); + return; + } + + GetParsers().push(new CameraParser(GetScene(), GetParsers())); +} + + void SceneParser::HandleDimensionsEvent(yaml_event_t& event) { diff --git a/src/yaml/sceneParser.hh b/src/yaml/sceneParser.hh index 9cb12a7..2279669 100644 --- a/src/yaml/sceneParser.hh +++ b/src/yaml/sceneParser.hh @@ -35,6 +35,7 @@ private: ObjectsSection, }; + void HandleCameraEvent(yaml_event_t& event); void HandleDimensionsEvent(yaml_event_t& event); void HandleObjectsEvent(yaml_event_t& event);