/*
* Project Beknyou
* Copyright (c) 2010-2011 Saint Paul College, All Rights Reserved
* Redistributions in source code form must reproduce the above
* Copyright and this condition.
* The contents of this file are subject to the GNU General Public
* License, Version 2 (the "License"); you may not use this file
* except in compliance with the License. A copy of the License is
* available at http://www.opensource.org/licenses/gpl-license.php.
*/
package com.benkyou.client.systems;
import com.benkyou.client.GameClient;
import com.jme3.material.Material;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Quad;
import com.jme3.texture.Image.Format;
import com.jme3.texture.Texture2D;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Austin Allman
*/
public class ImagingSystem {
private GameClient gameClient;
private Quad plane;
private Geometry screen;
private Material defaultMat;
private String imageType;
private Texture2D imageToProject;
private float xSize;
private float ySize;
private int imageX;
private int imageY;
/**
*
*/
final public static Format jmeformat = Format.RGB8;
/**
*
* @param gameClient
* @param Size
* @param imageX
* @param imageY
*/
public ImagingSystem(GameClient gameClient, float Size, int imageX, int imageY) {
this.gameClient = gameClient;
this.xSize = Size;
this.ySize = xSize * .75f;
this.imageX = imageX;
this.imageY = imageY;
generateImageQuad();
}
private void generateImageQuad() {
try {
plane = new Quad(xSize, ySize, true);
screen = new Geometry("My " + imageType + " plane", plane);
// 1920x1080
imageToProject = new Texture2D(imageX, imageY, jmeformat);
defaultMat = new Material(gameClient.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
defaultMat.setTexture("ColorMap", imageToProject);
screen.setMaterial(defaultMat);
gameClient.getRoot().attachChild(screen);
} catch (Exception ex) {
Logger.getLogger(ImagingSystem.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
*
* @return
*/
public Texture2D getImageToProject() {
return imageToProject;
}
/**
*
* @return
*/
public Geometry getScreen() {
return screen;
}
}