5 #ifndef __IRR_I_COLLADA_MESH_WRITER_H_INCLUDED__ 6 #define __IRR_I_COLLADA_MESH_WRITER_H_INCLUDED__ 207 : Properties(0), DefaultProperties(0), NameGenerator(0), DefaultNameGenerator(0)
208 , WriteTextures(true), WriteDefaultScene(true), ExportSMaterialOnce(true)
209 , AmbientLight(0.
f, 0.
f, 0.
f, 1.
f)
210 , UnitMeter(1.
f), UnitName(
"meter")
222 if ( DefaultProperties )
223 DefaultProperties->
drop();
225 NameGenerator->
drop();
226 if ( DefaultNameGenerator )
227 DefaultNameGenerator->
drop();
238 WriteTextures = write;
244 return WriteTextures;
254 WriteDefaultScene = write;
260 return WriteDefaultScene;
266 AmbientLight = ambientColor;
307 GeometryWriting = writeStyle;
313 return GeometryWriting;
326 ExportSMaterialOnce = exportOnce;
331 return ExportSMaterialOnce;
339 if (
p == Properties )
358 return DefaultProperties;
364 if ( nameGenerator == NameGenerator )
367 nameGenerator->
grab();
369 NameGenerator->
drop();
370 NameGenerator = nameGenerator;
376 return NameGenerator;
383 return DefaultNameGenerator;
414 if (
p == DefaultProperties )
418 if ( DefaultProperties )
419 DefaultProperties->
drop();
420 DefaultProperties =
p;
426 if (
p == DefaultNameGenerator )
430 if ( DefaultNameGenerator )
431 DefaultNameGenerator->
drop();
432 DefaultNameGenerator =
p;
444 bool WriteDefaultScene;
445 bool ExportSMaterialOnce;
Use SMaterial::EmissiveColor.
bool drop() const
Drops the object. Decrements the reference counter by one.
Use SMaterial::DiffuseColor.
default - only alpha channel of color or texture is used.
virtual E_COLLADA_GEOMETRY_WRITING getGeometryWriting() const
Get the current style of geometry writing.
E_COLLADA_GEOMETRY_WRITING
Control when geometry elements are created.
virtual ~IColladaMeshWriterProperties()
virtual irr::f32 getUnitMeter() const
Return real world meters to use per unit for all elements and objects.
float f32
32 bit floating point variable.
virtual f32 getIndexOfRefraction(const video::SMaterial &material) const =0
Return index of refraction for that material.
irr::core::stringc ParamNamesUV[2]
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.
IColladaMeshWriterProperties * getDefaultProperties() const
Return the original default properties of the writer.
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 getWriteDefaultScene() const
Get if a default scene should be written.
virtual video::SColorf getAmbientLight() const
Return ambient light of the scene which is written.
virtual irr::core::stringc nameForMaterial(const video::SMaterial &material, int materialId, const scene::IMesh *mesh, const scene::ISceneNode *node)=0
Return a name for the material.
GLuint const GLchar * name
Everything in the Irrlicht Engine can be found in this namespace.
Use SMaterial::SpecularColor.
virtual ~IColladaMeshWriter()
Destructor.
virtual bool getWriteTextures() const
Get if texture information should be written.
Interface providing write access to a file.
virtual void setGeometryWriting(E_COLLADA_GEOMETRY_WRITING writeStyle)
Control when and how often a mesh is written.
Very simple string class with some useful features.
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.
virtual IColladaMeshWriterNames * getNameGenerator() const
Get currently used name generator.
Interface for writing meshes.
virtual IColladaMeshWriterProperties * getProperties() const
Get properties which are currently used.
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::stringc toNCName(const irr::core::stringc &oldString, const irr::core::stringc &prefix=irr::core::stringc("_NC_")) const =0
Restrict the characters of oldString a set of allowed characters in xs:NCName and add the prefix.
IColladaMeshWriterNames * getDefaultNameGenerator() const
Return the original default name generator of the writer.
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.
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.
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.
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 const irr::core::stringc * findGeometryNameForNode(ISceneNode *node)=0
After export you can find out which name had been used for writing the geometry for this node.
Class representing a 32 bit ARGB color.
virtual irr::core::stringc getUnitName() const
Return name to use for distance units. Like p.E. "meter".
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.
void grab() const
Grabs the object. Increments the reference counter by one.
virtual ~IColladaMeshWriterNames()
Phong shading, default in many external renderers.
virtual irr::core::stringc nameForNode(const scene::ISceneNode *node)=0
Return a unique name for the given node.
virtual bool getExportSMaterialsOnlyOnce() const
Base class of most objects of the Irrlicht Engine.
E_COLLADA_COLOR_SAMPLER
Color names collada uses in it's color samplers.
virtual bool writeScene(io::IWriteFile *file, scene::ISceneNode *root, int writeRoot=1)=0
writes a scene starting with the given node
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)
virtual void setUnit(irr::f32 meter, const irr::core::stringc &name)
Set the unit distances for all elements and objects.
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::stringc nameForMesh(const scene::IMesh *mesh, int instance)=0
Return a unique name for the given mesh.
Use SMaterial::AmbientColor.
void SetParamNamesUV(const core::stringc &u, const core::stringc &v)
Change param name used for UV's.
virtual void setDefaultProperties(IColladaMeshWriterProperties *p)
virtual IMesh * getMesh(irr::scene::ISceneNode *node)=0