artofillusion.texture
Class UniformMapping

java.lang.Object
  extended by artofillusion.texture.TextureMapping
      extended by artofillusion.texture.UniformMapping

public class UniformMapping
extends TextureMapping

UniformMapping is the TextureMapping for UniformTextures.


Field Summary
 
Fields inherited from class artofillusion.texture.TextureMapping
BACK_ONLY, FRONT_AND_BACK, FRONT_ONLY
 
Constructor Summary
UniformMapping(java.io.DataInputStream in, Object3D theObject, Texture theTexture)
           
UniformMapping(Object3D theObject, Texture theTexture)
           
 
Method Summary
 void copy(TextureMapping map)
          Make this mapping identical to another one.
 TextureMapping duplicate()
          Create a new TextureMapping which is identical to this one.
 TextureMapping duplicate(Object3D obj, Texture tex)
          Create a new TextureMapping which is identical to this one, but for a different object and texture.
 double getDisplacement(Vec3 pos, double size, double t, double[] param)
          Given a point on the surface, evaluate the displacement function.
 Widget getEditingPanel(Object3D obj, MaterialPreviewer preview)
          This method should return a Widget in which the user can edit the mapping.
 Object3D getObject()
          Get the object this mapping is applied to.
 Texture getTexture()
          Get the Texture associated with this TextureMapping.
 void getTextureSpec(Vec3 pos, TextureSpec spec, double angle, double size, double t, double[] param)
          Given a point on the surface for which this mapping is being used, find the corresponding surface properties.
 void getTransparency(Vec3 pos, RGBColor trans, double angle, double size, double t, double[] param)
          Same as above, except only return the transparent color.
static boolean legalMapping(Object3D obj, Texture tex)
           
 RenderingTriangle mapTriangle(int v1, int v2, int v3, int n1, int n2, int n3, Vec3[] vert)
          Given the vertices to be mapped and their normal vectors, generate a RenderingTriangle.
 void writeToFile(java.io.DataOutputStream out)
          Every subclass of TextureMapping must define a constructor which takes a Texture and an Object3D as its arguments:
 
Methods inherited from class artofillusion.texture.TextureMapping
appliesTo, appliesToFace, getName, getParameters, setAppliesTo, setParameters
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UniformMapping

public UniformMapping(Object3D theObject,
                      Texture theTexture)

UniformMapping

public UniformMapping(java.io.DataInputStream in,
                      Object3D theObject,
                      Texture theTexture)
               throws java.io.IOException,
                      java.io.InvalidObjectException
Throws:
java.io.IOException
java.io.InvalidObjectException
Method Detail

getTexture

public Texture getTexture()
Description copied from class: TextureMapping
Get the Texture associated with this TextureMapping.

Specified by:
getTexture in class TextureMapping

getObject

public Object3D getObject()
Description copied from class: TextureMapping
Get the object this mapping is applied to.

Specified by:
getObject in class TextureMapping

mapTriangle

public RenderingTriangle mapTriangle(int v1,
                                     int v2,
                                     int v3,
                                     int n1,
                                     int n2,
                                     int n3,
                                     Vec3[] vert)
Description copied from class: TextureMapping
Given the vertices to be mapped and their normal vectors, generate a RenderingTriangle. Most subclasses will override this method. However, some mappings which require more information than just the vertex coordinates may instead define new methods which replace this one.

Overrides:
mapTriangle in class TextureMapping

getTextureSpec

public void getTextureSpec(Vec3 pos,
                           TextureSpec spec,
                           double angle,
                           double size,
                           double t,
                           double[] param)
Description copied from class: TextureMapping
Given a point on the surface for which this mapping is being used, find the corresponding surface properties. The properties should be averaged over a region around the point.

Specified by:
getTextureSpec in class TextureMapping
Parameters:
pos - the point at which to evaluate the texture
spec - the surface properties will be stored in this
angle - the dot product of the view direction with the surface normal
size - the width of the region over which to average the surface properties
t - the time at which to evaluate the surface properties
param - the texture parameter values at the point

getTransparency

public void getTransparency(Vec3 pos,
                            RGBColor trans,
                            double angle,
                            double size,
                            double t,
                            double[] param)
Description copied from class: TextureMapping
Same as above, except only return the transparent color. This can save time in cases where only the transparency is required, for example, when tracing shadow rays.

Specified by:
getTransparency in class TextureMapping

getDisplacement

public double getDisplacement(Vec3 pos,
                              double size,
                              double t,
                              double[] param)
Description copied from class: TextureMapping
Given a point on the surface, evaluate the displacement function. All parameters are the same as for getTextureSpec().

Specified by:
getDisplacement in class TextureMapping

legalMapping

public static boolean legalMapping(Object3D obj,
                                   Texture tex)

duplicate

public TextureMapping duplicate()
Description copied from class: TextureMapping
Create a new TextureMapping which is identical to this one.

Specified by:
duplicate in class TextureMapping

duplicate

public TextureMapping duplicate(Object3D obj,
                                Texture tex)
Description copied from class: TextureMapping
Create a new TextureMapping which is identical to this one, but for a different object and texture.

Specified by:
duplicate in class TextureMapping

copy

public void copy(TextureMapping map)
Description copied from class: TextureMapping
Make this mapping identical to another one.

Specified by:
copy in class TextureMapping

getEditingPanel

public Widget getEditingPanel(Object3D obj,
                              MaterialPreviewer preview)
Description copied from class: TextureMapping
This method should return a Widget in which the user can edit the mapping. The parameters are the object whose mapping is being edited, and a MaterialPreviewer which should be rendered whenever one of the mapping's parameters changes.

Specified by:
getEditingPanel in class TextureMapping

writeToFile

public void writeToFile(java.io.DataOutputStream out)
                 throws java.io.IOException
Description copied from class: TextureMapping
Every subclass of TextureMapping must define a constructor which takes a Texture and an Object3D as its arguments:

public MappingSubclass(Object3D obj, Texture texture)

In addition, every subclass must include a method of the form

public static boolean legalMapping(Object3D obj, Texture texture)

which returns true if the mapping can be used with the specified object and Texture. Finally, every subclass must include a constructor with the signature

public MappingSubclass(DataInputStream in, Object3D obj, Texture texture) throws IOException, InvalidObjectException

which reconstructs the mapping by reading its data from an input stream. The following method writes the object's data to an output stream.

Specified by:
writeToFile in class TextureMapping
Throws:
java.io.IOException


Copyright © 1999-2011 by Peter Eastman.