#4012 Always place well target points in real cell geometry

This commit is contained in:
Gaute Lindkvist
2019-01-31 15:49:12 +01:00
parent bd6bbe9da9
commit 107a4b9b60
7 changed files with 121 additions and 12 deletions

View File

@@ -28,6 +28,7 @@ namespace cvf
class Object;
class HitItem;
class HitItemCollection;
class Ray;
}
@@ -39,18 +40,21 @@ public:
, m_pickedPart(nullptr)
, m_globalPickedPoint (cvf::Vec3d::UNDEFINED)
, m_localPickedPoint (cvf::Vec3d::UNDEFINED)
, m_globalRayOrigin(cvf::Vec3d::UNDEFINED)
, m_sourceInfo (nullptr)
, m_faceIdx (-1)
{}
explicit RiuPickItemInfo(const cvf::HitItem* hitItem)
explicit RiuPickItemInfo(const cvf::HitItem* hitItem, const cvf::Vec3d& globalRayOrigin)
: m_pickedPart(nullptr)
, m_globalPickedPoint (cvf::Vec3d::UNDEFINED)
, m_localPickedPoint (cvf::Vec3d::UNDEFINED)
, m_globalRayOrigin(cvf::Vec3d::UNDEFINED)
, m_sourceInfo (nullptr)
, m_faceIdx (-1)
{
*this = extractPickItemInfo(hitItem);
m_globalRayOrigin = globalRayOrigin;
}
const cvf::Part* pickedPart() const { return m_pickedPart;}
@@ -59,18 +63,19 @@ public:
const cvf::Object* sourceInfo() const { return m_sourceInfo;}
cvf::uint faceIdx() const { return m_faceIdx;}
double distanceAlongRay() const { return m_distanceAlongRay;}
cvf::Vec3d globalRayOrigin() const { return m_globalRayOrigin;}
static RiuPickItemInfo extractPickItemInfo(const cvf::HitItem* hitItem);
static std::vector<RiuPickItemInfo> convertToPickItemInfos(const cvf::HitItemCollection &hitItems);
static std::vector<RiuPickItemInfo> convertToPickItemInfos(const cvf::HitItemCollection &hitItems, const cvf::Vec3d& globalRayOrigin);
private:
double m_distanceAlongRay;
const cvf::Part* m_pickedPart;
cvf::Vec3d m_globalPickedPoint;
cvf::Vec3d m_localPickedPoint;
cvf::Vec3d m_globalRayOrigin;
const cvf::Object* m_sourceInfo;
cvf::uint m_faceIdx;
};