From 2ff8da2b46b00b1942b3d0c4099008f1dc99401c Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Tue, 14 May 2013 09:03:38 -0700 Subject: [PATCH] move view frustum calculation into VoxelAgentData, added last known and current --- voxel-server/src/VoxelAgentData.cpp | 18 +++++++++--------- voxel-server/src/VoxelAgentData.h | 7 +++++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/voxel-server/src/VoxelAgentData.cpp b/voxel-server/src/VoxelAgentData.cpp index 07bf2a6593..df61a0d6f8 100644 --- a/voxel-server/src/VoxelAgentData.cpp +++ b/voxel-server/src/VoxelAgentData.cpp @@ -53,21 +53,21 @@ VoxelAgentData* VoxelAgentData::clone() const { void VoxelAgentData::updateViewFrustum() { // save our currentViewFrustum into our lastKnownViewFrustum - lastKnownViewFrustum = currentViewFrustum; + _lastKnownViewFrustum = _currentViewFrustum; // get position and orientation details from the camera - currentViewFrustum.setPosition(getCameraPosition()); - currentViewFrustum.setOrientation(getCameraDirection(), getCameraUp(), getCameraRight()); + _currentViewFrustum.setPosition(getCameraPosition()); + _currentViewFrustum.setOrientation(getCameraDirection(), getCameraUp(), getCameraRight()); // Also make sure it's got the correct lens details from the camera - currentViewFrustum.setFieldOfView(getCameraFov()); - currentViewFrustum.setAspectRatio(getCameraAspectRatio()); - currentViewFrustum.setNearClip(getCameraNearClip()); - currentViewFrustum.setFarClip(getCameraFarClip()); + _currentViewFrustum.setFieldOfView(getCameraFov()); + _currentViewFrustum.setAspectRatio(getCameraAspectRatio()); + _currentViewFrustum.setNearClip(getCameraNearClip()); + _currentViewFrustum.setFarClip(getCameraFarClip()); // if there has been a change, then recalculate - if (!lastKnownViewFrustum.matches(currentViewFrustum)) { - currentViewFrustum.calculate(); + if (!_lastKnownViewFrustum.matches(_currentViewFrustum)) { + _currentViewFrustum.calculate(); } } diff --git a/voxel-server/src/VoxelAgentData.h b/voxel-server/src/VoxelAgentData.h index ee8b2dd660..cb88c05574 100644 --- a/voxel-server/src/VoxelAgentData.h +++ b/voxel-server/src/VoxelAgentData.h @@ -41,8 +41,8 @@ public: VoxelNodeBag nodeBag; - ViewFrustum currentViewFrustum; - ViewFrustum lastKnownViewFrustum; + ViewFrustum& getCurrentViewFrustum() { return _currentViewFrustum; }; + ViewFrustum& getLastKnownViewFrustum() { return _lastKnownViewFrustum; }; void updateViewFrustum(); @@ -53,6 +53,9 @@ private: bool _voxelPacketWaiting; int _maxSearchLevel; int _maxLevelReachedInLastSearch; + ViewFrustum _currentViewFrustum; + ViewFrustum _lastKnownViewFrustum; + }; #endif /* defined(__hifi__VoxelAgentData__) */