11#include "COLLADASWColor.h"
12#include "COLLADASWLight.h"
20template<
class Functor>
24 for (node = export_set; node; node = node->
next) {
34 : COLLADASW::LibraryLights(sw), export_settings(export_settings)
51 std::string la_name(
id_name(la));
56 COLLADASW::Color
col(color[0], color[1], color[2]);
60 COLLADASW::DirectionalLight cla(mSW, la_id, la_name);
61 cla.setColor(
col,
false,
"color");
62 exportBlenderProfile(cla, la);
68 COLLADASW::SpotLight cla(mSW, la_id, la_name);
69 cla.setColor(
col,
false,
"color");
71 cla.setFallOffExponent(la->
spotblend,
false,
"fall_off_exponent");
72 exportBlenderProfile(cla, la);
77 COLLADASW::PointLight cla(mSW, la_id, la_name);
78 cla.setColor(
col,
false,
"color");
79 exportBlenderProfile(cla, la);
85 COLLADASW::PointLight cla(mSW, la_id, la_name);
86 cla.setColor(
col,
false,
"color");
87 exportBlenderProfile(cla, la);
92bool LightsExporter::exportBlenderProfile(COLLADASW::Light &cla,
Light *la)
94 cla.addExtraTechniqueParameter(
"blender",
"type", la->
type);
95 cla.addExtraTechniqueParameter(
"blender",
"flag", la->
flag);
96 cla.addExtraTechniqueParameter(
"blender",
"mode", la->
mode);
97 cla.addExtraTechniqueParameter(
"blender",
"red", la->
r);
98 cla.addExtraTechniqueParameter(
"blender",
"green", la->
g);
99 cla.addExtraTechniqueParameter(
"blender",
"blue", la->
b);
100 cla.addExtraTechniqueParameter(
"blender",
"energy", la->
energy,
"blender_energy");
101 cla.addExtraTechniqueParameter(
"blender",
"spotsize",
RAD2DEGF(la->
spotsize));
102 cla.addExtraTechniqueParameter(
"blender",
"spotblend", la->
spotblend);
103 cla.addExtraTechniqueParameter(
"blender",
"clipsta", la->
clipsta);
104 cla.addExtraTechniqueParameter(
"blender",
"clipend", la->
att_dist);
105 cla.addExtraTechniqueParameter(
"blender",
"radius", la->
radius);
106 cla.addExtraTechniqueParameter(
"blender",
"area_shape", la->
area_shape);
107 cla.addExtraTechniqueParameter(
"blender",
"area_size", la->
area_size);
108 cla.addExtraTechniqueParameter(
"blender",
"area_sizey", la->
area_sizey);
109 cla.addExtraTechniqueParameter(
"blender",
"area_sizez", la->
area_sizez);
General operations, lookup, etc. for blender lights.
blender::float3 BKE_light_color(const Light &light)
float BKE_light_area(const Light &light, const blender::float4x4 &object_to_world)
float BKE_light_power(const Light &light)
void forEachLightObjectInExportSet(Scene *sce, Functor &f, LinkNode *export_set)
void exportLights(Scene *sce)
LightsExporter(COLLADASW::StreamWriter *sw, BCExportSettings &export_settings)
void operator()(Object *ob)
std::string get_light_id(Object *ob)
std::string id_name(void *id)
VecBase< float, 3 > float3
ObjectRuntimeHandle * runtime