34 #include "vtkCommonDataModelModule.h"
75 vtkSetVector3Macro(Origin,
double);
76 vtkGetVectorMacro(Origin,
double,3);
84 void Push(
double distance);
92 static void ProjectPoint(
double x[3],
double origin[3],
double normal[3],
114 double normal[3],
double xproj[3]);
122 static double Evaluate(
double normal[3],
double origin[3],
double x[3]);
129 static double DistanceToPlane(
double x[3],
double n[3],
double p0[3]);
143 double p0[3],
double& t,
double x[3]);
156 void operator=(
const vtkPlane&) VTK_DELETE_FUNCTION;
160 double origin[3],
double x[3])
162 return normal[0]*(x[0]-origin[0]) + normal[1]*(x[1]-origin[1]) +
163 normal[2]*(x[2]-origin[2]);
168 #define vtkPlaneAbs(x) ((x)<0?-(x):(x))
169 return (
vtkPlaneAbs(n[0]*(x[0]-p0[0]) + n[1]*(x[1]-p0[1]) +
abstract interface for implicit functions
virtual double EvaluateFunction(double x[3])=0
Evaluate function at position x-y-z and return value.
a simple class to control print indentation
perform various plane computations
double DistanceToPlane(double x[3])
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static void ProjectVector(double v[3], double origin[3], double normal[3], double vproj[3])
Project a vector v onto plane defined by origin and normal.
double EvaluateFunction(double x, double y, double z)
void Push(double distance)
Translate the plane in the direction of the normal by the distance specified.
static void GeneralizedProjectPoint(double x[3], double origin[3], double normal[3], double xproj[3])
Project a point x onto plane defined by origin and normal.
void ProjectVector(double v[3], double vproj[3])
void EvaluateGradient(double x[3], double g[3]) override
Evaluate function gradient at point x[3].
int IntersectWithLine(double p1[3], double p2[3], double &t, double x[3])
void ProjectPoint(double x[3], double xproj[3])
static double Evaluate(double normal[3], double origin[3], double x[3])
Quick evaluation of plane equation n(x-origin)=0.
static double DistanceToPlane(double x[3], double n[3], double p0[3])
Return the distance of a point x to a plane defined by n(x-p0) = 0.
double EvaluateFunction(double x[3]) override
Evaluate plane equation for point x[3].
static void ProjectPoint(double x[3], double origin[3], double normal[3], double xproj[3])
Project a point x onto plane defined by origin and normal.
static vtkPlane * New()
Construct plane passing through origin and normal to z-axis.
static int IntersectWithLine(double p1[3], double p2[3], double n[3], double p0[3], double &t, double x[3])
Given a line defined by the two points p1,p2; and a plane defined by the normal n and point p0,...
void GeneralizedProjectPoint(double x[3], double xproj[3])