Difference between revisions of "SL Cert - Basic LSL Rotations"

From Second Life Wiki
Jump to navigation Jump to search
Line 3: Line 3:


== Basic Requirements ==
== Basic Requirements ==
=== Basic definition of position ===
=== Basic definition of position ===
* Absolute position  
* Absolute position  
Line 14: Line 15:
=== Changing position and rotation via the edit window ===
=== Changing position and rotation via the edit window ===


=== Vectors and Operations
* Definition of vector in LSL
* Working with components
* Linear combinations of vectors
* Dot product
* Cross product
* Unit vectors


== Intermediate Requirements ==
== Intermediate Requirements ==
Line 44: Line 53:
** Multiplication and division of rotations
** Multiplication and division of rotations
** Difference between left and right multiplication
** Difference between left and right multiplication
=== Working with vectors ===
* Finding a vector component in a given direction
* Finding a vector perpendicular to two vectors.
* Finding a vector perpindicular to a plane.


== Advanced Requirements ==
== Advanced Requirements ==
Line 53: Line 67:
** Relative coordinates (in a link set)
** Relative coordinates (in a link set)


=== Smooth movements in absolute coordinates ===
=== Smooth movements ===
 
==== Absolute coordinates ====
* Rotate and movement around the edge of a prim
* Rotate and movement around the edge of a prim
* Rotate and move around a fixed point
* Rotate and move around a fixed point
* Rotate and move around a predefined axis
* Rotate and move around a predefined axis


=== Smooth movements in local coordinates ===
==== Local coordinates (within a linkset) ====
* Rotate and movement around the edge of a prim
* Rotate and movement around the edge of a prim
* Rotate and move around a fixed point
* Rotate and move around a fixed point
Line 64: Line 80:


=== Transitions ===
=== Transitions ===
* Smooth movements between two different orientations
* Smooth movements from one orientation (position and rotation) to another.
 
=== Determining specific orientations ===
 
==== Absolute coordinates ====
* Given a point rotate an object to face the point.
* Given two points rotate an object to face perpindicular to the two points.
 
==== Local  coordinates to local ====
* Given a point rotate an object to face a local point.
* Given two local points rotate an object to face perpindicular to the two points.
 
==== Local  coordinates to absolute ====
* Given a point rotate an object to face a point in absolute coordinates.
* Given two absolute points rotate a local object to face perpindicular to the two points.

Revision as of 03:59, 22 February 2009

This is an initial take on a set of guidelines for scripting position and rotations. It still needs a lot of work and a good deal of thought.


Basic Requirements

Basic definition of position

  • Absolute position
  • Relative position

Basic definition of a rotation

  • Euler
  • Axis and angle
  • Quarternions

Changing position and rotation via the edit window

=== Vectors and Operations

  • Definition of vector in LSL
  • Working with components
  • Linear combinations of vectors
  • Dot product
  • Cross product
  • Unit vectors

Intermediate Requirements

Reference Frames

  • Global
  • Local

Basic commands to get position information

  • llGetPos
  • llGetLocalPos
  • llGetRootPosition

Basic commands to get rotation information

  • llGetRot
  • llGetLocalRot
  • llGetRootRotation

Basic commands for changing position

  • llSetPos
  • llSetPrimitiveParams
  • llSetPos within different reference frames.

Basic commands for changing rotation

  • llSetRot
  • llSetLocalRot
  • llSetPrimitiveParams
  • How the commands work in different reference frames.
  • Rotations
    • Multiplication and division of rotations
    • Difference between left and right multiplication

Working with vectors

  • Finding a vector component in a given direction
  • Finding a vector perpendicular to two vectors.
  • Finding a vector perpindicular to a plane.

Advanced Requirements

Rotations and position

  • using llSetPrimitiveParams to move and rotate at the same time
  • Rotating and moving a prim to a specified orientation
    • Absolute coordinates
    • Relative coordinates (in a link set)

Smooth movements

Absolute coordinates

  • Rotate and movement around the edge of a prim
  • Rotate and move around a fixed point
  • Rotate and move around a predefined axis

Local coordinates (within a linkset)

  • Rotate and movement around the edge of a prim
  • Rotate and move around a fixed point
  • Rotate and move around a predefined axis

Transitions

  • Smooth movements from one orientation (position and rotation) to another.

Determining specific orientations

Absolute coordinates

  • Given a point rotate an object to face the point.
  • Given two points rotate an object to face perpindicular to the two points.

Local coordinates to local

  • Given a point rotate an object to face a local point.
  • Given two local points rotate an object to face perpindicular to the two points.

Local coordinates to absolute

  • Given a point rotate an object to face a point in absolute coordinates.
  • Given two absolute points rotate a local object to face perpindicular to the two points.