1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
5<META name="GENERATOR" content="Microsoft FrontPage 5.0">
6<META http-equiv="Content-Style-Type" content="text/css">
7<LINK rel="stylesheet" type="text/css" href="../../CSS/revolution.css">
8<TITLE>GXInitLightPosv</TITLE>
9</HEAD>
10<BODY>
11<H1 align="left">GXInitLightPosv</H1>
12<H2>C Specification</H2>
13<DL>
14  <DD>
15<PRE><CODE>#include &lt;revolution/gx.h&gt;</CODE></PRE>
16  <DD>
17<PRE><CODE>#define GXInitLightPosv(lo, vec) \
18(GXInitLightPos((lo), *(f32*)(vec), *((f32*)(vec)+1), *((f32*)(vec)+2)))</CODE></PRE>
19</DL>
20<H2>Arguments</H2>
21<TABLE border="1" cellpadding="3" cellspacing="0.1">
22  <TBODY>
23    <TR>
24<TD width="120" bgcolor="#ffffe8"><EM><STRONG><CODE>lo</CODE></STRONG></EM></TD>
25<TD width="520">Pointer to a light object.</TD>
26    </TR>
27    <TR>
28<TD width="120" bgcolor="#ffffe8"><EM><STRONG><CODE>vec</CODE></STRONG></EM></TD>
29<TD width="520">Position vector. <BR>You may use an array of <CODE>f32</CODE> type or structure.</TD>
30    </TR>
31  </TBODY>
32</TABLE>
33<H2>Return Values</H2>
34<P>None.</P>
35<H2>Description</H2>
36<P>This macro function sets the position of the light in the light object using a vector structure.&nbsp;The Revolution graphics hardware supports local diffuse lights. The position of the light should be in the same space as a transformed vertex position (i.e., view space).</P>
37<P>The memory for the light object must be allocated by the application;  this function does not load any hardware registers.&nbsp;To load a light object into a hardware light, use <a href="GXLoadLightObjImm.html"><code>GXLoadLightObjImm</code></a> or <code><a href="GXLoadLightObjIndx.html">GXLoadLightObjIndx</a></code>.</P>
38<H2>Example</H2>
39<P>You may set an array of f32 values as <strong><em>vec </em></strong>argument<strong><em>.</em></strong></P>
40<P><font size="2"><code>// Use an array<br> f32&nbsp; pos[3] = { 0.0f, 0.0f, 100.0f };<br> GXLightObj&nbsp; myLightObj;<br> <br> GXInitLightPosv( &amp;myLightObj, pos );</code></font></P>
41<P>You can also use a structure which contains three f32 members (like Vec type of matrix-vector library).</P>
42<P><font size="2"><code>// Use a structure<br> typedef structure<br> {<br> &nbsp;&nbsp;&nbsp; f32&nbsp; x, y, z;<br> } Point3d;<br> <br> Point3d&nbsp;&nbsp;&nbsp;&nbsp; pos;<br> GXLightObj&nbsp; myLightObj;<br> <br> pos.x = pos.y = pos.z = 0.0f;<br> GXInitLightPosv( &amp;myLightObj, &amp;pos );</code></font></P>
43<H2>See Also</H2>
44<P><CODE><A href="GXInitLightPos.html">GXInitLightPos</A></CODE></P>
45<P><A href="GXLightObjInitFlow.html">GXLightObj Initialization Flow</A></P>
46<H2>Revision History</H2>
47<P>03/01/2006 Initial version.</P>
48</BODY>
49</HTML>