Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IceRay.h File Reference

Go to the source code of this file.

Classes

class  Ray
 

Macros

#define __ICERAY_H__
 

Functions

inline_ void ComputeReflexionVector (Point &reflected, const Point &incoming_dir, const Point &outward_normal)
 
inline_ void ComputeReflexionVector (Point &reflected, const Point &source, const Point &impact, const Point &normal)
 
inline_ void DecomposeVector (Point &normal_compo, Point &tangent_compo, const Point &outward_dir, const Point &outward_normal)
 
inline_ void ComputeLocalDirection (Point &local_dir, const Point &world_dir, const Matrix4x4 &world)
 
inline_ void ComputeLocalPoint (Point &local_pt, const Point &world_pt, const Matrix4x4 &world)
 
inline_ void ComputeLocalRay (Ray &local_ray, const Ray &world_ray, const Matrix4x4 &world)
 

Detailed Description

Contains code for rays.

Author
Pierre Terdiman
Date
April, 4, 2000

Definition in file IceRay.h.

Macro Definition Documentation

#define __ICERAY_H__

Definition at line 14 of file Opcode.h.

Function Documentation

inline_ void ComputeLocalDirection ( Point local_dir,
const Point world_dir,
const Matrix4x4 world 
)

Transforms a direction vector from world space to local space

Parameters
local_dir[out] direction vector in local space
world_dir[in] direction vector in world space
world[in] world transform

Definition at line 59 of file IceRay.h.

60  {
61  // Get world direction back in local space
62 // Matrix3x3 InvWorld = world;
63 // local_dir = InvWorld * world_dir;
64  local_dir = Matrix3x3(world) * world_dir;
65  }
inline_ void ComputeLocalPoint ( Point local_pt,
const Point world_pt,
const Matrix4x4 world 
)

Transforms a position vector from world space to local space

Parameters
local_pt[out] position vector in local space
world_pt[in] position vector in world space
world[in] world transform

Definition at line 75 of file IceRay.h.

76  {
77  // Get world vertex back in local space
78  Matrix4x4 InvWorld = world;
79  InvWorld.Invert();
80  local_pt = world_pt * InvWorld;
81  }
inline_ void ComputeLocalRay ( Ray local_ray,
const Ray world_ray,
const Matrix4x4 world 
)

Transforms a ray from world space to local space

Parameters
local_ray[out] ray in local space
world_ray[in] ray in world space
world[in] world transform

Definition at line 91 of file IceRay.h.

92  {
93  // Get world ray back in local space
94  ComputeLocalDirection(local_ray.mDir, world_ray.mDir, world);
95  ComputeLocalPoint(local_ray.mOrig, world_ray.mOrig, world);
96  }
inline_ void ComputeReflexionVector ( Point reflected,
const Point incoming_dir,
const Point outward_normal 
)

Definition at line 34 of file IceRay.h.

35  {
36  reflected = incoming_dir - outward_normal * 2.0f * (incoming_dir|outward_normal);
37  }
inline_ void ComputeReflexionVector ( Point reflected,
const Point source,
const Point impact,
const Point normal 
)

Definition at line 39 of file IceRay.h.

References V.

40  {
41  Point V = impact - source;
42  reflected = V - normal * 2.0f * (V|normal);
43  }
inline_ void DecomposeVector ( Point normal_compo,
Point tangent_compo,
const Point outward_dir,
const Point outward_normal 
)

Definition at line 45 of file IceRay.h.

46  {
47  normal_compo = outward_normal * (outward_dir|outward_normal);
48  tangent_compo = outward_dir - normal_compo;
49  }