适用于C/C++开发人员的HOOPS

1.编译和运行时信息

1.1编制和执行

编译和运行基于C的应用程序需要以下步骤:
编译:

  • 所有3DGS应用:
    • hoops.lib
  • 使用HOOPS/MVO的应用:
    • hoops_mvo.lib
  • 使用HOOPS/Stream的应用:
    • hoops_stream.lib

执行:确保以下本地DLL位于应用程序的目录或PATH中。

  • 所有3DGS应用:
    • hoops< version > _v< Visual Studio version >.dll
  • 使用HOOPS/MVO的应用:
    • hoops_mvo< version >_v< Visual Studio version >.dll
    • hoops_mvo_mgk< version >_v< Visual Studio version >.dll
  • 使用HOOPS/Stream的应用:
    • hoops_stream< version >_v< Visual Studio version >.dll

如果您正在使用文件reader插件(如HOOPS Exchange或DWG),则还必须在应用程序的运行时环境中提供相应的.hio文件。例如,要使用HOOPS Exchange读取文件,请确保提供hioexchange<version>.hio。请注意,这些HIO文件仅是接口-您仍然需要支持的第三方库来使用HIO功能。

上述文件位于/bin/nt_i386_vc<Visual Studio版本>目录中。

2.C/C++定义

为了访问包括HOOPS可视化API的HC_rountines函数原型,HOOPS Visualize的用户需要在他们的程序中包含头文件hc.h。
HOOPS I.M.的用户还应包含hic.h来访问中间模式例程。中间模式例程不是Visualize之上的一层。中间模式例程直接访问HOOPS Visualize本身使用的数据和过程。包含hic.h自动为用户包含hoop.h。可视化本身的约定和编码风格体现在hoops.h中。通过查看驱动程序源代码,可以轻松识别这种编码风格。以下词语在hoops.h中定义:

null
countof
true, false
forever
until
global, globaldata
local
nobreak
stack

在HOOPS I.M.程序中不要使用这些词汇。

3.例程名称

3.1例程名称:前缀

Visualize程序中的每个例程名称(例如::Insert_Polyline)必须有前缀,才能在计算机系统上实际使用该名称。前缀取决于您使用的语言,有时还取决于您所使用的语言的品牌。当从C和C++调用时,用户必须在例程前面加上HC_,如::Reset_System。

3.2通用名称

所有HOOPS Visualize例程的名称都遵循一个标准模式:名称的第一部分是一个主动动词,表示要做什么,第二部分是描述性名词。最常见的动词有:

  • Define:更改全局系统状态,或将某些内容添加到系统范围的表中。
  • Insert:将新的图片元素合并到当前片段中,并返回对该元素的引用。
  • DInsert:Insert的双精度版本。传递double而不是float。
  • Edit:更改现有图片元素的定义。
  • DEdit:编辑的双精度版本。传递double而不是float。
  • Set:为属性加载显式新值。
  • UnSet:取消设置。(允许再次从更高级别继承属性值。)
  • Show:从系统中检索一项信息。
  • DShow:双精度版本。返回double而不是float。
  • Begin:初始化数据库信息搜索。
  • Find:逐步进行信息搜索。
  • End:完成信息搜索。

请注意,各种状态修改例程中会出现许多其他动词,例如::Dolly_Camer和::Rename_Seggment。这些不太频繁出现的动词通常是不言自明的。

最常用的名词:

  • Segment: The routine works with a graphics segment (a place for storing picture elements) as one element.
  • Camera: The routine positions or moves the viewing camera.
  • Object: The routine works with the “real” objects (as organized into segments) from which your scene is composed.
  • Text: The routine affects the text labels appearing in the scene.

4.C/C++中的数据类型名称和语言声明

4.1HC_ 约定

HC_subroutines(子例程)使用的数据类型转换如下:
在这里插入图片描述
由于HOOPS使用的位模式可能与“TRUE”宏的位模式不相同,请避免将“布尔值”与“TRUE值”进行显式比较。相反,请依赖“不等于零”的C属性。

如果例程定义指定“通过引用传递”,则C中的参数必须是前面有“&”的简单变量或指针值。

如果例程定义指定了return子句,则可以忽略C中的返回值。这在其他语言中可能不正确。

如果实际参数(字符串)被指定为通过引用传递。返回给用户时,必须提供一个足够大的简单变量的地址,以容纳可能返回的内容。(调用::Define_System_Options可用于指定HOOPS应返回的最大C字符串长度。)

4.2 HIC约定

HIC_子例程使用的其他数据类型转换如下:

HIC_Marker, HIC_Point, HIC_Polygon, HIC_Polyline, and HIC_Text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值