/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// // ODA Platform #include "OdaCommon.h" #include "RxDynamicModule.h" #include "RxVariantValue.h" // Visualize SDK #include "TvFactory.h" //OBJ export #include "Visualize2Vsf.h" #include "DynamicLinker.h" #include "TvError.h" //***************************************************************************// // 'OdTvVisualize2VsfExportProperties' methods implementation //***************************************************************************// OdTvVisualize2VsfExportProperties::OdTvVisualize2VsfExportProperties() { } OdTvVisualize2VsfExportProperties::~OdTvVisualize2VsfExportProperties() { } OdRxDictionaryPtr OdTvVisualize2VsfExportProperties::createObject() { return OdRxObjectImpl::createObject(); } void OdTvVisualize2VsfExportProperties::setCompressionOptions(OdUInt16 iCompressionOpt) { m_nCompressionOpt = iCompressionOpt; } OdUInt16 OdTvVisualize2VsfExportProperties::getCompressionOptions() const { return m_nCompressionOpt; } ODRX_DECLARE_PROPERTY(CompressionOptions) ODRX_BEGIN_DYNAMIC_PROPERTY_MAP(OdTvVisualize2VsfExportProperties); ODRX_GENERATE_PROPERTY(CompressionOptions) ODRX_END_DYNAMIC_PROPERTY_MAP(OdTvVisualize2VsfExportProperties); ODRX_DEFINE_PROPERTY_METHODS(CompressionOptions, OdTvVisualize2VsfExportProperties, getCompressionOptions, setCompressionOptions, getUInt16); //***************************************************************************// // 'OdTvVisualize2VsfExport' methods implementation //***************************************************************************// OdTvVisualize2VsfExport::OdTvVisualize2VsfExport() { m_properties = OdTvVisualize2VsfExportProperties::createObject(); } OdTvResult OdTvVisualize2VsfExport::exportTo(const OdTvDatabaseId& tvDbId, const OdString& fileName) const { OdTvDatabasePtr pTvDb = tvDbId.openObject(); if (pTvDb.isNull() || fileName.isEmpty()) return tvInvalidInput; OdUInt16 comOpt = m_properties->getCompressionOptions(); OdTvVSFExportOptions exportOpt { (OdTvVSFExportOptions::Compression)(comOpt & 0xFF), (OdTvVSFExportOptions::NormalsCompression)((comOpt >> 8) & 0xFF) }; //call method for write the file OdTvResult rc = tvOk; try { rc = pTvDb->writeFile(fileName, &exportOpt); } catch (OdTvError& ) { return tvInternal; } return rc; } OdTvResult OdTvVisualize2VsfExport::exportTo(const OdTvDatabaseId& tvDbId, OdStreamBuf* pStreamBuf) const { return tvNotImplementedYet; } //***************************************************************************// // 'OdTvVisualize2PdfFilerModule' methods implementation //***************************************************************************// ODRX_DEFINE_DYNAMIC_MODULE(OdTvVisualize2VsfFilerModule); OdTvVisualizeExportPtr OdTvVisualize2VsfFilerModule::getVisualizeExporter() const { OdTvVisualizeExportPtr pObjExporter = new OdTvVisualize2VsfExport(); return pObjExporter; } void OdTvVisualize2VsfFilerModule::initApp() { // initialize the Visualize SDK odTvInitialize(); } void OdTvVisualize2VsfFilerModule::uninitApp() { // Uninitialize the Visualize SDK odTvUninitialize(); }