/******************************************************************************** * * * This file is part of IfcOpenShell. * * * * IfcOpenShell is free software: you can redistribute it and/or modify * * it under the terms of the Lesser GNU General Public License as published by * * the Free Software Foundation, either version 3.0 of the License, or * * (at your option) any later version. * * * * IfcOpenShell is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * Lesser GNU General Public License for more details. * * * * You should have received a copy of the Lesser GNU General Public License * * along with this program. If not, see . * * * ********************************************************************************/ namespace IfcGeomObjects { const int WELD_VERTICES = 1; const int USE_WORLD_COORDS = 2; const int CONVERT_BACK_UNITS = 3; const int USE_BREP_DATA = 4; const int SEW_SHELLS = 5; const int FASTER_BOOLEANS = 6; const int FORCE_CCW_FACE_ORIENTATION = 7; class IfcMesh { public: int id; std::vector verts; std::vector faces; std::vector edges; std::vector normals; std::string brep_data; }; class IfcObject { public: int id; int parent_id; std::string name; std::string type; std::string guid; std::vector matrix; }; class IfcGeomObject : public IfcObject { public: IfcMesh* mesh; }; bool Next(); const IfcGeomObject* Get(); bool Init(const std::string fn); void Settings(int setting, bool value); int Progress(); const IfcObject* GetObject(int id); bool CleanUp(); std::string GetLog(); };