Hi Marvin,
I've called Geometry.getNormals( int vi, float[] ) and got exception:
java.nio.BufferUnderflowException
at java.nio.DirectFloatBufferU.get(DirectFloatBufferU.java:221)
at org.jagatoo.geometry.GeomNioFloatData.get(GeomNioFloatData.java:259)
at org.jagatoo.geometry.GeometryDataContainer.getNormals(GeometryDataContainer.java:771)
at org.xith3d.scenegraph.Geometry.getNormals(Geometry.java:978)
at org.xith3d.loaders.models.animations.SkeletalKeyFrameController.<init>(SkeletalKeyFrameController.java:387)
Do I something wrong or maybe there's a bug (in GeometryDataContainer.getNormals() )?
My code:
this.bindPoseCoords = new float[shape.getGeometry().getVertexCount() * 3];
this.bindPoseNormals = new float[shape.getGeometry().getVertexCount() * 3];
geom.getCoordinates( 0, bindPoseCoords );
geom.getNormals( 0, bindPoseNormals );
GeometryDataContainer:
public void getNormals( int vertexIndex, float[] floatArray )
{
if ( !hasNormals() )
throw new IllegalStateException( "No normals defined" );
for ( int i = 0; i < floatArray.length / 3; i++ )
normals.get( vertexIndex + ( i * 3 ), 3, normalsOffset / 4L, floatArray, i * 3, 3 );
}
Regards,