de.grogra.gpuflux.scene.volume
Class FluxVolumeBuilder
java.lang.Object
de.grogra.imp3d.VolumeBuilderBase
de.grogra.gpuflux.scene.volume.FluxVolumeBuilder
- All Implemented Interfaces:
- RenderState
public abstract class FluxVolumeBuilder
- extends VolumeBuilderBase
- implements RenderState
- Author:
- Dietger van Antwerpen
Method Summary |
protected abstract void |
addInfinitePrimitive(FluxPrimitive prim)
|
protected abstract void |
addPrimitive(FluxPrimitive prim)
|
protected abstract void |
addPrimitives(java.util.Vector<FluxPrimitive> primitives)
|
void |
drawBox(float halfWidth,
float halfLength,
float height,
Shader s,
int highlight,
Matrix4d t)
|
void |
drawFrustum(float height,
float baseRadius,
float topRadius,
boolean baseClosed,
boolean topClosed,
float scaleV,
Shader s,
int highlight,
Matrix4d t)
|
void |
drawLine(Tuple3f start,
Tuple3f end,
Tuple3f color,
int highlight,
Matrix4d t)
|
void |
drawParallelogram(float length,
Vector3f faxis,
float scaleU,
float scaleV,
Shader s,
int highlight,
Matrix4d t)
|
void |
drawPlane(Shader s,
int highlight,
Matrix4d t)
|
void |
drawPoint(Tuple3f location,
int pixelSize,
Tuple3f color,
int highlight,
Matrix4d t)
|
void |
drawPointCloud(float[] locations,
float pointSize,
Tuple3f color,
int highlight,
Matrix4d t)
Draw a set of points. |
void |
drawPolygons(Polygonizable polygons,
java.lang.Object obj,
boolean asNode,
Shader s,
int highlight,
Matrix4d t)
|
void |
drawRectangle(int x,
int y,
int w,
int h,
Tuple3f color)
|
void |
drawSphere(float radius,
Shader s,
int highlight,
Matrix4d t)
|
void |
drawString(int x,
int y,
java.lang.String text,
java.awt.Font font,
Tuple3f color)
|
void |
drawSupershape(float a,
float b,
float m1,
float n11,
float n12,
float n13,
float m2,
float n21,
float n22,
float n23,
Shader s,
int highlight,
Matrix4d t)
Draw a supershape around the origin (0/0/0). |
float |
estimateScaleAt(Tuple3f point)
|
void |
fillRectangle(int x,
int y,
int w,
int h,
Tuple3f color)
|
void |
finish()
|
int |
getCurrentHighlight()
|
Shader |
getCurrentShader()
|
java.awt.FontMetrics |
getFontMetrics(java.awt.Font font)
|
Pool |
getPool()
|
GraphState |
getRenderGraphState()
|
java.util.Vector<FluxVertex> |
getVertices()
|
boolean |
getWindowPos(Tuple3f location,
Tuple2f out)
Computes the window coordinates in pixels of a location
in the current object coordinates. |
void |
setVertices(java.util.Vector<FluxVertex> vertices)
|
Methods inherited from class de.grogra.imp3d.VolumeBuilderBase |
buildBaseFrustum, buildBox, buildFrustum, buildParallelogram, buildPlane, buildPolygons, buildSphere, buildSupershape, getCurrentTransformation, getTransformation, setInvTransformation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FluxVolumeBuilder
public FluxVolumeBuilder(GraphState state,
float flatness)
addInfinitePrimitive
protected abstract void addInfinitePrimitive(FluxPrimitive prim)
addPrimitive
protected abstract void addPrimitive(FluxPrimitive prim)
addPrimitives
protected abstract void addPrimitives(java.util.Vector<FluxPrimitive> primitives)
drawBox
public void drawBox(float halfWidth,
float halfLength,
float height,
Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawBox
in interface RenderState
drawFrustum
public void drawFrustum(float height,
float baseRadius,
float topRadius,
boolean baseClosed,
boolean topClosed,
float scaleV,
Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawFrustum
in interface RenderState
drawLine
public void drawLine(Tuple3f start,
Tuple3f end,
Tuple3f color,
int highlight,
Matrix4d t)
- Specified by:
drawLine
in interface RenderState
drawParallelogram
public void drawParallelogram(float length,
Vector3f faxis,
float scaleU,
float scaleV,
Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawParallelogram
in interface RenderState
drawPlane
public void drawPlane(Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawPlane
in interface RenderState
drawPoint
public void drawPoint(Tuple3f location,
int pixelSize,
Tuple3f color,
int highlight,
Matrix4d t)
- Specified by:
drawPoint
in interface RenderState
drawPointCloud
public void drawPointCloud(float[] locations,
float pointSize,
Tuple3f color,
int highlight,
Matrix4d t)
- Description copied from interface:
RenderState
- Draw a set of points. The array locations contains a sequence of points given as triples
of floats for x, y and z position of each point. If the same reference for the array
location is passed in the implementation might assume that the contents of the array
are the same as well. This is necessary for GLDisplay, for instance, to ensure a
performant implementation. The class PointCloud ensures that this is the case.
- Specified by:
drawPointCloud
in interface RenderState
- Parameters:
locations
- array containing a sequence (x,y,z) of pointspointSize
- size of the point on screencolor
- color of the pointt
- transformation of the point cloud
drawPolygons
public void drawPolygons(Polygonizable polygons,
java.lang.Object obj,
boolean asNode,
Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawPolygons
in interface RenderState
drawRectangle
public void drawRectangle(int x,
int y,
int w,
int h,
Tuple3f color)
- Specified by:
drawRectangle
in interface RenderState
drawSphere
public void drawSphere(float radius,
Shader s,
int highlight,
Matrix4d t)
- Specified by:
drawSphere
in interface RenderState
drawString
public void drawString(int x,
int y,
java.lang.String text,
java.awt.Font font,
Tuple3f color)
- Specified by:
drawString
in interface RenderState
drawSupershape
public void drawSupershape(float a,
float b,
float m1,
float n11,
float n12,
float n13,
float m2,
float n21,
float n22,
float n23,
Shader s,
int highlight,
Matrix4d t)
- Description copied from interface:
RenderState
- Draw a supershape around the origin (0/0/0).
An implementation of Johan Gielis's Superformula which was published in the
American Journal of Botany 90(3): 333–338. 2003.
INVITED SPECIAL PAPER A GENERIC GEOMETRIC TRANSFORMATION
THAT UNIFIES A WIDE RANGE OF NATURAL AND ABSTRACT SHAPES
- Specified by:
drawSupershape
in interface RenderState
t
- transformation of the point cloud
estimateScaleAt
public float estimateScaleAt(Tuple3f point)
- Specified by:
estimateScaleAt
in interface RenderState
fillRectangle
public void fillRectangle(int x,
int y,
int w,
int h,
Tuple3f color)
- Specified by:
fillRectangle
in interface RenderState
finish
public void finish()
getCurrentHighlight
public int getCurrentHighlight()
- Specified by:
getCurrentHighlight
in interface RenderState
getCurrentShader
public Shader getCurrentShader()
- Specified by:
getCurrentShader
in interface RenderState
getFontMetrics
public java.awt.FontMetrics getFontMetrics(java.awt.Font font)
- Specified by:
getFontMetrics
in interface RenderState
getPool
public Pool getPool()
- Specified by:
getPool
in interface RenderState
getRenderGraphState
public GraphState getRenderGraphState()
- Specified by:
getRenderGraphState
in interface RenderState
getVertices
public java.util.Vector<FluxVertex> getVertices()
getWindowPos
public boolean getWindowPos(Tuple3f location,
Tuple2f out)
- Description copied from interface:
RenderState
- Computes the window coordinates in pixels of a location
in the current object coordinates.
- Specified by:
getWindowPos
in interface RenderState
- Parameters:
location
- a location in local object coordinatesout
- the computed window coordinates are placed in here
- Returns:
true
iff the window coordinates are valid
(i.e., the location is in the clipping region)
setVertices
public void setVertices(java.util.Vector<FluxVertex> vertices)