2012-07-19 18:26:47 +00:00
|
|
|
/********************************************************************************
|
2011-07-25 14:56:40 +00:00
|
|
|
* *
|
|
|
|
|
* 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 <http://www.gnu.org/licenses/>. *
|
|
|
|
|
* *
|
|
|
|
|
********************************************************************************/
|
|
|
|
|
|
|
|
|
|
/********************************************************************************
|
|
|
|
|
* *
|
|
|
|
|
* This file registers function prototypes for all supported IFC geometrical *
|
|
|
|
|
* entities. For entities of type CLASS an std::map is also created to cache *
|
|
|
|
|
* the output of the conversion functions *
|
|
|
|
|
* *
|
|
|
|
|
********************************************************************************/
|
|
|
|
|
|
|
|
|
|
#include <TopoDS_Shape.hxx>
|
|
|
|
|
#include <TopoDS_Wire.hxx>
|
|
|
|
|
#include <TopoDS_Face.hxx>
|
|
|
|
|
#include <gp_Pnt.hxx>
|
|
|
|
|
#include <gp_Pln.hxx>
|
|
|
|
|
#include <gp_Dir.hxx>
|
2011-10-23 17:11:06 +00:00
|
|
|
#include <gp_Mat.hxx>
|
|
|
|
|
#include <gp_Mat2d.hxx>
|
|
|
|
|
#include <gp_GTrsf.hxx>
|
|
|
|
|
#include <gp_GTrsf2d.hxx>
|
2011-07-25 14:56:40 +00:00
|
|
|
#include <gp_Trsf.hxx>
|
|
|
|
|
#include <gp_Trsf2d.hxx>
|
|
|
|
|
|
2012-08-11 13:24:08 +00:00
|
|
|
#include "../ifcparse/IfcUtil.h"
|
2011-07-25 14:56:40 +00:00
|
|
|
#include "../ifcparse/IfcParse.h"
|
|
|
|
|
|
2011-10-23 17:11:06 +00:00
|
|
|
SHAPES(IfcShellBasedSurfaceModel);
|
|
|
|
|
SHAPES(IfcFaceBasedSurfaceModel);
|
2015-04-22 09:15:48 +00:00
|
|
|
SHAPES(IfcRepresentation);
|
2011-10-23 17:11:06 +00:00
|
|
|
SHAPES(IfcMappedItem);
|
2016-06-21 11:19:51 +02:00
|
|
|
// IfcFacetedBrep included
|
|
|
|
|
// IfcAdvancedBrep included
|
|
|
|
|
// IfcFacetedBrepWithVoids included
|
|
|
|
|
// IfcAdvancedBrepWithVoids included
|
|
|
|
|
SHAPES(IfcManifoldSolidBrep);
|
2014-03-15 11:51:23 +00:00
|
|
|
SHAPES(IfcGeometricSet);
|
2011-10-23 17:11:06 +00:00
|
|
|
|
2014-05-04 14:42:55 +00:00
|
|
|
#ifdef USE_IFC4
|
|
|
|
|
SHAPE(IfcCylindricalSurface);
|
|
|
|
|
SHAPE(IfcAdvancedBrep);
|
2015-05-21 13:02:10 +00:00
|
|
|
// FIXME: Surfaces should have a shape type of their own
|
|
|
|
|
SHAPE(IfcBSplineSurfaceWithKnots);
|
2015-06-16 12:58:51 +00:00
|
|
|
SHAPE(IfcTriangulatedFaceSet);
|
2016-06-21 11:25:10 +02:00
|
|
|
SHAPE(IfcExtrudedAreaSolidTapered);
|
2014-05-04 14:42:55 +00:00
|
|
|
#endif
|
2016-02-01 14:58:42 +01:00
|
|
|
SHAPE(IfcPlane);
|
2011-07-25 14:56:40 +00:00
|
|
|
SHAPE(IfcExtrudedAreaSolid);
|
2014-03-15 11:51:23 +00:00
|
|
|
SHAPE(IfcRevolvedAreaSolid);
|
2011-07-25 14:56:40 +00:00
|
|
|
SHAPE(IfcConnectedFaceSet);
|
Add support for IfcBooleanResult, IfcBlock, IfcRectangularPyramid, IfcRightCircularCylinder, IfcRightCircularCone, IfcSphere, IfcCsgSolid, IfcCurveBoundedPlane, IfcRectangularTrimmedSurface, IfcSurfaceCurveSweptAreaSolid, IfcCylindricalSurface.
2014-03-22 10:31:51 +00:00
|
|
|
SHAPE(IfcBooleanResult);
|
2011-07-25 14:56:40 +00:00
|
|
|
SHAPE(IfcPolygonalBoundedHalfSpace);
|
|
|
|
|
SHAPE(IfcHalfSpaceSolid);
|
2015-05-21 13:02:10 +00:00
|
|
|
// FIXME: Surfaces should have a shape type of their own
|
2014-03-15 11:51:23 +00:00
|
|
|
SHAPE(IfcSurfaceOfLinearExtrusion);
|
|
|
|
|
SHAPE(IfcSurfaceOfRevolution);
|
Add support for IfcBooleanResult, IfcBlock, IfcRectangularPyramid, IfcRightCircularCylinder, IfcRightCircularCone, IfcSphere, IfcCsgSolid, IfcCurveBoundedPlane, IfcRectangularTrimmedSurface, IfcSurfaceCurveSweptAreaSolid, IfcCylindricalSurface.
2014-03-22 10:31:51 +00:00
|
|
|
SHAPE(IfcBlock);
|
|
|
|
|
SHAPE(IfcRectangularPyramid);
|
|
|
|
|
SHAPE(IfcRightCircularCylinder);
|
|
|
|
|
SHAPE(IfcRightCircularCone);
|
|
|
|
|
SHAPE(IfcSphere);
|
|
|
|
|
SHAPE(IfcCsgSolid);
|
|
|
|
|
SHAPE(IfcCurveBoundedPlane);
|
|
|
|
|
SHAPE(IfcRectangularTrimmedSurface);
|
|
|
|
|
SHAPE(IfcSurfaceCurveSweptAreaSolid);
|
2014-04-16 16:51:03 +00:00
|
|
|
SHAPE(IfcSweptDiskSolid);
|
2014-05-04 14:42:55 +00:00
|
|
|
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcArbitraryProfileDefWithVoids);
|
2011-09-07 11:28:55 +00:00
|
|
|
FACE(IfcArbitraryClosedProfileDef);
|
2014-03-08 17:21:39 +00:00
|
|
|
FACE(IfcRoundedRectangleProfileDef);
|
|
|
|
|
FACE(IfcRectangleHollowProfileDef);
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcRectangleProfileDef);
|
2014-03-08 17:21:39 +00:00
|
|
|
FACE(IfcTrapeziumProfileDef)
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcCShapeProfileDef);
|
2014-11-26 14:01:31 +00:00
|
|
|
// IfcAsymmetricIShapeProfileDef included
|
2014-03-08 17:21:39 +00:00
|
|
|
FACE(IfcIShapeProfileDef);
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcLShapeProfileDef);
|
2014-03-08 17:21:39 +00:00
|
|
|
FACE(IfcTShapeProfileDef);
|
|
|
|
|
FACE(IfcUShapeProfileDef);
|
|
|
|
|
FACE(IfcZShapeProfileDef);
|
2012-06-12 17:03:39 +00:00
|
|
|
FACE(IfcCircleHollowProfileDef);
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcCircleProfileDef);
|
2014-03-08 17:21:39 +00:00
|
|
|
FACE(IfcEllipseProfileDef);
|
2014-03-15 11:51:23 +00:00
|
|
|
FACE(IfcCenterLineProfileDef);
|
2014-03-16 13:34:01 +00:00
|
|
|
FACE(IfcCompositeProfileDef);
|
|
|
|
|
FACE(IfcDerivedProfileDef);
|
2015-05-20 08:55:02 +00:00
|
|
|
// IfcFaceSurface included
|
2015-05-21 13:02:10 +00:00
|
|
|
// IfcAdvancedFace included in case of IFC4
|
2011-07-25 14:56:40 +00:00
|
|
|
FACE(IfcFace);
|
|
|
|
|
|
2014-05-04 14:42:55 +00:00
|
|
|
WIRE(IfcEdgeCurve);
|
2015-04-22 09:15:48 +00:00
|
|
|
WIRE(IfcSubedge);
|
|
|
|
|
WIRE(IfcOrientedEdge);
|
|
|
|
|
WIRE(IfcEdge);
|
2014-05-04 14:42:55 +00:00
|
|
|
WIRE(IfcEdgeLoop);
|
2011-07-25 14:56:40 +00:00
|
|
|
WIRE(IfcPolyline);
|
|
|
|
|
WIRE(IfcPolyLoop);
|
|
|
|
|
WIRE(IfcCompositeCurve);
|
|
|
|
|
WIRE(IfcTrimmedCurve);
|
2014-03-15 11:51:23 +00:00
|
|
|
WIRE(IfcArbitraryOpenProfileDef);
|
2011-07-25 14:56:40 +00:00
|
|
|
|
|
|
|
|
CURVE(IfcCircle);
|
|
|
|
|
CURVE(IfcEllipse);
|
|
|
|
|
CURVE(IfcLine);
|
2015-06-02 15:56:09 +00:00
|
|
|
#ifdef USE_IFC4
|
2016-06-22 15:03:18 +02:00
|
|
|
// IfcRationalBSplineCurveWithKnots included
|
2015-06-02 15:56:09 +00:00
|
|
|
CURVE(IfcBSplineCurveWithKnots);
|
|
|
|
|
#endif
|
2011-07-25 14:56:40 +00:00
|
|
|
|
|
|
|
|
CLASS(IfcCartesianPoint,gp_Pnt);
|
|
|
|
|
CLASS(IfcDirection,gp_Dir);
|
|
|
|
|
CLASS(IfcAxis2Placement2D,gp_Trsf2d);
|
|
|
|
|
CLASS(IfcAxis2Placement3D,gp_Trsf);
|
2014-03-15 11:51:23 +00:00
|
|
|
CLASS(IfcAxis1Placement,gp_Ax1);
|
2011-10-23 17:11:06 +00:00
|
|
|
CLASS(IfcCartesianTransformationOperator2DnonUniform,gp_GTrsf2d);
|
|
|
|
|
CLASS(IfcCartesianTransformationOperator3DnonUniform,gp_GTrsf);
|
2011-07-25 14:56:40 +00:00
|
|
|
CLASS(IfcCartesianTransformationOperator2D,gp_Trsf2d);
|
|
|
|
|
CLASS(IfcCartesianTransformationOperator3D,gp_Trsf);
|
|
|
|
|
CLASS(IfcObjectPlacement,gp_Trsf);
|
|
|
|
|
CLASS(IfcVector,gp_Vec);
|
|
|
|
|
CLASS(IfcPlane,gp_Pln);
|