Skip to content

Commit

Permalink
Issue #7 - documented private members
Browse files Browse the repository at this point in the history
jpaoneMines committed Aug 31, 2023

Verified

This commit was signed with the committer’s verified signature.
GromNaN Jérôme Tamarelle
1 parent 789127b commit cb11e9d
Showing 4 changed files with 97 additions and 76 deletions.
30 changes: 25 additions & 5 deletions ArcballCam.hpp
Original file line number Diff line number Diff line change
@@ -57,21 +57,41 @@ namespace CSCI441 {
void moveBackward(GLfloat movementFactor) final;

private:
// updates the camera position and recalculates the view matrix
/**
* @brief updates the camera position and recalculates the view matrix
*/
void _updateArcballCameraViewMatrix();

// keeps the current camera radius within the range (_minRadius, _maxRadius)
/**
* @brief keeps the current camera radius within the range (_minRadius, _maxRadius)
*/
void _clampRadius();

// minimum allowable radius of camera
/**
* @brief minimum allowable radius of camera
*/
GLfloat _minRadius;
// maximum allowable radius of camera
/**
* @brief maximum allowable radius of camera
*/
GLfloat _maxRadius;

// vertical field of view stored in degrees
/**
* @brief vertical field of view
* @note stored in degrees
*/
GLfloat _fovy;
/**
* @brief aspect ratio of view plane
*/
GLfloat _aspectRatio;
/**
* @brief near Z clipping plane
*/
GLfloat _nearClipPlane;
/**
* @brief far Z clipping plane
*/
GLfloat _farClipPlane;
};
}
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -7,6 +7,12 @@ When building, the library must be compiled and linked against OpenGL, GLFW, GLE

# Revision History

## v 4.5.0 - 31 Aug 2023
- Camera stores projection matrix along with view matrix
- ArcballCam, FixedCam, FreeCam operate with perspective projections
- MD5Camera class loads and steps through frames of md5camera file
- MD5Camera operates with perspective projection

## v 4.4.0 - 29 Aug 2023
- ShaderProgram::getProgramStages() returns GLbitfield of shader stages

133 changes: 64 additions & 69 deletions docs/_arcball_cam_8hpp_source.html
Original file line number Diff line number Diff line change
@@ -92,79 +92,74 @@
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">moveBackward</a>(GLfloat movementFactor) <span class="keyword">final</span>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// updates the camera position and recalculates the view matrix</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">void</span> _updateArcballCameraViewMatrix();</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// keeps the current camera radius within the range (_minRadius, _maxRadius)</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">void</span> _clampRadius();</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// minimum allowable radius of camera</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> GLfloat _minRadius;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// maximum allowable radius of camera</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> GLfloat _maxRadius;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// vertical field of view stored in degrees</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> GLfloat _fovy;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> GLfloat _aspectRatio;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> GLfloat _nearClipPlane;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> GLfloat _farClipPlane;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> };</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">void</span> _updateArcballCameraViewMatrix();</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> _clampRadius();</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> GLfloat _minRadius;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> GLfloat _maxRadius;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2"> 79</a></span><span class="keyword">inline</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2">CSCI441::ArcballCam::ArcballCam</a>(</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> GLfloat minRadius,</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">const</span> GLfloat maxRadius,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">const</span> GLfloat aspectRatio,</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">const</span> GLfloat fovy,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">const</span> GLfloat nearClipPlane,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">const</span> GLfloat farClipPlane</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>) : _minRadius(minRadius),</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> _maxRadius(maxRadius),</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> _aspectRatio(aspectRatio),</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> _fovy(fovy),</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> _nearClipPlane(nearClipPlane),</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> _farClipPlane(farClipPlane)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_variable" href="class_c_s_c_i441_1_1_camera.html#a64b74b2c979a3a05afa42434c0000d42">mProjectionMatrix</a> = glm::perspective(_fovy, _aspectRatio, _nearClipPlane, _farClipPlane);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>}</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4"> 96</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_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a>() {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// compute direction vector based on spherical to cartesian conversion</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> mCameraDirection.x = glm::sin(mCameraTheta ) * glm::sin(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> mCameraDirection.y = -glm::cos(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> mCameraDirection.z = -glm::cos(mCameraTheta ) * glm::sin(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> _updateArcballCameraViewMatrix();</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2"> 105</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_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2">CSCI441::ArcballCam::moveForward</a>(<span class="keyword">const</span> GLfloat movementFactor) {</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> mCameraRadius -= movementFactor; <span class="comment">// camera &quot;moves forward&quot; by reducing the radius to get closer to the look at point</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> _clampRadius(); <span class="comment">// ensure camera doesn&#39;t get too close</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> recomputeOrientation(); <span class="comment">// update view matrix</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>}</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2"> 111</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_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a>(<span class="keyword">const</span> GLfloat movementFactor) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> mCameraRadius += movementFactor; <span class="comment">// camera &quot;moves backward&quot; by increasing the radius to get further away from the look at point</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> _clampRadius(); <span class="comment">// ensure camera doesn&#39;t get too far away</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> recomputeOrientation(); <span class="comment">// update view matrix</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>}</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::ArcballCam::_updateArcballCameraViewMatrix() {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> setPosition(mCameraLookAtPoint + mCameraDirection );</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> computeViewMatrix();</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>}</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> GLfloat _fovy;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> GLfloat _aspectRatio;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> GLfloat _nearClipPlane;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> GLfloat _farClipPlane;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> };</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2"> 99</a></span><span class="keyword">inline</span> <a class="code hl_function" href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2">CSCI441::ArcballCam::ArcballCam</a>(</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">const</span> GLfloat minRadius,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> GLfloat maxRadius,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">const</span> GLfloat aspectRatio,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">const</span> GLfloat fovy,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">const</span> GLfloat nearClipPlane,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">const</span> GLfloat farClipPlane</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span>) : _minRadius(minRadius),</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> _maxRadius(maxRadius),</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> _aspectRatio(aspectRatio),</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> _fovy(fovy),</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> _nearClipPlane(nearClipPlane),</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> _farClipPlane(farClipPlane)</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>{</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_variable" href="class_c_s_c_i441_1_1_camera.html#a64b74b2c979a3a05afa42434c0000d42">mProjectionMatrix</a> = glm::perspective(_fovy, _aspectRatio, _nearClipPlane, _farClipPlane);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4"> 116</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_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a>() {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// compute direction vector based on spherical to cartesian conversion</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> mCameraDirection.x = glm::sin(mCameraTheta ) * glm::sin(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> mCameraDirection.y = -glm::cos(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> mCameraDirection.z = -glm::cos(mCameraTheta ) * glm::sin(mCameraPhi ) * mCameraRadius;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::ArcballCam::_clampRadius() {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> mCameraRadius = glm::clamp(mCameraRadius, _minRadius, _maxRadius);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span>}</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor">#endif </span><span class="comment">// CSCI441_ARCBALL_CAM_HPP</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> _updateArcballCameraViewMatrix();</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span>}</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2"> 125</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_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2">CSCI441::ArcballCam::moveForward</a>(<span class="keyword">const</span> GLfloat movementFactor) {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> mCameraRadius -= movementFactor; <span class="comment">// camera &quot;moves forward&quot; by reducing the radius to get closer to the look at point</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> _clampRadius(); <span class="comment">// ensure camera doesn&#39;t get too close</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> recomputeOrientation(); <span class="comment">// update view matrix</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span>}</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2"> 131</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_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a>(<span class="keyword">const</span> GLfloat movementFactor) {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> mCameraRadius += movementFactor; <span class="comment">// camera &quot;moves backward&quot; by increasing the radius to get further away from the look at point</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> _clampRadius(); <span class="comment">// ensure camera doesn&#39;t get too far away</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> recomputeOrientation(); <span class="comment">// update view matrix</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>}</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::ArcballCam::_updateArcballCameraViewMatrix() {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> setPosition(mCameraLookAtPoint + mCameraDirection );</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> computeViewMatrix();</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span>}</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="keyword">inline</span> <span class="keywordtype">void</span> CSCI441::ArcballCam::_clampRadius() {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> mCameraRadius = glm::clamp(mCameraRadius, _minRadius, _maxRadius);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>}</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">#endif </span><span class="comment">// CSCI441_ARCBALL_CAM_HPP</span></div>
<div class="ttc" id="a_camera_8hpp_html"><div class="ttname"><a href="_camera_8hpp.html">Camera.hpp</a></div><div class="ttdoc">Abstract Camera class to be placed (position and orientation) within our scene.</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html">CSCI441::ArcballCam</a></div><div class="ttdoc">A camera that implements an ArcBall camera model.</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:23</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a05be1d4f9916e124258810d8f1d2b7e4"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a></div><div class="ttdeci">void recomputeOrientation() final</div><div class="ttdoc">converts spherical theta &amp; phi to cartesian x,y,z direction vector</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:96</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a5e618322522a711de4d22ff0331e8db2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2">CSCI441::ArcballCam::moveForward</a></div><div class="ttdeci">void moveForward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by decreasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:105</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_aaeb9f7a5c9ab3a08a11687f1fd7234e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a></div><div class="ttdeci">void moveBackward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by increasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:111</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_adbacdaa920532f83d39e34c87d4324e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2">CSCI441::ArcballCam::ArcballCam</a></div><div class="ttdeci">ArcballCam(GLfloat minRadius=2.0f, GLfloat maxRadius=30.0f, GLfloat aspectRatio=1.0f, GLfloat fovy=45.0f, GLfloat nearClipPlane=0.001f, GLfloat farClipPlane=1000.0f)</div><div class="ttdoc">initializes the Arcball Camera and sets the minimum/maximum radius the camera can zoom through as wel...</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:79</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a05be1d4f9916e124258810d8f1d2b7e4"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a></div><div class="ttdeci">void recomputeOrientation() final</div><div class="ttdoc">converts spherical theta &amp; phi to cartesian x,y,z direction vector</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:116</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a5e618322522a711de4d22ff0331e8db2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a5e618322522a711de4d22ff0331e8db2">CSCI441::ArcballCam::moveForward</a></div><div class="ttdeci">void moveForward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by decreasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:125</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_aaeb9f7a5c9ab3a08a11687f1fd7234e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a></div><div class="ttdeci">void moveBackward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by increasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:131</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_adbacdaa920532f83d39e34c87d4324e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#adbacdaa920532f83d39e34c87d4324e2">CSCI441::ArcballCam::ArcballCam</a></div><div class="ttdeci">ArcballCam(GLfloat minRadius=2.0f, GLfloat maxRadius=30.0f, GLfloat aspectRatio=1.0f, GLfloat fovy=45.0f, GLfloat nearClipPlane=0.001f, GLfloat farClipPlane=1000.0f)</div><div class="ttdoc">initializes the Arcball Camera and sets the minimum/maximum radius the camera can zoom through as wel...</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:99</div></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_a64b74b2c979a3a05afa42434c0000d42"><div class="ttname"><a href="class_c_s_c_i441_1_1_camera.html#a64b74b2c979a3a05afa42434c0000d42">CSCI441::Camera::mProjectionMatrix</a></div><div class="ttdeci">glm::mat4 mProjectionMatrix</div><div class="ttdoc">stores the Projection Matrix</div><div class="ttdef"><b>Definition:</b> Camera.hpp:162</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>
4 changes: 2 additions & 2 deletions docs/_open_g_l3_d_engine_8hpp_source.html
Original file line number Diff line number Diff line change
@@ -158,8 +158,8 @@
<div class="ttc" id="a_arcball_cam_8hpp_html"><div class="ttname"><a href="_arcball_cam_8hpp.html">ArcballCam.hpp</a></div><div class="ttdoc">Concrete Arcball Camera implementation with Perspective Projection.</div></div>
<div class="ttc" id="a_open_g_l_engine_8hpp_html"><div class="ttname"><a href="_open_g_l_engine_8hpp.html">OpenGLEngine.hpp</a></div><div class="ttdoc">Abstract class engine class to setup window, register callbacks, vaos, textures, and shaders,...</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html">CSCI441::ArcballCam</a></div><div class="ttdoc">A camera that implements an ArcBall camera model.</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:23</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a05be1d4f9916e124258810d8f1d2b7e4"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a></div><div class="ttdeci">void recomputeOrientation() final</div><div class="ttdoc">converts spherical theta &amp; phi to cartesian x,y,z direction vector</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:96</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_aaeb9f7a5c9ab3a08a11687f1fd7234e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a></div><div class="ttdeci">void moveBackward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by increasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:111</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_a05be1d4f9916e124258810d8f1d2b7e4"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#a05be1d4f9916e124258810d8f1d2b7e4">CSCI441::ArcballCam::recomputeOrientation</a></div><div class="ttdeci">void recomputeOrientation() final</div><div class="ttdoc">converts spherical theta &amp; phi to cartesian x,y,z direction vector</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:116</div></div>
<div class="ttc" id="aclass_c_s_c_i441_1_1_arcball_cam_html_aaeb9f7a5c9ab3a08a11687f1fd7234e2"><div class="ttname"><a href="class_c_s_c_i441_1_1_arcball_cam.html#aaeb9f7a5c9ab3a08a11687f1fd7234e2">CSCI441::ArcballCam::moveBackward</a></div><div class="ttdeci">void moveBackward(GLfloat movementFactor) final</div><div class="ttdoc">updates the camera's position by increasing the camera's radius</div><div class="ttdef"><b>Definition:</b> ArcballCam.hpp:131</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_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>

0 comments on commit cb11e9d

Please sign in to comment.