#include "VisibilityInfo.h" #include namespace GtpVisibility { /****************************************************/ /* VisibilityInfo implementation */ /****************************************************/ VisibilityInfo::VisibilityInfo(const int visiblePixels, const int projectedPixels): mProjectedPixels(projectedPixels), mVisiblePixels(visiblePixels) { } //----------------------------------------------------------------------- int VisibilityInfo::GetVisiblePixels() const { return mVisiblePixels; } //----------------------------------------------------------------------- int VisibilityInfo::GetProjectedPixels() const { return mProjectedPixels; } //----------------------------------------------------------------------- void VisibilityInfo::SetVisiblePixels(int vis) { mVisiblePixels = vis; } //----------------------------------------------------------------------- void VisibilityInfo::SetProjectedPixels(int vis) { mProjectedPixels = vis; } //----------------------------------------------------------------------- float VisibilityInfo::ComputeRelativeVisibility() { if (!mProjectedPixels) return 0; return (float)mVisiblePixels / (float)mProjectedPixels; } //----------------------------------------------------------------------- void VisibilityInfo::AddVisibility(const VisibilityInfo &info) { mVisiblePixels += info.GetVisiblePixels(); mProjectedPixels += info.GetProjectedPixels(); } //----------------------------------------------------------------------- void VisibilityInfo::AddVisibility(const int visiblePixels, const int projectedPixels) { mVisiblePixels +=visiblePixels; mProjectedPixels += projectedPixels; } /****************************************************/ /* NodeInfo implementation */ /****************************************************/ //----------------------------------------------------------------------- NodeInfo::NodeInfo(HierarchyNode *node, const int visiblePixels, const int projectedPixels): VisibilityInfo(visiblePixels, projectedPixels), mNode(node) {} //----------------------------------------------------------------------- void NodeInfo::SetNode(HierarchyNode *node) { mNode = node; } //----------------------------------------------------------------------- HierarchyNode *NodeInfo::GetNode() const { return mNode; } /****************************************************/ /* MeshInfo implementation */ /****************************************************/ //----------------------------------------------------------------------- MeshInfo::MeshInfo(Mesh *mesh, const int visiblePixels, const int projectedPixels): VisibilityInfo(visiblePixels, projectedPixels), mMesh(mesh) {} //----------------------------------------------------------------------- void MeshInfo::SetMesh(Mesh *mesh) { mMesh = mesh; } //----------------------------------------------------------------------- Mesh *MeshInfo::GetMesh() const { return mMesh; } }// namespace GtpVisibility