added parser, nodes, Scene-load support for transparency in materials
git-svn-id: svn://anubis/fart/trunk@186 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
f9cf1381a6
commit
b50c4de1bc
@ -250,6 +250,10 @@ refptr<Material> Scene::processMaterial(refptr<Node> node)
|
|||||||
{
|
{
|
||||||
material->setShininess((*it)->getNumber());
|
material->setShininess((*it)->getNumber());
|
||||||
}
|
}
|
||||||
|
else if ( typeid(**it) == typeid(TransparencyNode) )
|
||||||
|
{
|
||||||
|
material->setTransparency((*it)->getNumber());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return material;
|
return material;
|
||||||
|
@ -284,6 +284,12 @@ class TranslateBlockNode : public TranslateNode
|
|||||||
TranslateBlockNode(refptr<Vector> vector) : TranslateNode(vector) {}
|
TranslateBlockNode(refptr<Vector> vector) : TranslateNode(vector) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TransparencyNode : public NumberNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TransparencyNode(double d) : NumberNode(d) {}
|
||||||
|
};
|
||||||
|
|
||||||
class UnionNode : public Node
|
class UnionNode : public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -66,6 +66,7 @@ specular return SPECULAR;
|
|||||||
sphere return SPHERE;
|
sphere return SPHERE;
|
||||||
subtract return SUBTRACT;
|
subtract return SUBTRACT;
|
||||||
translate return TRANSLATE;
|
translate return TRANSLATE;
|
||||||
|
transparency return TRANSPARENCY;
|
||||||
union return UNION;
|
union return UNION;
|
||||||
up return UP;
|
up return UP;
|
||||||
vfov return VFOV;
|
vfov return VFOV;
|
||||||
|
@ -85,6 +85,7 @@ static refptr<Node> parsed_scene_node;
|
|||||||
%token SPHERE;
|
%token SPHERE;
|
||||||
%token SUBTRACT;
|
%token SUBTRACT;
|
||||||
%token TRANSLATE;
|
%token TRANSLATE;
|
||||||
|
%token TRANSPARENCY;
|
||||||
%token UNION;
|
%token UNION;
|
||||||
%token UP;
|
%token UP;
|
||||||
%token VFOV;
|
%token VFOV;
|
||||||
@ -237,6 +238,9 @@ material_item: COLOR vector {
|
|||||||
| SHININESS number {
|
| SHININESS number {
|
||||||
$$ = new ShininessNode($2->getNumber());
|
$$ = new ShininessNode($2->getNumber());
|
||||||
}
|
}
|
||||||
|
| TRANSPARENCY number {
|
||||||
|
$$ = new TransparencyNode($2->getNumber());
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
material_definition: DEFINE MATERIAL IDENTIFIER LCURLY material_items RCURLY {
|
material_definition: DEFINE MATERIAL IDENTIFIER LCURLY material_items RCURLY {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user