commit
840416831d
|
@ -330,7 +330,11 @@ void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, Conv
|
|||
const unsigned int cnt_segments = conv.settings.cylindricalTessellation;
|
||||
const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
|
||||
|
||||
const size_t samples = curve->EstimateSampleCount(solid.StartParam,solid.EndParam);
|
||||
TempMesh temp;
|
||||
curve->SampleDiscrete(temp, solid.StartParam, solid.EndParam);
|
||||
const std::vector<IfcVector3>& curve_points = temp.verts;
|
||||
|
||||
const size_t samples = curve_points.size();
|
||||
|
||||
result.verts.reserve(cnt_segments * samples * 4);
|
||||
result.vertcnt.reserve((cnt_segments - 1) * samples);
|
||||
|
@ -338,10 +342,6 @@ void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, Conv
|
|||
std::vector<IfcVector3> points;
|
||||
points.reserve(cnt_segments * samples);
|
||||
|
||||
TempMesh temp;
|
||||
curve->SampleDiscrete(temp,solid.StartParam,solid.EndParam);
|
||||
const std::vector<IfcVector3>& curve_points = temp.verts;
|
||||
|
||||
if(curve_points.empty()) {
|
||||
IFCImporter::LogWarn("curve evaluation yielded no points (IfcSweptDiskSolid)");
|
||||
return;
|
||||
|
|
|
@ -2652,6 +2652,7 @@ template <> size_t GenericFill<IfcNamedUnit>(const DB& db, const LIST& params, I
|
|||
size_t base = 0;
|
||||
if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcNamedUnit"); } do { // convert the 'Dimensions' argument
|
||||
std::shared_ptr<const DataType> arg = params[base++];
|
||||
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
||||
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcNamedUnit,2>::aux_is_derived[0]=true; break; }
|
||||
try { GenericConvert( in->Dimensions, arg, db ); break; }
|
||||
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcNamedUnit to be a `IfcDimensionalExponents`")); }
|
||||
|
|
Loading…
Reference in New Issue