VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
geometry
plane.h
Go to the documentation of this file.
1
/*********************************************************************
2
** Copyright (c) 1998 MaK Technologies, Inc.
3
** All rights reserved.
4
*********************************************************************/
5
/*********************************************************************
6
** $RCSfile: plane.h,v $ $Revision: 1.12 $ $State: Exp $
7
*********************************************************************/
8
9
#ifndef plane_H_
10
#define plane_H_
11
12
// \file plane.h
13
// \brief Contains the DtPlane class declaration.
14
15
#include <vlutil/vlMachineTypes.h>
16
#include <matrix/vlVector.h>
17
#include "
geometry/geometryDefines.h
"
18
19
// forward declarations
20
class
DtPoint
;
21
class
DtChord
;
22
23
//
24
// DtPlane represents a plane in 3-space.
25
class
DT_DLL_geometry
DtPlane
26
{
27
public
:
28
29
// default constructor (returns the xy-plane)
30
DtPlane
();
31
32
// Define the plane passing through points v0, v1, and v2.
33
// the three points v0, v1, and v2, are not collinear and not coincident.
34
// The vertices v0, v1, and v2 appear in counterclockwise
35
// order when viewing the plane from outside to inside in
36
// a right-handed Cartesian coordinate system.
37
DtPlane
(
const
DtPoint
& v0,
const
DtPoint
& v1,
const
DtPoint
& v2);
38
39
// Plane defined by a location and normal direction vector.
40
// \note The second parameter is passed by value so that the copy can be used
41
// internally to the function, for performance reasons.
42
DtPlane
(
const
DtVector
& point,
DtVector
normal);
43
44
// define a plane by specifying the coefficients for the plane equation:
45
// Ax + By + Cz + D = 0
46
DtPlane
(
double
a,
double
b,
double
c,
double
d);
47
48
// Special version of the constructor that specifies the plane's coefficients,
49
// in that is assumes they are correct as specified.
50
// \note This version does \b not test them for correctness!
51
DtPlane
(
bool
ignored,
double
a,
double
b,
double
c,
double
d);
52
53
// copy constructor
54
DtPlane
(
const
DtPlane
& orig);
55
56
// destructor
57
virtual
~
DtPlane
();
58
59
// assignment operator
60
DtPlane
& operator=(
const
DtPlane
& orig);
61
62
// Coefficients of the plane equation Ax + By + Cz + D = 0.
63
virtual
double
a()
const
;
64
virtual
double
b()
const
;
65
virtual
double
c()
const
;
66
virtual
double
d()
const
;
67
68
// compute the vector normal to the plane.
69
virtual
const
DtVector
normal()
const
;
70
71
// determine if chord intersects the plane; time specifies the
72
// parametric value along the chord.
73
virtual
bool
intersects
(
const
DtChord
& chord,
double
& time)
const
;
74
75
// print the contents of the object
76
virtual
void
dump()
const
;
77
78
// compute the distance of a point p to the plane.
79
double
distanceToPlane(
const
DtPoint
& p)
const
;
80
81
// \return point on the plane closest to the specified point.
82
DtPoint
closestPointOnPlane(
const
DtPoint
& p)
const
;
83
84
protected
:
85
86
// The plane is specified by the equation Ax + By + Cz + D = 0.
87
double
myA
;
88
double
myB
;
89
double
myC
;
90
double
myD
;
91
92
};
93
94
#endif
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)