From 5cca51e32999a882e2a5f00cb45ecafc824ffd86 Mon Sep 17 00:00:00 2001 From: Sven Göthel Date: Fri, 19 Jan 2024 06:11:46 +0100 Subject: Frustum: Revise code and its Plane definition to support Cube->Frustum as well as to extract planes for float[] vec4-shader uniforms. commit 1040bed4ecc6f4598ea459f1073a9240583fc3c3 added AABBox -> Cube -> Frustum mapping (incomplete) and requires Frustum.Plane.set(..) by normal and point-on-plane for distance. Frustum.isOutside(Cube) has been added, testing all its 8-points similar to AABBox. Further all 6 Frustum.Plane shall be extracted to Vec4f and float[], the latter to pass the whole float[4*6] as a vec4[6] uniform array to the shader. +++ Constructor, setter and getter have been adjusted accordingly. Most of the loops have been unrolled. +++ Method names to query Frustum, i.e. 'is*Outside()' have been reduced to 'isOutside()' where uniquely indenticates the purpose. Hence only 'isSphereOutside()' is left over. --- src/graphui/classes/com/jogamp/graph/ui/Group.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/graphui/classes/com/jogamp/graph/ui/Group.java') diff --git a/src/graphui/classes/com/jogamp/graph/ui/Group.java b/src/graphui/classes/com/jogamp/graph/ui/Group.java index be34ecf3b..1202752b1 100644 --- a/src/graphui/classes/com/jogamp/graph/ui/Group.java +++ b/src/graphui/classes/com/jogamp/graph/ui/Group.java @@ -312,7 +312,7 @@ public class Group extends Shape implements Container { if( shape.isVisible() ) { pmv.pushMv(); shape.setTransformMv(pmv); - if( !doFrustumCulling || !pmv.getFrustum().isAABBoxOutside( shape.getBounds() ) ) { + if( !doFrustumCulling || !pmv.getFrustum().isOutside( shape.getBounds() ) ) { shape.draw(gl, renderer); } pmv.popMv(); @@ -340,7 +340,7 @@ public class Group extends Shape implements Container { pmv.pushMv(); shape.setTransformMv(pmv); - if( !doFrustumCulling || !pmv.getFrustum().isAABBoxOutside( shape.getBounds() ) ) { + if( !doFrustumCulling || !pmv.getFrustum().isOutside( shape.getBounds() ) ) { shape.drawToSelect(gl, renderer); } pmv.popMv(); -- cgit v1.2.3