// Path: openCVTutorial1CameraPreview/src/main/java/min3d/vos/Number3d.java
// public class Number3d 
// {
// 	public float x;
// 	public float y;
// 	public float z;
// 	
// 	private static Number3d _temp = new Number3d();
// 	
// 	
// 	public Number3d()
// 	{
// 		x = 0;
// 		y = 0;
// 		z = 0;
// 	}
// 	
// 	public Number3d(float $x, float $y, float $z)
// 	{
// 		x = $x;
// 		y = $y;
// 		z = $z;
// 	}
// 	
// 	//
// 	
// 	public void setAll(float $x, float $y, float $z)
// 	{
// 		x = $x;
// 		y = $y;
// 		z = $z;
// 	}
// 	
// 	public void setAllFrom(Number3d $n)
// 	{
// 		x = $n.x;
// 		y = $n.y;
// 		z = $n.z;
// 	}
// 	
// 	public void normalize()
// 	{
// 		float mod = (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );
// 
// 		if( mod != 0 && mod != 1)
// 		{
// 			mod = 1 / mod; 
// 			this.x *= mod;
// 			this.y *= mod;
// 			this.z *= mod;
// 		}
// 	}
// 
// 	public void add(Number3d n)
// 	{
// 		this.x += n.x;
// 		this.y += n.y;
// 		this.z += n.z;
// 	}
// 	
// 	public void subtract(Number3d n)
// 	{
// 		this.x -= n.x;
// 		this.y -= n.y;
// 		this.z -= n.z;
// 	}
// 	
// 	public void multiply(Float f)
// 	{
// 		this.x *= f;
// 		this.y *= f;
// 		this.z *= f;
// 	}
// 	
// 	public float length()
// 	{
// 		return (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );
// 	}
// 	
// 	public Number3d clone()
// 	{
// 		return new Number3d(x,y,z);
// 	}
// 	
// 	public void rotateX(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 
// 
// 		this.y = (_temp.y*cosRY)-(_temp.z*sinRY);
// 		this.z = (_temp.y*sinRY)+(_temp.z*cosRY);
// 	}
// 	
// 	public void rotateY(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 
// 		
// 		this.x = (_temp.x*cosRY)+(_temp.z*sinRY);
// 		this.z = (_temp.x*-sinRY)+(_temp.z*cosRY);
// 	}
// 	
// 	public void rotateZ(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 		
// 
// 		this.x = (_temp.x*cosRY)-(_temp.y*sinRY);
// 		this.y = (_temp.x*sinRY)+(_temp.y*cosRY);
// 	}
// 	
// 	
// 	@Override
// 	public String toString()
// 	{
// 		return x + "," + y + "," + z; 
// 	}
// 	
// 	//
// 
// 	public static Number3d add(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x + b.x, a.y + b.y, a.z + b.z);
// 	}
// 
// 	public static Number3d subtract(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x - b.x, a.y - b.y, a.z - b.z);
// 	}
// 	
// 	public static Number3d multiply(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x * b.x, a.y * b.y, a.z * b.z);
// 	}
// 	
// 	public static Number3d cross(Number3d v, Number3d w)
// 	{
// 		return new Number3d((w.y * v.z) - (w.z * v.y), (w.z * v.x) - (w.x * v.z), (w.x * v.y) - (w.y * v.x));
// 	}
// 	
// 	public static float dot(Number3d v, Number3d w)
// 	{
// 		return ( v.x * w.x + v.y * w.y + w.z * v.z );
// 	}
// 	
// 	// * 	Math functions thanks to Papervision3D AS3 library
// 	// 		http://code.google.com/p/papervision3d/
// }


import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import min3d.vos.Number3d;
		_b  = bb.asFloatBuffer();
	}
	
	/**
	 * The number of items in the list. 
	 */
	public int size()
	{
		return _numElements;
	}
	
	/**
	 * The _maximum_ number of items that the list can hold, as defined on instantiation.
	 * (Not to be confused with the Buffer's capacity)
	 */
	public int capacity()
	{
		return _b.capacity() / PROPERTIES_PER_ELEMENT;
	}
	
	/**
	 * Clear object in preparation for garbage collection
	 */
	public void clear()
	{
		_b.clear();
	}
	
	//
	
// Path: openCVTutorial1CameraPreview/src/main/java/min3d/vos/Number3d.java
// public class Number3d 
// {
// 	public float x;
// 	public float y;
// 	public float z;
// 	
// 	private static Number3d _temp = new Number3d();
// 	
// 	
// 	public Number3d()
// 	{
// 		x = 0;
// 		y = 0;
// 		z = 0;
// 	}
// 	
// 	public Number3d(float $x, float $y, float $z)
// 	{
// 		x = $x;
// 		y = $y;
// 		z = $z;
// 	}
// 	
// 	//
// 	
// 	public void setAll(float $x, float $y, float $z)
// 	{
// 		x = $x;
// 		y = $y;
// 		z = $z;
// 	}
// 	
// 	public void setAllFrom(Number3d $n)
// 	{
// 		x = $n.x;
// 		y = $n.y;
// 		z = $n.z;
// 	}
// 	
// 	public void normalize()
// 	{
// 		float mod = (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );
// 
// 		if( mod != 0 && mod != 1)
// 		{
// 			mod = 1 / mod; 
// 			this.x *= mod;
// 			this.y *= mod;
// 			this.z *= mod;
// 		}
// 	}
// 
// 	public void add(Number3d n)
// 	{
// 		this.x += n.x;
// 		this.y += n.y;
// 		this.z += n.z;
// 	}
// 	
// 	public void subtract(Number3d n)
// 	{
// 		this.x -= n.x;
// 		this.y -= n.y;
// 		this.z -= n.z;
// 	}
// 	
// 	public void multiply(Float f)
// 	{
// 		this.x *= f;
// 		this.y *= f;
// 		this.z *= f;
// 	}
// 	
// 	public float length()
// 	{
// 		return (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );
// 	}
// 	
// 	public Number3d clone()
// 	{
// 		return new Number3d(x,y,z);
// 	}
// 	
// 	public void rotateX(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 
// 
// 		this.y = (_temp.y*cosRY)-(_temp.z*sinRY);
// 		this.z = (_temp.y*sinRY)+(_temp.z*cosRY);
// 	}
// 	
// 	public void rotateY(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 
// 		
// 		this.x = (_temp.x*cosRY)+(_temp.z*sinRY);
// 		this.z = (_temp.x*-sinRY)+(_temp.z*cosRY);
// 	}
// 	
// 	public void rotateZ(float angle)
// 	{
// 		float cosRY = (float) Math.cos(angle);
// 		float sinRY = (float) Math.sin(angle);
// 
// 		_temp.setAll(this.x, this.y, this.z); 		
// 
// 		this.x = (_temp.x*cosRY)-(_temp.y*sinRY);
// 		this.y = (_temp.x*sinRY)+(_temp.y*cosRY);
// 	}
// 	
// 	
// 	@Override
// 	public String toString()
// 	{
// 		return x + "," + y + "," + z; 
// 	}
// 	
// 	//
// 
// 	public static Number3d add(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x + b.x, a.y + b.y, a.z + b.z);
// 	}
// 
// 	public static Number3d subtract(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x - b.x, a.y - b.y, a.z - b.z);
// 	}
// 	
// 	public static Number3d multiply(Number3d a, Number3d b)
// 	{
// 		return new Number3d(a.x * b.x, a.y * b.y, a.z * b.z);
// 	}
// 	
// 	public static Number3d cross(Number3d v, Number3d w)
// 	{
// 		return new Number3d((w.y * v.z) - (w.z * v.y), (w.z * v.x) - (w.x * v.z), (w.x * v.y) - (w.y * v.x));
// 	}
// 	
// 	public static float dot(Number3d v, Number3d w)
// 	{
// 		return ( v.x * w.x + v.y * w.y + w.z * v.z );
// 	}
// 	
// 	// * 	Math functions thanks to Papervision3D AS3 library
// 	// 		http://code.google.com/p/papervision3d/
// }


// Path: openCVTutorial1CameraPreview/src/main/java/min3d/core/Number3dBufferList.java
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import min3d.vos.Number3d;

		_b  = bb.asFloatBuffer();
	}
	
	/**
	 * The number of items in the list. 
	 */
	public int size()
	{
		return _numElements;
	}
	
	/**
	 * The _maximum_ number of items that the list can hold, as defined on instantiation.
	 * (Not to be confused with the Buffer's capacity)
	 */
	public int capacity()
	{
		return _b.capacity() / PROPERTIES_PER_ELEMENT;
	}
	
	/**
	 * Clear object in preparation for garbage collection
	 */
	public void clear()
	{
		_b.clear();
	}
	
	//
	
	public Number3d getAsNumber3d(int $index)