<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN" "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd"> <refentry id="glEvalPoint"> <refmeta> <refmetainfo> <copyright> <year>1991-2006</year> <holder>Silicon Graphics, Inc.</holder> </copyright> </refmetainfo> <refentrytitle>glEvalPoint</refentrytitle> <manvolnum>3G</manvolnum> </refmeta> <refnamediv> <refname>glEvalPoint</refname> <refpurpose>generate and evaluate a single point in a mesh</refpurpose> </refnamediv> <refsynopsisdiv><title>C Specification</title> <funcsynopsis> <funcprototype> <funcdef>void <function>glEvalPoint1</function></funcdef> <paramdef>GLint <parameter>i</parameter></paramdef> </funcprototype> </funcsynopsis> <funcsynopsis> <funcprototype> <funcdef>void <function>glEvalPoint2</function></funcdef> <paramdef>GLint <parameter>i</parameter></paramdef> <paramdef>GLint <parameter>j</parameter></paramdef> </funcprototype> </funcsynopsis> </refsynopsisdiv> <!-- eqn: ignoring delim $$ --> <refsect1 id="parameters"><title>Parameters</title> <variablelist> <varlistentry> <term><parameter>i</parameter></term> <listitem> <para> Specifies the integer value for grid domain variable <inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>j</parameter></term> <listitem> <para> Specifies the integer value for grid domain variable <inlineequation><mml:math><mml:mi mathvariant="italic">j</mml:mi></mml:math></inlineequation> (<function>glEvalPoint2</function> only). </para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1 id="description"><title>Description</title> <para> <citerefentry><refentrytitle>glMapGrid</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glEvalMesh</refentrytitle></citerefentry> are used in tandem to efficiently generate and evaluate a series of evenly spaced map domain values. <function>glEvalPoint</function> can be used to evaluate a single grid point in the same gridspace that is traversed by <citerefentry><refentrytitle>glEvalMesh</refentrytitle></citerefentry>. Calling <function>glEvalPoint1</function> is equivalent to calling <programlisting> glEvalCoord1( <mml:math> <!-- eqn: i \cdot DELTA u + u sub 1 :--> <mml:mrow> <mml:mrow> <mml:mn>i</mml:mn> <mml:mo>·</mml:mo> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub> <mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:math> ); </programlisting> where <informalequation><mml:math> <!-- eqn: DELTA u = ( u sub 2 - u sub 1 ) / n:--> <mml:mrow> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> <mml:mo>=</mml:mo> <mml:mfrac> <mml:mfenced open="(" close=")"> <mml:mrow> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> <mml:mo>-</mml:mo> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mi mathvariant="italic">n</mml:mi> </mml:mfrac> </mml:mrow> </mml:math></informalequation> </para> <para> and <inlineequation><mml:math><mml:mi mathvariant="italic">n</mml:mi></mml:math></inlineequation>, <inlineequation><mml:math> <!-- eqn: u sub 1:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:math></inlineequation>, and <inlineequation><mml:math> <!-- eqn: u sub 2:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation> are the arguments to the most recent <citerefentry><refentrytitle>glMapGrid1</refentrytitle></citerefentry> command. The one absolute numeric requirement is that if <inlineequation><mml:math> <!-- eqn: i = n:--> <mml:mrow> <mml:mi mathvariant="italic">i</mml:mi> <mml:mo>=</mml:mo> <mml:mi mathvariant="italic">n</mml:mi> </mml:mrow> </mml:math></inlineequation>, then the value computed from <inlineequation><mml:math> <!-- eqn: i cdot DELTA u + u sub 1:--> <mml:mrow> <mml:mrow> <mml:mi mathvariant="italic">i</mml:mi> <mml:mo>·</mml:mo> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:math></inlineequation> is exactly <inlineequation><mml:math> <!-- eqn: u sub 2:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation>. </para> <para> In the two-dimensional case, <function>glEvalPoint2</function>, let </para> <para> <informalequation><mml:math> <!-- eqn: DELTA u = ( u sub 2 - u sub 1 ) / n:--> <mml:mrow> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> <mml:mo>=</mml:mo> <mml:mfrac> <mml:mfenced open="(" close=")"> <mml:mrow> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> <mml:mo>-</mml:mo> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mi mathvariant="italic">n</mml:mi> </mml:mfrac> </mml:mrow> </mml:math></informalequation> <para> <informalequation><mml:math> <!-- eqn: DELTA v = ( v sub 2 - v sub 1 ) / m:--> <mml:mrow> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">v</mml:mi> </mml:mrow> <mml:mo>=</mml:mo> <mml:mfrac> <mml:mfenced open="(" close=")"> <mml:mrow> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>2</mml:mn> </mml:msub> <mml:mo>-</mml:mo> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mi mathvariant="italic">m</mml:mi> </mml:mfrac> </mml:mrow> </mml:math></informalequation> </para> </para> <para> where <inlineequation><mml:math><mml:mi mathvariant="italic">n</mml:mi></mml:math></inlineequation>, <inlineequation><mml:math> <!-- eqn: u sub 1:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:math></inlineequation>, <inlineequation><mml:math> <!-- eqn: u sub 2:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation>, <inlineequation><mml:math><mml:mi mathvariant="italic">m</mml:mi></mml:math></inlineequation>, <inlineequation><mml:math> <!-- eqn: v sub 1:--> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:math></inlineequation>, and <inlineequation><mml:math> <!-- eqn: v sub 2:--> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation> are the arguments to the most recent <citerefentry><refentrytitle>glMapGrid2</refentrytitle></citerefentry> command. Then the <function>glEvalPoint2</function> command is equivalent to calling <programlisting> glEvalCoord2( <mml:math> <!-- i \cdot DELTA u + u sub 1 :--> <mml:mrow> <mml:mrow> <mml:mn>i</mml:mn> <mml:mo>·</mml:mo> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub> <mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> <mml:mo>,</mml:mo> <!-- j \cdot DELTA v + v sub 1 :--> <mml:mrow> <mml:mn>j</mml:mn> <mml:mo>·</mml:mo> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">v</mml:mi> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub> <mml:mi mathvariant="italic">v</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:math> ); </programlisting> The only absolute numeric requirements are that if <inlineequation><mml:math> <!-- eqn: i = n:--> <mml:mrow> <mml:mi mathvariant="italic">i</mml:mi> <mml:mo>=</mml:mo> <mml:mi mathvariant="italic">n</mml:mi> </mml:mrow> </mml:math></inlineequation>, then the value computed from <inlineequation><mml:math> <!-- eqn: i cdot DELTA u + u sub 1:--> <mml:mrow> <mml:mrow> <mml:mi mathvariant="italic">i</mml:mi> <mml:mo>·</mml:mo> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">u</mml:mi> </mml:mrow> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:math></inlineequation> is exactly <inlineequation><mml:math> <!-- eqn: u sub 2:--> <mml:msub><mml:mi mathvariant="italic">u</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation>, and if <inlineequation><mml:math> <!-- eqn: j = m:--> <mml:mrow> <mml:mi mathvariant="italic">j</mml:mi> <mml:mo>=</mml:mo> <mml:mi mathvariant="italic">m</mml:mi> </mml:mrow> </mml:math></inlineequation>, then the value computed from <inlineequation><mml:math> <!-- eqn: j cdot DELTA v + v sub 1:--> <mml:mrow> <mml:mrow> <mml:mi mathvariant="italic">j</mml:mi> <mml:mo>·</mml:mo> <mml:mrow> <mml:mo>Δ</mml:mo> <mml:mi mathvariant="italic">v</mml:mi> </mml:mrow> </mml:mrow> <mml:mo>+</mml:mo> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>1</mml:mn> </mml:msub> </mml:mrow> </mml:math></inlineequation> is exactly <inlineequation><mml:math> <!-- eqn: v sub 2:--> <mml:msub><mml:mi mathvariant="italic">v</mml:mi> <mml:mn>2</mml:mn> </mml:msub> </mml:math></inlineequation>. </para> </refsect1> <refsect1 id="associatedgets"><title>Associated Gets</title> <para> <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAP1_GRID_DOMAIN</constant> </para> <para> <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAP2_GRID_DOMAIN</constant> </para> <para> <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAP1_GRID_SEGMENTS</constant> </para> <para> <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAP2_GRID_SEGMENTS</constant> </para> </refsect1> <refsect1 id="seealso"><title>See Also</title> <para> <citerefentry><refentrytitle>glEvalCoord</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glEvalMesh</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glMapGrid</refentrytitle></citerefentry> </para> </refsect1> <refsect1 id="Copyright"><title>Copyright</title> <para> Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>. </para> </refsect1> </refentry>