00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SBPLANE_H
00021
#define COIN_SBPLANE_H
00022
00023
#include <stdio.h>
00024
00025
#include <Inventor/SbVec3f.h>
00026
00027
class SbLine;
00028
class SbMatrix;
00029
00030 class COIN_DLL_API SbPlane {
00031
public:
00032 SbPlane(
void);
00033 SbPlane(
const SbVec3f& normal,
const float D);
00034 SbPlane(
const SbVec3f& p0,
const SbVec3f& p1,
const SbVec3f& p2);
00035 SbPlane(
const SbVec3f& normal,
const SbVec3f& point);
00036
00037
void offset(
const float d);
00038 SbBool intersect(
const SbLine& l,
SbVec3f& intersection)
const;
00039
void transform(
const SbMatrix& matrix);
00040 SbBool isInHalfSpace(
const SbVec3f& point)
const;
00041
float getDistance(
const SbVec3f &point)
const;
00042
const SbVec3f& getNormal(
void)
const;
00043
float getDistanceFromOrigin(
void)
const;
00044
friend COIN_DLL_API
int operator ==(
const SbPlane& p1,
const SbPlane& p2);
00045
friend COIN_DLL_API
int operator !=(
const SbPlane& p1,
const SbPlane& p2);
00046
00047
void print(FILE * file)
const;
00048
00049
private:
00050
SbVec3f normal;
00051
float distance;
00052 };
00053
00054 COIN_DLL_API
int operator ==(
const SbPlane& p1,
const SbPlane& p2);
00055 COIN_DLL_API
int operator !=(
const SbPlane& p1,
const SbPlane& p2);
00056
00057
#endif // !COIN_SBPLANE_H