toxi.geom.mesh.subdiv
Class NormalDisplacementSubdivision

java.lang.Object
  extended by toxi.geom.mesh.subdiv.SubdivisionStrategy
      extended by toxi.geom.mesh.subdiv.DisplacementSubdivision
          extended by toxi.geom.mesh.subdiv.NormalDisplacementSubdivision

public class NormalDisplacementSubdivision
extends DisplacementSubdivision

This subdivision strategy splits an edge in two equal halves at its mid point. The midpoint itself is being displaced, however, in the average direction of face normals associated with this edge. The displacement amount is configurable as fraction of the original edge length. So given that:

 M = edge midpoint
 N = averaged normal vector
 l = edge length
 a = displacement amplification factor
 
 M' = M + N * a * l
 


Field Summary
 
Fields inherited from class toxi.geom.mesh.subdiv.SubdivisionStrategy
DEFAULT_ORDERING
 
Constructor Summary
NormalDisplacementSubdivision(float amp)
           
 
Method Summary
 java.util.List<Vec3D> computeSplitPoints(WingedEdge edge)
          Computes a number of points on (or near) the given edge which are used for splitting the edge in smaller segments.
 
Methods inherited from class toxi.geom.mesh.subdiv.DisplacementSubdivision
getAmp, invertAmp, scaleAmp, setAmp
 
Methods inherited from class toxi.geom.mesh.subdiv.SubdivisionStrategy
getEdgeOrdering, setEdgeOrdering
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NormalDisplacementSubdivision

public NormalDisplacementSubdivision(float amp)
Method Detail

computeSplitPoints

public java.util.List<Vec3D> computeSplitPoints(WingedEdge edge)
Description copied from class: SubdivisionStrategy
Computes a number of points on (or near) the given edge which are used for splitting the edge in smaller segments.

Specified by:
computeSplitPoints in class SubdivisionStrategy
Parameters:
edge - edge to split
Returns:
list of split points