1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
|
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>openvrml::gl::viewer::modelview_matrix_stack class Reference</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<link rel="icon" href="../vrml-16">
<link rel="start" href="http://openvrml.org/index" title="OpenVRML Home">
<link rel="prev" href="http://openvrml.org/discussion" title="Discussion">
<link rel="contents" href="index" title="Documentation Main Page">
<link rel="index" href="functions" title="OpenVRML Compound Members">
<link rel="appendix" href="conformance" title="Conformance Test Results">
<style type="text/css">
@import url("doxygen.css");
@import url("http://openvrml.org/openvrml.css");
.body td {
background-color: transparent;
}
div.qindex {
background-color: transparent;
border: none;
}
a.qindex {
text-decoration: inherit;
color: inherit
}
a.qindex:visited {
text-decoration: inherit;
font-weight: inherit;
color: inherit
}
a.qindex:hover {
text-decoration: inherit;
background-color: transparent;
}
a.qindexHL {
text-decoration: inherit;
font-weight: inherit;
background-color: transparent;
color: inherit;
}
a.qindexHL:hover {
text-decoration: inherit;
background-color: transparent;
color: inherit;
}
a.qindexHL:visited {
text-decoration: inherit;
background-color: transparent;
color: inherit;
}
a.el {
text-decoration: inherit;
font-weight: inherit
}
a.elRef {
font-weight: inherit
}
a.code {
text-decoration: inherit;
font-weight: inherit;
color: inherit;
}
a.codeRef {
font-weight: normal;
color: inherit;
}
a:hover {
text-decoration: inherit;
background-color: inherit;
}
h1 {
line-height: 1.2em;
}
div.qindex {
font-size: smaller;
}
div.qindex .qindex:link, div.qindex .qindex:visited {
font-weight: inherit;
}
div.qindex .qindexHL:link, div.qindex .qindexHL:visited {
font-weight: bold;
}
td.memItemLeft, td.memItemRight, .mdRow td {
font-family: "Bitstream Vera Sans Mono",
"LucidaTypewriter",
"Lucida Console",
monospace;
}
td.memItemLeft, td.memItemRight, td.mdescLeft, td.mdescRight {
background-color: rgb(95%, 95%, 95%);
}
.mdRow {
background-color: rgb(95%, 95%, 95%);
}
.mdTable {
background-color: rgb(95%, 95%, 95%);
}
.mdRow td {
background-color: rgb(95%, 95%, 95%);
}
.mdRow td code {
font-family: sans-serif;
font-style: italic;
}
</style>
</head>
<body>
<table class="sitenav">
<tr>
<th><a href="http://openvrml.org/index" title="Home">Home</a></th>
<th><a href="http://openvrml.org/download" title="Download">Download</a></th>
<th><a href="http://openvrml.org/screenshots/index" title="Screen shots">Screen shots</a></th>
<th><a href="http://openvrml.org/discussion" title="Mailing lists and IRC">Discussion</a></th>
<th>Documentation</th>
</tr>
</table>
<div class="body">
<!-- Generated by Doxygen 1.3.4-20031112 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<h1>openvrml::gl::viewer::modelview_matrix_stack Class Reference</h1>Encapsulates an extended modelview matrix stack.
<a href="#_details">More...</a>
<p>
<a href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="a0" doxytag="openvrml::gl::viewer::modelview_matrix_stack::modelview_matrix_stack" ></a>
</td><td class="memItemRight" valign=bottom><a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html#a0">modelview_matrix_stack</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Construct. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html#a1">push</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Push the current matrix onto the stack. <a href="#a1"></a><br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html#a2">pop</a> ()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pop the current matrix off of the stack. <a href="#a2"></a><br><br></td></tr>
<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="r0" doxytag="openvrml::gl::viewer::modelview_matrix_stack::size" ></a>
size_t </td><td class="memItemRight" valign=bottom><a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html#r0">size</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The current stack depth. <br><br></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top><a class="anchor" name="r1" doxytag="openvrml::gl::viewer::modelview_matrix_stack::spillover" ></a>
std::stack< <a class="el" href="classopenvrml_1_1mat4f.html">mat4f</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html#r1">spillover</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Any matrices that won't fit on the OpenGL modelview matrix stack get pushed onto this stack. <br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Encapsulates an extended modelview matrix stack.
<p>
OpenGL requires that implementations have a modelview matrix stack with a maximum depth of only 32. Regardless of that, the maximum depth can be expected to vary between implementations, and we don't want nesting of Transform nodes in VRML worlds to be constrained by this limit.<p>
<a class="el" href="classopenvrml_1_1gl_1_1viewer_1_1modelview__matrix__stack.html">modelview_matrix_stack</a> uses the OpenGL modelview matrix stack until it fills up, at which point any additional matrices that spill over are pushed onto a conventional stack of <a class="el" href="classopenvrml_1_1mat4f.html">mat4f</a>.
<p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a2" doxytag="openvrml::gl::viewer::modelview_matrix_stack::pop" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void openvrml::gl::viewer::modelview_matrix_stack::pop </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</td>
<td>
<p>
Pop the current matrix off of the stack.
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>The current matrix is the modelview matrix. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="a1" doxytag="openvrml::gl::viewer::modelview_matrix_stack::push" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"> void openvrml::gl::viewer::modelview_matrix_stack::push </td>
<td class="md" valign="top">( </td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</td>
<td>
<p>
Push the current matrix onto the stack.
<p>
<dl compact><dt><b>Precondition:</b></dt><dd>The current matrix is the modelview matrix. </dd></dl>
</td>
</tr>
</table>
</div>
<address class="footer"><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=7151&type=3" width="125" height="37" border="0" alt="SourceForge.net Logo" align="right"></a><a href="http://sourceforge.net/tracker/?func=add&group_id=7151&atid=107151">Report error</a><br>Generated Sun Nov 16 20:22:43 2003 by Doxygen 1.3.4-20031112</address>
</body>
</html>
|