- Ifc: implement basic support for IfcSweptDiskSolid elements.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1287 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/8/head
aramis_acg 2012-07-11 22:11:16 +00:00
parent c70646912c
commit d7410e6f08
5 changed files with 238 additions and 106 deletions

View File

@ -549,7 +549,8 @@ bool Curve :: InRange(IfcFloat u) const
ai_assert(range.first != std::numeric_limits<IfcFloat>::infinity() && range.second != std::numeric_limits<IfcFloat>::infinity()); ai_assert(range.first != std::numeric_limits<IfcFloat>::infinity() && range.second != std::numeric_limits<IfcFloat>::infinity());
u = range.first + fmod(u-range.first,range.second-range.first); u = range.first + fmod(u-range.first,range.second-range.first);
} }
return u >= range.first && u <= range.second; const IfcFloat epsilon = 1e-5;
return u - range.first > -epsilon && range.second - u > -epsilon;
} }
#endif #endif

View File

@ -451,7 +451,6 @@ void ProcessConnectedFaceSet(const IfcConnectedFaceSet& fset, TempMesh& result,
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv) void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv)
{ {
@ -539,6 +538,109 @@ void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& resul
IFCImporter::LogDebug("generate mesh procedurally by radial extrusion (IfcRevolvedAreaSolid)"); IFCImporter::LogDebug("generate mesh procedurally by radial extrusion (IfcRevolvedAreaSolid)");
} }
// ------------------------------------------------------------------------------------------------
void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, ConversionData& conv)
{
const Curve* const curve = Curve::Convert(*solid.Directrix, conv);
if(!curve) {
IFCImporter::LogError("failed to convert Directrix curve (IfcSweptDiskSolid)");
return;
}
const std::vector<IfcVector3>& in = result.verts;
const size_t size=in.size();
const unsigned int cnt_segments = 16;
const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
const size_t samples = curve->EstimateSampleCount(solid.StartParam,solid.EndParam);
result.verts.reserve(cnt_segments * samples * 4);
result.vertcnt.reserve((cnt_segments - 1) * samples);
// XXX while EstimateSampleCount() works well for non-composite curves, it
// fails badly for composite curves that require non-uniform sampling
// for good results.
IfcFloat p = solid.StartParam, delta = (solid.EndParam-solid.StartParam)/ (samples - 1);
IfcVector3 current = curve->Eval(p);
IfcVector3 previous = current;
IfcVector3 next;
IfcVector3 startvec;
startvec.x = 1.0f;
startvec.y = 1.0f;
startvec.z = 1.0f;
std::vector<IfcVector3> points;
points.reserve(cnt_segments * samples);
p += delta;
// generate circles at the sweep positions
for(size_t i = 0; i < samples; ++i, p += delta) {
next = curve->Eval(p);
// get a direction vector reflecting the approximate curvature (i.e. tangent)
IfcVector3 d = (current-previous) + (next-previous);
d.Normalize();
// figure out an arbitrary point q so that (p-q) * d = 0,
// try to maximize ||(p-q)|| * ||(p_last-q_last)||
IfcVector3 q;
if (abs(d.x) > 1e-6) {
q.y = startvec.y;
q.z = startvec.z;
q.x = -(d.y * q.y + d.z * q.z) / d.x;
}
else if (abs(d.y) > 1e-6) {
q.x = startvec.x;
q.z = startvec.z;
q.y = -(d.x * q.x + d.z * q.z) / d.y;
}
else { // if (abs(d.z) > 1e-6)
q.y = startvec.y;
q.x = startvec.x;
q.z = -(d.y * q.y + d.x * q.x) / d.z;
}
startvec = q;
q *= solid.Radius / q.Length();
// generate a rotation matrix to rotate q around d
IfcMatrix4 rot;
IfcMatrix4::Rotation(deltaAngle,d,rot);
for (unsigned int seg = 0; seg < cnt_segments; ++seg, q *= rot ) {
points.push_back(q + current);
}
previous = current;
current = next;
}
// make quads
for(size_t i = 0; i < samples - 1; ++i) {
for (unsigned int seg = 0; seg < cnt_segments - 1; ++seg) {
result.verts.push_back(points[ i * cnt_segments + seg]);
result.verts.push_back(points[ i * cnt_segments + seg + 1]);
result.verts.push_back(points[ (i+1) * cnt_segments + seg + 1]);
result.verts.push_back(points[ (i+1) * cnt_segments + seg]);
result.vertcnt.push_back(4);
}
}
IFCImporter::LogDebug("generate mesh procedurally by sweeping a disk along a curve (IfcSweptDiskSolid)");
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh) { IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh) {
@ -1723,6 +1825,9 @@ bool ProcessGeometricItem(const IfcRepresentationItem& geo, std::vector<unsigned
else if(const IfcSweptAreaSolid* swept = geo.ToPtr<IfcSweptAreaSolid>()) { else if(const IfcSweptAreaSolid* swept = geo.ToPtr<IfcSweptAreaSolid>()) {
ProcessSweptAreaSolid(*swept,meshtmp,conv); ProcessSweptAreaSolid(*swept,meshtmp,conv);
} }
else if(const IfcSweptDiskSolid* disk = geo.ToPtr<IfcSweptDiskSolid>()) {
ProcessSweptDiskSolid(*disk,meshtmp,conv);
}
else if(const IfcManifoldSolidBrep* brep = geo.ToPtr<IfcManifoldSolidBrep>()) { else if(const IfcManifoldSolidBrep* brep = geo.ToPtr<IfcManifoldSolidBrep>()) {
ProcessConnectedFaceSet(brep->Outer,meshtmp,conv); ProcessConnectedFaceSet(brep->Outer,meshtmp,conv);
} }

View File

@ -1,8 +1,8 @@
/* /*
Open Asset Import Library (assimp) Open Asset Import Library (ASSIMP)
---------------------------------------------------------------------- ----------------------------------------------------------------------
Copyright (c) 2006-2012, assimp team Copyright (c) 2006-2010, ASSIMP Development Team
All rights reserved. All rights reserved.
Redistribution and use of this software in source and binary forms, Redistribution and use of this software in source and binary forms,
@ -18,10 +18,10 @@ following conditions are met:
following disclaimer in the documentation and/or other following disclaimer in the documentation and/or other
materials provided with the distribution. materials provided with the distribution.
* Neither the name of the assimp team, nor the names of its * Neither the name of the ASSIMP team, nor the names of its
contributors may be used to endorse or promote products contributors may be used to endorse or promote products
derived from this software without specific prior derived from this software without specific prior
written permission of the assimp team. written permission of the ASSIMP Development Team.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
@ -96,7 +96,6 @@ namespace {
, SchemaEntry("ifcobjecttypeenum",NULL ) , SchemaEntry("ifcobjecttypeenum",NULL )
, SchemaEntry("ifcthermalloadtypeenum",NULL ) , SchemaEntry("ifcthermalloadtypeenum",NULL )
, SchemaEntry("ifcionconcentrationmeasure",NULL ) , SchemaEntry("ifcionconcentrationmeasure",NULL )
, SchemaEntry("ifcobjectreferenceselect",NULL )
, SchemaEntry("ifcclassificationnotationselect",NULL ) , SchemaEntry("ifcclassificationnotationselect",NULL )
, SchemaEntry("ifcbsplinecurveform",NULL ) , SchemaEntry("ifcbsplinecurveform",NULL )
, SchemaEntry("ifcelementcompositionenum",NULL ) , SchemaEntry("ifcelementcompositionenum",NULL )
@ -158,6 +157,7 @@ namespace {
, SchemaEntry("ifcidentifier",NULL ) , SchemaEntry("ifcidentifier",NULL )
, SchemaEntry("ifcradioactivitymeasure",NULL ) , SchemaEntry("ifcradioactivitymeasure",NULL )
, SchemaEntry("ifcsymbolstyleselect",NULL ) , SchemaEntry("ifcsymbolstyleselect",NULL )
, SchemaEntry("ifcobjectreferenceselect",NULL )
, SchemaEntry("ifcrooftypeenum",NULL ) , SchemaEntry("ifcrooftypeenum",NULL )
, SchemaEntry("ifcreal",NULL ) , SchemaEntry("ifcreal",NULL )
, SchemaEntry("ifcroleenum",NULL ) , SchemaEntry("ifcroleenum",NULL )
@ -168,6 +168,7 @@ namespace {
, SchemaEntry("ifcfiltertypeenum",NULL ) , SchemaEntry("ifcfiltertypeenum",NULL )
, SchemaEntry("ifctransformertypeenum",NULL ) , SchemaEntry("ifctransformertypeenum",NULL )
, SchemaEntry("ifcsurfaceside",NULL ) , SchemaEntry("ifcsurfaceside",NULL )
, SchemaEntry("ifcspaceheatertypeenum",NULL )
, SchemaEntry("ifcthermaltransmittancemeasure",NULL ) , SchemaEntry("ifcthermaltransmittancemeasure",NULL )
, SchemaEntry("ifctubebundletypeenum",NULL ) , SchemaEntry("ifctubebundletypeenum",NULL )
, SchemaEntry("ifclightfixturetypeenum",NULL ) , SchemaEntry("ifclightfixturetypeenum",NULL )
@ -239,7 +240,6 @@ namespace {
, SchemaEntry("ifcvolumemeasure",NULL ) , SchemaEntry("ifcvolumemeasure",NULL )
, SchemaEntry("ifcbeamtypeenum",NULL ) , SchemaEntry("ifcbeamtypeenum",NULL )
, SchemaEntry("ifcstateenum",NULL ) , SchemaEntry("ifcstateenum",NULL )
, SchemaEntry("ifcspaceheatertypeenum",NULL )
, SchemaEntry("ifcsectiontypeenum",NULL ) , SchemaEntry("ifcsectiontypeenum",NULL )
, SchemaEntry("ifcfootingtypeenum",NULL ) , SchemaEntry("ifcfootingtypeenum",NULL )
, SchemaEntry("ifcmonetarymeasure",NULL ) , SchemaEntry("ifcmonetarymeasure",NULL )
@ -379,6 +379,9 @@ namespace {
, SchemaEntry("ifcpermeablecoveringoperationenum",NULL ) , SchemaEntry("ifcpermeablecoveringoperationenum",NULL )
, SchemaEntry("ifcmagneticfluxdensitymeasure",NULL ) , SchemaEntry("ifcmagneticfluxdensitymeasure",NULL )
, SchemaEntry("ifcmoisturediffusivitymeasure",NULL ) , SchemaEntry("ifcmoisturediffusivitymeasure",NULL )
, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper<IfcProfileDef,2>::Construct )
, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper<IfcParameterizedProfileDef,1>::Construct )
, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper<IfcZShapeProfileDef,6>::Construct )
, SchemaEntry("ifcroot",&STEP::ObjectHelper<IfcRoot,4>::Construct ) , SchemaEntry("ifcroot",&STEP::ObjectHelper<IfcRoot,4>::Construct )
, SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper<IfcObjectDefinition,0>::Construct ) , SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper<IfcObjectDefinition,0>::Construct )
, SchemaEntry("ifctypeobject",&STEP::ObjectHelper<IfcTypeObject,2>::Construct ) , SchemaEntry("ifctypeobject",&STEP::ObjectHelper<IfcTypeObject,2>::Construct )
@ -463,7 +466,6 @@ namespace {
, SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper<IfcProfileDef,2>::Construct )
, SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper<IfcArbitraryClosedProfileDef,1>::Construct ) , SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper<IfcArbitraryClosedProfileDef,1>::Construct )
, SchemaEntry("ifccurve",&STEP::ObjectHelper<IfcCurve,0>::Construct ) , SchemaEntry("ifccurve",&STEP::ObjectHelper<IfcCurve,0>::Construct )
, SchemaEntry("ifcconic",&STEP::ObjectHelper<IfcConic,1>::Construct ) , SchemaEntry("ifcconic",&STEP::ObjectHelper<IfcConic,1>::Construct )
@ -550,6 +552,7 @@ namespace {
, SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper<IfcAxis1Placement,1>::Construct ) , SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper<IfcAxis1Placement,1>::Construct )
, SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcpredefinedsymbol",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcpredefinedsymbol",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper<IfcColourSpecification,1>::Construct )
, SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper<IfcStructuralPointAction,0>::Construct ) , SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper<IfcStructuralPointAction,0>::Construct )
, SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper<IfcSpatialStructureElement,2>::Construct ) , SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper<IfcSpatialStructureElement,2>::Construct )
, SchemaEntry("ifcspace",&STEP::ObjectHelper<IfcSpace,2>::Construct ) , SchemaEntry("ifcspace",&STEP::ObjectHelper<IfcSpace,2>::Construct )
@ -583,7 +586,6 @@ namespace {
, SchemaEntry("ifcvertex",&STEP::ObjectHelper<IfcVertex,0>::Construct ) , SchemaEntry("ifcvertex",&STEP::ObjectHelper<IfcVertex,0>::Construct )
, SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper<IfcVertexPoint,1>::Construct ) , SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper<IfcVertexPoint,1>::Construct )
, SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper<IfcFlowInstrumentType,1>::Construct ) , SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper<IfcFlowInstrumentType,1>::Construct )
, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper<IfcParameterizedProfileDef,1>::Construct )
, SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper<IfcUShapeProfileDef,8>::Construct ) , SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper<IfcUShapeProfileDef,8>::Construct )
, SchemaEntry("ifcramp",&STEP::ObjectHelper<IfcRamp,1>::Construct ) , SchemaEntry("ifcramp",&STEP::ObjectHelper<IfcRamp,1>::Construct )
, SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper<NotImplemented,0>::Construct )
@ -869,7 +871,6 @@ namespace {
, SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper<IfcRelAggregates,0>::Construct ) , SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper<IfcRelAggregates,0>::Construct )
, SchemaEntry("ifcboilertype",&STEP::ObjectHelper<IfcBoilerType,1>::Construct ) , SchemaEntry("ifcboilertype",&STEP::ObjectHelper<IfcBoilerType,1>::Construct )
, SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper<IfcColourSpecification,1>::Construct )
, SchemaEntry("ifccolourrgb",&STEP::ObjectHelper<IfcColourRgb,3>::Construct ) , SchemaEntry("ifccolourrgb",&STEP::ObjectHelper<IfcColourRgb,3>::Construct )
, SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper<IfcDoorStyle,4>::Construct ) , SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper<IfcDoorStyle,4>::Construct )
@ -881,7 +882,6 @@ namespace {
, SchemaEntry("ifcsensortype",&STEP::ObjectHelper<IfcSensorType,1>::Construct ) , SchemaEntry("ifcsensortype",&STEP::ObjectHelper<IfcSensorType,1>::Construct )
, SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper<IfcAirTerminalBoxType,1>::Construct ) , SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper<IfcAirTerminalBoxType,1>::Construct )
, SchemaEntry("ifcannotationsurfaceoccurrence",&STEP::ObjectHelper<IfcAnnotationSurfaceOccurrence,0>::Construct ) , SchemaEntry("ifcannotationsurfaceoccurrence",&STEP::ObjectHelper<IfcAnnotationSurfaceOccurrence,0>::Construct )
, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper<IfcZShapeProfileDef,6>::Construct )
, SchemaEntry("ifcclassificationnotation",&STEP::ObjectHelper<NotImplemented,0>::Construct ) , SchemaEntry("ifcclassificationnotation",&STEP::ObjectHelper<NotImplemented,0>::Construct )
, SchemaEntry("ifcrationalbeziercurve",&STEP::ObjectHelper<IfcRationalBezierCurve,1>::Construct ) , SchemaEntry("ifcrationalbeziercurve",&STEP::ObjectHelper<IfcRationalBezierCurve,1>::Construct )
, SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper<IfcCartesianTransformationOperator2D,0>::Construct ) , SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper<IfcCartesianTransformationOperator2D,0>::Construct )
@ -1052,6 +1052,44 @@ template <> size_t GenericFill<NotImplemented>(const STEP::DB& db, const LIST& p
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcProfileDef>(const DB& db, const LIST& params, IfcProfileDef* in)
{
size_t base = 0;
if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[0]=true; break; }
try { GenericConvert( in->ProfileType, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); }
} while(0);
do { // convert the 'ProfileName' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[1]=true; break; }
if (dynamic_cast<const UNSET*>(&*arg)) break;
try { GenericConvert( in->ProfileName, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcParameterizedProfileDef>(const DB& db, const LIST& params, IfcParameterizedProfileDef* in)
{
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcParameterizedProfileDef,1>::aux_is_derived[0]=true; break; }
try { GenericConvert( in->Position, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcZShapeProfileDef>(const DB& db, const LIST& params, IfcZShapeProfileDef* in)
{
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
// this data structure is not used yet, so there is no code generated to fill its members
return base;
}
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcRoot>(const DB& db, const LIST& params, IfcRoot* in) template <> size_t GenericFill<IfcRoot>(const DB& db, const LIST& params, IfcRoot* in)
{ {
@ -1519,25 +1557,6 @@ template <> size_t GenericFill<IfcPlacement>(const DB& db, const LIST& params, I
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcProfileDef>(const DB& db, const LIST& params, IfcProfileDef* in)
{
size_t base = 0;
if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[0]=true; break; }
try { GenericConvert( in->ProfileType, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); }
} while(0);
do { // convert the 'ProfileName' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[1]=true; break; }
if (dynamic_cast<const UNSET*>(&*arg)) break;
try { GenericConvert( in->ProfileName, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcArbitraryClosedProfileDef>(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in) template <> size_t GenericFill<IfcArbitraryClosedProfileDef>(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in)); size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
@ -2068,6 +2087,19 @@ template <> size_t GenericFill<IfcAxis1Placement>(const DB& db, const LIST& para
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcColourSpecification>(const DB& db, const LIST& params, IfcColourSpecification* in)
{
size_t base = 0;
if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcColourSpecification,1>::aux_is_derived[0]=true; break; }
if (dynamic_cast<const UNSET*>(&*arg)) break;
try { GenericConvert( in->Name, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcStructuralPointAction>(const DB& db, const LIST& params, IfcStructuralPointAction* in) template <> size_t GenericFill<IfcStructuralPointAction>(const DB& db, const LIST& params, IfcStructuralPointAction* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcStructuralAction*>(in)); size_t base = GenericFill(db,params,static_cast<IfcStructuralAction*>(in));
@ -2236,18 +2268,6 @@ template <> size_t GenericFill<IfcFlowInstrumentType>(const DB& db, const LIST&
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcParameterizedProfileDef>(const DB& db, const LIST& params, IfcParameterizedProfileDef* in)
{
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcParameterizedProfileDef,1>::aux_is_derived[0]=true; break; }
try { GenericConvert( in->Position, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcUShapeProfileDef>(const DB& db, const LIST& params, IfcUShapeProfileDef* in) template <> size_t GenericFill<IfcUShapeProfileDef>(const DB& db, const LIST& params, IfcUShapeProfileDef* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in)); size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
@ -3375,7 +3395,32 @@ template <> size_t GenericFill<IfcSubContractResource>(const DB& db, const LIST&
template <> size_t GenericFill<IfcSweptDiskSolid>(const DB& db, const LIST& params, IfcSweptDiskSolid* in) template <> size_t GenericFill<IfcSweptDiskSolid>(const DB& db, const LIST& params, IfcSweptDiskSolid* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcSolidModel*>(in)); size_t base = GenericFill(db,params,static_cast<IfcSolidModel*>(in));
// this data structure is not used yet, so there is no code generated to fill its members if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcSweptDiskSolid"); } do { // convert the 'Directrix' argument
boost::shared_ptr<const DataType> arg = params[base++];
try { GenericConvert( in->Directrix, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptDiskSolid to be a `IfcCurve`")); }
} while(0);
do { // convert the 'Radius' argument
boost::shared_ptr<const DataType> arg = params[base++];
try { GenericConvert( in->Radius, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); }
} while(0);
do { // convert the 'InnerRadius' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const UNSET*>(&*arg)) break;
try { GenericConvert( in->InnerRadius, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); }
} while(0);
do { // convert the 'StartParam' argument
boost::shared_ptr<const DataType> arg = params[base++];
try { GenericConvert( in->StartParam, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSweptDiskSolid to be a `IfcParameterValue`")); }
} while(0);
do { // convert the 'EndParam' argument
boost::shared_ptr<const DataType> arg = params[base++];
try { GenericConvert( in->EndParam, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSweptDiskSolid to be a `IfcParameterValue`")); }
} while(0);
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
@ -3980,19 +4025,6 @@ template <> size_t GenericFill<IfcBoilerType>(const DB& db, const LIST& params,
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcColourSpecification>(const DB& db, const LIST& params, IfcColourSpecification* in)
{
size_t base = 0;
if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument
boost::shared_ptr<const DataType> arg = params[base++];
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcColourSpecification,1>::aux_is_derived[0]=true; break; }
if (dynamic_cast<const UNSET*>(&*arg)) break;
try { GenericConvert( in->Name, arg, db ); break; }
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); }
} while(0);
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcColourRgb>(const DB& db, const LIST& params, IfcColourRgb* in) template <> size_t GenericFill<IfcColourRgb>(const DB& db, const LIST& params, IfcColourRgb* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcColourSpecification*>(in)); size_t base = GenericFill(db,params,static_cast<IfcColourSpecification*>(in));
@ -4063,13 +4095,6 @@ template <> size_t GenericFill<IfcAnnotationSurfaceOccurrence>(const DB& db, con
return base; return base;
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcZShapeProfileDef>(const DB& db, const LIST& params, IfcZShapeProfileDef* in)
{
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
// this data structure is not used yet, so there is no code generated to fill its members
return base;
}
// -----------------------------------------------------------------------------------------------------------
template <> size_t GenericFill<IfcRationalBezierCurve>(const DB& db, const LIST& params, IfcRationalBezierCurve* in) template <> size_t GenericFill<IfcRationalBezierCurve>(const DB& db, const LIST& params, IfcRationalBezierCurve* in)
{ {
size_t base = GenericFill(db,params,static_cast<IfcBezierCurve*>(in)); size_t base = GenericFill(db,params,static_cast<IfcBezierCurve*>(in));

View File

@ -1,8 +1,8 @@
/* /*
Open Asset Import Library (assimp) Open Asset Import Library (ASSIMP)
---------------------------------------------------------------------- ----------------------------------------------------------------------
Copyright (c) 2006-2012, assimp team Copyright (c) 2006-2010, ASSIMP Development Team
All rights reserved. All rights reserved.
Redistribution and use of this software in source and binary forms, Redistribution and use of this software in source and binary forms,
@ -18,10 +18,10 @@ following conditions are met:
following disclaimer in the documentation and/or other following disclaimer in the documentation and/or other
materials provided with the distribution. materials provided with the distribution.
* Neither the name of the assimp team, nor the names of its * Neither the name of the ASSIMP team, nor the names of its
contributors may be used to endorse or promote products contributors may be used to endorse or promote products
derived from this software without specific prior derived from this software without specific prior
written permission of the assimp team. written permission of the ASSIMP Development Team.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
@ -149,8 +149,6 @@ namespace IFC {
typedef ENUMERATION IfcThermalLoadTypeEnum; typedef ENUMERATION IfcThermalLoadTypeEnum;
// C++ wrapper type for IfcIonConcentrationMeasure // C++ wrapper type for IfcIonConcentrationMeasure
typedef REAL IfcIonConcentrationMeasure; typedef REAL IfcIonConcentrationMeasure;
// C++ wrapper type for IfcObjectReferenceSelect
typedef SELECT IfcObjectReferenceSelect;
// C++ wrapper type for IfcClassificationNotationSelect // C++ wrapper type for IfcClassificationNotationSelect
typedef SELECT IfcClassificationNotationSelect; typedef SELECT IfcClassificationNotationSelect;
// C++ wrapper type for IfcBSplineCurveForm // C++ wrapper type for IfcBSplineCurveForm
@ -273,6 +271,8 @@ namespace IFC {
typedef REAL IfcRadioActivityMeasure; typedef REAL IfcRadioActivityMeasure;
// C++ wrapper type for IfcSymbolStyleSelect // C++ wrapper type for IfcSymbolStyleSelect
typedef SELECT IfcSymbolStyleSelect; typedef SELECT IfcSymbolStyleSelect;
// C++ wrapper type for IfcObjectReferenceSelect
typedef SELECT IfcObjectReferenceSelect;
// C++ wrapper type for IfcRoofTypeEnum // C++ wrapper type for IfcRoofTypeEnum
typedef ENUMERATION IfcRoofTypeEnum; typedef ENUMERATION IfcRoofTypeEnum;
// C++ wrapper type for IfcReal // C++ wrapper type for IfcReal
@ -293,6 +293,8 @@ namespace IFC {
typedef ENUMERATION IfcTransformerTypeEnum; typedef ENUMERATION IfcTransformerTypeEnum;
// C++ wrapper type for IfcSurfaceSide // C++ wrapper type for IfcSurfaceSide
typedef ENUMERATION IfcSurfaceSide; typedef ENUMERATION IfcSurfaceSide;
// C++ wrapper type for IfcSpaceHeaterTypeEnum
typedef ENUMERATION IfcSpaceHeaterTypeEnum;
// C++ wrapper type for IfcThermalTransmittanceMeasure // C++ wrapper type for IfcThermalTransmittanceMeasure
typedef REAL IfcThermalTransmittanceMeasure; typedef REAL IfcThermalTransmittanceMeasure;
// C++ wrapper type for IfcTubeBundleTypeEnum // C++ wrapper type for IfcTubeBundleTypeEnum
@ -433,8 +435,6 @@ namespace IFC {
typedef ENUMERATION IfcBeamTypeEnum; typedef ENUMERATION IfcBeamTypeEnum;
// C++ wrapper type for IfcStateEnum // C++ wrapper type for IfcStateEnum
typedef ENUMERATION IfcStateEnum; typedef ENUMERATION IfcStateEnum;
// C++ wrapper type for IfcSpaceHeaterTypeEnum
typedef ENUMERATION IfcSpaceHeaterTypeEnum;
// C++ wrapper type for IfcSectionTypeEnum // C++ wrapper type for IfcSectionTypeEnum
typedef ENUMERATION IfcSectionTypeEnum; typedef ENUMERATION IfcSectionTypeEnum;
// C++ wrapper type for IfcFootingTypeEnum // C++ wrapper type for IfcFootingTypeEnum
@ -719,6 +719,9 @@ namespace IFC {
// IFC Entities // IFC Entities
// ****************************************************************************** // ******************************************************************************
struct IfcProfileDef;
struct IfcParameterizedProfileDef;
struct IfcZShapeProfileDef;
struct IfcRoot; struct IfcRoot;
struct IfcObjectDefinition; struct IfcObjectDefinition;
struct IfcTypeObject; struct IfcTypeObject;
@ -803,7 +806,6 @@ namespace IFC {
typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp) typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp)
typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp) typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp)
typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp) typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp)
struct IfcProfileDef;
struct IfcArbitraryClosedProfileDef; struct IfcArbitraryClosedProfileDef;
struct IfcCurve; struct IfcCurve;
struct IfcConic; struct IfcConic;
@ -890,6 +892,7 @@ namespace IFC {
struct IfcAxis1Placement; struct IfcAxis1Placement;
typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp) typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp)
typedef NotImplemented IfcPreDefinedSymbol; // (not currently used by Assimp) typedef NotImplemented IfcPreDefinedSymbol; // (not currently used by Assimp)
struct IfcColourSpecification;
struct IfcStructuralPointAction; struct IfcStructuralPointAction;
struct IfcSpatialStructureElement; struct IfcSpatialStructureElement;
struct IfcSpace; struct IfcSpace;
@ -923,7 +926,6 @@ namespace IFC {
struct IfcVertex; struct IfcVertex;
struct IfcVertexPoint; struct IfcVertexPoint;
struct IfcFlowInstrumentType; struct IfcFlowInstrumentType;
struct IfcParameterizedProfileDef;
struct IfcUShapeProfileDef; struct IfcUShapeProfileDef;
struct IfcRamp; struct IfcRamp;
typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp) typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp)
@ -1209,7 +1211,6 @@ namespace IFC {
struct IfcRelAggregates; struct IfcRelAggregates;
struct IfcBoilerType; struct IfcBoilerType;
typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp) typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp)
struct IfcColourSpecification;
struct IfcColourRgb; struct IfcColourRgb;
typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp) typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp)
struct IfcDoorStyle; struct IfcDoorStyle;
@ -1221,7 +1222,6 @@ namespace IFC {
struct IfcSensorType; struct IfcSensorType;
struct IfcAirTerminalBoxType; struct IfcAirTerminalBoxType;
struct IfcAnnotationSurfaceOccurrence; struct IfcAnnotationSurfaceOccurrence;
struct IfcZShapeProfileDef;
typedef NotImplemented IfcClassificationNotation; // (not currently used by Assimp) typedef NotImplemented IfcClassificationNotation; // (not currently used by Assimp)
struct IfcRationalBezierCurve; struct IfcRationalBezierCurve;
struct IfcCartesianTransformationOperator2D; struct IfcCartesianTransformationOperator2D;
@ -1375,6 +1375,27 @@ namespace IFC {
// C++ wrapper for IfcProfileDef
struct IfcProfileDef : ObjectHelper<IfcProfileDef,2> { IfcProfileDef() : Object("IfcProfileDef") {}
IfcProfileTypeEnum::Out ProfileType;
Maybe< IfcLabel::Out > ProfileName;
};
// C++ wrapper for IfcParameterizedProfileDef
struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper<IfcParameterizedProfileDef,1> { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {}
Lazy< IfcAxis2Placement2D > Position;
};
// C++ wrapper for IfcZShapeProfileDef
struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcZShapeProfileDef,6> { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {}
IfcPositiveLengthMeasure::Out Depth;
IfcPositiveLengthMeasure::Out FlangeWidth;
IfcPositiveLengthMeasure::Out WebThickness;
IfcPositiveLengthMeasure::Out FlangeThickness;
Maybe< IfcPositiveLengthMeasure::Out > FilletRadius;
Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius;
};
// C++ wrapper for IfcRoot // C++ wrapper for IfcRoot
struct IfcRoot : ObjectHelper<IfcRoot,4> { IfcRoot() : Object("IfcRoot") {} struct IfcRoot : ObjectHelper<IfcRoot,4> { IfcRoot() : Object("IfcRoot") {}
IfcGloballyUniqueId::Out GlobalId; IfcGloballyUniqueId::Out GlobalId;
@ -1654,12 +1675,6 @@ namespace IFC {
Lazy< IfcCartesianPoint > Location; Lazy< IfcCartesianPoint > Location;
}; };
// C++ wrapper for IfcProfileDef
struct IfcProfileDef : ObjectHelper<IfcProfileDef,2> { IfcProfileDef() : Object("IfcProfileDef") {}
IfcProfileTypeEnum::Out ProfileType;
Maybe< IfcLabel::Out > ProfileName;
};
// C++ wrapper for IfcArbitraryClosedProfileDef // C++ wrapper for IfcArbitraryClosedProfileDef
struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryClosedProfileDef,1> { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {} struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryClosedProfileDef,1> { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {}
Lazy< IfcCurve > OuterCurve; Lazy< IfcCurve > OuterCurve;
@ -1997,6 +2012,11 @@ namespace IFC {
Maybe< Lazy< IfcDirection > > Axis; Maybe< Lazy< IfcDirection > > Axis;
}; };
// C++ wrapper for IfcColourSpecification
struct IfcColourSpecification : ObjectHelper<IfcColourSpecification,1> { IfcColourSpecification() : Object("IfcColourSpecification") {}
Maybe< IfcLabel::Out > Name;
};
// C++ wrapper for IfcStructuralPointAction // C++ wrapper for IfcStructuralPointAction
struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper<IfcStructuralPointAction,0> { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {} struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper<IfcStructuralPointAction,0> { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {}
@ -2103,11 +2123,6 @@ namespace IFC {
IfcFlowInstrumentTypeEnum::Out PredefinedType; IfcFlowInstrumentTypeEnum::Out PredefinedType;
}; };
// C++ wrapper for IfcParameterizedProfileDef
struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper<IfcParameterizedProfileDef,1> { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {}
Lazy< IfcAxis2Placement2D > Position;
};
// C++ wrapper for IfcUShapeProfileDef // C++ wrapper for IfcUShapeProfileDef
struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcUShapeProfileDef,8> { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {} struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcUShapeProfileDef,8> { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {}
IfcPositiveLengthMeasure::Out Depth; IfcPositiveLengthMeasure::Out Depth;
@ -3215,11 +3230,6 @@ namespace IFC {
IfcBoilerTypeEnum::Out PredefinedType; IfcBoilerTypeEnum::Out PredefinedType;
}; };
// C++ wrapper for IfcColourSpecification
struct IfcColourSpecification : ObjectHelper<IfcColourSpecification,1> { IfcColourSpecification() : Object("IfcColourSpecification") {}
Maybe< IfcLabel::Out > Name;
};
// C++ wrapper for IfcColourRgb // C++ wrapper for IfcColourRgb
struct IfcColourRgb : IfcColourSpecification, ObjectHelper<IfcColourRgb,3> { IfcColourRgb() : Object("IfcColourRgb") {} struct IfcColourRgb : IfcColourSpecification, ObjectHelper<IfcColourRgb,3> { IfcColourRgb() : Object("IfcColourRgb") {}
IfcNormalisedRatioMeasure::Out Red; IfcNormalisedRatioMeasure::Out Red;
@ -3270,16 +3280,6 @@ namespace IFC {
}; };
// C++ wrapper for IfcZShapeProfileDef
struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcZShapeProfileDef,6> { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {}
IfcPositiveLengthMeasure::Out Depth;
IfcPositiveLengthMeasure::Out FlangeWidth;
IfcPositiveLengthMeasure::Out WebThickness;
IfcPositiveLengthMeasure::Out FlangeThickness;
Maybe< IfcPositiveLengthMeasure::Out > FilletRadius;
Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius;
};
// C++ wrapper for IfcRationalBezierCurve // C++ wrapper for IfcRationalBezierCurve
struct IfcRationalBezierCurve : IfcBezierCurve, ObjectHelper<IfcRationalBezierCurve,1> { IfcRationalBezierCurve() : Object("IfcRationalBezierCurve") {} struct IfcRationalBezierCurve : IfcBezierCurve, ObjectHelper<IfcRationalBezierCurve,1> { IfcRationalBezierCurve() : Object("IfcRationalBezierCurve") {}
ListOf< REAL, 2, 0 >::Out WeightsData; ListOf< REAL, 2, 0 >::Out WeightsData;
@ -3829,6 +3829,9 @@ namespace STEP {
#define DECL_CONV_STUB(type) template <> size_t GenericFill<IFC::type>(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in) #define DECL_CONV_STUB(type) template <> size_t GenericFill<IFC::type>(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in)
DECL_CONV_STUB(IfcProfileDef);
DECL_CONV_STUB(IfcParameterizedProfileDef);
DECL_CONV_STUB(IfcZShapeProfileDef);
DECL_CONV_STUB(IfcRoot); DECL_CONV_STUB(IfcRoot);
DECL_CONV_STUB(IfcObjectDefinition); DECL_CONV_STUB(IfcObjectDefinition);
DECL_CONV_STUB(IfcTypeObject); DECL_CONV_STUB(IfcTypeObject);
@ -3880,7 +3883,6 @@ namespace STEP {
DECL_CONV_STUB(IfcUnitaryEquipmentType); DECL_CONV_STUB(IfcUnitaryEquipmentType);
DECL_CONV_STUB(IfcPort); DECL_CONV_STUB(IfcPort);
DECL_CONV_STUB(IfcPlacement); DECL_CONV_STUB(IfcPlacement);
DECL_CONV_STUB(IfcProfileDef);
DECL_CONV_STUB(IfcArbitraryClosedProfileDef); DECL_CONV_STUB(IfcArbitraryClosedProfileDef);
DECL_CONV_STUB(IfcCurve); DECL_CONV_STUB(IfcCurve);
DECL_CONV_STUB(IfcConic); DECL_CONV_STUB(IfcConic);
@ -3943,6 +3945,7 @@ namespace STEP {
DECL_CONV_STUB(IfcDimensionCurve); DECL_CONV_STUB(IfcDimensionCurve);
DECL_CONV_STUB(IfcBoundedCurve); DECL_CONV_STUB(IfcBoundedCurve);
DECL_CONV_STUB(IfcAxis1Placement); DECL_CONV_STUB(IfcAxis1Placement);
DECL_CONV_STUB(IfcColourSpecification);
DECL_CONV_STUB(IfcStructuralPointAction); DECL_CONV_STUB(IfcStructuralPointAction);
DECL_CONV_STUB(IfcSpatialStructureElement); DECL_CONV_STUB(IfcSpatialStructureElement);
DECL_CONV_STUB(IfcSpace); DECL_CONV_STUB(IfcSpace);
@ -3963,7 +3966,6 @@ namespace STEP {
DECL_CONV_STUB(IfcVertex); DECL_CONV_STUB(IfcVertex);
DECL_CONV_STUB(IfcVertexPoint); DECL_CONV_STUB(IfcVertexPoint);
DECL_CONV_STUB(IfcFlowInstrumentType); DECL_CONV_STUB(IfcFlowInstrumentType);
DECL_CONV_STUB(IfcParameterizedProfileDef);
DECL_CONV_STUB(IfcUShapeProfileDef); DECL_CONV_STUB(IfcUShapeProfileDef);
DECL_CONV_STUB(IfcRamp); DECL_CONV_STUB(IfcRamp);
DECL_CONV_STUB(IfcCompositeCurve); DECL_CONV_STUB(IfcCompositeCurve);
@ -4150,7 +4152,6 @@ namespace STEP {
DECL_CONV_STUB(IfcConstructionMaterialResource); DECL_CONV_STUB(IfcConstructionMaterialResource);
DECL_CONV_STUB(IfcRelAggregates); DECL_CONV_STUB(IfcRelAggregates);
DECL_CONV_STUB(IfcBoilerType); DECL_CONV_STUB(IfcBoilerType);
DECL_CONV_STUB(IfcColourSpecification);
DECL_CONV_STUB(IfcColourRgb); DECL_CONV_STUB(IfcColourRgb);
DECL_CONV_STUB(IfcDoorStyle); DECL_CONV_STUB(IfcDoorStyle);
DECL_CONV_STUB(IfcDuctSilencerType); DECL_CONV_STUB(IfcDuctSilencerType);
@ -4159,7 +4160,6 @@ namespace STEP {
DECL_CONV_STUB(IfcSensorType); DECL_CONV_STUB(IfcSensorType);
DECL_CONV_STUB(IfcAirTerminalBoxType); DECL_CONV_STUB(IfcAirTerminalBoxType);
DECL_CONV_STUB(IfcAnnotationSurfaceOccurrence); DECL_CONV_STUB(IfcAnnotationSurfaceOccurrence);
DECL_CONV_STUB(IfcZShapeProfileDef);
DECL_CONV_STUB(IfcRationalBezierCurve); DECL_CONV_STUB(IfcRationalBezierCurve);
DECL_CONV_STUB(IfcCartesianTransformationOperator2D); DECL_CONV_STUB(IfcCartesianTransformationOperator2D);
DECL_CONV_STUB(IfcCartesianTransformationOperator2DnonUniform); DECL_CONV_STUB(IfcCartesianTransformationOperator2DnonUniform);

View File

@ -94,6 +94,7 @@ IfcSurfaceStyleRendering
IfcSurfaceStyleShading IfcSurfaceStyleShading
IfcSurfaceStyleWithTextures IfcSurfaceStyleWithTextures
IfcSweptAreaSolid IfcSweptAreaSolid
IfcSweptDiskSolid
IfcTopologicalRepresentationItem IfcTopologicalRepresentationItem
IfcTrimmedCurve IfcTrimmedCurve
IfcUnit IfcUnit