Home | History | Annotate | Download | only in reference
      1 page.title=RenderScript Quaternion Functions
      2 
      3 @jd:body
      4 
      5 <div class='renderscript'>
      6 <h2>Overview</h2>
      7 <p> The following functions manipulate quaternions.
      8 </p>
      9 <h2>Summary</h2>
     10 <table class='jd-sumtable'><tbody>
     11   <tr><th colspan='2'>Functions</th></tr>
     12   <tr class='alt-color api apilevel-1'>
     13     <td class='jd-linkcol'>
     14       <a href='rs_quaternion.html#android_rs:rsQuaternionAdd'>rsQuaternionAdd</a>
     15     </td>
     16     <td class='jd-descrcol' width='100%'>
     17       Add two quaternions
     18     </td>
     19   </tr>
     20   <tr class='alt-color api apilevel-1'>
     21     <td class='jd-linkcol'>
     22       <a href='rs_quaternion.html#android_rs:rsQuaternionConjugate'>rsQuaternionConjugate</a>
     23     </td>
     24     <td class='jd-descrcol' width='100%'>
     25       Conjugate a quaternion
     26     </td>
     27   </tr>
     28   <tr class='alt-color api apilevel-1'>
     29     <td class='jd-linkcol'>
     30       <a href='rs_quaternion.html#android_rs:rsQuaternionDot'>rsQuaternionDot</a>
     31     </td>
     32     <td class='jd-descrcol' width='100%'>
     33       Dot product of two quaternions
     34     </td>
     35   </tr>
     36   <tr class='alt-color api apilevel-1'>
     37     <td class='jd-linkcol'>
     38       <a href='rs_quaternion.html#android_rs:rsQuaternionGetMatrixUnit'>rsQuaternionGetMatrixUnit</a>
     39     </td>
     40     <td class='jd-descrcol' width='100%'>
     41       Get a rotation matrix from a quaternion
     42     </td>
     43   </tr>
     44   <tr class='alt-color api apilevel-1'>
     45     <td class='jd-linkcol'>
     46       <a href='rs_quaternion.html#android_rs:rsQuaternionLoadRotate'>rsQuaternionLoadRotate</a>
     47     </td>
     48     <td class='jd-descrcol' width='100%'>
     49       Create a rotation quaternion
     50     </td>
     51   </tr>
     52   <tr class='alt-color api apilevel-1'>
     53     <td class='jd-linkcol'>
     54       <a href='rs_quaternion.html#android_rs:rsQuaternionLoadRotateUnit'>rsQuaternionLoadRotateUnit</a>
     55     </td>
     56     <td class='jd-descrcol' width='100%'>
     57       Quaternion that represents a rotation about an arbitrary unit vector
     58     </td>
     59   </tr>
     60   <tr class='alt-color api apilevel-1'>
     61     <td class='jd-linkcol'>
     62       <a href='rs_quaternion.html#android_rs:rsQuaternionMultiply'>rsQuaternionMultiply</a>
     63     </td>
     64     <td class='jd-descrcol' width='100%'>
     65       Multiply a quaternion by a scalar or another quaternion
     66     </td>
     67   </tr>
     68   <tr class='alt-color api apilevel-1'>
     69     <td class='jd-linkcol'>
     70       <a href='rs_quaternion.html#android_rs:rsQuaternionNormalize'>rsQuaternionNormalize</a>
     71     </td>
     72     <td class='jd-descrcol' width='100%'>
     73       Normalize a quaternion
     74     </td>
     75   </tr>
     76   <tr class='alt-color api apilevel-1'>
     77     <td class='jd-linkcol'>
     78       <a href='rs_quaternion.html#android_rs:rsQuaternionSet'>rsQuaternionSet</a>
     79     </td>
     80     <td class='jd-descrcol' width='100%'>
     81       Create a quaternion
     82     </td>
     83   </tr>
     84   <tr class='alt-color api apilevel-1'>
     85     <td class='jd-linkcol'>
     86       <a href='rs_quaternion.html#android_rs:rsQuaternionSlerp'>rsQuaternionSlerp</a>
     87     </td>
     88     <td class='jd-descrcol' width='100%'>
     89       Spherical linear interpolation between two quaternions
     90     </td>
     91   </tr>
     92 </tbody></table>
     93 <h2>Functions</h2>
     94 <a name='android_rs:rsQuaternionAdd'></a>
     95 <div class='jd-details'>
     96   <h4 class='jd-details-title'>
     97     <span class='sympad'>rsQuaternionAdd</span>
     98     <span class='normal'>: Add two quaternions</span>
     99   </h4>
    100   <div class='jd-details-descr'>
    101     <table class='jd-tagtable'><tbody>
    102       <tr>
    103         <td>void rsQuaternionAdd(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* rhs);
    104 </td>
    105         <td>        </td>
    106       </tr>
    107     </tbody></table>
    108   </div>
    109   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    110     <table class='jd-tagtable'><tbody>
    111     <tr><th>q</th><td>Destination quaternion to add to.</td></tr>
    112     <tr><th>rhs</th><td>Quaternion to add.</td></tr>
    113     </tbody></table>
    114   </div>
    115   <div class='jd-tagdata jd-tagdescr'>
    116 <p> Adds two quaternions, i.e. <code>*q += *rhs;</code>
    117 </p>
    118   </div>
    119 </div>
    120 
    121 <a name='android_rs:rsQuaternionConjugate'></a>
    122 <div class='jd-details'>
    123   <h4 class='jd-details-title'>
    124     <span class='sympad'>rsQuaternionConjugate</span>
    125     <span class='normal'>: Conjugate a quaternion</span>
    126   </h4>
    127   <div class='jd-details-descr'>
    128     <table class='jd-tagtable'><tbody>
    129       <tr>
    130         <td>void rsQuaternionConjugate(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q);
    131 </td>
    132         <td>        </td>
    133       </tr>
    134     </tbody></table>
    135   </div>
    136   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    137     <table class='jd-tagtable'><tbody>
    138     <tr><th>q</th><td>Quaternion to modify.</td></tr>
    139     </tbody></table>
    140   </div>
    141   <div class='jd-tagdata jd-tagdescr'>
    142 <p> Conjugates the quaternion.
    143 </p>
    144   </div>
    145 </div>
    146 
    147 <a name='android_rs:rsQuaternionDot'></a>
    148 <div class='jd-details'>
    149   <h4 class='jd-details-title'>
    150     <span class='sympad'>rsQuaternionDot</span>
    151     <span class='normal'>: Dot product of two quaternions</span>
    152   </h4>
    153   <div class='jd-details-descr'>
    154     <table class='jd-tagtable'><tbody>
    155       <tr>
    156         <td>float rsQuaternionDot(const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q0, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q1);
    157 </td>
    158         <td>        </td>
    159       </tr>
    160     </tbody></table>
    161   </div>
    162   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    163     <table class='jd-tagtable'><tbody>
    164     <tr><th>q0</th><td>First quaternion.</td></tr>
    165     <tr><th>q1</th><td>Second quaternion.</td></tr>
    166     </tbody></table>
    167   </div>
    168   <div class='jd-tagdata jd-tagdescr'>
    169 <p> Returns the dot product of two quaternions.
    170 </p>
    171   </div>
    172 </div>
    173 
    174 <a name='android_rs:rsQuaternionGetMatrixUnit'></a>
    175 <div class='jd-details'>
    176   <h4 class='jd-details-title'>
    177     <span class='sympad'>rsQuaternionGetMatrixUnit</span>
    178     <span class='normal'>: Get a rotation matrix from a quaternion</span>
    179   </h4>
    180   <div class='jd-details-descr'>
    181     <table class='jd-tagtable'><tbody>
    182       <tr>
    183         <td>void rsQuaternionGetMatrixUnit(<a href='rs_value_types.html#android_rs:rs_matrix4x4'>rs_matrix4x4</a>* m, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q);
    184 </td>
    185         <td>        </td>
    186       </tr>
    187     </tbody></table>
    188   </div>
    189   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    190     <table class='jd-tagtable'><tbody>
    191     <tr><th>m</th><td>Resulting matrix.</td></tr>
    192     <tr><th>q</th><td>Normalized quaternion.</td></tr>
    193     </tbody></table>
    194   </div>
    195   <div class='jd-tagdata jd-tagdescr'>
    196 <p> Computes a rotation matrix from the normalized quaternion.
    197 </p>
    198   </div>
    199 </div>
    200 
    201 <a name='android_rs:rsQuaternionLoadRotate'></a>
    202 <div class='jd-details'>
    203   <h4 class='jd-details-title'>
    204     <span class='sympad'>rsQuaternionLoadRotate</span>
    205     <span class='normal'>: Create a rotation quaternion</span>
    206   </h4>
    207   <div class='jd-details-descr'>
    208     <table class='jd-tagtable'><tbody>
    209       <tr>
    210         <td>void rsQuaternionLoadRotate(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, float rot, float x, float y, float z);
    211 </td>
    212         <td>        </td>
    213       </tr>
    214     </tbody></table>
    215   </div>
    216   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    217     <table class='jd-tagtable'><tbody>
    218     <tr><th>q</th><td>Destination quaternion.</td></tr>
    219     <tr><th>rot</th><td>Angle to rotate by.</td></tr>
    220     <tr><th>x</th><td>X component of a vector.</td></tr>
    221     <tr><th>y</th><td>Y component of a vector.</td></tr>
    222     <tr><th>z</th><td>Z component of a vector.</td></tr>
    223     </tbody></table>
    224   </div>
    225   <div class='jd-tagdata jd-tagdescr'>
    226 <p> Loads a quaternion that represents a rotation about an arbitrary vector
    227 (doesn't have to be unit)
    228 </p>
    229   </div>
    230 </div>
    231 
    232 <a name='android_rs:rsQuaternionLoadRotateUnit'></a>
    233 <div class='jd-details'>
    234   <h4 class='jd-details-title'>
    235     <span class='sympad'>rsQuaternionLoadRotateUnit</span>
    236     <span class='normal'>: Quaternion that represents a rotation about an arbitrary unit vector</span>
    237   </h4>
    238   <div class='jd-details-descr'>
    239     <table class='jd-tagtable'><tbody>
    240       <tr>
    241         <td>void rsQuaternionLoadRotateUnit(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, float rot, float x, float y, float z);
    242 </td>
    243         <td>        </td>
    244       </tr>
    245     </tbody></table>
    246   </div>
    247   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    248     <table class='jd-tagtable'><tbody>
    249     <tr><th>q</th><td>Destination quaternion.</td></tr>
    250     <tr><th>rot</th><td>Angle to rotate by, in radians.</td></tr>
    251     <tr><th>x</th><td>X component of the vector.</td></tr>
    252     <tr><th>y</th><td>Y component of the vector.</td></tr>
    253     <tr><th>z</th><td>Z component of the vector.</td></tr>
    254     </tbody></table>
    255   </div>
    256   <div class='jd-tagdata jd-tagdescr'>
    257 <p> Loads a quaternion that represents a rotation about an arbitrary unit vector.
    258 </p>
    259   </div>
    260 </div>
    261 
    262 <a name='android_rs:rsQuaternionMultiply'></a>
    263 <div class='jd-details'>
    264   <h4 class='jd-details-title'>
    265     <span class='sympad'>rsQuaternionMultiply</span>
    266     <span class='normal'>: Multiply a quaternion by a scalar or another quaternion</span>
    267   </h4>
    268   <div class='jd-details-descr'>
    269     <table class='jd-tagtable'><tbody>
    270       <tr>
    271         <td>void rsQuaternionMultiply(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* rhs);
    272 </td>
    273         <td>        </td>
    274       </tr>
    275       <tr>
    276         <td>void rsQuaternionMultiply(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, float scalar);
    277 </td>
    278         <td>        </td>
    279       </tr>
    280     </tbody></table>
    281   </div>
    282   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    283     <table class='jd-tagtable'><tbody>
    284     <tr><th>q</th><td>Destination quaternion.</td></tr>
    285     <tr><th>scalar</th><td>Scalar to multiply the quaternion by.</td></tr>
    286     <tr><th>rhs</th><td>Quaternion to multiply the destination quaternion by.</td></tr>
    287     </tbody></table>
    288   </div>
    289   <div class='jd-tagdata jd-tagdescr'>
    290 <p> Multiplies a quaternion by a scalar or by another quaternion, e.g
    291 <code>*q = *q * scalar;</code> or <code>*q = *q * *rhs;</code>.
    292 </p>
    293   </div>
    294 </div>
    295 
    296 <a name='android_rs:rsQuaternionNormalize'></a>
    297 <div class='jd-details'>
    298   <h4 class='jd-details-title'>
    299     <span class='sympad'>rsQuaternionNormalize</span>
    300     <span class='normal'>: Normalize a quaternion</span>
    301   </h4>
    302   <div class='jd-details-descr'>
    303     <table class='jd-tagtable'><tbody>
    304       <tr>
    305         <td>void rsQuaternionNormalize(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q);
    306 </td>
    307         <td>        </td>
    308       </tr>
    309     </tbody></table>
    310   </div>
    311   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    312     <table class='jd-tagtable'><tbody>
    313     <tr><th>q</th><td>Quaternion to normalize.</td></tr>
    314     </tbody></table>
    315   </div>
    316   <div class='jd-tagdata jd-tagdescr'>
    317 <p> Normalizes the quaternion.
    318 </p>
    319   </div>
    320 </div>
    321 
    322 <a name='android_rs:rsQuaternionSet'></a>
    323 <div class='jd-details'>
    324   <h4 class='jd-details-title'>
    325     <span class='sympad'>rsQuaternionSet</span>
    326     <span class='normal'>: Create a quaternion</span>
    327   </h4>
    328   <div class='jd-details-descr'>
    329     <table class='jd-tagtable'><tbody>
    330       <tr>
    331         <td>void rsQuaternionSet(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* rhs);
    332 </td>
    333         <td>        </td>
    334       </tr>
    335       <tr>
    336         <td>void rsQuaternionSet(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, float w, float x, float y, float z);
    337 </td>
    338         <td>        </td>
    339       </tr>
    340     </tbody></table>
    341   </div>
    342   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    343     <table class='jd-tagtable'><tbody>
    344     <tr><th>q</th><td>Destination quaternion.</td></tr>
    345     <tr><th>w</th><td>W component.</td></tr>
    346     <tr><th>x</th><td>X component.</td></tr>
    347     <tr><th>y</th><td>Y component.</td></tr>
    348     <tr><th>z</th><td>Z component.</td></tr>
    349     <tr><th>rhs</th><td>Source quaternion.</td></tr>
    350     </tbody></table>
    351   </div>
    352   <div class='jd-tagdata jd-tagdescr'>
    353 <p> Creates a quaternion from its four components or from another quaternion.
    354 </p>
    355   </div>
    356 </div>
    357 
    358 <a name='android_rs:rsQuaternionSlerp'></a>
    359 <div class='jd-details'>
    360   <h4 class='jd-details-title'>
    361     <span class='sympad'>rsQuaternionSlerp</span>
    362     <span class='normal'>: Spherical linear interpolation between two quaternions</span>
    363   </h4>
    364   <div class='jd-details-descr'>
    365     <table class='jd-tagtable'><tbody>
    366       <tr>
    367         <td>void rsQuaternionSlerp(<a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q0, const <a href='rs_value_types.html#android_rs:rs_quaternion'>rs_quaternion</a>* q1, float t);
    368 </td>
    369         <td>        </td>
    370       </tr>
    371     </tbody></table>
    372   </div>
    373   <div class='jd-tagdata'>    <h5 class='jd-tagtitle'>Parameters</h5>
    374     <table class='jd-tagtable'><tbody>
    375     <tr><th>q</th><td>Result quaternion from the interpolation.</td></tr>
    376     <tr><th>q0</th><td>First input quaternion.</td></tr>
    377     <tr><th>q1</th><td>Second input quaternion.</td></tr>
    378     <tr><th>t</th><td>How much to interpolate by.</td></tr>
    379     </tbody></table>
    380   </div>
    381   <div class='jd-tagdata jd-tagdescr'>
    382 <p> Performs spherical linear interpolation between two quaternions.
    383 </p>
    384   </div>
    385 </div>
    386 
    387 </div>
    388