//################################################################################################## // // Custom Visualization Core library // Copyright (C) 2011-2012 Ceetron AS // // This library is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This library is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at <> // for more details. // //################################################################################################## #include "cvfBase.h" #include "cvfHitItem.h" #include "cvfPart.h" #include "cvfHitDetail.h" namespace cvf { //================================================================================================== /// /// \class cvf::HitItem /// \ingroup Geometry /// /// This class contains the result of an intersection between a ray and a part. /// //================================================================================================== //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- HitItem::HitItem(double distanceAlongRay, const Vec3d& intersectionPoint) : m_distanceAlongRay(distanceAlongRay), m_intersectionPoint(intersectionPoint) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- HitItem::~HitItem() { // Empty destructor to avoid errors with undefined types when cvf::ref's destructor gets called } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- double HitItem::distanceAlongRay() const { return m_distanceAlongRay; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const Vec3d& HitItem::intersectionPoint() const { return m_intersectionPoint; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const Part* HitItem::part() const { return m_part.p(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void HitItem::setPart(const Part* part) { m_part = part; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void HitItem::setDetail(HitDetail* detail) { m_detail = detail; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const HitDetail* HitItem::detail() const { return m_detail.p(); } } // namespace cvf