Coin Logo http://www.sim.no/
http://www.coin3d.org/

SoVRMLMacros.h
1/**************************************************************************\
2 *
3 * This file is part of the Coin 3D visualization library.
4 * Copyright (C) by Kongsberg Oil & Gas Technologies.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * ("GPL") version 2 as published by the Free Software Foundation.
9 * See the file LICENSE.GPL at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using Coin with software that can not be combined with the GNU
13 * GPL, and for taking advantage of the additional benefits of our
14 * support services, please contact Kongsberg Oil & Gas Technologies
15 * about acquiring a Coin Professional Edition License.
16 *
17 * See http://www.coin3d.org/ for more information.
18 *
19 * Kongsberg Oil & Gas Technologies, Bygdoy Alle 5, 0257 Oslo, NORWAY.
20 * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
21 *
22\**************************************************************************/
23
24#ifndef COIN_SOVRMLMACROS_H
25#define COIN_SOVRMLMACROS_H
26
27#include <Inventor/nodes/SoSubNode.h>
28
29#define SO_VRMLNODE_INTERNAL_CONSTRUCTOR(_class_) \
30 SO_NODE_INTERNAL_CONSTRUCTOR(_class_); \
31 this->setNodeType(SoNode::VRML2);
32
33#define SO_VRMLNODE_ADD_EVENT_IN(_field_) \
34 do { \
35 this->_field_.setFieldType(SoField::EVENTIN_FIELD); \
36 this->_field_.setContainer(this); \
37 fieldData->addField(this, SO__QUOTE(_field_), &this->_field_);\
38 } while (0)
39
40#define SO_VRMLNODE_ADD_EVENT_OUT(_field_) \
41 do { \
42 this->_field_.setFieldType(SoField::EVENTOUT_FIELD); \
43 this->_field_.setContainer(this); \
44 fieldData->addField(this, SO__QUOTE(_field_), &this->_field_);\
45 } while (0)
46
47#define SO_VRMLNODE_ADD_EMPTY_EXPOSED_MFIELD(_field_) \
48 do { \
49 this->_field_.setFieldType(SoField::EXPOSED_FIELD); \
50 this->_field_.setContainer(this); \
51 fieldData->addField(this, SO__QUOTE(_field_), &this->_field_);\
52 } while (0)
53
54#define SO_VRMLNODE_ADD_EMPTY_MFIELD(_field_) \
55 do { \
56 this->_field_.setContainer(this); \
57 fieldData->addField(this, SO__QUOTE(_field_), &this->_field_);\
58 } while (0)
59
60
61#define SO_VRMLNODE_ADD_FIELD(_field_, _defaultval_) \
62 SO_NODE_ADD_FIELD(_field_, _defaultval_)
63
64#define SO_VRMLNODE_ADD_EXPOSED_FIELD(_field_, _defaultval_) \
65 this->_field_.setFieldType(SoField::EXPOSED_FIELD); \
66 SO_NODE_ADD_FIELD(_field_, _defaultval_)
67
68#define SO_VRML97_NODE_TYPE (SoNode::VRML2|SoNode::COIN_2_0)
69
70
71#endif // COIN_SOVRMLMACROS_H

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.

Generated on Wed Jul 17 2024 for Coin by Doxygen 1.12.0.