52 return QString( tr(
"Light definition files ( *.lgt )") );
56 return QString( tr(
"Light definition files ( *.lgt )") );
64int FileLightPlugin::loadObject(QString _filename)
75 QFileInfo fi(_filename);
80 QSettings settings(_filename, QSettings::IniFormat);
81 settings.beginGroup(
"LIGHT");
83 if ( settings.contains(
"Name") ) {
84 lightObject->
setName( settings.value(
"Name").toString() );
89 if (settings.contains(
"PositionX")) {
91 position[0] = settings.value(
"PositionX").toDouble();
92 position[1] = settings.value(
"PositionY").toDouble();
93 position[2] = settings.value(
"PositionZ").toDouble();
98 if (settings.contains(
"DirectionX")) {
100 direction[0] = settings.value(
"DirectionX").toDouble();
101 direction[1] = settings.value(
"DirectionY").toDouble();
102 direction[2] = settings.value(
"DirectionZ").toDouble();
107 if (settings.contains(
"SpotDirectionX")) {
109 spotDirection[0] = settings.value(
"SpotDirectionX").toDouble();
110 spotDirection[1] = settings.value(
"SpotDirectionY").toDouble();
111 spotDirection[2] = settings.value(
"SpotDirectionZ").toDouble();
116 if (settings.contains(
"AmbientColorR")) {
118 ambientColor[0] = settings.value(
"AmbientColorR").toDouble();
119 ambientColor[1] = settings.value(
"AmbientColorG").toDouble();
120 ambientColor[2] = settings.value(
"AmbientColorB").toDouble();
121 if (settings.contains(
"AmbientColorA"))
122 ambientColor[3] = settings.value(
"AmbientColorA").toDouble();
124 ambientColor[3] = 1.0f;
129 if (settings.contains(
"DiffuseColorR")) {
131 diffuseColor[0] = settings.value(
"DiffuseColorR").toDouble();
132 diffuseColor[1] = settings.value(
"DiffuseColorG").toDouble();
133 diffuseColor[2] = settings.value(
"DiffuseColorB").toDouble();
134 if (settings.contains(
"DiffuseColorA"))
135 diffuseColor[3] = settings.value(
"DiffuseColorA").toDouble();
137 diffuseColor[3] = 1.0f;
142 if (settings.contains(
"SpecularColorR")) {
144 specularColor[0] = settings.value(
"SpecularColorR").toDouble();
145 specularColor[1] = settings.value(
"SpecularColorG").toDouble();
146 specularColor[2] = settings.value(
"SpecularColorB").toDouble();
147 if (settings.contains(
"SpecularColorA"))
148 specularColor[3] = settings.value(
"SpecularColorA").toDouble();
150 specularColor[3] = 1.0f;
155 if (settings.contains(
"FixedPosition")) {
157 bool fixedPosition = settings.value(
"FixedPosition").toBool();
162 if (settings.contains(
"SpotExponent")) {
164 float spotExponent = settings.value(
"SpotExponent").toDouble();
166 light->spotExponent(spotExponent);
169 if (settings.contains(
"SpotCutOff")) {
171 float spotCutOff = settings.value(
"SpotCutOff").toDouble();
173 light->spotCutoff(spotCutOff);
176 if (settings.contains(
"ConstantAttenuation")) {
178 float cAttenuation = settings.value(
"ConstantAttenuation").toDouble();
180 light->constantAttenuation(cAttenuation);
183 if (settings.contains(
"LinearAttenuation")) {
185 float lAttenuation = settings.value(
"LinearAttenuation").toDouble();
187 light->linearAttenuation(lAttenuation);
190 if (settings.contains(
"QuadraticAttenuation")) {
192 float qAttenuation = settings.value(
"QuadraticAttenuation").toDouble();
194 light->quadraticAttenuation(qAttenuation);
197 if (settings.contains(
"Radius")) {
199 float radius = settings.value(
"Radius").toDouble();
204 if (settings.contains(
"Enabled")) {
206 bool enabled = settings.value(
"Enabled").toBool();
224bool FileLightPlugin::saveObject(
int _id, QString _filename)
235 QSettings settings(_filename, QSettings::IniFormat);
236 settings.beginGroup(
"LIGHT");
241 settings.setValue(
"PositionX", light->
position()[0]);
242 settings.setValue(
"PositionY", light->
position()[1]);
243 settings.setValue(
"PositionZ", light->
position()[2]);
245 settings.setValue(
"DirectionX", light->
direction()[0]);
246 settings.setValue(
"DirectionY", light->
direction()[1]);
247 settings.setValue(
"DirectionZ", light->
direction()[2]);
250 settings.setValue(
"SpotDirectionX", light->
spotDirection()[0]);
251 settings.setValue(
"SpotDirectionY", light->
spotDirection()[1]);
252 settings.setValue(
"SpotDirectionZ", light->
spotDirection()[2]);
254 settings.setValue(
"AmbientColorR", light->
ambientColor()[0]);
255 settings.setValue(
"AmbientColorG", light->
ambientColor()[1]);
256 settings.setValue(
"AmbientColorB", light->
ambientColor()[2]);
257 settings.setValue(
"AmbientColorA", light->
ambientColor()[3]);
259 settings.setValue(
"DiffuseColorR", light->
diffuseColor()[0]);
260 settings.setValue(
"DiffuseColorG", light->
diffuseColor()[1]);
261 settings.setValue(
"DiffuseColorB", light->
diffuseColor()[2]);
262 settings.setValue(
"DiffuseColorA", light->
diffuseColor()[3]);
264 settings.setValue(
"SpecularColorR", light->
specularColor()[0]);
265 settings.setValue(
"SpecularColorG", light->
specularColor()[1]);
266 settings.setValue(
"SpecularColorB", light->
specularColor()[2]);
267 settings.setValue(
"SpecularColorA", light->
specularColor()[3]);
271 settings.setValue(
"SpotExponent", light->spotExponent());
273 settings.setValue(
"SpotCutOff", light->spotCutoff());
275 settings.setValue(
"ConstantAttenuation", light->constantAttenuation());
277 settings.setValue(
"LinearAttenuation", light->linearAttenuation());
279 settings.setValue(
"QuadraticAttenuation", light->quadraticAttenuation());
281 settings.setValue(
"Radius", light->
radius());
283 settings.setValue(
"Enabled", light->
enabled());
287 obj->setFromFileName(_filename);
288 obj->setName(obj->filename());
Structure to hold options for one LightSource.
void fixedPosition(bool _state)
make LightSource fixed or moveable with ModelViewMatrix
Vec3d direction() const
Get direction of the light source.
float radius() const
Get light source radius.
void disable()
disable LightSource
void enable()
enable LightSource
void specularColor(Vec4f _color)
set Specular color for LightSource
void diffuseColor(Vec4f _color)
set Diffuse color for LightSource
void position(Vec3d _pos)
Set position for LightSource.
bool enabled() const
Get light source status.
void ambientColor(Vec4f _color)
set Ambient color for LightSource
bool directional() const
Check if the light source is a directional light source.
void spotDirection(Vec3d _pos)
Set spot direction.
QString name() const
return the name of the object. The name defaults to NONAME if unset.
void setFromFileName(const QString &_filename)
DataType supportedType()
Return your supported object type( e.g. DATA_TRIANGLE_MESH )
void initializePlugin()
Initialize Plugin.
void setName(QString _name)
Set the name of the Object.
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.
LightObject * lightObject(BaseObjectData *_object)
Cast an BaseObject to a LightObject if possible.
bool getObject(const int _identifier, BaseObject *&_object)
Get the object which has the given identifier.
LightSource * lightSource(BaseObjectData *_object)
Get the lightSource in this Object.