aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmath/llcamera.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/llmath/llcamera.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/linden/indra/llmath/llcamera.h b/linden/indra/llmath/llcamera.h
index 23ee115..0c81067 100644
--- a/linden/indra/llmath/llcamera.h
+++ b/linden/indra/llmath/llcamera.h
@@ -93,6 +93,17 @@ public:
93 PLANE_TOP_MASK = (1<<PLANE_TOP), 93 PLANE_TOP_MASK = (1<<PLANE_TOP),
94 PLANE_ALL_MASK = 0xf 94 PLANE_ALL_MASK = 0xf
95 }; 95 };
96
97 enum
98 {
99 AGENT_PLANE_LEFT = 0,
100 AGENT_PLANE_RIGHT,
101 AGENT_PLANE_NEAR,
102 AGENT_PLANE_BOTTOM,
103 AGENT_PLANE_TOP,
104 AGENT_PLANE_FAR,
105 };
106
96 enum { 107 enum {
97 HORIZ_PLANE_LEFT = 0, 108 HORIZ_PLANE_LEFT = 0,
98 HORIZ_PLANE_RIGHT = 1, 109 HORIZ_PLANE_RIGHT = 1,
@@ -132,7 +143,8 @@ private:
132public: 143public:
133 LLVector3 mAgentFrustum[8]; //8 corners of 6-plane frustum 144 LLVector3 mAgentFrustum[8]; //8 corners of 6-plane frustum
134 F32 mFrustumCornerDist; //distance to corner of frustum against far clip plane 145 F32 mFrustumCornerDist; //distance to corner of frustum against far clip plane
135 146 LLPlane getAgentPlane(U32 idx) { return mAgentPlanes[idx].p; }
147
136public: 148public:
137 LLCamera(); 149 LLCamera();
138 LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_pixels, F32 near_plane, F32 far_plane); 150 LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_pixels, F32 near_plane, F32 far_plane);
@@ -179,6 +191,8 @@ public:
179 // Return number of bytes copied. 191 // Return number of bytes copied.
180 size_t readFrustumFromBuffer(const char *buffer); 192 size_t readFrustumFromBuffer(const char *buffer);
181 void calcAgentFrustumPlanes(LLVector3* frust); 193 void calcAgentFrustumPlanes(LLVector3* frust);
194 void ignoreAgentFrustumPlane(S32 idx);
195
182 // Returns 1 if partly in, 2 if fully in. 196 // Returns 1 if partly in, 2 if fully in.
183 // NOTE: 'center' is in absolute frame. 197 // NOTE: 'center' is in absolute frame.
184 S32 sphereInFrustumOld(const LLVector3 &center, const F32 radius) const; 198 S32 sphereInFrustumOld(const LLVector3 &center, const F32 radius) const;