corrected Point<3

This commit is contained in:
ganovelli 2005-01-12 11:25:52 +00:00
parent 99766e2bd0
commit a991f9b9a4
1 changed files with 15 additions and 12 deletions

View File

@ -24,6 +24,9 @@
History History
$Log: not supported by cvs2svn $ $Log: not supported by cvs2svn $
Revision 1.5 2004/10/20 16:45:21 ganovelli
first compiling version (MC,INtel,gcc)
Revision 1.4 2004/04/29 10:47:06 ganovelli Revision 1.4 2004/04/29 10:47:06 ganovelli
some siyntax error corrected some siyntax error corrected
@ -458,10 +461,10 @@ public:
}; };
template <class S> template <class S>
class Point<3,S> : public PointBase<3,S> { class Point3<S> : public PointBase<3,S> {
public: public:
typedef S ScalarType; typedef S ScalarType;
typedef Point<3,S> PointType; typedef Point3<S> PointType;
//@{ //@{
/** @name Special members for 3D points. **/ /** @name Special members for 3D points. **/
@ -615,10 +618,10 @@ public:
}; };
template <class S> template <class S>
class Point<4, S> : public PointBase<4,S> { class Point4< S> : public PointBase<4,S> {
public: public:
typedef S ScalarType; typedef S ScalarType;
typedef Point<4,S> PointType; typedef Point4<S> PointType;
//@{ //@{
/** @name Special members for 4D points. **/ /** @name Special members for 4D points. **/
/// default /// default
@ -767,7 +770,7 @@ public:
template <class S> template <class S>
inline S Angle( Point<3,S> const & p1, Point<3,S> const & p2 ) inline S Angle( Point3<S> const & p1, Point3<S> const & p2 )
{ {
S w = p1.Norm()*p2.Norm(); S w = p1.Norm()*p2.Norm();
if(w==0) return -1; if(w==0) return -1;
@ -779,7 +782,7 @@ inline S Angle( Point<3,S> const & p1, Point<3,S> const & p2 )
// versione uguale alla precedente ma che assume che i due vettori siano unitari // versione uguale alla precedente ma che assume che i due vettori siano unitari
template <class S> template <class S>
inline S AngleN( Point<3,S> const & p1, Point<3,S> const & p2 ) inline S AngleN( Point3<S> const & p1, Point3<S> const & p2 )
{ {
S w = p1*p2; S w = p1*p2;
if(w>1) if(w>1)
@ -830,18 +833,18 @@ struct Point2:public Point<2,S>{
}; };
template <typename S> template <typename S>
struct Point3:public Point<3,S> { struct Point3:public Point3<S> {
inline Point3(){}; inline Point3(){};
inline Point3(Point<3,S> const & p):Point<3,S> (p){} inline Point3(Point3<S> const & p):Point3<S> (p){}
inline Point3( const S a, const S b, const S c):Point<3,S> (a,b,c){}; inline Point3( const S a, const S b, const S c):Point3<S> (a,b,c){};
}; };
template <typename S> template <typename S>
struct Point4:public Point<4,S>{ struct Point4:public Point4<S>{
inline Point4(){}; inline Point4(){};
inline Point4(Point<4,S> const & p):Point<4,S>(p){} inline Point4(Point4<S> const & p):Point4<S>(p){}
inline Point4( const S a, const S b, const S c, const S d):Point<4,S>(a,b,c,d){}; inline Point4( const S a, const S b, const S c, const S d):Point4<S>(a,b,c,d){};
}; };
typedef Point2<short> Point2s; typedef Point2<short> Point2s;