1 /**************************************************************************\
2 * Copyright (c) Kongsberg Oil & Gas Technologies AS
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * Neither the name of the copyright holder nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 \**************************************************************************/
32
33 /*!
34 \class SoGLRenderPassElement Inventor/elements/SoGLRenderPassElement.h
35 \brief The SoGLRenderPassElement class is yet to be documented.
36
37 \ingroup elements
38
39 FIXME: write doc.
40 */
41
42 #include <Inventor/elements/SoGLRenderPassElement.h>
43
44 /*!
45 \fn SoGLRenderPassElement::passnr
46
47 FIXME: write doc.
48 */
49
50 SO_ELEMENT_SOURCE(SoGLRenderPassElement);
51
52 /*!
53 This static method initializes static data for the
54 SoGLRenderPassElement class.
55 */
56
57 void
initClass(void)58 SoGLRenderPassElement::initClass(void)
59 {
60 SO_ELEMENT_INIT_CLASS(SoGLRenderPassElement, inherited);
61 }
62
63 /*!
64 The destructor.
65 */
66
~SoGLRenderPassElement(void)67 SoGLRenderPassElement::~SoGLRenderPassElement(void)
68 {
69 }
70
71 //! FIXME: write doc.
72
73 void
init(SoState * state)74 SoGLRenderPassElement::init(SoState * state)
75 {
76 inherited::init(state);
77 this->passnr = 0;
78 }
79
80 //! FIXME: write doc.
81
82 SbBool
matches(const SoElement * element) const83 SoGLRenderPassElement::matches(const SoElement * element) const
84 {
85 return this->passnr == ((SoGLRenderPassElement*)element)->passnr;
86 }
87
88 //! FIXME: write doc.
89
90 SoElement *
copyMatchInfo(void) const91 SoGLRenderPassElement::copyMatchInfo(void) const
92 {
93 SoGLRenderPassElement * elem = (SoGLRenderPassElement*) this->getTypeId().createInstance();
94 elem->passnr = this->passnr;
95 return elem;
96 }
97
98 //! FIXME: write doc.
99
100 void
set(SoState * const state,const int pass)101 SoGLRenderPassElement::set(SoState * const state,
102 const int pass)
103 {
104 SoGLRenderPassElement * element = (SoGLRenderPassElement *)
105 getElement(state, classStackIndex);
106 if (element) {
107 element->passnr = pass;
108 }
109 }
110
111 //! FIXME: write doc.
112
113 int
get(SoState * const state)114 SoGLRenderPassElement::get(SoState * const state)
115 {
116 const SoGLRenderPassElement * element = (const SoGLRenderPassElement *)
117 getConstElement(state, classStackIndex);
118 return element->passnr;
119 }
120