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
Opcode::Segment Class Reference

#include <Opcode.h>

Inheritance diagram for Opcode::Segment:
Opcode::LSS

Public Member Functions

inline_ Segment ()
 Constructor. More...
 
inline_ Segment (const Point &p0, const Point &p1)
 Constructor. More...
 
inline_ Segment (const Segment &seg)
 Copy constructor. More...
 
inline_ ~Segment ()
 Destructor. More...
 
inline_ const PointGetOrigin () const
 
inline_ Point ComputeDirection () const
 
inline_ void ComputeDirection (Point &dir) const
 
inline_ float ComputeLength () const
 
inline_ float ComputeSquareLength () const
 
inline_ void SetOriginDirection (const Point &origin, const Point &direction)
 
inline_ void ComputePoint (Point &pt, float t) const
 
float SquareDistance (const Point &point, float *t=null) const
 
inline_ float Distance (const Point &point, float *t=null) const
 

Public Attributes

Point mP0
 Start of segment. More...
 
Point mP1
 End of segment. More...
 

Detailed Description

Definition at line 16 of file Opcode.h.

Constructor & Destructor Documentation

inline_ Opcode::Segment::Segment ( )
inline

Constructor.

Definition at line 20 of file Opcode.h.

39 {
inline_ Opcode::Segment::Segment ( const Point p0,
const Point p1 
)
inline

Constructor.

Definition at line 22 of file Opcode.h.

39 {
inline_ Opcode::Segment::Segment ( const Segment seg)
inline

Copy constructor.

Definition at line 24 of file Opcode.h.

39 {
inline_ Opcode::Segment::~Segment ( )
inline

Destructor.

Definition at line 26 of file Opcode.h.

39 {

Member Function Documentation

inline_ Point Opcode::Segment::ComputeDirection ( ) const
inline

Definition at line 29 of file Opcode.h.

39 {
inline_ void Opcode::Segment::ComputeDirection ( Point dir) const
inline

Definition at line 30 of file Opcode.h.

39 {
inline_ float Opcode::Segment::ComputeLength ( ) const
inline

Definition at line 31 of file Opcode.h.

39 {
inline_ void Opcode::Segment::ComputePoint ( Point pt,
float  t 
) const
inline

Computes a point on the segment

Parameters
pt[out] point on segment
t[in] point's parameter [t=0 => pt = mP0, t=1 => pt = mP1]

Definition at line 47 of file Opcode.h.

inline_ float Opcode::Segment::ComputeSquareLength ( ) const
inline

Definition at line 32 of file Opcode.h.

39 {
inline_ float Opcode::Segment::Distance ( const Point point,
float t = null 
) const
inline

Definition at line 50 of file Opcode.h.

inline_ const Point& Opcode::Segment::GetOrigin ( ) const
inline

Definition at line 28 of file Opcode.h.

39 {
inline_ void Opcode::Segment::SetOriginDirection ( const Point origin,
const Point direction 
)
inline

Definition at line 34 of file Opcode.h.

39  {
float Segment::SquareDistance ( const Point point,
float t = null 
) const

Definition at line 30 of file IceSegment.cpp.

References f, mP0, mP1, and Opcode::Point::SquareMagnitude().

31 {
32  Point Diff = point - mP0;
33  Point Dir = mP1 - mP0;
34  float fT = Diff | Dir;
35 
36  if(fT<=0.0f)
37  {
38  fT = 0.0f;
39  }
40  else
41  {
42  float SqrLen= Dir.SquareMagnitude();
43  if(fT>=SqrLen)
44  {
45  fT = 1.0f;
46  Diff -= Dir;
47  }
48  else
49  {
50  fT /= SqrLen;
51  Diff -= fT*Dir;
52  }
53  }
54 
55  if(t) *t = fT;
56 
57  return Diff.SquareMagnitude();
58 }

Member Data Documentation

Point Opcode::Segment::mP0

Start of segment.

Definition at line 52 of file Opcode.h.

Referenced by SquareDistance().

Point Opcode::Segment::mP1

End of segment.

Definition at line 53 of file Opcode.h.

Referenced by SquareDistance().


The documentation for this class was generated from the following files: