5 #ifndef __IRR_I_COLLADA_MESH_WRITER_H_INCLUDED__
6 #define __IRR_I_COLLADA_MESH_WRITER_H_INCLUDED__
206 : Properties(0), DefaultProperties(0), NameGenerator(0), DefaultNameGenerator(0)
207 , WriteTextures(true), WriteDefaultScene(true), ExportSMaterialOnce(true)
208 , AmbientLight(0.f, 0.f, 0.f, 1.f)
218 if ( DefaultProperties )
219 DefaultProperties->
drop();
221 NameGenerator->
drop();
222 if ( DefaultNameGenerator )
223 DefaultNameGenerator->
drop();
233 WriteTextures = write;
239 return WriteTextures;
249 WriteDefaultScene = write;
255 return WriteDefaultScene;
261 AmbientLight = ambientColor;
280 GeometryWriting = writeStyle;
286 return GeometryWriting;
299 ExportSMaterialOnce = exportOnce;
304 return ExportSMaterialOnce;
312 if ( p == Properties )
331 return DefaultProperties;
337 if ( nameGenerator == NameGenerator )
340 nameGenerator->
grab();
342 NameGenerator->
drop();
343 NameGenerator = nameGenerator;
349 return NameGenerator;
356 return DefaultNameGenerator;
368 if ( p == DefaultProperties )
372 if ( DefaultProperties )
373 DefaultProperties->
drop();
374 DefaultProperties = p;
380 if ( p == DefaultNameGenerator )
384 if ( DefaultNameGenerator )
385 DefaultNameGenerator->
drop();
386 DefaultNameGenerator = p;
395 bool WriteDefaultScene;
396 bool ExportSMaterialOnce;
Use SMaterial::EmissiveColor.
Use SMaterial::DiffuseColor.
default - only alpha channel of color or texture is used.
E_COLLADA_GEOMETRY_WRITING
Control when geometry elements are created.
virtual bool getWriteDefaultScene() const
Get if a default scene should be written.
virtual bool getExportSMaterialsOnlyOnce() const
virtual ~IColladaMeshWriterProperties()
virtual IColladaMeshWriterNames * getNameGenerator() const
Get currently used name generator.
float f32
32 bit floating point variable.
virtual f32 getIndexOfRefraction(const video::SMaterial &material) const =0
Return index of refraction for that material.
virtual void setDefaultNameGenerator(IColladaMeshWriterNames *p)
virtual s32 getTextureIdx(const video::SMaterial &material, E_COLLADA_COLOR_SAMPLER cs) const =0
Which texture index should be used when writing the texture of the given sampler color.
virtual video::SColorf getAmbientLight() const
Return ambient light of the scene which is written.
Don't write this element at all.
Alpha values for each RGB channel of color or texture are used.
virtual E_COLLADA_TRANSPARENT_FX getTransparentFx(const video::SMaterial &material) const =0
Return the transparence color interpretation.
virtual bool getWriteTextures() const
Get if texture information should be written.
virtual irr::core::stringw nameForMaterial(const video::SMaterial &material, int materialId, const scene::IMesh *mesh, const scene::ISceneNode *node)=0
Return a name for the material.
Use SMaterial::SpecularColor.
virtual ~IColladaMeshWriter()
Destructor.
Interface providing write access to a file.
virtual void setGeometryWriting(E_COLLADA_GEOMETRY_WRITING writeStyle)
Control when and how often a mesh is written.
Interface for writing meshes.
Class which holds the geometry of an object.
Default - write each mesh exactly once to collada. Optimal but will not work with many tools...
Interface for writing meshes.
bool drop() const
Drops the object. Decrements the reference counter by one.
virtual void setNameGenerator(IColladaMeshWriterNames *nameGenerator)
Install a generator to create custom names on export.
E_COLLADA_TECHNIQUE_FX
Lighting models - more or less the way Collada categorizes materials.
signed int s32
32 bit signed variable.
virtual irr::core::stringw nameForNode(const scene::ISceneNode *node)=0
Return a unique name for the given node.
virtual void setWriteTextures(bool write)
Set if texture information should be written.
virtual void setWriteDefaultScene(bool write)
Set if a default scene should be written when writing meshes.
virtual IColladaMeshWriterProperties * getProperties() const
Get properties which are currently used.
E_COLLADA_TRANSPARENT_FX
How to interpret the opacity in collada.
diffuse shaded surface that is independent of lighting.
Callback interface for properties which can be used to influence collada writing. ...
virtual bool writeScene(io::IWriteFile *file, scene::ISceneNode *root)=0
writes a scene starting with the given node
Callback interface to use custom names on collada writing.
virtual bool isExportable(const irr::scene::ISceneNode *node) const =0
virtual void setProperties(IColladaMeshWriterProperties *p)
Set properties to use by the meshwriter instead of it's default properties.
IColladaMeshWriterNames * getDefaultNameGenerator() const
Return the original default name generator of the writer.
E_COLLADA_IRR_COLOR
Irrlicht colors which can be mapped to E_COLLADA_COLOR_SAMPLER values.
virtual void setExportSMaterialsOnlyOnce(bool exportOnce)
Make certain there is only one collada material generated per Irrlicht material.
virtual E_COLLADA_GEOMETRY_WRITING getGeometryWriting() const
Get the current style of geometry writing.
Class representing a 32 bit ARGB color.
IColladaMeshWriterProperties * getDefaultProperties() const
Return the original default properties of the writer.
virtual f32 getTransparency(const video::SMaterial &material) const =0
Transparency value for that material.
virtual video::SColor getCustomColor(const video::SMaterial &material, E_COLLADA_COLOR_SAMPLER cs) const =0
Return custom colors for certain color types requested by collada.
virtual void setAmbientLight(const video::SColorf &ambientColor)
Sets ambient color of the scene to write.
virtual bool useNodeMaterial(const scene::ISceneNode *node) const =0
Return if the node has it's own material overwriting the mesh-materials.
virtual ~IColladaMeshWriterNames()
Phong shading, default in many external renderers.
Base class of most objects of the Irrlicht Engine.
E_COLLADA_COLOR_SAMPLER
Color names collada uses in it's color samplers.
void grab() const
Grabs the object. Increments the reference counter by one.
virtual E_COLLADA_IRR_COLOR getColorMapping(const video::SMaterial &material, E_COLLADA_COLOR_SAMPLER cs) const =0
Return which color from Irrlicht should be used for the color requested by collada.
virtual E_COLLADA_TECHNIQUE_FX getTechniqueFx(const video::SMaterial &material) const =0
Which lighting model should be used in the technique (FX) section when exporting effects (materials) ...
Class representing a color with four floats.
Check IColladaMeshWriterProperties for custom color.
Struct for holding parameters for a material renderer.
virtual f32 getReflectivity(const video::SMaterial &material) const =0
Reflectivity value for that material.
virtual irr::core::stringw nameForMesh(const scene::IMesh *mesh, int instance)=0
Return a unique name for the given mesh.
Use SMaterial::AmbientColor.
virtual irr::core::stringw toNCName(const irr::core::stringw &oldString, const irr::core::stringw &prefix=irr::core::stringw(L"_NC_")) const =0
Restrict the characters of oldString a set of allowed characters in xs::NCName and add the prefix...
virtual void setDefaultProperties(IColladaMeshWriterProperties *p)
virtual IMesh * getMesh(irr::scene::ISceneNode *node)=0