00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOM_COMPOSITE3_OP_HH
00020 #define GEOM_COMPOSITE3_OP_HH
00021
00022 #include "constants.hh"
00023 #include "vec3.hh"
00024 #include "composite3.hh"
00025
00026 namespace geom {
00027
00028 Real DLLEXPORT_OST_GEOM Angle(const Line3& l1, const Line3& l2);
00029 Real DLLEXPORT_OST_GEOM Angle(const Plane& p1, const Plane& p2);
00030 Real DLLEXPORT_OST_GEOM Angle(const Plane& p, const Line3& l);
00031
00032 Vec3 DLLEXPORT_OST_GEOM IntersectionPoint(const Line3& l1, const Line3& l2);
00033 Vec3 DLLEXPORT_OST_GEOM IntersectionPoint(const Line3& l, const Plane& p);
00034 Vec3 DLLEXPORT_OST_GEOM IntersectionPoint(const Plane& p, const Line3& l);
00035 Line3 DLLEXPORT_OST_GEOM IntersectionLine(const Plane& p1, const Plane& p2);
00036
00037 Real DLLEXPORT_OST_GEOM Distance(const Line3& l1, const Line3& l2);
00038 Real DLLEXPORT_OST_GEOM Distance(const Line3& l, const Vec3& v);
00039 Real DLLEXPORT_OST_GEOM Distance(const Plane& p, const Vec3& v);
00040
00041 bool DLLEXPORT_OST_GEOM IsOnLine(const Line3& l, const Vec3& v, Real ephilon=EPSILON);
00042 bool DLLEXPORT_OST_GEOM IsInPlane(const Plane& p, const Vec3& v,Real ephilon=EPSILON);
00043 bool DLLEXPORT_OST_GEOM IsInPlane(const Plane& p, const Line3& l,Real ephilon=EPSILON);
00044 int DLLEXPORT_OST_GEOM RelativePosition(const Plane& p, const Vec3& v,Real ephilon=EPSILON);
00045
00046 bool DLLEXPORT_OST_GEOM operator==(const Line3& l1, const Line3& l2);
00047 bool DLLEXPORT_OST_GEOM Equal(const Line3& l1, const Line3& l2,Real ephilon=EPSILON);
00048 bool DLLEXPORT_OST_GEOM EqualPosition(const Line3& l1, const Line3& l2,Real ephilon=EPSILON);
00049 bool DLLEXPORT_OST_GEOM operator==(const Plane& p1, const Plane& p2);
00050 bool DLLEXPORT_OST_GEOM Equal(const Plane& p1, const Plane& p2,Real ephilon=EPSILON);
00051 bool DLLEXPORT_OST_GEOM EqualPosition(const Plane& p1, const Plane& p2,Real ephilon=EPSILON);
00052
00053 bool DLLEXPORT_OST_GEOM AreParallel(const Plane& p, const Line3& l,Real ephilon=EPSILON);
00054 bool DLLEXPORT_OST_GEOM AreParallel(const Plane& p1, const Plane& p2,Real ephilon=EPSILON);
00055 bool DLLEXPORT_OST_GEOM AreParallel(const Line3& l1, const Line3& l2,Real ephilon=EPSILON);
00056
00057 bool DLLEXPORT_OST_GEOM AreIntersecting(const Line3& l1, const Line3& l2, Real ephilon=EPSILON);
00058
00059 DLLEXPORT bool IsInSphere(const Sphere& p,const Vec3& v);
00060
00061 }
00062
00063
00064 #endif