Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

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