aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a06216.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a06216.html')
-rw-r--r--docs/doxygen/nel/a06216.html197
1 files changed, 197 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a06216.html b/docs/doxygen/nel/a06216.html
new file mode 100644
index 00000000..1c4dc249
--- /dev/null
+++ b/docs/doxygen/nel/a06216.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: ps_attrib_maker_bin_op.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.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">Data&nbsp;Structures</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">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>ps_attrib_maker_bin_op.h</h1><a href="a04793.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00007 <span class="comment">/* Copyright, 2001 Nevrax Ltd.</span>
+00008 <span class="comment"> *</span>
+00009 <span class="comment"> * This file is part of NEVRAX NEL.</span>
+00010 <span class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</span>
+00011 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
+00012 <span class="comment"> * the Free Software Foundation; either version 2, or (at your option)</span>
+00013 <span class="comment"> * any later version.</span>
+00014 <span class="comment"></span>
+00015 <span class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</span>
+00016 <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+00017 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
+00018 <span class="comment"> * General Public License for more details.</span>
+00019 <span class="comment"></span>
+00020 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
+00021 <span class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</span>
+00022 <span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</span>
+00023 <span class="comment"> * MA 02111-1307, USA.</span>
+00024 <span class="comment"> */</span>
+00025
+00026 <span class="preprocessor">#ifndef NL_PS_ATTRIB_MAKER_BIN_OP_H</span>
+00027 <span class="preprocessor"></span><span class="preprocessor">#define NL_PS_ATTRIB_MAKER_BIN_OP_H</span>
+00028 <span class="preprocessor"></span>
+00029 <span class="preprocessor">#include "<a class="code" href="a05167.html">nel/misc/types_nl.h</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="a04791.html">ps_attrib_maker.h</a>"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="a04836.html">ps_plane_basis.h</a>"</span>
+00032 <span class="preprocessor">#include "<a class="code" href="a04917.html">nel/misc/rgba.h</a>"</span>
+00033 <span class="preprocessor">#include &lt;memory&gt;</span>
+00034
+00035 <span class="keyword">namespace </span>NL3D {
+00036
+00037
+<a name="l00039"></a><a class="code" href="a03146.html">00039</a> <span class="keyword">struct </span><a class="code" href="a03146.html">CPSBinOp</a>
+00040 {
+<a name="l00041"></a><a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1">00041</a> <span class="keyword">enum</span> <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1">BinOp</a>
+00042 {
+00043 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw4">selectArg1</a> = 0,
+00044 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw5">selectArg2</a>,
+00045 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw3">modulate</a>,
+00046 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw0">add</a>,
+00047 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw6">subtract</a>,
+00048 <a class="code" href="a03146.html#NL3D_1_1CPSBinOpw1NL3D_1_1CPSBinOpw2">last</a>
+00049 };
+00050 };
+00051
+<a name="l00053"></a><a class="code" href="a05363.html#a237">00053</a> <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a05363.html#a237">PSBinOpBufSize</a> = 1024;
+00054
+<a name="l00063"></a><a class="code" href="a03138.html">00063</a> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span><a class="code" href="a03138.html">CPSAttribMakerBinOp</a> : <span class="keyword">public</span> <a class="code" href="a03136.html">CPSAttribMaker</a>&lt;T&gt;
+00064 {
+00065 <span class="keyword">public</span>:
+00067
+00068
+00072 <a class="code" href="a03138.html#NL3D_1_1CPSAttribMakerBinOpz720_1">CPSAttribMakerBinOp</a>();
+00073
+00075 <a class="code" href="a03138.html#NL3D_1_1CPSAttribMakerBinOpz720_1">CPSAttribMakerBinOp</a>(<span class="keyword">const</span> <a class="code" href="a03138.html">CPSAttribMakerBinOp</a> &amp;other);
+00076
+00078 <span class="keyword">virtual</span> <a class="code" href="a03138.html#NL3D_1_1CPSAttribMakerBinOpz720_2">~CPSAttribMakerBinOp</a>();
+00079
+00080
+00081
+00083
+00085
+00086 <span class="keyword">virtual</span> T <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_1">get</a> (<a class="code" href="a03214.html">CPSLocated</a> *loc, <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a566">index</a>);
+00087 <span class="keyword">virtual</span> <span class="keywordtype">void</span> *<a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_2">make</a> (<a class="code" href="a03214.html">CPSLocated</a> *loc,
+00088 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00089 <span class="keywordtype">void</span> *tab,
+00090 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a582">stride</a>,
+00091 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00092 <span class="keywordtype">bool</span> allowNoCopy = <span class="keyword">false</span>,
+00093 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00094 ) <span class="keyword">const</span>;
+00095
+00096 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_3">make4</a> (<a class="code" href="a03214.html">CPSLocated</a> *loc,
+00097 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00098 <span class="keywordtype">void</span> *tab,
+00099 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a582">stride</a>,
+00100 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00101 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00102 ) <span class="keyword">const</span>;
+00103
+00104 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_4">makeN</a> (<a class="code" href="a03214.html">CPSLocated</a> *loc,
+00105 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00106 <span class="keywordtype">void</span> *tab,
+00107 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a582">stride</a>,
+00108 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00109 <a class="code" href="a04558.html#a11">uint32</a> nbReplicate,
+00110 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00111 ) <span class="keyword">const</span>;
+00112
+00113 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_7">serial</a> (<a class="code" href="a02270.html">NLMISC::IStream</a> &amp;f) <span class="keywordflow">throw</span>(<a class="code" href="a03781.html">NLMISC::EStream</a>);
+00114 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_0">deleteElement</a> (<a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a566">index</a>);
+00115 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_5">newElement</a> (<a class="code" href="a03214.html">CPSLocated</a> *emitterLocated, <a class="code" href="a04558.html#a11">uint32</a> emitterIndex);
+00116 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz722_6">resize</a> (<a class="code" href="a04558.html#a11">uint32</a> capacity, <a class="code" href="a04558.html#a11">uint32</a> nbPresentElements);
+00118
+00120
+00121
+<a name="l00125"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_2">00125</a> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_2">setArg</a>(<a class="code" href="a04558.html#a15">uint</a> argNb, <a class="code" href="a03136.html">CPSAttribMaker&lt;T&gt;</a> *arg)
+00126 {
+00127 <a class="code" href="a04199.html#a6">nlassert</a>(argNb &lt; 2);
+00128 <span class="keyword">delete</span> _Arg[argNb];
+00129 _Arg[argNb] = arg;
+00130 <span class="keywordflow">if</span> (arg-&gt;hasMemory())
+00131 {
+00132 arg-&gt;<a class="code" href="a03136.html#NL3D_1_1CPSValueGradient_3_01NLMISC_1_1CRGBA_01_4z718_3">resize</a>(_MaxSize, _Size);
+00133 }
+00134 }
+00135
+<a name="l00139"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_1">00139</a> <a class="code" href="a03136.html">CPSAttribMaker&lt;T&gt;</a> *<a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_1">getArg</a>(<a class="code" href="a04558.html#a15">uint</a> argNb)
+00140 {
+00141 <a class="code" href="a04199.html#a6">nlassert</a>(argNb &lt; 2);
+00142 <span class="keywordflow">return</span> _Arg[argNb];
+00143 }
+00144
+<a name="l00148"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_0">00148</a> <span class="keyword">const</span> <a class="code" href="a03136.html">CPSAttribMaker&lt;T&gt;</a> *<a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz724_1">getArg</a>(<a class="code" href="a04558.html#a15">uint</a> argNb)<span class="keyword"> const</span>
+00149 <span class="keyword"> </span>{
+00150 <a class="code" href="a04199.html#a6">nlassert</a>(argNb &lt; 2);
+00151 <span class="keywordflow">return</span> _Arg[argNb];
+00152 }
+00154
+00156
+00157
+<a name="l00160"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_1">00160</a> <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_1">setOp</a>(CPSBinOp::BinOp op)
+00161 {
+00162 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_2">supportOp</a>(op));
+00163 _Op = op;
+00164 }
+00165
+<a name="l00167"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_2">00167</a> <span class="keywordtype">bool</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_2">supportOp</a>(CPSBinOp::BinOp op) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+00168
+<a name="l00170"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_0">00170</a> CPSBinOp::BinOp <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpz726_0">getOp</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _Op; }
+00172
+00173 <span class="comment">// from CPSAttribMaker</span>
+<a name="l00174"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpa3">00174</a> <span class="keyword">virtual</span> T <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpa3">getMinValue</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> T() ; <span class="comment">/* no mean by default */</span> }
+<a name="l00175"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpa2">00175</a> <span class="keyword">virtual</span> T <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpa2">getMaxValue</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> T() ; <span class="comment">/* no mean by default */</span> }
+00176
+00177 <span class="keyword">protected</span>:
+00178 <span class="keywordtype">void</span> *<a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpb3">makePrivate</a> (T *buf1,
+00179 T *buf2,
+00180 <a class="code" href="a03214.html">CPSLocated</a> *loc,
+00181 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00182 <span class="keywordtype">void</span> *tab,
+00183 <a class="code" href="a04558.html#a11">uint32</a> stride,
+00184 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00185 <span class="keywordtype">bool</span> allowNoCopy = <span class="keyword">false</span>,
+00186 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00187 ) <span class="keyword">const</span>;
+00188
+00189 <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpb1">make4Private</a> (T *buf1,
+00190 T *buf2,
+00191 <a class="code" href="a03214.html">CPSLocated</a> *loc,
+00192 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00193 <span class="keywordtype">void</span> *tab,
+00194 <a class="code" href="a04558.html#a11">uint32</a> stride,
+00195 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00196 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00197 ) <span class="keyword">const</span>;
+00198
+00199 <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpb2">makeNPrivate</a> (T *buf1,
+00200 T *buf2,
+00201 <a class="code" href="a03214.html">CPSLocated</a> *loc,
+00202 <a class="code" href="a04558.html#a11">uint32</a> startIndex,
+00203 <span class="keywordtype">void</span> *tab,
+00204 <a class="code" href="a04558.html#a11">uint32</a> stride,
+00205 <a class="code" href="a04558.html#a11">uint32</a> numAttrib,
+00206 <a class="code" href="a04558.html#a11">uint32</a> nbReplicate,
+00207 <a class="code" href="a04558.html#a11">uint32</a> srcStep = (1 &lt;&lt; 16)
+00208 ) <span class="keyword">const</span>;
+00209
+<a name="l00210"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpp4">00210</a> CPSBinOp::BinOp _Op; <span class="comment">// the operator being used</span>
+<a name="l00211"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpp0">00211</a> <a class="code" href="a03136.html">CPSAttribMaker&lt;T&gt;</a> *_Arg[2]; <span class="comment">// the arguments for the binary operator </span>
+00212 <span class="keywordtype">void</span> <a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpb0">clean</a>(<span class="keywordtype">void</span>);
+<a name="l00213"></a><a class="code" href="a03138.html#NL3D_1_1CPSColorBinOpp5">00213</a> <a class="code" href="a04558.html#a11">uint32</a> _Size, _MaxSize;
+00214 };
+00215
+00216
+00217 } <span class="comment">// NL3D</span>
+00218
+00219 <span class="preprocessor">#include "<a class="code" href="a04794.html">3d/ps_attrib_maker_bin_op_inline.h</a>"</span>
+00220
+00221
+00222 <span class="preprocessor">#endif // NL_PS_ATTRIB_MAKER_BIN_OP_H</span>
+00223 <span class="preprocessor"></span>
+00224 <span class="comment">/* End of ps_attrib_maker_bin_op.h */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:32:24 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>