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 <HUtility.h> 00013 00014 #include <slapi/model/entities.h> 00015 #include <slapi/model/curve.h> 00016 #include <slapi/model/edge.h> 00017 00018 #include "VisibilityChecker.h" 00019 00020 #include <vector> 00021 00022 class CurvesImporter 00023 { 00024 public: 00025 CurvesImporter(VisibilityChecker & visibilityChecker); 00026 00027 bool Import(SUEntitiesRef& entities); 00028 00029 private: 00030 CurvesImporter(const CurvesImporter&); 00031 CurvesImporter& operator=(const CurvesImporter&); 00032 00033 bool ImportCurve(SUCurveRef& suCurve); 00034 00035 bool ImportCurveGeometry(SUCurveRef& suCurve, std::vector<HPoint>& points, bool & isVisible); 00036 bool ImportStartVertexFromEdge(SUEdgeRef& edge, std::vector<HPoint>& points); 00037 bool ImportBothVerticesFromEdge(SUEdgeRef& edge, std::vector<HPoint>& points); 00038 00039 bool InsertArc(const std::vector<HPoint>& points, bool isVisible); 00040 00041 VisibilityChecker & m_visibilityChecker; 00042 };