From d316efe9029143f0e1e9e4849525cd55f5a39876 Mon Sep 17 00:00:00 2001 From: D4ve-R Date: Wed, 17 May 2023 14:24:09 +0200 Subject: [PATCH] fix filename bug --- src/ifcconvert/IfcConvert.cpp | 21 ++++++++++++++------- src/serializers/USDSerializer.cpp | 8 ++------ src/svgfill | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 039b764e66..9a227b6090 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -691,7 +691,7 @@ int main(int argc, char** argv) { std::vector tokens; split(tokens, output_filename, boost::is_any_of(".")); - std::vector::iterator tok_iter; + std::vector::iterator tok_itxer; path_t ext = *(tokens.end() - 1); path_t dot; dot = '.'; @@ -713,7 +713,8 @@ int main(int argc, char** argv) { XML = IfcUtil::path::from_utf8(".xml"), IFC = IfcUtil::path::from_utf8(".ifc"), USD = IfcUtil::path::from_utf8(".usd"), - USDA = IfcUtil::path::from_utf8(".usda"); + USDA = IfcUtil::path::from_utf8(".usda"), + USDC = IfcUtil::path::from_utf8(".usdc"); // @todo clean up serializer selection // @todo detect program options that conflict with the chosen serializer @@ -858,7 +859,7 @@ int main(int argc, char** argv) { serializer = boost::make_shared(IfcUtil::path::to_utf8(output_temp_filename), settings); #endif #ifdef WITH_USD - } else if (output_extension == USD || output_extension == USDA) { + } else if (output_extension == USD || output_extension == USDA || output_extension == USDC) { serializer = boost::make_shared(IfcUtil::path::to_utf8(output_filename), settings); #endif } else if (output_extension == STP) { @@ -1183,11 +1184,17 @@ int main(int argc, char** argv) { Logger::Message(Logger::LOG_PERF, "done file geometry conversion"); + bool successful; + if(output_extension == USD || output_extension == USDC || output_extension == USDA) { + // No need to rename the file + successful = true; + } + else { + // Renaming might fail (e.g. maybe the existing file was open in a viewer application) + // Do not remove the temp file as user can salvage the conversion result from it. + successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)); + } - // Renaming might fail (e.g. maybe the existing file was open in a viewer application) - // Do not remove the temp file as user can salvage the conversion result from it. - bool successful = IfcUtil::path::rename_file(IfcUtil::path::to_utf8(output_temp_filename), IfcUtil::path::to_utf8(output_filename)) - || output_extension == USD || output_extension == USDA; if (!successful) { cerr_ << "Unable to write output file '" << output_filename << "', see '" << output_temp_filename << "' for the conversion result."; diff --git a/src/serializers/USDSerializer.cpp b/src/serializers/USDSerializer.cpp index 29fe543da2..f111064124 100644 --- a/src/serializers/USDSerializer.cpp +++ b/src/serializers/USDSerializer.cpp @@ -32,8 +32,7 @@ USDSerializer::USDSerializer(const std::string& out_filename, const SerializerSe WriteOnlyGeometrySerializer(settings), filename_(out_filename) { - // why does this not work with just the filename ??? - stage_ = pxr::UsdStage::CreateNew(filename_ + ".usda"); + stage_ = pxr::UsdStage::CreateNew(filename_); if(!stage_) throw std::runtime_error("Could not create USD stage"); @@ -51,10 +50,7 @@ USDSerializer::~USDSerializer() { void USDSerializer::createLighting() { const std::string& light_path = "/World/defaultLight"; - pxr::UsdLuxDistantLight::Define(stage_, pxr::SdfPath(light_path)); - pxr::UsdGeomXform xform(stage_->GetPrimAtPath(pxr::SdfPath(light_path))); - pxr::GfVec3f light_direction(0.0f, 0.0f, -1.0f); - pxr::UsdLuxDistantLight light(stage_->GetPrimAtPath(pxr::SdfPath(light_path))); + auto light = pxr::UsdLuxDistantLight::Define(stage_, pxr::SdfPath(light_path)); light.CreateIntensityAttr().Set(1000.0f); light.CreateColorAttr().Set(pxr::GfVec3f(1.0f, 1.0f, 1.0f)); } diff --git a/src/svgfill b/src/svgfill index 4d2aa7acf7..22216ac584 160000 --- a/src/svgfill +++ b/src/svgfill @@ -1 +1 @@ -Subproject commit 4d2aa7acf76cb8509ab3ba2961c34502adf3abe9 +Subproject commit 22216ac584997552f35b7cab7e07411d391649f8