http://www.coin3d.org/
http://www.kongsberg.com/kogt/
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
include
Inventor
elements
SoCullElement.h
1
#ifndef COIN_SOCULLELEMENT_H
2
#define COIN_SOCULLELEMENT_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/SoSubElement.h>
37
#include <Inventor/SbPlane.h>
38
39
class
SbBox3f
;
40
class
SbViewVolume
;
41
42
class
COIN_DLL_API
SoCullElement
:
public
SoElement
{
43
typedef
SoElement
inherited
;
44
45
SO_ELEMENT_HEADER(
SoCullElement
);
46
public
:
47
static
void
initClass
(
void
);
48
protected
:
49
virtual
~
SoCullElement
();
50
51
public
:
52
53
virtual
void
init
(
SoState
* state);
54
virtual
void
push
(
SoState
* state);
55
56
static
void
setViewVolume(
SoState
* state,
const
SbViewVolume
& vv);
57
static
void
addPlane(
SoState
* state,
const
SbPlane
& newplane);
58
static
SbBool cullBox(
SoState
* state,
const
SbBox3f
& box,
const
SbBool transform = TRUE);
59
static
SbBool cullTest(
SoState
* state,
const
SbBox3f
& box,
const
SbBool transform = TRUE);
60
static
SbBool completelyInside(
SoState
* state);
61
62
virtual
SbBool
matches
(
const
SoElement
* elt)
const
;
63
virtual
SoElement
*
copyMatchInfo
(
void
)
const
;
64
65
private
:
66
67
enum
{ MAXPLANES = 32 };
68
69
static
SbBool docull(
SoState
* state,
const
SbBox3f
& box,
const
SbBool transform,
70
const
SbBool updateelem);
71
72
SbPlane
plane[MAXPLANES];
73
int
numplanes;
74
unsigned
int
flags;
75
int
vvindex;
76
};
77
78
#endif // !COIN_SOCULLELEMENT_H
Copyright © by
Kongsberg Oil & Gas Technologies
. All rights reserved.
Generated on Sat Oct 26 2013 23:25:57 for Coin by
Doxygen
1.8.4.