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 };