mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added new functions for computing triangle and polygon centroids.
This commit is contained in:
parent
2423dc977b
commit
d365322437
@ -36,6 +36,19 @@ cvf::Vec3d
|
||||
return centerCoord;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Vec3d GeometryTools::computeTriangleCenter( const cvf::Vec3d& v0, const cvf::Vec3d& v1, const cvf::Vec3d& v2 )
|
||||
{
|
||||
cvf::Vec3d centerCoord = v0;
|
||||
centerCoord += v1;
|
||||
centerCoord += v2;
|
||||
centerCoord /= 3.0;
|
||||
|
||||
return centerCoord;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Ez = Plane normal, Ex = in XY plane (horizontal), Ey = semi vertical upwards
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -36,6 +36,9 @@ class GeometryTools
|
||||
public:
|
||||
static cvf::Vec3d
|
||||
computeFaceCenter( const cvf::Vec3d& v0, const cvf::Vec3d& v1, const cvf::Vec3d& v2, const cvf::Vec3d& v3 );
|
||||
static cvf::Vec3d computeTriangleCenter( const cvf::Vec3d& v0, const cvf::Vec3d& v1, const cvf::Vec3d& v2 );
|
||||
template <typename Vec3Type>
|
||||
static Vec3Type computePolygonCenter( const std::vector<Vec3Type>& polygon );
|
||||
static cvf::Mat3f computePlaneHorizontalRotationMx( const cvf::Vec3f& inPlaneVec0, const cvf::Vec3f& inPlaneVec1 );
|
||||
|
||||
static cvf::Vec3d projectPointOnLine( const cvf::Vec3d& p1,
|
||||
|
@ -21,6 +21,25 @@
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
template <typename Vec3Type>
|
||||
Vec3Type GeometryTools::computePolygonCenter(const std::vector<Vec3Type>& polygon)
|
||||
{
|
||||
Vec3Type s;
|
||||
|
||||
for (int i = 0; i < polygon.size(); i++)
|
||||
{
|
||||
s.x() += polygon[i].x();
|
||||
s.y() += polygon[i].y();
|
||||
s.z() += polygon[i].z();
|
||||
}
|
||||
s /= polygon.size();
|
||||
return s;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user