FreeWRL/FreeX3D  3.0.0
SAInode.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 #ifndef _SAINODE_H_ABSTRACT_
22 #define _SAINODE_H_ABSTRACT_
23 
24 #include "SAIGlobals.h"
25 
26 namespace freeWRLSAI_cpp
27 {
28  //forward declarations
29  class saiField;
30 
31  class saiNode
32  {
33  public:
34  virtual const char* getTypeName() = 0;
35 
36  virtual const char* getType() = 0;
37 
38  virtual saiField* getField(const char* strFieldName) = 0;
39 
40  virtual std::vector<saiField*>* getFieldDefinitions(const char* strNodeType) = 0;
41 
42  virtual void dispose() = 0;
43  };
44 
45 };
46 
47 #endif //_SAINODE_H_ABSTRACT_