mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#168 Grid box side visibility now handles parallel projection
This commit is contained in:
parent
5cdf307d4e
commit
742ee46f78
@ -135,12 +135,24 @@ void RivGridBoxGenerator::updateFromCamera(const cvf::Camera* camera)
|
||||
std::vector<bool> faceVisibility(6, false);
|
||||
for (size_t i = POS_X; i <= NEG_Z; i++)
|
||||
{
|
||||
bool isFaceVisible = false;
|
||||
cvf::Vec3f sideNorm = sideNormalOutwards((FaceType)i);
|
||||
|
||||
cvf::Vec3d camToSide = camera->position() - pointOnSide((FaceType)i);
|
||||
camToSide.normalize();
|
||||
if (camera->projection() == cvf::Camera::PERSPECTIVE)
|
||||
{
|
||||
|
||||
if (sideNorm.dot(cvf::Vec3f(camToSide)) < 0.0)
|
||||
cvf::Vec3d camToSide = camera->position() - pointOnSide((FaceType)i);
|
||||
camToSide.normalize();
|
||||
|
||||
isFaceVisible = sideNorm.dot(cvf::Vec3f(camToSide)) < 0.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
cvf::Vec3d camToSide = camera->direction();
|
||||
isFaceVisible = sideNorm.dot(cvf::Vec3f(camToSide)) > 0.0;
|
||||
}
|
||||
|
||||
if (isFaceVisible)
|
||||
{
|
||||
m_gridBoxModel->addPart(m_gridBoxFaceParts[i].p());
|
||||
faceVisibility[i] = true;
|
||||
|
Loading…
Reference in New Issue
Block a user