aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl/math
Commit message (Collapse)AuthorAgeFilesLines
* Bug 801: AffineTransform: Remove Serializable, make methods final; ↵Sven Gothel2014-03-062-12/+45
| | | | FloatUtil: Add DEBUG and description about Row-Major and Column-Major Order. AABBOX: Use FloatUtil.DEBUG for mapToWindow(..)
* Bug 801: Fix 183e1bc1868699b99eb9f9c8bf18d646d1120a48 'window box' CalculationSven Gothel2014-03-051-0/+48
| | | | | | | | | | | | Commit 183e1bc1868699b99eb9f9c8bf18d646d1120a48 only mapped object's bbox max/min points to window space, which is wrong due to possible rotation in 3d space. This commit adds AABBox.mapToWindow(..) method, which correctly either uses 4 points of the bbox in 3d space (using center-z) or all 8-points and creating a new bounding box. The resulting width and height of this window bbox gives the maximum amount of rectangular pixels for AA.
* Bug 801: VectorUtil: Pass result vector, allowing caller to manage memory ↵Sven Gothel2014-03-053-108/+96
| | | | (performance, reduce temp objects)
* Merge branch 'master' into stash_glyphcacheSven Gothel2014-02-232-27/+138
| | | | | | | | | | | | | | | | | | Conflicts: make/scripts/tests.sh src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java src/jogl/classes/com/jogamp/graph/curve/Region.java src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java src/jogl/classes/com/jogamp/graph/curve/opengl/Renderer.java src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java src/jogl/classes/com/jogamp/graph/font/Font.java src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java src/jogl/classes/jogamp/graph/curve/text/GlyphString.java src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
* Bug 747: VectorUtil: Make scale(..) creating new float[] deprecated, adding ↵Sven Gothel2013-12-101-5/+33
| | | | | | | | | | 'in place' variant w/ passing result float[] ; TODO: Replace all variations with 'in place' version to be more memory efficient. Make scale(..) creating new float[] deprecated, adding 'in place' variant w/ passing result float[] TODO: Replace all variations with 'in place' version to be more memory efficient. See Bug747: Validate memory footprint and usage / General performance
* Add functions for converting to and from binary16 half-precision floating ↵Mark Raynsford2013-10-313-0/+801
| | | | point values. Derived from http://mvn.io7m.com/ieee754b16, of which I am the original author.
* jogl: allow short-circuited comparison in comparisonHarvey Harrison2013-10-181-1/+1
| | | | | | | For this case && and & work equivalently, but using && allows the second comparison to be omitted if the first comparison is false. Likely just a typo. Signed-off-by: Harvey Harrison <[email protected]>
* jogl: add missing @Override annotationsHarvey Harrison2013-10-171-0/+3
| | | | Signed-off-by: Harvey Harrison <[email protected]>
* jogl: remove all trailing whitespaceHarvey Harrison2013-10-177-177/+177
| | | | Signed-off-by: Harvey Harrison <[email protected]>
* Remove deprecated methods.Sven Gothel2013-07-041-14/+2
| | | | | | | | | - Quaternion.isEmpty() - Texture.dispose(GL) - GLContext.getGLVersionMajor() / ..Minor() - GLContextImpl.bindPbufferToTexture() / releasePbufferFromTexture() - MouseEvent.getWheelRotation() -
* Quaternion: Fix float type - double epsilon slipped through review, where we ↵Sven Gothel2013-06-301-2/+2
| | | | like to compare float values - remove 64bit conversion.
* VectorUtil, Quaternion: Use 'final' qualifier if possibleSven Gothel2013-06-122-53/+53
|
* Merge remote-tracking branch 'remotes/hharrison/pr743'Sven Gothel2013-06-121-204/+239
|\
| * Quaternion.java : fixed not clear assignmentPetr Skramovsky2013-06-051-2/+3
| |
| * new method for vector multiplication, new copy constructorPetr Skramovsky2013-06-051-0/+28
| |
| * fixed isIdentity method, deprecated isEmpty method (quaternion doesn't have ↵Petr Skramovsky2013-06-051-13/+39
| | | | | | | | such a property + method do same thing as isIdentity), new setIdentity method, default constructor sets this quaternion to identity, new fromAxis method/costructor
| * removed unnecessary castings, removed unnecessary methods for vector ↵Petr Skramovsky2013-06-051-58/+11
| | | | | | | | operations changed to VectorUtil instead
| * reformatted to same stylePetr Skramovsky2013-06-051-180/+207
| |
* | FloatUtil: Add in-place multMatrixf (since we mult line by line, we can ↵Sven Gothel2013-06-091-0/+51
|/ | | | multiply in place). Will be used by PMVMatrix.
* jogl: remove executable bit from some java files and a pngHarvey Harrison2013-04-092-0/+0
| | | | Signed-off-by: Harvey Harrison <[email protected]>
* Fix Bug 703: Quaternion slerp function. Disclaimer: Not tested / No unit test.Harvey Harrison2013-04-091-30/+39
|
* Fix Bug : Quaternion multiplication unexpected behaviorHaZuki2012-11-161-2/+2
|
* Frustum: Clarify method names, fix point/sphere classification, add used ↵Sven Gothel2012-11-121-25/+70
| | | | | | | | | references Clarify method names: - update(..) -> updateByPMV(..), updateByPlanes(..) - isOutside(AABBox) -> isAABBoxOutside(AABBox) - .. same for point/sphere, while adding 'Location classifyType(..)'
* Frustum: Add doc. about Frustum's Plane's normal orientationSven Gothel2012-11-121-2/+16
|
* Frustum: Cleanup / update; PMVMatrix: Fix mulPMVSven Gothel2012-11-121-12/+23
| | | | | | | | | | Frustum: Cleanup / update - Remove ctor w/ PMV, use update(..) instead - avoid API explosion - Add update(Plane[]) to copy existing Frustum planes - Mention world-coordinates in update(PMV) PMVMatrix: Fix mulPMV - P*Mv in column major order is correct for Frustum
* Frustum: Clarify isOutside(AABBox) impl, add isOutside for point and sphereSven Gothel2012-11-121-6/+43
|
* Adding Ref.: Frustum-Culling, Max WagnerSven Gothel2012-11-121-10/+12
|
* Validating Frustum w/ help of Eduard White [email protected], referencing ↵Sven Gothel2012-11-121-70/+134
| | | | | | | | | | | | | | | | | the original paper Paper: Fast Extraction of Viewing Frustum Planes from the World-View-Projection Matrix http://graphics.cs.ucf.edu/cap4720/fall2008/plane_extraction.pdf Authors (in alphabetical order): Gil Gribb <[email protected]> Klaus Hartmann <[email protected]> 06/15/2001 Fix: - Column Major Order PMV (Passing to Frustum and in calculation itself) according to paper coeff. calculation of plane - Plane's signed distance function (only add d, don't multiply) - Normalization: divide by lenght, not multiply
* Frustum: Print Plane's normals properly in toString()Sven Gothel2012-11-111-1/+1
|
* Frustum: Passing Mv*P (column major order)Sven Gothel2012-11-111-29/+29
|
* Frustum: Simpler usage (ctor, update) no need for explicit compute() method. ↵Sven Gothel2012-11-111-102/+143
| | | | Don't store passing PMV reference. isInside() -> isOutside()
* AABBox: Add public direct setSize(..), skipping redundant reset() / resize(..)Sven Gothel2012-11-111-18/+31
|
* Cleanup Frustum Math Util: Independent / Compile Clean / Relocation ; ↵Sven Gothel2012-11-111-0/+174
| | | | | | | | | | | | PMVMatrix: Add getPreMultipliedPMV(..) - Independent / Compile Clean - Remove OpenMALI dependencies - Use basic float[] type and FloatUtil - Use AABBox - FIXME: May need BBox (no axis alignment ?!) - Relocation - Move to com.jogamp.opengl.math.geom (see commit 5fafc1ac360333645b807dcd8dff0c0a655ea439)
* Reorganize math code into: com.jogamp.opengl.math and ↵Sven Gothel2012-11-117-0/+1806
com.jogamp.opengl.math.geom packages Note: WIP - We may relocate / reorg math package. Public relocations: com.jogamp.opengl.util -> com.jogamp.opengl.math - FixedPoint - FloatUtil com.jogamp.graph.math -> com.jogamp.opengl.math - Quaternion - VectorUtil com.jogamp.graph.geom -> com.jogamp.opengl.math.geom - AABBox VectorUtil: Introducing Vert2fImmutable and Vert3fImmutable interfaces, allowing graph Vertex instances to be used 'graph' agnostic and to document 2d/3d use-cases.