crystalspace.jbind.interfaces.imesh.object
Interface iMeshObjectFactory

All Superinterfaces:
iBase, iPointer
All Known Implementing Classes:
csMeshObjectFactory

public interface iMeshObjectFactory
extends iBase

This object is a factory which can generate mesh objects of a certain type. For example, if you want to have multiple sets of sprites from the same sprite template then you should have an instance of iMeshObjectFactory for evey sprite template and an instance of iMeshObject for every sprite. To use a mesh factory in the engine, you have to create a mesh factory wrapper for it.

Author:
Java wrapper - Quentin Anciaux, c++ version - http://crystal.sourceforge.net/docs/online/devapi/structiMeshObjectFactory.php

Method Summary
 iBase getLogicalParent()
          Get the logical parent for this mesh factory.
 iObjectModel getObjectModel()
          Get the generic interface describing the geometry of this mesh factory.
 void hardTransform(csReversibleTransform t)
          Do a hard transform of this factory.
 iMeshObject newInstance()
          Create an instance of iMeshObject.
 void setLogicalParent(iBase logparent)
          Set a reference to some logical parent in the context that holds the mesh factories.
 boolean supportsHardTransform()
          Return true if HardTransform is supported for this factory.
 
Methods inherited from interface crystalspace.jbind.interfaces.iutil.scf.iBase
decRef, getName, getRefCount, getVersion, incRef, queryInterface, queryInterfaceSafe
 
Methods inherited from interface crystalspace.jbind.interfaces.iPointer
changePointer, getPointer, isMemoryOwner, setMemoryOwner
 

Method Detail

getLogicalParent

public iBase getLogicalParent()
Get the logical parent for this mesh factory. See SetLogicalParent(); for more information. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Returns:

getObjectModel

public iObjectModel getObjectModel()
Get the generic interface describing the geometry of this mesh factory. It is possible that this will return 0 if the factory itself doesn't support the geometry. In that case you need to get the object model from the individual instance instead. Note that for collision detection and other parts of CS it is prefered to use the factory object model when available as that reduces the amount of redundant memory usage. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Returns:

hardTransform

public void hardTransform(csReversibleTransform t)
Do a hard transform of this factory. This transformation and the original coordinates are not remembered but the object space coordinates are directly computed (world space coordinates are set to the object space coordinates by this routine);. Note that some implementations of mesh objects will not change the orientation of the object but only the position. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Parameters:
t -

newInstance

public iMeshObject newInstance()
Create an instance of iMeshObject. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Returns:

setLogicalParent

public void setLogicalParent(iBase logparent)
Set a reference to some logical parent in the context that holds the mesh factories. When a mesh factory is used in the context of the 3D engine then this will be an iMeshFactoryWrapper. Similarly for the isometric engine. Note that this function should NOT increase the ref-count of the given logical parent because this would cause a circular reference (since the logical parent already holds a reference to this mesh factory);. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Parameters:
logparent -

supportsHardTransform

public boolean supportsHardTransform()
Return true if HardTransform is supported for this factory. Implemented in csMeshFactory, csBallMeshObjectFactory, csBCTerrObjectFactory, csEmitMeshObjectFactory, csExploMeshObjectFactory, csFireMeshObjectFactory, csFountainMeshObjectFactory, csGenmeshMeshObjectFactory, csHazeMeshObjectFactory, csLightningMeshObjectFactory, csParticlesFactory, csSnowMeshObjectFactory, csSpiralMeshObjectFactory, csSprite2DMeshObjectFactory, csSprite3DMeshObjectFactory, csSpriteCal3DMeshObjectFactory, csStarsMeshObjectFactory, csChunkLodTerrainFactory, csBigTerrainObjectFactory, csTerrFuncObjectFactory, and csThingStatic.

Returns: