Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

VisibilityChecker.h
00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc.
00002 //
00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
00004 // and considered a trade secret as defined under civil and criminal statutes.
00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
00006 // unauthorized use or misappropriation of its trade secrets.  Use of this information
00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
00009 
00010 #pragma once
00011 
00012 #include <slapi/model/model.h>
00013 #include <slapi/model/drawing_element.h>
00014 
00015 #include <map>
00016 #include <cstdint>
00017 
00018 class VisibilityChecker
00019 {
00020 public:
00021     VisibilityChecker(SUModelRef& model, bool ignoreOffEntities);
00022 
00023     bool CheckElementVisibility(SUDrawingElementRef& drawingElement, bool& isVisible);
00024     bool IgnoreOffEntities() { return m_ignoreOffEntities; }
00025 
00026 private:
00027     VisibilityChecker(const VisibilityChecker&);
00028     VisibilityChecker& operator=(const VisibilityChecker&);
00029 
00030 private:
00031     std::map<int32_t, bool> m_layersVisibility;
00032     bool                    m_ignoreOffEntities;
00033 };