Difference between revisions of "Documentation Talk:Reference Section 2.1"

From POV-Wiki
Jump to navigation Jump to search
(Vector Expressions: fix indentation of "NUMERIC_FACTOR:" in syntax)
m (follow up)
 
(2 intermediate revisions by 2 users not shown)
Line 85: Line 85:
 
   filter Filter_Amount  |
 
   filter Filter_Amount  |
 
   transmit Transmit_Amount
 
   transmit Transmit_Amount
 +
</pre>
 +
 +
:* thanks ... both these have been done --[[User:Jholsenback|jholsenback]] 14:36, 20 May 2010 (UTC)
 +
 +
== frame_number  ==
 +
 +
The description doesn't say whether frame_number starts at 0 or 1, or is based off of +KFI and +KFF. Not sure myself. [[User:SharkD|SharkD]] 11:09, 20 June 2010 (UTC)
 +
 +
* Doesn't this example already say that? --[[User:Jholsenback|jholsenback]] 12:21, 20 June 2010 (UTC)
 +
<pre>
 +
#if(frame_number=1)
 +
  //stuff for first image or frame
 +
#end
 +
#if(frame_number=2)
 +
  //stuff for second image or frame
 +
#end
 +
#if(frame_number=n)
 +
  //stuff for n th image or frame
 +
#end
 
</pre>
 
</pre>

Latest revision as of 12:21, 20 June 2010

Vector Expressions

POV-Ray often requires you to specify a vector. A vector is a set of related float values. Vectors may be specified using literals, identifiers or functions which return vector values. You may also create very complex vector expressions from combinations of any of these using various familiar operators.

POV-Ray vectors may have from two to five components but the vast majority of vectors have three components. Unless specified otherwise, you should assume that the word "vector" means a three component vector. POV-Ray operates in a 3D x, y, z coordinate system and you will use three component vectors to specify x, y and z values. In some places POV-Ray needs only two coordinates. These are often specified by a 2D vector called an UV vector. Fractal objects use 4D vectors. Color expressions use 5D vectors but allow you to specify 3, 4 or 5 components and use default values for the unspecified components. Unless otherwise noted, all 2, 4 or 5 component vectors work just like 3D vectors but they have a different number of components.

The syntax for combining vector literals into vector expressions is almost identical to the rules for float expressions. In the syntax for vector expressions below, some of the syntax items are defined in the section for float expressions. See "Float Expressions" for those definitions. Detailed explanations of vector-specific issues are given in the following sub-sections.

VECTOR:
  NUMERIC_TERM [SIGN NUMERIC_TERM]
  NUMERIC_TERM:
  NUMERIC_FACTOR [MULT NUMERIC_FACTOR]
NUMERIC_FACTOR:
  VECTOR_LITERAL        | 
  VECTOR_IDENTIFIER     | 
  SIGN NUMERIC_FACTOR   | 
  VECTOR_FUNCTION       |
  VECTOR_BUILT-IN_IDENT | 
  ( FULL_EXPRESSION )   | 
  ! NUMERIC_FACTOR      | 
  FLOAT
VECTOR_LITERAL:
  < FLOAT , FLOAT , FLOAT >
VECTOR_FUNCTION:
  min_extent ( OBJECT_IDENTIFIER )         |
  max_extent ( OBJECT_IDENTIFIER )         |
  trace(OBJECT_IDENTIFIER, VECTOR, VECTOR, [VECTOR_IDENTIFIER] )|
  vaxis_rotate( VECTOR , VECTOR , FLOAT )  |
  vcross( VECTOR , VECTOR )                |
  vrotate( VECTOR , VECTOR )               | 
  vnormalize( VECTOR )                     |
  vturbulence(FLOAT, FLOAT, FLOAT, VECTOR)
VECTOR_BUILT-IN_IDENT:
  x | y | z | t | u | v

...

Specifying Colors

COLOR:
  COLOR_BODY             |
  color COLOR_BODY       | (this means the keyword color or
  colour COLOR_BODY         colour may optionally precede
                            any color specification)
COLOR_BODY:
  COLOR_VECTOR           |
  COLOR_KEYWORD_GROUP    |
  COLOR_IDENTIFIER
COLOR_VECTOR:
  rgb <3_Term_Vector>  |
  rgbf <4_Term_Vector> |
  rgbt <4_Term_Vector> |
  [ rgbft ] <5_Term_Vector>
COLOR_KEYWORD_GROUP:
  [ COLOR_KEYWORD_ITEM ]...
  COLOR_KEYWORD_ITEM:
  COLOR_IDENTIFIER       |
  red Red_Amount         |
  blue Blue_Amount       |
  green Green_Amount     |
  filter Filter_Amount   |
  transmit Transmit_Amount
  • thanks ... both these have been done --jholsenback 14:36, 20 May 2010 (UTC)

frame_number

The description doesn't say whether frame_number starts at 0 or 1, or is based off of +KFI and +KFF. Not sure myself. SharkD 11:09, 20 June 2010 (UTC)

  • Doesn't this example already say that? --jholsenback 12:21, 20 June 2010 (UTC)
#if(frame_number=1)
  //stuff for first image or frame
#end
#if(frame_number=2)
  //stuff for second image or frame
#end
#if(frame_number=n)
  //stuff for n th image or frame
#end