Developer Documentation
Loading...
Searching...
No Matches
LightObject.hh
Go to the documentation of this file.
1/*===========================================================================*\
2* *
3* OpenFlipper *
4 * Copyright (c) 2001-2015, RWTH-Aachen University *
5 * Department of Computer Graphics and Multimedia *
6 * All rights reserved. *
7 * www.openflipper.org *
8 * *
9 *---------------------------------------------------------------------------*
10 * This file is part of OpenFlipper. *
11 *---------------------------------------------------------------------------*
12 * *
13 * Redistribution and use in source and binary forms, with or without *
14 * modification, are permitted provided that the following conditions *
15 * are met: *
16 * *
17 * 1. Redistributions of source code must retain the above copyright notice, *
18 * this list of conditions and the following disclaimer. *
19 * *
20 * 2. Redistributions in binary form must reproduce the above copyright *
21 * notice, this list of conditions and the following disclaimer in the *
22 * documentation and/or other materials provided with the distribution. *
23 * *
24 * 3. Neither the name of the copyright holder nor the names of its *
25 * contributors may be used to endorse or promote products derived from *
26 * this software without specific prior written permission. *
27 * *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39* *
40\*===========================================================================*/
41
42
43
44//=============================================================================
45//
46// Types
47//
48//=============================================================================
49
56#ifndef LIGHTOBJECT_HH
57#define LIGHTOBJECT_HH
58
59
60
61//== INCLUDES =================================================================
62
65
66#include "LightTypes.hh"
67
68//== TYPEDEFS =================================================================
69
70// //== CLASS DEFINITION =========================================================
71
72class OBJECTTYPEDLLEXPORT LightObject : public BaseObjectData {
73
74 friend class TypeLightPlugin;
75 friend class LightWidget;
76
77 public:
80
85 LightObject(const LightObject& _object);
86
88 virtual ~LightObject();
89
91 virtual void cleanup();
92
97
98
99 protected:
101 virtual void init(LightNode* _light = 0, LightNode* _lightVis = 0);
102
103 //===========================================================================
106 //===========================================================================
107 public:
108
110 void setName( QString _name );
111
114 //===========================================================================
117 //===========================================================================
118 public:
119
120 LightSource* lightSource();
121
122
124 bool defaultLight() const { return defaultLightSource_; }
125
127 void defaultLight( const bool _default ) { defaultLightSource_ = _default; }
128
129 private:
131
135
138 //===========================================================================
145 //===========================================================================
146
147 protected:
152 virtual void update(UpdateType _type = UPDATE_ALL);
153
156 //===========================================================================
159 //===========================================================================
160
161 public:
163 LightNode* lightNode();
164
166 LightNode* lightNodeVis();
167
168 virtual bool hasNode(BaseNode* _node);
169
170 private:
173
176
179 //===========================================================================
182 //===========================================================================
183 public:
185 QString getObjectinfo();
186
190 //===========================================================================
193 //===========================================================================
194 public:
196 bool picked( uint _node_idx );
197
199 void enablePicking( bool _enable );
200
202 bool pickingEnabled();
203
206 public:
207
209 virtual void visible(bool _visible);
210
212 virtual bool visible();
213
215 virtual void show();
216
218 virtual void hide();
219
220
221};
222
223//=============================================================================
224#endif // LIGHTOBJECT_HH defined
225//=============================================================================
Structure to hold options for one LightSource.
Definition LightNode.hh:86
virtual void enablePicking(bool _enable)
virtual bool pickingEnabled()
virtual void show()
Sets the whole Scenegraph subtree of this node to visible.
virtual void hide()
Sets the whole Scenegraph subtree of this node to invisible.
virtual void setName(QString _name) override
path to the file from which the object is loaded ( defaults to "." )
virtual void update(UpdateType _type=UPDATE_ALL) override
This function is called to update the object.
virtual void cleanup() override
virtual bool hasNode(BaseNode *_node)
Check if the given node is owned by this object.
virtual bool visible() override
return visiblity
virtual bool picked(uint _node_idx)
detect if the node has been picked
virtual QString getObjectinfo()
Get all Info for the Object as a string.
virtual BaseObject * copy()
Returns a full copy of the object.
LightNode * lightNodeVis_
Light rendering node (only for rendering purposes)
bool defaultLight() const
Is light default light source?
void defaultLight(const bool _default)
Set light object to be default light.
LightNode * lightNode_
Light status node.
LightSource lightSource_
bool defaultLightSource_
Update type class.
Definition UpdateType.hh:59
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.