crystalspace.jbind.impl.mesh.object
Class csMeshObject

java.lang.Object
  extended bycrystalspace.jbind.impl.csNativeObject
      extended bycrystalspace.jbind.impl.csutil.scf.csBase
          extended bycrystalspace.jbind.impl.mesh.object.csMeshObject
All Implemented Interfaces:
iBase, iMeshObject, iPointer

public class csMeshObject
extends csBase
implements iMeshObject

Author:
qan To change the template for this generated type comment go to Window>Preferences>Java>Code Generation>Code and Comments

Field Summary
 
Fields inherited from class crystalspace.jbind.impl.csNativeObject
ImplFactory, nPointer
 
Constructor Summary
csMeshObject(iPointer nPointer)
           
 
Method Summary
 boolean draw(iRenderView rview, iMovable movable, int zbufMode)
          Draw this mesh object.
 boolean drawTest(iRenderView rview, iMovable movable)
          First part of Draw.
 boolean getColor(csColor color)
          Get the base color of the mesh.
 iMeshObjectFactory getFactory()
          Get the reference to the factory that created this mesh object.
static java.lang.Class getInterfaceClass()
           
static java.lang.String getInterfaceName()
           
static int getInterfaceVersion()
           
 iBase getLogicalParent()
          Get the logical parent for this mesh object.
 iMaterialWrapper getMaterialWrapper()
          Get the material of the mesh.
 java.lang.String getName()
          Return the name of the interface
 iObjectModel getObjectModel()
          Get the generic interface describing the geometry of this mesh.
 csRenderMesh getRenderMeshes(int num)
          For NR: @@ document me!!!
 int getVersion()
          Return the version of the interface
 iMeshObjectDrawCallback getVisibleCallback()
          Get the current visible callback.
 void hardTransform(csReversibleTransform t)
          Do a hard transform of this object.
 boolean hitBeamObject(csVector3 start, csVector3 end, csVector3 isect, float pr)
          Check if this mesh is hit by this object space vector.
 boolean hitBeamObject(csVector3 start, csVector3 end, csVector3 isect, float pr, int polygon_idx)
          Check if this mesh is hit by this object space vector.
 boolean hitBeamOutline(csVector3 start, csVector3 end, csVector3 isect, float pr)
          Check if this mesh is hit by this object space vector.
static void initSCF()
           
 void invalidateMaterialHandles()
          Material changed.
protected  boolean isNativePointerValidSafe()
           
 void nextFrame(int current_time, csVector3 pos)
          Control animation of this object.
 void positionChild(iMeshObject child, int current_time)
          The engine asks this mesh object to place one of his hierarchical children.
 boolean setColor(csColor color)
          Set the base color of the mesh.
 void setLogicalParent(iBase logparent)
          Set a reference to some logical parent in the context that holds the mesh objects.
 boolean setMaterialWrapper(iMaterialWrapper material)
          Set the material of the mesh.
 void setVisibleCallback(iMeshObjectDrawCallback cb)
          Register a callback to the mesh object which will be called from within Draw(); if the mesh object thinks that the object is really visible.
 boolean supportsHardTransform()
          Return true if HardTransform is supported for this mesh object type.
 void updateLighting(iLight[] lights, iMovable movable)
          Update lighting for the object on the given position.
 
Methods inherited from class crystalspace.jbind.impl.csutil.scf.csBase
decRef, equals, finalize, getRefCount, incRef, nDelete, queryInterface, queryInterfaceSafe
 
Methods inherited from class crystalspace.jbind.impl.csNativeObject
changePointer, getPointer, getPointer, getPointerArray, hashCode, isMemoryOwner, isNativePointerValid, isNativePointerValidSafe, newNativeObject, setMemoryOwner, toString
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface crystalspace.jbind.interfaces.iutil.scf.iBase
decRef, getRefCount, incRef, queryInterface, queryInterfaceSafe
 
Methods inherited from interface crystalspace.jbind.interfaces.iPointer
changePointer, getPointer, isMemoryOwner, setMemoryOwner
 

Constructor Detail

csMeshObject

public csMeshObject(iPointer nPointer)
Parameters:
nPointer -
Method Detail

getVersion

public int getVersion()
Description copied from interface: iBase
Return the version of the interface

Specified by:
getVersion in interface iBase
Specified by:
getVersion in class csBase

getName

public java.lang.String getName()
Description copied from interface: iBase
Return the name of the interface

Specified by:
getName in interface iBase
Specified by:
getName in class csBase

initSCF

public static void initSCF()

getInterfaceVersion

public static int getInterfaceVersion()

getInterfaceName

public static java.lang.String getInterfaceName()

getInterfaceClass

public static java.lang.Class getInterfaceClass()

isNativePointerValidSafe

protected boolean isNativePointerValidSafe()

draw

public boolean draw(iRenderView rview,
                    iMovable movable,
                    int zbufMode)
Description copied from interface: iMeshObject
Draw this mesh object. Returns false if not visible. If this function returns true it does not mean that the object is invisible. It just means that this MeshObject thinks that the object was probably visible. DrawTest(); will be called before this function (possibly with an UpdateLighting(); in between. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csEmitMeshObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
draw in interface iMeshObject
Parameters:
rview -
movable -
zbufMode -
Returns:
See Also:
iMeshObject.draw(crystalspace.jbind.interfaces.iengine.rview.iRenderView, crystalspace.jbind.interfaces.iengine.movable.iMovable, int)

drawTest

public boolean drawTest(iRenderView rview,
                        iMovable movable)
Description copied from interface: iMeshObject
First part of Draw. The engine will call this DrawTest(); before calling Draw(); so DrawTest(); can (if needed); remember computationally expensive data. If DrawTest(); returns false the engine will not call Draw();. Possibly UpdateLighting(); will be called in between DrawTest(); and Draw();. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
drawTest in interface iMeshObject
Parameters:
rview -
movable -
Returns:
See Also:
iMeshObject.drawTest(crystalspace.jbind.interfaces.iengine.rview.iRenderView, crystalspace.jbind.interfaces.iengine.movable.iMovable)

getColor

public boolean getColor(csColor color)
Description copied from interface: iMeshObject
Get the base color of the mesh. Will return false if not supported. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getColor in interface iMeshObject
Parameters:
color -
Returns:
See Also:
iMeshObject.getColor(crystalspace.jbind.impl.csutil.cscolor.csColor)

getFactory

public iMeshObjectFactory getFactory()
Description copied from interface: iMeshObject
Get the reference to the factory that created this mesh object. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getFactory in interface iMeshObject
Returns:
See Also:
iMeshObject.getFactory()

getLogicalParent

public iBase getLogicalParent()
Description copied from interface: iMeshObject
Get the logical parent for this mesh object. See SetLogicalParent(); for more information. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getLogicalParent in interface iMeshObject
Returns:
See Also:
iMeshObject.getLogicalParent()

getMaterialWrapper

public iMaterialWrapper getMaterialWrapper()
Description copied from interface: iMeshObject
Get the material of the mesh. If not supported this will return 0 Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getMaterialWrapper in interface iMeshObject
Returns:
See Also:
iMeshObject.getMaterialWrapper()

getObjectModel

public iObjectModel getObjectModel()
Description copied from interface: iMeshObject
Get the generic interface describing the geometry of this mesh. If the factory supports this you should preferably use the object model from the factory instead. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getObjectModel in interface iMeshObject
Returns:
See Also:
iMeshObject.getObjectModel()

getRenderMeshes

public csRenderMesh getRenderMeshes(int num)
Description copied from interface: iMeshObject
For NR: @@ document me!!! Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getRenderMeshes in interface iMeshObject
Parameters:
num -
Returns:
See Also:
iMeshObject.getRenderMeshes(int)

getVisibleCallback

public iMeshObjectDrawCallback getVisibleCallback()
Description copied from interface: iMeshObject
Get the current visible callback. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
getVisibleCallback in interface iMeshObject
Returns:
See Also:
iMeshObject.getVisibleCallback()

hardTransform

public void hardTransform(csReversibleTransform t)
Description copied from interface: iMeshObject
Do a hard transform of this object. 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 csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csEmitMeshObject, csExploMeshObject, csFireMeshObject, csFountainMeshObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticlesObject, csSnowMeshObject, csSpiralMeshObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
hardTransform in interface iMeshObject
Parameters:
t -
See Also:
iMeshObject.hardTransform(crystalspace.jbind.impl.csgeom.transfrm.csReversibleTransform)

hitBeamObject

public boolean hitBeamObject(csVector3 start,
                             csVector3 end,
                             csVector3 isect,
                             float pr,
                             int polygon_idx)
Description copied from interface: iMeshObject
Check if this mesh is hit by this object space vector. Return the collision point in object space coordinates. This is the most detailed version (and also the slowest);. The returned hit will be guaranteed to be the point closest to the 'start' of the beam. If the object supports this then an index of the hit polygon will be returned (or -1 if not supported or no hit);. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
hitBeamObject in interface iMeshObject
Parameters:
start -
end -
isect -
pr -
polygon_idx -
Returns:
See Also:
iMeshObject.hitBeamObject(crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, float, int)

hitBeamObject

public boolean hitBeamObject(csVector3 start,
                             csVector3 end,
                             csVector3 isect,
                             float pr)
Description copied from interface: iMeshObject
Check if this mesh is hit by this object space vector. Return the collision point in object space coordinates. This is the most detailed version (and also the slowest);. The returned hit will be guaranteed to be the point closest to the 'start' of the beam. If the object supports this then an index of the hit polygon will be returned (or -1 if not supported or no hit);. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
hitBeamObject in interface iMeshObject
Parameters:
start -
end -
isect -
pr -
Returns:
See Also:
iMeshObject.hitBeamObject(crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, float)

hitBeamOutline

public boolean hitBeamOutline(csVector3 start,
                              csVector3 end,
                              csVector3 isect,
                              float pr)
Description copied from interface: iMeshObject
Check if this mesh is hit by this object space vector. This will do a test based on the outline of the object. This means that it is more accurate than HitBeamBBox();. Note that this routine will typically be faster than HitBeamObject();. The hit may be on the front or the back of the object, but will indicate that it iterrupts the beam. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
hitBeamOutline in interface iMeshObject
Parameters:
start -
end -
isect -
pr -
Returns:
See Also:
iMeshObject.hitBeamOutline(crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, crystalspace.jbind.impl.csgeom.vector3.csVector3, float)

invalidateMaterialHandles

public void invalidateMaterialHandles()
Description copied from interface: iMeshObject
Material changed. This is an 'event' that the engine (or another party managing materials); will send out as soon as the material handles are changed in some way which requires the mesh object to fetch it again (i.e. to call materialwrapper->GetMaterialHandle();); again. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
invalidateMaterialHandles in interface iMeshObject
See Also:
iMeshObject.invalidateMaterialHandles()

nextFrame

public void nextFrame(int current_time,
                      csVector3 pos)
Description copied from interface: iMeshObject
Control animation of this object. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
nextFrame in interface iMeshObject
Parameters:
current_time -
pos -
See Also:
iMeshObject.nextFrame(int, crystalspace.jbind.impl.csgeom.vector3.csVector3)

positionChild

public void positionChild(iMeshObject child,
                          int current_time)
Description copied from interface: iMeshObject
The engine asks this mesh object to place one of his hierarchical children. It must be placed where it should be at the given time. This object might or might not have been drawn, so you can't use it's current state. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
positionChild in interface iMeshObject
Parameters:
child -
current_time -
See Also:
iMeshObject.positionChild(crystalspace.jbind.interfaces.imesh.object.iMeshObject, int)

setColor

public boolean setColor(csColor color)
Description copied from interface: iMeshObject
Set the base color of the mesh. This color will be added to whatever color is set for lighting. Not all meshes need to support this. This function will return true if it worked. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
setColor in interface iMeshObject
Parameters:
color -
Returns:
See Also:
iMeshObject.setColor(crystalspace.jbind.impl.csutil.cscolor.csColor)

setLogicalParent

public void setLogicalParent(iBase logparent)
Description copied from interface: iMeshObject
Set a reference to some logical parent in the context that holds the mesh objects. When a mesh object is used in the context of the 3D engine then this will be an iMeshWrapper. In case it is used in the context of the isometric engine this will be an iIsoMeshSprite. 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 object);. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
setLogicalParent in interface iMeshObject
Parameters:
logparent -
See Also:
iMeshObject.setLogicalParent(crystalspace.jbind.interfaces.iutil.scf.iBase)

setMaterialWrapper

public boolean setMaterialWrapper(iMaterialWrapper material)
Description copied from interface: iMeshObject
Set the material of the mesh. This only works for single-material meshes. If not supported this function will return false. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
setMaterialWrapper in interface iMeshObject
Parameters:
material -
Returns:
See Also:
iMeshObject.setMaterialWrapper(crystalspace.jbind.interfaces.iengine.material.iMaterialWrapper)

setVisibleCallback

public void setVisibleCallback(iMeshObjectDrawCallback cb)
Description copied from interface: iMeshObject
Register a callback to the mesh object which will be called from within Draw(); if the mesh object thinks that the object is really visible. Depending on the type of mesh object this can be very accurate or not accurate at all. But in all cases it will certainly be called if the object is visible. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
setVisibleCallback in interface iMeshObject
Parameters:
cb -
See Also:
iMeshObject.setVisibleCallback(crystalspace.jbind.interfaces.imesh.object.iMeshObjectDrawCallback)

supportsHardTransform

public boolean supportsHardTransform()
Description copied from interface: iMeshObject
Return true if HardTransform is supported for this mesh object type. Implemented in csPortalContainer, csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csEmitMeshObject, csExploMeshObject, csFireMeshObject, csFountainMeshObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticlesObject, csSnowMeshObject, csSpiralMeshObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
supportsHardTransform in interface iMeshObject
Returns:
See Also:
iMeshObject.supportsHardTransform()

updateLighting

public void updateLighting(iLight[] lights,
                           iMovable movable)
Description copied from interface: iMeshObject
Update lighting for the object on the given position. Implemented in csMeshObject, csShadow, csSpider, csBallMeshObject, csBCTerrObject, csGenmeshMeshObject, csHazeMeshObject, csLightningMeshObject, csNullmeshMeshObject, csParticleSystem, csNewParticleSystem, csParticlesObject, csSprite2DMeshObject, csSprite3DMeshObject, csSpriteCal3DMeshObject, csStarsMeshObject, csChunkLodTerrainObject, and csBigTerrainObject.

Specified by:
updateLighting in interface iMeshObject
Parameters:
lights -
movable -
See Also:
iMeshObject.updateLighting(crystalspace.jbind.interfaces.iengine.light.iLight[], crystalspace.jbind.interfaces.iengine.movable.iMovable)