source: OGRE/trunk/ogrenew/Docs/api/html/OgreStringInterface_8h-source.html @ 657

Revision 657, 19.5 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1<html>
2<head>
3<title>OgreStringInterface.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>OgreStringInterface.h</h1><a href="OgreStringInterface_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">    (Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025
3500026 <span class="preprocessor">#ifndef __StringInterface_H__</span>
3600027 <span class="preprocessor"></span><span class="preprocessor">#define __StringInterface_H__</span>
3700028 <span class="preprocessor"></span>
3800029 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
3900030 <span class="preprocessor">#include "<a class="code" href="OgreString_8h.html">OgreString.h</a>"</span>
4000031 <span class="preprocessor">#include "<a class="code" href="OgreCommon_8h.html">OgreCommon.h</a>"</span>
4100032
4200033 <span class="keyword">namespace </span>Ogre {
4300034
4400035
45<a name="l00037"></a><a class="code" href="namespaceOgre.html#a679">00037</a>     <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a679">ParameterType</a>
4600038     {
4700039         <a class="code" href="namespaceOgre.html#a679a521">PT_BOOL</a>,
4800040         <a class="code" href="namespaceOgre.html#a679a522">PT_REAL</a>,
4900041         <a class="code" href="namespaceOgre.html#a679a523">PT_INT</a>,
5000042         <a class="code" href="namespaceOgre.html#a679a524">PT_UNSIGNED_INT</a>,
5100043         <a class="code" href="namespaceOgre.html#a679a525">PT_SHORT</a>,
5200044         <a class="code" href="namespaceOgre.html#a679a526">PT_UNSIGNED_SHORT</a>,
5300045         <a class="code" href="namespaceOgre.html#a679a527">PT_LONG</a>,
5400046         <a class="code" href="namespaceOgre.html#a679a528">PT_UNSIGNED_LONG</a>,
5500047         <a class="code" href="namespaceOgre.html#a679a529">PT_STRING</a>,
5600048         <a class="code" href="namespaceOgre.html#a679a530">PT_VECTOR3</a>,
5700049         <a class="code" href="namespaceOgre.html#a679a531">PT_MATRIX3</a>,
5800050         <a class="code" href="namespaceOgre.html#a679a532">PT_MATRIX4</a>,
5900051         <a class="code" href="namespaceOgre.html#a679a533">PT_QUATERNION</a>,
6000052         <a class="code" href="namespaceOgre.html#a679a534">PT_COLOURVALUE</a>
6100053     };
6200054
63<a name="l00056"></a><a class="code" href="classOgre_1_1ParameterDef.html">00056</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> ParameterDef
6400057     {
6500058     <span class="keyword">public</span>:
66<a name="l00059"></a><a class="code" href="classOgre_1_1ParameterDef.html#Ogre_1_1ParameterDefo0">00059</a>         <a class="code" href="namespaceOgre.html#a426">String</a> name;
67<a name="l00060"></a><a class="code" href="classOgre_1_1ParameterDef.html#Ogre_1_1ParameterDefo1">00060</a>         <a class="code" href="namespaceOgre.html#a426">String</a> description;
68<a name="l00061"></a><a class="code" href="classOgre_1_1ParameterDef.html#Ogre_1_1ParameterDefo2">00061</a>         <a class="code" href="namespaceOgre.html#a679">ParameterType</a> paramType;
69<a name="l00062"></a><a class="code" href="classOgre_1_1ParameterDef.html#Ogre_1_1ParameterDefa0">00062</a>         ParameterDef(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; newName, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; newDescription, ParameterType newType)
7000063             : name(newName), description(newDescription), paramType(newType) {}
7100064     };
72<a name="l00065"></a><a class="code" href="namespaceOgre.html#a518">00065</a>     <span class="keyword">typedef</span> std::vector&lt;ParameterDef&gt; <a class="code" href="namespaceOgre.html#a518">ParameterList</a>;
7300066
74<a name="l00068"></a><a class="code" href="classOgre_1_1ParamCommand.html">00068</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> ParamCommand
7500069     {
7600070     <span class="keyword">public</span>:
7700071         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span> = 0;
7800072         <span class="keyword">virtual</span> <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; val) = 0;
7900073
80<a name="l00074"></a><a class="code" href="classOgre_1_1ParamCommand.html#Ogre_1_1ParamCommanda2">00074</a>         <span class="keyword">virtual</span> ~ParamCommand() { }
8100075     };
82<a name="l00076"></a><a class="code" href="namespaceOgre.html#a519">00076</a>     <span class="keyword">typedef</span> std::map&lt;String, ParamCommand* &gt; <a class="code" href="namespaceOgre.html#a519">ParamCommandMap</a>;
8300077
84<a name="l00079"></a><a class="code" href="classOgre_1_1ParamDictionary.html">00079</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> ParamDictionary
8500080     {
86<a name="l00081"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryn0">00081</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOgre_1_1StringInterface.html">StringInterface</a>;
8700082     <span class="keyword">protected</span>:
88<a name="l00084"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryp0">00084</a>         <a class="code" href="namespaceOgre.html#a518">ParameterList</a> mParamDefs;
8900085
90<a name="l00087"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryp1">00087</a>         <a class="code" href="namespaceOgre.html#a519">ParamCommandMap</a> mParamCommands;
9100088
92<a name="l00090"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryb0">00090</a>         ParamCommand* getParamCommand(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name)
9300091         {
9400092             ParamCommandMap::iterator i = mParamCommands.find(name);
9500093             <span class="keywordflow">if</span> (i != mParamCommands.end())
9600094             {
9700095                 <span class="keywordflow">return</span> i-&gt;second;
9800096             }
9900097             <span class="keywordflow">else</span>
10000098             {
10100099                 <span class="keywordflow">return</span> 0;
10200100             }
10300101         }
10400102
105<a name="l00103"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryb1">00103</a>         <span class="keyword">const</span> ParamCommand* getParamCommand(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name)<span class="keyword"> const</span>
10600104 <span class="keyword">        </span>{
10700105             ParamCommandMap::const_iterator i = mParamCommands.find(name);
10800106             <span class="keywordflow">if</span> (i != mParamCommands.end())
10900107             {
11000108                 <span class="keywordflow">return</span> i-&gt;second;
11100109             }
11200110             <span class="keywordflow">else</span>
11300111             {
11400112                 <span class="keywordflow">return</span> 0;
11500113             }
11600114         }
11700115     <span class="keyword">public</span>:
118<a name="l00116"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionarya0">00116</a>         ParamDictionary()  {}
119<a name="l00123"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionarya1">00123</a>         <span class="keywordtype">void</span> addParameter(<span class="keyword">const</span> ParameterDef&amp; paramDef, ParamCommand* paramCmd)
12000124         {
12100125             mParamDefs.push_back(paramDef);
12200126             mParamCommands[paramDef.<a class="code" href="classOgre_1_1ParameterDef.html#Ogre_1_1ParameterDefo0">name</a>] = paramCmd;
12300127         }
124<a name="l00133"></a><a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionarya2">00133</a>         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a518">ParameterList</a>&amp; getParameters(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
12500134 <span class="keyword">        </span>{
12600135             <span class="keywordflow">return</span> mParamDefs;
12700136         }
12800137
12900138
13000139
13100140     };
132<a name="l00141"></a><a class="code" href="namespaceOgre.html#a520">00141</a>     <span class="keyword">typedef</span> std::map&lt;String, ParamDictionary&gt; <a class="code" href="namespaceOgre.html#a520">ParamDictionaryMap</a>;
13300142     
134<a name="l00152"></a><a class="code" href="classOgre_1_1StringInterface.html">00152</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> StringInterface
13500153     {
13600154     <span class="keyword">protected</span>:
13700155
138<a name="l00157"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturet0">00157</a>         <span class="keyword">static</span> <a class="code" href="namespaceOgre.html#a520">ParamDictionaryMap</a> msDictionary;
13900158
140<a name="l00160"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturep26">00160</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mParamDictName;
14100161
142<a name="l00172"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Textureb6">00172</a>         <span class="keywordtype">bool</span> createParamDictionary(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; className)
14300173         {
14400174             mParamDictName = className;
14500175             <span class="keywordflow">if</span> (msDictionary.find(className) == msDictionary.end())
14600176             {
14700177                 msDictionary[className] = ParamDictionary();
14800178                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
14900179             }
15000180             <span class="keywordflow">return</span> <span class="keyword">false</span>;
15100181
15200182         }
15300183
15400184     <span class="keyword">public</span>:
15500185
156<a name="l00187"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1StringInterfacea0">00187</a>         <span class="keyword">virtual</span> ~StringInterface() {}
15700188
158<a name="l00196"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturea44">00196</a>         ParamDictionary* getParamDictionary(<span class="keywordtype">void</span>)
15900197         {
16000198             ParamDictionaryMap::iterator i = msDictionary.find(mParamDictName);
16100199             <span class="keywordflow">if</span> (i != msDictionary.end())
16200200             {
16300201                 <span class="keywordflow">return</span> &amp;(i-&gt;second);
16400202             }
16500203             <span class="keywordflow">else</span>
16600204             {
16700205                 <span class="keywordflow">return</span> 0;
16800206             }
16900207         }
17000208
171<a name="l00209"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturea45">00209</a>         <span class="keyword">const</span> ParamDictionary* getParamDictionary(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
17200210 <span class="keyword">        </span>{
17300211             ParamDictionaryMap::const_iterator i = msDictionary.find(mParamDictName);
17400212             <span class="keywordflow">if</span> (i != msDictionary.end())
17500213             {
17600214                 <span class="keywordflow">return</span> &amp;(i-&gt;second);
17700215             }
17800216             <span class="keywordflow">else</span>
17900217             {
18000218                 <span class="keywordflow">return</span> 0;
18100219             }
18200220         }
18300221
18400227         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a518">ParameterList</a>&amp; getParameters(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
18500228
18600243         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setParameter(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; value);
18700253         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setParameterList(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a62">NameValuePairList</a>&amp; paramList);
188<a name="l00265"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturea49">00265</a>         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> getParameter(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name)<span class="keyword"> const</span>
18900266 <span class="keyword">        </span>{
19000267             <span class="comment">// Get dictionary</span>
19100268             <span class="keyword">const</span> ParamDictionary* dict = getParamDictionary();
19200269
19300270             <span class="keywordflow">if</span> (dict)
19400271             {
19500272                 <span class="comment">// Look up command object</span>
19600273                 <span class="keyword">const</span> ParamCommand* cmd = dict-&gt;<a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryb0">getParamCommand</a>(name);
19700274
19800275                 <span class="keywordflow">if</span> (cmd)
19900276                 {
20000277                     <span class="keywordflow">return</span> cmd-&gt;<a class="code" href="classOgre_1_1ParamCommand.html#Ogre_1_1ParamCommanda0">doGet</a>(<span class="keyword">this</span>);
20100278                 }
20200279             }
20300280
20400281             <span class="comment">// Fallback</span>
20500282             <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
20600283         }
207<a name="l00296"></a><a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturea50">00296</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> copyParametersTo(StringInterface* dest)<span class="keyword"> const</span>
20800297 <span class="keyword">        </span>{
20900298             <span class="comment">// Get dictionary</span>
21000299             <span class="keyword">const</span> ParamDictionary* dict = getParamDictionary();
21100300
21200301             <span class="keywordflow">if</span> (dict)
21300302             {
21400303                 <span class="comment">// Iterate through own parameters</span>
21500304                 ParameterList::const_iterator i;
21600305             
21700306                 <span class="keywordflow">for</span> (i = dict-&gt;<a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryp0">mParamDefs</a>.begin();
21800307                 i != dict-&gt;<a class="code" href="classOgre_1_1ParamDictionary.html#Ogre_1_1ParamDictionaryp0">mParamDefs</a>.end(); ++i)
21900308                 {
22000309                     dest-&gt;<a class="code" href="classOgre_1_1StringInterface.html#Ogre_1_1Texturea47">setParameter</a>(i-&gt;name, getParameter(i-&gt;name));
22100310                 }
22200311             }
22300312
22400313
22500314         }
22600315
22700319         <span class="keyword">static</span> <span class="keywordtype">void</span> cleanupDictionary () ;
22800320
22900321     };
23000322
23100323
23200324
23300325 }
23400326
23500327 <span class="preprocessor">#endif</span>
23600328 <span class="preprocessor"></span>
237</pre></div><hr>
238<p>
239Copyright &copy; 2000-2005 by The OGRE Team<br />
240<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
241This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
242                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
243                <Work rdf:about="">
244                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
245        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
246                </Work>
247                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
248
249Last modified Sun Feb 12 12:59:53 2006
250</p>
251</body>
252</html>
Note: See TracBrowser for help on using the repository browser.