Coin3D is Free Software,
published under the
BSD 3-clause license
.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
SoMultiTextureEnabledElement.h
1
#ifndef COIN_SOMULTITEXTUREENABLEDELEMENT_H
2
#define COIN_SOMULTITEXTUREENABLEDELEMENT_H
3
4
/**************************************************************************\
5
* Copyright (c) Kongsberg Oil & Gas Technologies AS
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions are
10
* met:
11
*
12
* Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in the
17
* documentation and/or other materials provided with the distribution.
18
*
19
* Neither the name of the copyright holder nor the names of its
20
* contributors may be used to endorse or promote products derived from
21
* this software without specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
\**************************************************************************/
35
36
#include <Inventor/elements/SoElement.h>
37
#include <Inventor/elements/SoSubElement.h>
38
39
class
SoMultiTextureEnabledElementP;
40
41
class
COIN_DLL_API
SoMultiTextureEnabledElement
:
public
SoElement
{
42
typedef
SoElement
inherited
;
43
44
SO_ELEMENT_HEADER(
SoMultiTextureEnabledElement
);
45
public
:
46
static
void
initClass
(
void
);
47
protected
:
48
virtual
~
SoMultiTextureEnabledElement
();
49
50
public
:
51
enum
Mode {
52
DISABLED = 0,
53
TEXTURE2D,
54
RECTANGLE,
55
CUBEMAP,
56
TEXTURE3D
57
};
58
59
virtual
void
init
(
SoState
* state);
60
static
void
set
(
SoState
* state,
61
SoNode
* node,
62
const
int
unit,
63
const
SbBool enabled);
64
65
static
SbBool
get
(
SoState
* state,
const
int
unit = 0);
66
virtual
void
setElt(
const
int
unit,
const
int
mode);
67
68
virtual
void
push
(
SoState
* state);
69
virtual
SbBool
matches
(
const
SoElement
* elem)
const
;
70
SoElement
*
copyMatchInfo
(
void
)
const
;
71
72
static
const
SbBool * getEnabledUnits(
SoState
* state,
73
int
& lastenabled);
74
static
const
Mode * getActiveUnits(
SoState
* state,
75
int
& lastenabled);
76
77
static
void
enableRectangle(
SoState
* state,
SoNode
* node,
const
int
unit = 0);
78
static
void
enableCubeMap(
SoState
* state,
SoNode
* node,
const
int
unit = 0);
79
static
void
enableTexture3(
SoState
* state,
SoNode
* node,
const
int
unit = 0);
80
static
Mode getMode(
SoState
* state,
const
int
unit = 0);
81
static
void
disableAll(
SoState
* state);
82
83
// Coin-3 support
84
static
void
set
(
SoState
* state,
85
const
SbBool enabled) {
86
set
(state, NULL, 0, enabled);
87
}
88
89
static
void
set
(
SoState
* state,
SoNode
* node,
90
const
SbBool enabled) {
91
set
(state, node, 0, enabled);
92
}
93
94
protected
:
95
int
getMaxUnits()
const
;
96
SbBool isEnabled(
const
int
unit)
const
;
97
Mode getMode(
const
int
unit)
const
;
98
99
private
:
100
SoMultiTextureEnabledElementP * pimpl;
101
};
102
103
#endif // !COIN_SOMULTITEXTUREENABLEDELEMENT_H
SoElement::initClass
static void initClass(void)
Definition:
SoElement.cpp:506
SoElement::matches
virtual SbBool matches(const SoElement *element) const =0
Definition:
SoElement.cpp:608
SoElement::push
virtual void push(SoState *state)
Definition:
SoElement.cpp:569
SoNode
The SoNode class is the base class for nodes used in scene graphs.
Definition:
SoNode.h:56
SoElement
SoElement is the abstract base class for all elements.
Definition:
SoElement.h:43
SoMultiTextureEnabledElement
The SoMultiTextureEnabledElement class is an element which stores whether texturing is enabled or not...
Definition:
SoMultiTextureEnabledElement.h:41
SoState
The SoState class manages the Coin scenegraph traversal state data.
Definition:
SoState.h:44
SoElement::init
virtual void init(SoState *state)
Definition:
SoElement.cpp:552
SoElement::copyMatchInfo
virtual SoElement * copyMatchInfo(void) const =0
include
Inventor
elements
SoMultiTextureEnabledElement.h
Generated on Thu Oct 18 2018 20:22:48 for Coin by
doxygen
1.8.14