// Path: openCVTutorial1CameraPreview/src/main/java/aruco/min3d/Utils.java
// public class Utils 
// {
// 	public static final float DEG = (float)(Math.PI / 180f);
// 		
// 	private static final int BYTES_PER_FLOAT = 4;  
// 	
// 	/**
// 	 * Convenience method to create a Bitmap given a Context's drawable resource ID. 
// 	 */
// 	public static Bitmap makeBitmapFromResourceId(Context $context, int $id)
// 	{
// 		InputStream is = $context.getResources().openRawResource($id);
// 		
// 		Bitmap bitmap;
// 		try {
// 		   bitmap = BitmapFactory.decodeStream(is);
// 		} finally {
// 		   try {
// 		      is.close();
// 		   } catch(IOException e) {
// 		      // Ignore.
// 		   }
// 		}
// 	      
// 		return bitmap;
// 	}
// 	
// 	/**
// 	 * Convenience method to create a Bitmap given a drawable resource ID from the application Context. 
// 	 */
// 	public static Bitmap makeBitmapFromResourceId(int $id)
// 	{
// 		return makeBitmapFromResourceId(Shared.context(), $id);
// 	}
// 	
// 	/**
// 	 * Add two triangles to the Object3d's faces using the supplied indices
// 	 */
// 	public static void addQuad(Object3d $o, int $upperLeft, int $upperRight, int $lowerRight, int $lowerLeft)
// 	{
// 		$o.faces().add((short)$upperLeft, (short)$lowerRight, (short)$upperRight);
// 		$o.faces().add((short)$upperLeft, (short)$lowerLeft, (short)$lowerRight);
// 	}
// 	
// 	public static FloatBuffer makeFloatBuffer3(float $a, float $b, float $c)
// 	{
// 		ByteBuffer b = ByteBuffer.allocateDirect(3 * BYTES_PER_FLOAT);
// 		b.order(ByteOrder.nativeOrder());
// 		FloatBuffer buffer = b.asFloatBuffer();
// 		buffer.put($a);
// 		buffer.put($b);
// 		buffer.put($c);
// 		buffer.position(0);
// 		return buffer;
// 	}
// 
// 	public static FloatBuffer makeFloatBuffer4(float $a, float $b, float $c, float $d)
// 	{
// 		ByteBuffer b = ByteBuffer.allocateDirect(4 * BYTES_PER_FLOAT);
// 		b.order(ByteOrder.nativeOrder());
// 		FloatBuffer buffer = b.asFloatBuffer();
// 		buffer.put($a);
// 		buffer.put($b);
// 		buffer.put($c);
// 		buffer.put($d);
// 		buffer.position(0);
// 		return buffer;
// 	}
// }


import java.nio.FloatBuffer;
import min3d.interfaces.IDirtyParent;
import aruco.min3d.Utils;
	}
	
	public Color4Managed(short $r, short $g, short $b, short $a, IDirtyParent $parent)
	{
		super($parent);
		
		_r = $r;
		_g = $g;
		_b = $b;
		_a = $a;

		_fb = this.toFloatBuffer();

		setDirtyFlag();
	}

	/**
	 * Convenience method which casts the int arguments to short for you. 
	 */
	public Color4Managed(int $r, int $g, int $b, int $a, IDirtyParent $parent)
	{
		super($parent);

		_r = (short)$r;
		_g = (short)$g;
		_b = (short)$b;
		_a = (short)$a;

		_fb = this.toFloatBuffer();

// Path: openCVTutorial1CameraPreview/src/main/java/aruco/min3d/Utils.java
// public class Utils 
// {
// 	public static final float DEG = (float)(Math.PI / 180f);
// 		
// 	private static final int BYTES_PER_FLOAT = 4;  
// 	
// 	/**
// 	 * Convenience method to create a Bitmap given a Context's drawable resource ID. 
// 	 */
// 	public static Bitmap makeBitmapFromResourceId(Context $context, int $id)
// 	{
// 		InputStream is = $context.getResources().openRawResource($id);
// 		
// 		Bitmap bitmap;
// 		try {
// 		   bitmap = BitmapFactory.decodeStream(is);
// 		} finally {
// 		   try {
// 		      is.close();
// 		   } catch(IOException e) {
// 		      // Ignore.
// 		   }
// 		}
// 	      
// 		return bitmap;
// 	}
// 	
// 	/**
// 	 * Convenience method to create a Bitmap given a drawable resource ID from the application Context. 
// 	 */
// 	public static Bitmap makeBitmapFromResourceId(int $id)
// 	{
// 		return makeBitmapFromResourceId(Shared.context(), $id);
// 	}
// 	
// 	/**
// 	 * Add two triangles to the Object3d's faces using the supplied indices
// 	 */
// 	public static void addQuad(Object3d $o, int $upperLeft, int $upperRight, int $lowerRight, int $lowerLeft)
// 	{
// 		$o.faces().add((short)$upperLeft, (short)$lowerRight, (short)$upperRight);
// 		$o.faces().add((short)$upperLeft, (short)$lowerLeft, (short)$lowerRight);
// 	}
// 	
// 	public static FloatBuffer makeFloatBuffer3(float $a, float $b, float $c)
// 	{
// 		ByteBuffer b = ByteBuffer.allocateDirect(3 * BYTES_PER_FLOAT);
// 		b.order(ByteOrder.nativeOrder());
// 		FloatBuffer buffer = b.asFloatBuffer();
// 		buffer.put($a);
// 		buffer.put($b);
// 		buffer.put($c);
// 		buffer.position(0);
// 		return buffer;
// 	}
// 
// 	public static FloatBuffer makeFloatBuffer4(float $a, float $b, float $c, float $d)
// 	{
// 		ByteBuffer b = ByteBuffer.allocateDirect(4 * BYTES_PER_FLOAT);
// 		b.order(ByteOrder.nativeOrder());
// 		FloatBuffer buffer = b.asFloatBuffer();
// 		buffer.put($a);
// 		buffer.put($b);
// 		buffer.put($c);
// 		buffer.put($d);
// 		buffer.position(0);
// 		return buffer;
// 	}
// }


// Path: openCVTutorial1CameraPreview/src/main/java/min3d/vos/Color4Managed.java
import java.nio.FloatBuffer;
import min3d.interfaces.IDirtyParent;
import aruco.min3d.Utils;

	}
	
	public Color4Managed(short $r, short $g, short $b, short $a, IDirtyParent $parent)
	{
		super($parent);
		
		_r = $r;
		_g = $g;
		_b = $b;
		_a = $a;

		_fb = this.toFloatBuffer();

		setDirtyFlag();
	}

	/**
	 * Convenience method which casts the int arguments to short for you. 
	 */
	public Color4Managed(int $r, int $g, int $b, int $a, IDirtyParent $parent)
	{
		super($parent);

		_r = (short)$r;
		_g = (short)$g;
		_b = (short)$b;
		_a = (short)$a;

		_fb = this.toFloatBuffer();

		setDirtyFlag();