Translated comments, removed unusued stuff. corrected linefeed/cr
This commit is contained in:
parent
ba0ae377c2
commit
adb4bd3f1b
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.11 2004/02/19 16:12:28 cignoni
|
||||||
|
cr lf mismatch 2
|
||||||
|
|
||||||
Revision 1.10 2004/02/19 16:06:24 cignoni
|
Revision 1.10 2004/02/19 16:06:24 cignoni
|
||||||
cr lf mismatch
|
cr lf mismatch
|
||||||
|
|
||||||
|
@ -54,7 +57,8 @@ namespace vcg {
|
||||||
/*@{*/
|
/*@{*/
|
||||||
/**
|
/**
|
||||||
The templated class for representing a point in 3D space.
|
The templated class for representing a point in 3D space.
|
||||||
* The class is templated over the ScalarType class representing coordinates.
|
The class is templated over the ScalarType class that is used to represent coordinates. All the usual
|
||||||
|
operator overloading (* + - ...) is present.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
template <class P3ScalarType> class Point3
|
template <class P3ScalarType> class Point3
|
||||||
|
@ -105,8 +109,8 @@ public:
|
||||||
_v[2] = 0;
|
_v[2] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Questa funzione estende il vettore ad un qualsiasi numero di dimensioni
|
/// Padding function: give a default 0 value to all the elements that are not in the [0..2] range.
|
||||||
/// paddando gli elementi estesi con zeri
|
/// Useful for managing in a consistent way object that could have point2 / point3 / point4
|
||||||
inline P3ScalarType Ext( const int i ) const
|
inline P3ScalarType Ext( const int i ) const
|
||||||
{
|
{
|
||||||
if(i>=0 && i<=2) return _v[i];
|
if(i>=0 && i<=2) return _v[i];
|
||||||
|
@ -263,8 +267,8 @@ public:
|
||||||
if(n>0.0) { _v[0] /= n; _v[1] /= n; _v[2] /= n; }
|
if(n>0.0) { _v[0] /= n; _v[1] /= n; _v[2] /= n; }
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
// Polarizzazione
|
// Convert to polar coordinates
|
||||||
void Polar( P3ScalarType & ro, P3ScalarType & tetha, P3ScalarType & fi ) const
|
void ToPolar( P3ScalarType & ro, P3ScalarType & tetha, P3ScalarType & fi ) const
|
||||||
{
|
{
|
||||||
ro = Norm();
|
ro = Norm();
|
||||||
tetha = (P3ScalarType)atan2( _v[1], _v[0] );
|
tetha = (P3ScalarType)atan2( _v[1], _v[0] );
|
||||||
|
@ -317,14 +321,6 @@ inline bool operator == ( Point3 const & p ) const
|
||||||
return Point3<P3ScalarType> ( -_v[0], -_v[1], -_v[2] );
|
return Point3<P3ScalarType> ( -_v[0], -_v[1], -_v[2] );
|
||||||
}
|
}
|
||||||
//@}
|
//@}
|
||||||
// Casts
|
|
||||||
#ifdef __VCG_USE_CAST
|
|
||||||
inline operator Point3<int> (){ return Point3<int> (_v[0],_v[1],_v[2]); }
|
|
||||||
inline operator Point3<unsigned int> (){ return Point3<unsigned int>(_v[0],_v[1],_v[2]); }
|
|
||||||
inline operator Point3<double> (){ return Point3<double> (_v[0],_v[1],_v[2]); }
|
|
||||||
inline operator Point3<float> (){ return Point3<float> (_v[0],_v[1],_v[2]); }
|
|
||||||
inline operator Point3<short> (){ return Point3<short> (_v[0],_v[1],_v[2]); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}; // end class definition
|
}; // end class definition
|
||||||
|
|
||||||
|
@ -416,9 +412,10 @@ double stable_dot ( Point3<P3ScalarType> const & p0, Point3<P3ScalarType> const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns 2*AreaTri/(MaxEdge^2), range [0.0, 0.866]
|
/// Compute a shape quality measure of the triangle composed by points p0,p1,p2
|
||||||
// e.g. halfsquare: 1/2, Equitri sqrt(3)/2, ecc
|
/// It Returns 2*AreaTri/(MaxEdge^2),
|
||||||
// Modificata il 7/sep/00 per evitare l'allocazione temporanea di variabili
|
/// the range is range [0.0, 0.866]
|
||||||
|
/// e.g. Equilateral triangle sqrt(3)/2, halfsquare: 1/2, ... up to a line that has zero quality.
|
||||||
template<class P3ScalarType>
|
template<class P3ScalarType>
|
||||||
P3ScalarType Quality( Point3<P3ScalarType> const &p0, Point3<P3ScalarType> const & p1, Point3<P3ScalarType> const & p2)
|
P3ScalarType Quality( Point3<P3ScalarType> const &p0, Point3<P3ScalarType> const & p1, Point3<P3ScalarType> const & p2)
|
||||||
{
|
{
|
||||||
|
@ -437,29 +434,20 @@ P3ScalarType Quality( Point3<P3ScalarType> const &p0, Point3<P3ScalarType> const
|
||||||
return a/b;
|
return a/b;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the value of the face normal (internal use only)
|
/// Returns the normal to the plane passing through p0,p1,p2
|
||||||
template<class P3ScalarType>
|
template<class P3ScalarType>
|
||||||
Point3<P3ScalarType> Normal(const Point3<P3ScalarType> & p0, const Point3<P3ScalarType> & p1, const Point3<P3ScalarType> & p2)
|
Point3<P3ScalarType> Normal(const Point3<P3ScalarType> & p0, const Point3<P3ScalarType> & p1, const Point3<P3ScalarType> & p2)
|
||||||
{
|
{
|
||||||
return ((p1 - p0) ^ (p2 - p0));
|
return ((p1 - p0) ^ (p2 - p0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the value of the face normal (internal use only)
|
/// Like the above, it returns the normal to the plane passing through p0,p1,p2, but normalized.
|
||||||
template<class P3ScalarType>
|
template<class P3ScalarType>
|
||||||
Point3<P3ScalarType> NormalizedNormal(const Point3<P3ScalarType> & p0, const Point3<P3ScalarType> & p1, const Point3<P3ScalarType> & p2)
|
Point3<P3ScalarType> NormalizedNormal(const Point3<P3ScalarType> & p0, const Point3<P3ScalarType> & p1, const Point3<P3ScalarType> & p2)
|
||||||
{
|
{
|
||||||
return ((p1 - p0) ^ (p2 - p0)).Normalize();
|
return ((p1 - p0) ^ (p2 - p0)).Normalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class P3ScalarType>
|
|
||||||
Point3<P3ScalarType> Jitter(Point3<P3ScalarType> &n, P3ScalarType RadAngle)
|
|
||||||
{
|
|
||||||
Point3<P3ScalarType> rnd(1.0 - 2.0*P3ScalarType(rand())/RAND_MAX, 1.0 - 2.0*P3ScalarType(rand())/RAND_MAX, 1.0 - 2.0*P3ScalarType(rand())/RAND_MAX);
|
|
||||||
rnd*=Sin(RadAngle);
|
|
||||||
return (n+rnd).Normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// Point(p) Edge(v1-v2) dist, q is the point in v1-v2 with min dist
|
/// Point(p) Edge(v1-v2) dist, q is the point in v1-v2 with min dist
|
||||||
template<class P3ScalarType>
|
template<class P3ScalarType>
|
||||||
|
|
Loading…
Reference in New Issue