39 lines
697 B
C++
39 lines
697 B
C++
|
/* scene_parser.hh
|
||
|
* vim: set tw=80:
|
||
|
* Eryn Wells <eryn@erynwells.me>
|
||
|
*/
|
||
|
/**
|
||
|
* A SceneParser parses a YAML Scene object.
|
||
|
*/
|
||
|
|
||
|
#ifndef __YAML_SCENE_PARSER_HH__
|
||
|
#define __YAML_SCENE_PARSER_HH__
|
||
|
|
||
|
#include "parsers.hh"
|
||
|
|
||
|
|
||
|
namespace yaml {
|
||
|
|
||
|
struct SceneParser
|
||
|
: public Parser
|
||
|
{
|
||
|
SceneParser(Scene& scene, ParserStack& parsers);
|
||
|
~SceneParser();
|
||
|
|
||
|
void HandleEvent(yaml_event_t& event);
|
||
|
void HandleTopLevelEvent(yaml_event_t& event);
|
||
|
void HandleDimensionsEvent(yaml_event_t& event);
|
||
|
|
||
|
private:
|
||
|
enum {
|
||
|
NoSection,
|
||
|
CameraSection,
|
||
|
DimensionsSection,
|
||
|
ObjectsSection,
|
||
|
} mSection;
|
||
|
};
|
||
|
|
||
|
} /* namespace yaml */
|
||
|
|
||
|
#endif /* __YAML_SCENE_PARSER_HH__ */
|