removed knowledge of domain types from parser, removed process() from Node, added a global refptr<Node> object, took parse(fileName) out of Scene class
git-svn-id: svn://anubis/fart/trunk@123 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
1 parent
a8e898e445
commit
f3e522262b
5 files changed
+19
-17
No files matched your search
@@ -4,8 +4,6 @@
|
||||
|
||||
#include "util/refptr.h"
|
||||
#include "util/Vector.h"
|
||||
#include "main/Material.h"
|
||||
#include "main/Scene.h"
|
||||
#include <vector>
|
||||
|
||||
class Node
|
||||
@@ -15,13 +13,7 @@ class Node
|
||||
void addChild(refptr<Node> child) { m_children.push_back(child); }
|
||||
void addChildren(refptr<Node> other);
|
||||
|
||||
virtual void process(refptr<Scene> scene) {}
|
||||
|
||||
virtual int getInteger() { return 0; }
|
||||
virtual refptr<Material> getMaterial()
|
||||
{
|
||||
return refptr<Material>(NULL);
|
||||
}
|
||||
virtual double getNumber() { return 0.0; }
|
||||
virtual refptr<Vector> getVector()
|
||||
{
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
#ifndef PARSER_H
|
||||
#define PARSER_H PARSER_H
|
||||
|
||||
#include "nodes.h"
|
||||
#include "util/refptr.h"
|
||||
|
||||
#define YYSTYPE refptr<Node>
|
||||
|
||||
extern YYSTYPE parsed_scene_node;
|
||||
|
||||
int parse(const char * fileName);
|
||||
|
||||
#endif
|
||||
+3
-6
@@ -3,11 +3,8 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include "main/Scene.h"
|
||||
#include "main/Material.h"
|
||||
#include "util/Vector.h"
|
||||
#include "util/refptr.h"
|
||||
#include "shapes/Shape.h" /* includes all shape types */
|
||||
#include "nodes.h"
|
||||
#include "parser.h"
|
||||
using namespace std;
|
||||
@@ -26,7 +23,7 @@ int yywrap()
|
||||
return 1;
|
||||
}
|
||||
|
||||
static Scene * g_scene;
|
||||
refptr<Node> parsed_scene_node;
|
||||
|
||||
%}
|
||||
|
||||
@@ -91,6 +88,7 @@ static Scene * g_scene;
|
||||
scene: SCENE LCURLY scene_items RCURLY {
|
||||
$$ = new SceneNode();
|
||||
$$->addChildren($3);
|
||||
parsed_scene_node = $$;
|
||||
}
|
||||
;
|
||||
|
||||
@@ -389,9 +387,8 @@ vector: LESS number COMMA number COMMA number GREATER {
|
||||
|
||||
%%
|
||||
|
||||
int Scene::parse(const char * fileName)
|
||||
int parse(const char * fileName)
|
||||
{
|
||||
g_scene = this;
|
||||
yyin = fopen(fileName, "r");
|
||||
if (yyin == NULL)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user