Package org.jzy3d.plot3d.primitives
Class Geometry
java.lang.Object
org.jzy3d.plot3d.primitives.Drawable
org.jzy3d.plot3d.primitives.Wireframeable
org.jzy3d.plot3d.primitives.Geometry
- All Implemented Interfaces:
IMultiColorable,ISingleColorable,IGLRenderer,ISortableDraw
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Coord3dprotected Colorprotected ColorMapperstatic booleanDefault setting ofsetNormalProcessingAutomatic(boolean).static Colorstatic intstatic intstatic Colorstatic booleanDefault setting ofsetNormalizeNormals(boolean).protected booleanprotected Normal.NormalPerprotected booleanprotected PolygonModestatic booleanA flag to show normals for debugging lightingstatic booleanDefault setting ofsetSplitInTriangles(boolean).protected booleanFields inherited from class org.jzy3d.plot3d.primitives.Wireframeable
depthFunctionChangeForWireframe, faceDisplayed, materialAmbiantReflection, materialDiffuseReflection, materialEmission, materialShininess, materialSpecularReflection, NO_OVERLAP_DEPTH_RATIO, polygonOffsetFactor, polygonOffsetFillEnable, polygonOffsetUnit, polygonWireframeDepthTrick, reflectLight, wireframeColor, wireframeColorFromPolygonPoints, wireframeDisplayed, wireframeWidth, wireframeWithLineLoopFields inherited from class org.jzy3d.plot3d.primitives.Drawable
bbox, boundingBoxColor, boundingBoxDisplayed, displayed, hasListeners, legend, legendDisplayed, listeners, spaceTransformer, transform, transformBefore -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(float x, float y, float z) voidvoidvoidvoidvoidvoidvoidAdd a point to the polygon.voidapplyGeometryTransform(Transform transform) protected voidapplyPointOrMapperColor(IPainter painter, Point p) Apply mapper color if a mapper is defined and store the result in the point color, or use point color if mapper is undefined.protected abstract voidInvoke GL begin with the actual geometry type,invalid @link
GL#GL_POINTS,invalid @link
GL#GL_LINES,invalid @link
GL#GL_TRIANGLES...invalid @link
GL2#GL_POLYGONprotected voidcallPointForWireframe(IPainter painter) Drawing the point list in wireframe modeprotected voidcallPointsForFace(IPainter painter) Drawing the point list in face mode (polygon content)protected voidcallPointsForFace_NoSplit(IPainter painter) protected voidprotected voidprotected voidprotected voidprotected voidcallPointsForFace_SplitInTriangle_NormalAuto(IPainter painter, Point p1, Point p2, Point p3) protected voidcallPointsForFace_SplitInTriangle_NormalSupplied(IPainter painter, Point p1, Point p2, Point p3, int t) protected Coord3dcomputeNormalAutomatic(List<Point> points) protected Coord3dcomputeNormalAutomatic(Point p1, Point p2, Point p3) voidCall OpenGL2 routines for rendering the object.protected voidprotected voiddrawNormal(IPainter painter, Coord3d start, Coord3d end) protected voidprotected voiddrawPolygonNormal(IPainter painter, List<Point> points, Coord3d normal) protected voidprotected voiddrawTriangleNormal(IPainter painter, Point p1, Point p2, Point p3, Coord3d n1, Coord3d n2, Coord3d n3) protected voiddrawWireframe(IPainter painter) booleanget(int p) Return the barycentre of this object, which is computed as the center of its bounding box.getColor()Get the color.Get the colormapper.Coord3d[]Returns an array of the mutable coordinates held by this polygon points.Returns a list of the mutable coordinates held by this polygon points.Returns a set of the mutable coordinates held by this polygon points.doublegetDistance(Camera camera) Return the distance of the object center to theCamera's eye.doublegetLongestDistance(Camera camera) Returns the list of the mutable points held by this polygon.Returns a set of the mutable points held by this polygon.doublegetShortestDistance(Camera camera) inthashCode()booleanbooleanNormal processing is false by default, and becomes true as soon as one provide normals throughsetNormals(List, NormalPer)booleanvoidSet the color.voidsetColorMapper(ColorMapper mapper) Set the colormapper that will be used by the Drawable, instead of using precomputed colors.voidvoidsetNormalizeNormals(boolean normalizeNormals) Normalizing normals is usefull to ensure that polygons of different sizes will have a consistent light reflection.voidsetNormalProcessingAutomatic(boolean normalProcessingAutomatic) Set normal processing to be automatic or not.voidsetNormals(List<Coord3d> normals, Normal.NormalPer normalPer) Provides normals for this geometry.voidsetPolygonMode(PolygonMode polygonMode) A null polygonMode imply no any call to gl.glPolygonMode(...) at renderingvoidsetReflectLight(boolean reflectLight) If true, drawing this object will set ambient, diffuse, specular and shininess parameters.voidsetSplitInTriangles(boolean splitInTriangles) Splitting a polygon in multiple triangles is said to be better to adress complex rendering issues in OpenGL, but has a (very small) overhead.intsize()toString(int depth) voidMethods inherited from class org.jzy3d.plot3d.primitives.Wireframeable
applyDepthRangeDefault, applyDepthRangeForOverlying, applyDepthRangeForUnderlying, applyMaterial, doDrawBoundsIfDisplayed, getMaterialAmbiantReflection, getMaterialDiffuseReflection, getMaterialEmission, getMaterialShininess, getMaterialSpecularReflection, getPolygonOffsetFactor, getPolygonOffsetUnit, getWireframeColor, getWireframeWidth, isFaceDisplayed, isPolygonOffsetFillEnable, isPolygonWireframeDepthTrick, isReflectLight, isWireframeColorFromPolygonPoints, isWireframeDisplayed, polygonOffsetFillDisable, polygonOffsetFillEnable, polygonOffsetLineDisable, polygonOffsetLineEnable, setFaceDisplayed, setMaterialAmbiantReflection, setMaterialDiffuseReflection, setMaterialEmission, setMaterialShininess, setMaterialSpecularReflection, setPolygonOffsetFactor, setPolygonOffsetFillEnable, setPolygonOffsetUnit, setPolygonWireframeDepthTrick, setWireframeColor, setWireframeColorFromPolygonPoints, setWireframeDisplayed, setWireframeWidthMethods inherited from class org.jzy3d.plot3d.primitives.Drawable
addDrawableListener, asWireframeable, dispose, doTransform, fireDrawableChanged, fireDrawableChanged, getBoundingBoxColor, getBounds, getLegend, getSpaceTransformer, getTransform, getTransformBefore, hasLegend, isBoundingBoxDisplayed, isDisplayed, isLegendDisplayed, removeDrawableListener, setBoundingBoxColor, setBoundingBoxDisplayed, setDisplayed, setLegend, setLegendDisplayed, setSpaceTransformer, setTransform, setTransformBefore, toString
-
Field Details
-
NORMAL_AUTO_DEFAULT
public static boolean NORMAL_AUTO_DEFAULTDefault setting ofsetNormalProcessingAutomatic(boolean). Can be globally changed to avoid setting it geometry-wise. -
SPLIT_TRIANGLE_DEFAULT
public static boolean SPLIT_TRIANGLE_DEFAULTDefault setting ofsetSplitInTriangles(boolean). Can be globally changed to avoid setting it geometry-wise. -
NORMALIZE_NORMAL_DEFAULT
public static boolean NORMALIZE_NORMAL_DEFAULTDefault setting ofsetNormalizeNormals(boolean). Can be globally changed to avoid setting it geometry-wise. -
SHOW_NORMALS
public static boolean SHOW_NORMALSA flag to show normals for debugging lighting -
NORMAL_LINE_WIDTH
public static int NORMAL_LINE_WIDTH -
NORMAL_POINT_WIDTH
public static int NORMAL_POINT_WIDTH -
NORMAL_END_COLOR
-
NORMAL_START_COLOR
-
polygonMode
-
mapper
-
points
-
color
-
center
-
normals
-
normalProcessingAutomatic
protected boolean normalProcessingAutomatic -
splitInTriangles
protected boolean splitInTriangles -
normalizeNormals
protected boolean normalizeNormals -
normalPer
-
-
Constructor Details
-
Geometry
public Geometry()Initializes an emptyGeometrywith face status defaulting to true, and wireframe status defaulting to false. -
Geometry
public Geometry(int n) -
Geometry
-
Geometry
-
Geometry
-
Geometry
-
Geometry
-
-
Method Details
-
setReflectLight
public void setReflectLight(boolean reflectLight) Description copied from class:WireframeableIf true, drawing this object will set ambient, diffuse, specular and shininess parameters. If the drawable has no normal defined, then the normal will be automatically processed.- Overrides:
setReflectLightin classWireframeable
-
getNormals
-
setNormals
Provides normals for this geometry. Manually setting normals will disable automatic normal processing. Not providing normals will keep the default automatic normal processing active. You may more simply set a single normal for this geometry by callingsetNormal(Coord3d)- Parameters:
normals-normalPer- indicate if the supplied normals are given per vertex or per geometry. The ability to provide a list is kept for the case where one wishes to}.invalid @link
{@link #setSplitInTriangles(true)
-
setNormal
-
isNormalProcessingAutomatic
public boolean isNormalProcessingAutomatic()Normal processing is false by default, and becomes true as soon as one provide normals throughsetNormals(List, NormalPer)- Returns:
-
setNormalProcessingAutomatic
public void setNormalProcessingAutomatic(boolean normalProcessingAutomatic) Set normal processing to be automatic or not.- Parameters:
normalProcessingAutomatic-
-
draw
Description copied from class:DrawableCall OpenGL2 routines for rendering the object.- Specified by:
drawin interfaceIGLRenderer- Specified by:
drawin classDrawable
-
drawFace
-
callPointsForFace
Drawing the point list in face mode (polygon content) -
callPointsForFace_NoSplit
-
callPointsForFace_NoSplit_NormalSupplied
-
callPointsForFace_NoSplit_NormalAuto
-
callPointsForFace_NoSplit_NoNormal
-
callPointsForFace_SplitInTriangle
-
callPointsForFace_SplitInTriangle_NormalSupplied
-
callPointsForFace_SplitInTriangle_NormalAuto
-
computeNormalAutomatic
-
computeNormalAutomatic
-
applyPointOrMapperColor
Apply mapper color if a mapper is defined and store the result in the point color, or use point color if mapper is undefined. -
drawPolygonNormal
-
drawPolygonNormal
-
drawTriangleNormal
-
drawTriangleNormal
-
drawNormal
-
drawWireframe
-
callPointForWireframe
Drawing the point list in wireframe mode -
begin
Invoke GL begin with the actual geometry type,invalid @link
GL#GL_POINTS,invalid @link
GL#GL_LINES,invalid @link
GL#GL_TRIANGLES...invalid @link
GL2#GL_POLYGON -
add
public void add(float x, float y, float z) -
add
-
add
-
add
-
add
-
add
Add a point to the polygon. -
add
-
add
-
applyGeometryTransform
- Specified by:
applyGeometryTransformin classDrawable
-
updateBounds
public void updateBounds()- Specified by:
updateBoundsin classDrawable
-
getBarycentre
Description copied from class:DrawableReturn the barycentre of this object, which is computed as the center of its bounding box. If the bounding box is not available, the returned value isinvalid @link
Coord3d.INVALID- Overrides:
getBarycentrein classDrawable- Returns:
- the center of the bounding box, or
.
invalid @link
Coord3d.INVALID
-
get
-
getPoints
Returns the list of the mutable points held by this polygon. -
getPointSet
Returns a set of the mutable points held by this polygon. -
getCoordSet
Returns a set of the mutable coordinates held by this polygon points. -
getCoordList
Returns a list of the mutable coordinates held by this polygon points. -
getCoordArray
Returns an array of the mutable coordinates held by this polygon points. -
size
public int size() -
getDistance
Description copied from class:DrawableReturn the distance of the object center to theCamera's eye.- Specified by:
getDistancein interfaceISortableDraw- Overrides:
getDistancein classDrawable
-
getShortestDistance
- Specified by:
getShortestDistancein interfaceISortableDraw- Overrides:
getShortestDistancein classDrawable
-
getLongestDistance
- Specified by:
getLongestDistancein interfaceISortableDraw- Overrides:
getLongestDistancein classDrawable
-
getPolygonMode
-
setPolygonMode
A null polygonMode imply no any call to gl.glPolygonMode(...) at rendering -
setColorMapper
Description copied from interface:IMultiColorableSet the colormapper that will be used by the Drawable, instead of using precomputed colors.- Specified by:
setColorMapperin interfaceIMultiColorable
-
getColorMapper
Description copied from interface:IMultiColorableGet the colormapper.- Specified by:
getColorMapperin interfaceIMultiColorable
-
setColor
Description copied from interface:ISingleColorableSet the color.- Specified by:
setColorin interfaceISingleColorable- Parameters:
color- the color
-
getColor
Description copied from interface:ISingleColorableGet the color.- Specified by:
getColorin interfaceISingleColorable- Returns:
- color the color.
-
isSplitInTriangles
public boolean isSplitInTriangles() -
setSplitInTriangles
public void setSplitInTriangles(boolean splitInTriangles) Splitting a polygon in multiple triangles is said to be better to adress complex rendering issues in OpenGL, but has a (very small) overhead. -
isNormalizeNormals
public boolean isNormalizeNormals() -
setNormalizeNormals
public void setNormalizeNormals(boolean normalizeNormals) Normalizing normals is usefull to ensure that polygons of different sizes will have a consistent light reflection. Indeed, a large polygon will have a high normal value compared to a small polygon. Normalizing requires a bit more computation though. This setting will only change something as long as- The object is configured to
} and if a
invalid @link
{@link #setReflectLight(true)Lightis added to the chart. - The object is configured to
}. Normals processed externally should be normalized externally.
invalid @link
{@link #setNormalProcessingAutomatic(true)
- The object is configured to
-
toString
-
hashCode
public int hashCode() -
equals
-