3D模型格式转换工具HOOPS Exchange如何初始化使用?

初始化HOOPS Exchange

本指南解释了如何在您的项目中加载和初始化HOOPS Exchange以供使用。确保您已经按照上一个教程中所示配置了项目。

HOOPS中文网icon-default.png?t=N7T8http://techsoft3d.evget.com/

HOOPS Exchange是一个通过C API使用的库,以头文件和二进制文件的形式提供。主二进制文件是一个名为A3DLIBS.dll、libA3DLIBS.so或A3DLIBS.dylib的共享库,具体取决于您的操作系统。对于iOS,它是一个名为A3DLIBS.a的静态库。

要加载C语言库,您可以在应用程序构建期间链接它,也可以在运行时使用LoadLibrary (Windows)或dlopen(GNU编译器)等系统调用手动加载它。HOOPS Exchange使用显式加载方法。

HOOPS Exchange​交换标头

在您的程序中,负责初始化HOOPS Exchange的源文件必须包含头文件A3DSDKLoader.h。只有一个源文件应加载HOOPS Exchange,并且它应包含A3DSDKLoader.h。其他项目文件可以包含单个源文件(如A3DSDKConvert.h),或使用一劳永逸的A3DSDKIncludes.h来包含整个API。

Linux和macOS开发人员请注意:HOOPS Exchange使用动态加载。如果您在Linux或macOS上使用HOOPS Exchange,请确保您的编译器配置了HAVE_DLFCN_H预处理器标志,并使用链接器选项链接到DLFCN -ldl。

加载库

要加载库,请使用库文件夹的路径调用函数A3DSDKLoadLibrary。例如:

A3DBool loaded = A3DSDKLoadLibraryA(PATH_TO_A3DLIBS_DIR);
if (loaded) { // HOOPS Exchange Loaded}

提供许可证

加载库后,第一个调用的函数是A3DLicPutUnifiedLicense().此函数提供库运行所需的许可证密钥:

A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE);
if (result == A3D_SUCCESS) { // License provided}

如果在没有有效许可证的情况下进行任何API调用,则会返回A3D_INVALID_LICENSE。

初始化库

HOOPS Exchange的初始化是执行内部初始化的库端操作。A3DDllInitialize()使用主要版本号和次要版本号进行调用。使用A3D_DLL_MAJORVERSION和A3D_DLL_MINORVERSION指定与头文件相同的版本。例如:

A3DStatus result = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION);

if (result == A3D_SUCCESS) {// HOOPS Exchange initialized}

初始化是一项一次性操作。如果多个程序加载相同的HOOPS Exchange二进制文件,则初始化是共享的。该函数A3DDllIsInitialized()检查库是否已经初始化。

终止库

当您的应用程序完成HOOPS Exchange后,请调用A3DDllTerminate()以处置任何使用的资源。每个应用程序应该调用一次,并且应该与对 的调用配对A3DDllInitialize()。

卸载库

要卸载库,请使用A3DSDKUnloadLibrary().这会将所有函数指针重置为0并卸载库文件。

A3DSDKUnloadLibrary()

代码示例

下面是一个用C编写的最小工作示例,演示了如何初始化HOOPS Exchange:

#define INITIALIZE_A3D_API
#include 
int main(int argc, char* argv[])
{
    // Load the library
    A3DBool loaded = A3DSDKLoadLibraryA(PATH_TO_A3DLIBS_DIR);
    assert(loaded);

    // Initialize and terminate if not already done
    A3DBool must_initialize = !A3DDllIsInitialized();

    if (must_initialize) {
        A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE);
        assert(result == A3D_SUCCESS);

        result = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION);
        assert(result == A3D_SUCCESS);
    }
    // HOOPS Exchange ready to use!
    if (must_initialize) {
        A3DDllTerminate();
    }
    // Unload the library
    A3DSDKUnloadLibrary()
    return EXIT_SUCCESS;
}

包含INITIALIZE_A3D_API宏以提供必要的功能。请记住仅将其包含在一个源文件中,以避免多重定义错误。

特别规则

对于iOS版本,HOOPS Exchange提供HOOPS Parasolid Bridge作为扩展库。它允许HOOPS Exchange和Parasolid之间的转换。在iOS上将HOOPS Exchange与Parasolid Bridge一起使用时,定义A3DAPI_NO_IOS_HEPB_STUB宏以避免链接器错误问题。

#define A3DAPI_NO_IOS_HEPB_STUB
#include 
// HOOPS Exchange Initialization

A3DSDKLoader.h头文件提供函数并定义函数指针。确保仅将其包含在一个源文件中以避免错误。

HOOPS ExchangeLoader类

对于C++应用程序,您可以使用该类HOOPSExchangeLoader来简化HOOPS Exchange的初始化和处置。该类确保HOOPS Exchange在其生命周期内进行初始化,并在实例超出范围时自动释放。

申请HOOPS Exchange试用icon-default.png?t=N7T8http://x7pfmmn259623uby.mikecrm.com/d7EBgIv

如果您的企业目前也有3D数据格式转换3D Web轻量化渲染的需求,欢迎联系我们~

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HOOPS Exchange是一个软件工具,它提供了对模型的B-rep定义的完全访问权限,并且允许开发人员将模型导入到他们的几何引擎中。开发人员可以使用HOOPS Exchange的API来进行各种操作,例如分割周期性曲面、转换修剪曲线等。此外,HOOPS Exchange还可以将模型导出为多种B-rep格式,如STEP、IGES、JT和ACIS,开发人员可以根据自己的需要选择导出的文件类型。HOOPS Exchange还包括Parasolid连接器组件,可以与Parasolid建模器进行集成,并确保导入的模型质量最高。如果开发人员只对B-rep数据感兴趣,他们可以使用单个高级API从任何文件中提取B-rep,并将其带入活动的Parasolid会话。这样可以大大减少将HOOPS Exchange集成到基于Parasolid应用程序中所需的时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【技术指南】3D转换工具HOOPS Exchange的功能特征和典型使用场景全解析(一)](https://blog.csdn.net/Juvien_Huang/article/details/131637552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【技术指南】3D转换工具HOOPS Exchange的功能特征和典型使用场景全解析(二)](https://blog.csdn.net/Juvien_Huang/article/details/131764724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值