Skip to content

Commit

Permalink
Issue #7 - documented private members
Browse files Browse the repository at this point in the history
  • Loading branch information
jpaoneMines committed Aug 31, 2023
1 parent cb11e9d commit 4fb576f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 36 deletions.
6 changes: 4 additions & 2 deletions Camera.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,10 @@ namespace CSCI441 {
GLfloat mCameraRadius;

private:
// keeps phi within the range (0, pi) to prevent the camera from flipping upside down
// instead, alter up vector to flip/rotate camera orientation
/**
* @brief keeps phi within the range (0, pi) to prevent the camera from flipping upside down
* @note to invert camera - alter the up vector to flip/rotate camera orientation
*/
void _clampCameraPhi();
};
}
Expand Down
66 changes: 32 additions & 34 deletions docs/_camera_8hpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -135,43 +135,41 @@
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_camera.html#ae288c2ef288ac5532335e5859966410f"> 197</a></span> GLfloat <a class="code hl_variable" href="class_c_s_c_i441_1_1_camera.html#ae288c2ef288ac5532335e5859966410f">mCameraRadius</a>;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// keeps phi within the range (0, pi) to prevent the camera from flipping upside down</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// instead, alter up vector to flip/rotate camera orientation</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordtype">void</span> _clampCameraPhi();</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> };</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span>}</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040"> 206</a></span><span class="keyword">inline</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040">CSCI441::Camera::Camera</a>() :</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> mProjectionMatrix( glm::mat4(1.0f) ),</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> mViewMatrix( glm::mat4(1.0f) ),</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> mCameraPosition( glm::vec3(0.0f, 0.0f, 0.0f ) ),</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> mCameraDirection( glm::vec3(0.0f, 0.0f, -1.0f ) ),</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> mCameraLookAtPoint( glm::vec3(0.0f, 0.0f, -1.0f ) ),</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> mCameraUpVector( glm::vec3(0.0f, 1.0f, 0.0f ) ),</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> mCameraTheta( 0.0f ),</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> mCameraPhi( M_PI / 2.0f ),</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> mCameraRadius( 1.0f ) {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>}</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>[[maybe_unused]]</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056"> 219</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056">CSCI441::Camera::rotate</a>(<span class="keyword">const</span> GLfloat dTheta, <span class="keyword">const</span> GLfloat dPhi) {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> mCameraTheta += dTheta; <span class="comment">// update theta</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> mCameraPhi += dPhi; <span class="comment">// update phi</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> _clampCameraPhi(); <span class="comment">// bounds check phi</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> recomputeOrientation(); <span class="comment">// convert to cartesian</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>}</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::Camera::_clampCameraPhi() {</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">if</span>(mCameraPhi &lt;= 0.0f) mCameraPhi = 0.0f + 0.001f;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">if</span>(mCameraPhi &gt;= M_PI) mCameraPhi = M_PI - 0.001f;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span>}</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="preprocessor">#endif </span><span class="comment">// CSCI441_CAMERA_HPP</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">void</span> _clampCameraPhi();</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> };</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>}</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040"> 208</a></span><span class="keyword">inline</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040">CSCI441::Camera::Camera</a>() :</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> mProjectionMatrix( glm::mat4(1.0f) ),</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> mViewMatrix( glm::mat4(1.0f) ),</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> mCameraPosition( glm::vec3(0.0f, 0.0f, 0.0f ) ),</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> mCameraDirection( glm::vec3(0.0f, 0.0f, -1.0f ) ),</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> mCameraLookAtPoint( glm::vec3(0.0f, 0.0f, -1.0f ) ),</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> mCameraUpVector( glm::vec3(0.0f, 1.0f, 0.0f ) ),</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> mCameraTheta( 0.0f ),</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> mCameraPhi( M_PI / 2.0f ),</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> mCameraRadius( 1.0f ) {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>[[maybe_unused]]</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056"> 221</a></span><span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056">CSCI441::Camera::rotate</a>(<span class="keyword">const</span> GLfloat dTheta, <span class="keyword">const</span> GLfloat dPhi) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> mCameraTheta += dTheta; <span class="comment">// update theta</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> mCameraPhi += dPhi; <span class="comment">// update phi</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> _clampCameraPhi(); <span class="comment">// bounds check phi</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> recomputeOrientation(); <span class="comment">// convert to cartesian</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span>}</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::Camera::_clampCameraPhi() {</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">if</span>(mCameraPhi &lt;= 0.0f) mCameraPhi = 0.0f + 0.001f;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">if</span>(mCameraPhi &gt;= M_PI) mCameraPhi = M_PI - 0.001f;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span>}</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="preprocessor">#endif </span><span class="comment">// CSCI441_CAMERA_HPP</span></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html">CSCI441::Camera</a></div><div class="ttdoc">Abstract Class to represent a synthetic camera. The following methods must be overridden:</div><div class="ttdef"><b>Definition:</b> Camera.hpp:35</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a07f80251ff8e884b473d3f41bb4450ee"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a07f80251ff8e884b473d3f41bb4450ee">CSCI441::Camera::mCameraPhi</a></div><div class="ttdeci">GLfloat mCameraPhi</div><div class="ttdoc">spherical angle for pitch direction in radians</div><div class="ttdef"><b>Definition:</b> Camera.hpp:193</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a0c67bf74277a997af68ad1b172b0e372"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a0c67bf74277a997af68ad1b172b0e372">CSCI441::Camera::getProjectionMatrix</a></div><div class="ttdeci">glm::mat4 getProjectionMatrix() const</div><div class="ttdoc">returns the current projection matrix for the associated camera</div><div class="ttdef"><b>Definition:</b> Camera.hpp:84</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a1f2df8ef683b23ed2bda0143ac7ab6d1"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a1f2df8ef683b23ed2bda0143ac7ab6d1">CSCI441::Camera::setUpVector</a></div><div class="ttdeci">void setUpVector(const glm::vec3 up)</div><div class="ttdoc">sets the camera's up vector in world space</div><div class="ttdef"><b>Definition:</b> Camera.hpp:135</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a2b44075a51d0d334a6a8c0742e42f040"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040">CSCI441::Camera::Camera</a></div><div class="ttdeci">Camera()</div><div class="ttdoc">create a default camera at the origin, looking down the negative Z axis oriented with the world coord...</div><div class="ttdef"><b>Definition:</b> Camera.hpp:206</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a2b44075a51d0d334a6a8c0742e42f040"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a2b44075a51d0d334a6a8c0742e42f040">CSCI441::Camera::Camera</a></div><div class="ttdeci">Camera()</div><div class="ttdoc">create a default camera at the origin, looking down the negative Z axis oriented with the world coord...</div><div class="ttdef"><b>Definition:</b> Camera.hpp:208</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a2d44bf0b6b8f73cba73c510988519676"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a2d44bf0b6b8f73cba73c510988519676">CSCI441::Camera::moveBackward</a></div><div class="ttdeci">virtual void moveBackward(GLfloat movementFactor)=0</div><div class="ttdoc">steps backward along the camera's view</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a3069ac83e9cdc8153d3770d9136bd496"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a3069ac83e9cdc8153d3770d9136bd496">CSCI441::Camera::getPhi</a></div><div class="ttdeci">GLfloat getPhi() const</div><div class="ttdoc">returns the current phi value in radians</div><div class="ttdef"><b>Definition:</b> Camera.hpp:114</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_a3b6c129340babd754222090e434f487e"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a3b6c129340babd754222090e434f487e">CSCI441::Camera::getPosition</a></div><div class="ttdeci">glm::vec3 getPosition() const</div><div class="ttdoc">returns the current camera position in world space</div><div class="ttdef"><b>Definition:</b> Camera.hpp:94</div></div>
Expand All @@ -196,7 +194,7 @@
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_ae288c2ef288ac5532335e5859966410f"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#ae288c2ef288ac5532335e5859966410f">CSCI441::Camera::mCameraRadius</a></div><div class="ttdeci">GLfloat mCameraRadius</div><div class="ttdoc">spherical magnitude for direction in world space</div><div class="ttdef"><b>Definition:</b> Camera.hpp:197</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_ae521b33f2ac9174455842db2f0780949"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#ae521b33f2ac9174455842db2f0780949">CSCI441::Camera::getTheta</a></div><div class="ttdeci">GLfloat getTheta() const</div><div class="ttdoc">returns the current theta value in radians</div><div class="ttdef"><b>Definition:</b> Camera.hpp:109</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_ae9d148da53177b4db6fb903bb3a8eaa8"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#ae9d148da53177b4db6fb903bb3a8eaa8">CSCI441::Camera::setRadius</a></div><div class="ttdeci">void setRadius(const GLfloat r)</div><div class="ttdoc">sets the camera's radius in world space</div><div class="ttdef"><b>Definition:</b> Camera.hpp:150</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_aefb6d39b085ffa3ab185048c91bab056"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056">CSCI441::Camera::rotate</a></div><div class="ttdeci">virtual void rotate(GLfloat dTheta, GLfloat dPhi)</div><div class="ttdoc">rotates the camera's POV by adding to theta &amp; phi then ensuring phi stays within the (0,...</div><div class="ttdef"><b>Definition:</b> Camera.hpp:219</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_aefb6d39b085ffa3ab185048c91bab056"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#aefb6d39b085ffa3ab185048c91bab056">CSCI441::Camera::rotate</a></div><div class="ttdeci">virtual void rotate(GLfloat dTheta, GLfloat dPhi)</div><div class="ttdoc">rotates the camera's POV by adding to theta &amp; phi then ensuring phi stays within the (0,...</div><div class="ttdef"><b>Definition:</b> Camera.hpp:221</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_camera_html_af6a2f9dc52e142776703cc3f1734d20e"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#af6a2f9dc52e142776703cc3f1734d20e">CSCI441::Camera::getRadius</a></div><div class="ttdeci">GLfloat getRadius() const</div><div class="ttdoc">returns the current radius in world space</div><div class="ttdef"><b>Definition:</b> Camera.hpp:119</div></div>
<div class="ttc" id="anamespace_c_s_c_i441_html"><div class="ttname"><a href="namespace_c_s_c_i441.html">CSCI441</a></div><div class="ttdoc">CSCI441 Helper Functions for OpenGL.</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:17</div></div>
</div><!-- fragment --></div><!-- contents -->
Expand Down

0 comments on commit 4fb576f

Please sign in to comment.