/*
* Created on Oct 3, 2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.nondot.mesh;
/**
* @author bljones1
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public abstract class VertexDescription {
public abstract Vertex createVertex();
public static VertexDescription createUntransformedVertexDescription() {
return new UntransformedVertexDescription();
}
public static VertexDescription createTransformedVertexDescription() {
return new TransformedVertexDescription();
}
public VertexDescription addNormal() {
return new NormalVertexDescription(this);
}
public VertexDescription addPointSize() {
return new PointSizeVertexDescription(this);
}
public VertexDescription addDiffuseColor() {
return new DiffuseColorVertexDescription(this);
}
public VertexDescription addSpecularColor() {
return new SpecularColorVertexDescription(this);
}
public VertexDescription add1DTextureCoordinate() {
return new TextureCoordinate1DVertexDescription(this);
}
public VertexDescription add2DTextureCoordinate() {
return new TextureCoordinate2DVertexDescription(this);
}
public VertexDescription add3DTextureCoordinate() {
return new TextureCoordinate3DVertexDescription(this);
}
public VertexDescription add4DTextureCoordinate() {
return new TextureCoordinate4DVertexDescription(this);
}
}
class UntransformedVertexDescription extends VertexDescription {
public Vertex createVertex() {
return new UntransformedVertex();
}
}
class TransformedVertexDescription extends VertexDescription {
public Vertex createVertex() {
return new TransformedVertex();
}
}
abstract class AttributeVertexDescription extends VertexDescription {
AttributeVertexDescription(VertexDescription parent) {
this.parent = parent;
}
protected VertexDescription parent;
}
class NormalVertexDescription extends AttributeVertexDescription
{
NormalVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new NormalVertex(parent.createVertex());
}
}
class PointSizeVertexDescription extends AttributeVertexDescription
{
PointSizeVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new PointSizeVertex(parent.createVertex());
}
}
class DiffuseColorVertexDescription extends AttributeVertexDescription
{
DiffuseColorVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new DiffuseColorVertex(parent.createVertex());
}
}
class SpecularColorVertexDescription extends AttributeVertexDescription
{
SpecularColorVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new SpecularColorVertex(parent.createVertex());
}
}
class TextureCoordinate1DVertexDescription extends AttributeVertexDescription
{
TextureCoordinate1DVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new TextureCoordinate1DVertex(parent.createVertex());
}
}
class TextureCoordinate2DVertexDescription extends AttributeVertexDescription
{
TextureCoordinate2DVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new TextureCoordinate2DVertex(parent.createVertex());
}
}
class TextureCoordinate3DVertexDescription extends AttributeVertexDescription
{
TextureCoordinate3DVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new TextureCoordinate3DVertex(parent.createVertex());
}
}
class TextureCoordinate4DVertexDescription extends AttributeVertexDescription
{
TextureCoordinate4DVertexDescription(VertexDescription parent) {
super(parent);
}
public Vertex createVertex() {
return new TextureCoordinate4DVertex(parent.createVertex());
}
}
|