/***********************************************************************
* mt4j Copyright (c) 2008 - 2009, C.Ruff, Fraunhofer-Gesellschaft All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
***********************************************************************/
package org.mt4j.components.visibleComponents;
import javax.media.opengl.GL;
import org.mt4j.util.MTColor;
import org.mt4j.util.opengl.GLMaterial;
/**
* The Class StyleInfo.
* @author Christopher Ruff
*/
public class StyleInfo {
private MTColor fillColor;
private MTColor strokeColor;
/** The draw smooth. */
private boolean drawSmooth;
/** The no stroke. */
private boolean noStroke;
/** The no fill. */
private boolean noFill;
/** The stroke weight. */
private float strokeWeight;
/** The fill draw mode. */
private int fillDrawMode;
/** The line stipple pattern. */
private short lineStipplePattern;
/** The material. */
private GLMaterial material;
/**
* Instantiates a new style info.
*/
public StyleInfo(){
this(
new MTColor(255,255,255,255),
new MTColor(255,255,255,255),
true,
false,
false,
1.0f,
GL.GL_TRIANGLE_FAN,
(short)0
);
}
/**
* Instantiates a new style info.
* @param fillColor the fill color
* @param strokeColor the stroke color
* @param drawSmooth the draw smooth
* @param noStroke the no stroke
* @param noFill the no fill
* @param strokeWeight the stroke weight
* @param fillDrawMode the fill draw mode
* @param lineStipplePattern the line stipple pattern
*/
public StyleInfo(
MTColor fillColor,
MTColor strokeColor,
boolean drawSmooth,
boolean noStroke,
boolean noFill,
float strokeWeight,
int fillDrawMode,
short lineStipplePattern
) {
super();
this.fillColor = fillColor;
this.strokeColor = strokeColor;
this.drawSmooth = drawSmooth;
this.noStroke = noStroke;
this.noFill = noFill;
this.strokeWeight = strokeWeight;
this.fillDrawMode = fillDrawMode;
this.lineStipplePattern = lineStipplePattern;
this.material = null;
}
/**
* Checks if is draw smooth.
*
* @return true, if is draw smooth
*/
public boolean isDrawSmooth() {
return drawSmooth;
}
/**
* Sets the draw smooth.
*
* @param drawSmooth the new draw smooth
*/
public void setDrawSmooth(boolean drawSmooth) {
this.drawSmooth = drawSmooth;
}
/**
* Sets the fill color.
*
* @param r the r
* @param g the g
* @param b the b
* @param a the a
*/
public void setFillColor(float r, float g, float b, float a){
this.setFillRed(r);
this.setFillGreen(g);
this.setFillBlue(b);
this.setFillAlpha(a);
}
public void setFillColor(MTColor fillColor){
this.fillColor = fillColor;
}
public MTColor getFillColor(){
return this.fillColor;
}
/**
* Sets the fill alpha.
*
* @param fillAlpha the new fill alpha
*/
public void setFillAlpha(float fillAlpha) {
this.fillColor.setAlpha(fillAlpha);
}
/**
* Gets the fill alpha.
*
* @return the fill alpha
*/
public float getFillAlpha() {
return this.fillColor.getAlpha();
}
/**
* Gets the fill blue.
*
* @return the fill blue
*/
public float getFillBlue() {
return this.fillColor.getB();
}
/**
* Sets the fill blue.
*
* @param fillBlue the new fill blue
*/
public void setFillBlue(float fillBlue) {
this.fillColor.setB(fillBlue);
}
/**
* Gets the fill green.
*
* @return the fill green
*/
public float getFillGreen() {
return this.fillColor.getG();
}
/**
* Sets the fill green.
*
* @param fillGreen the new fill green
*/
public void setFillGreen(float fillGreen) {
this.fillColor.setG(fillGreen);
}
/**
* Gets the fill red.
*
* @return the fill red
*/
public float getFillRed() {
return this.fillColor.getR();
}
/**
* Sets the fill red.
*
* @param fillRed the new fill red
*/
public void setFillRed(float fillRed) {
this.fillColor.setR(fillRed);
}
/**
* Checks if is no fill.
*
* @return true, if is no fill
*/
public boolean isNoFill() {
return noFill;
}
/**
* Sets the no fill.
*
* @param noFill the new no fill
*/
public void setNoFill(boolean noFill) {
this.noFill = noFill;
}
/**
* Checks if is no stroke.
*
* @return true, if is no stroke
*/
public boolean isNoStroke() {
return noStroke;
}
/**
* Sets the no stroke.
*
* @param noStroke the new no stroke
*/
public void setNoStroke(boolean noStroke) {
this.noStroke = noStroke;
}
/**
* Sets the stroke color.
*
* @param r the r
* @param g the g
* @param b the b
* @param a the a
*/
public void setStrokeColor(float r, float g, float b, float a){
this.setStrokeRed(r);
this.setStrokeGreen(g);
this.setStrokeBlue(b);
this.setStrokeAlpha(a);
}
public void setStrokeColor(MTColor strokeColor){
this.strokeColor = strokeColor;
}
public MTColor getStrokeColor() {
return this.strokeColor;
}
/**
* Gets the stroke alpha.
*
* @return the stroke alpha
*/
public float getStrokeAlpha() {
return this.strokeColor.getAlpha();
}
/**
* Sets the stroke alpha.
*
* @param strokeAlpha the new stroke alpha
*/
public void setStrokeAlpha(float strokeAlpha) {
this.strokeColor.setAlpha(strokeAlpha);
}
/**
* Gets the stroke blue.
*
* @return the stroke blue
*/
public float getStrokeBlue() {
return this.strokeColor.getB();
}
/**
* Sets the stroke blue.
*
* @param strokeBlue the new stroke blue
*/
public void setStrokeBlue(float strokeBlue) {
this.strokeColor.setB(strokeBlue);
}
/**
* Gets the stroke green.
*
* @return the stroke green
*/
public float getStrokeGreen() {
return this.strokeColor.getG();
}
/**
* Sets the stroke green.
*
* @param strokeGreen the new stroke green
*/
public void setStrokeGreen(float strokeGreen) {
this.strokeColor.setG(strokeGreen);
}
/**
* Gets the stroke red.
*
* @return the stroke red
*/
public float getStrokeRed() {
return this.strokeColor.getR();
}
/**
* Sets the stroke red.
*
* @param strokeRed the new stroke red
*/
public void setStrokeRed(float strokeRed) {
this.strokeColor.setR(strokeRed);
}
/**
* Gets the stroke weight.
*
* @return the stroke weight
*/
public float getStrokeWeight() {
return strokeWeight;
}
/**
* Sets the stroke weight.
*
* @param strokeWeight the new stroke weight
*/
public void setStrokeWeight(float strokeWeight) {
this.strokeWeight = strokeWeight;
}
/**
* Gets the fill draw mode.
*
* @return the fill draw mode
*/
public int getFillDrawMode() {
return fillDrawMode;
}
/**
* Sets the draw mode which will be used for creating display lists.
* <br>Modes are the opengl draw modes, e.g. GL_POLYGON, GL_TRIANGLE_FAN, GL_LINES etc.
* <br>Default mode is GL_TRIANGLE_FAN
*
* @param fillDrawMode the fill draw mode
*/
public void setFillDrawMode(int fillDrawMode) {
this.fillDrawMode = fillDrawMode;
}
/**
* Sets a line stipple pattern for drawing outlines.
* <br>Only supported under opengl!
* <br>Example: shape.setLineStipple((short)0xDDDD);
* <br>Default value is '0'. No stipple should be used then.
*
* @param stipplePattern the stipple pattern
*/
public void setLineStipple(short stipplePattern){
lineStipplePattern = stipplePattern;
}
/**
* Gets the line stipple.
*
* @return the line stipple
*/
public short getLineStipple() {
return lineStipplePattern;
}
/**
* Gets the material.
*
* @return the material
*/
public GLMaterial getMaterial() {
return material;
}
/**
* Sets the material.
*
* @param material the new material
*/
public void setMaterial(GLMaterial material) {
this.material = material;
}
}