FreeWRL / FreeX3D 4.3.0
SAIScene.h
1/****************************************************************************
2 This file is part of the FreeWRL/FreeX3D Distribution.
3
4 Copyright 2009 CRC Canada. (http://www.crc.gc.ca)
5
6 FreeWRL/FreeX3D is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 FreeWRL/FreeX3D is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with FreeWRL/FreeX3D. If not, see <http://www.gnu.org/licenses/>.
18****************************************************************************/
19
20/****************************************************************************
21 IMPORTANT NOTICE:
22 A class derived from saiScene should ALWAYS derive also from saiExecutionContext
23 ALWAYS!
24****************************************************************************/
25
26
27#ifndef _SAISCENE_H_ABSTRACT_
28#define _SAISCENE_H_ABSTRACT_
29
30#include "SAIGlobals.h"
31
32namespace freeWRLSAI_cpp
33{
35 {
36 public:
37 virtual const char* getMetaData(const char* strKey) = 0; //should return NULL if metadata not found
38 virtual void setMetaData(const char* strKey, const char* strMetadata) = 0; //if strMetadata = NULL, metadata pointed by strKey should be removed
39 virtual void rootNodeHandling(const saiNode* pTargetNode, int nAction) = 0;
40
41 //not part of the standard but copied from Java Language Bindings
42 virtual void AddRootNode(const saiNode* pNodeToAdd) = 0; //calls rootNodeHandling(pNodeToAdd, AddRootNode)
43 virtual void RemoveRootNode(const saiNode* pNodeToRemove) = 0; //calls rootNodeHandling(pNodeToRemove, RemoveRootNode)
44
45 //WAITING FOR DEFINITION
46 //virtual void namedNodeHandling... I believe it should be implemented with four different method signatures like Java Language Bindings does
47
48 };
49};
50
51
52#endif //_SAISCENE_H_ABSTRACT_