• 适用于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目录中。

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在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
    
    • 1
  • 相关阅读:
    深入剖析红黑树:优雅地平衡二叉搜索树
    高级人工智能复习 中科大
    HTML期末作业,基于html实现中国脸谱传统文化网站设计(5个页面)
    java计算机毕业设计游泳馆信息管理系统源码+数据库+系统+部署+lw文档
    接口性能优化的11个小技巧,每个都是精髓
    最小二乘法求导-公式推导
    IO多路复用技术(二)
    SpringBoot+Mybaits搭建通用管理系统实例三:数据库处理Dao层功能实现
    富格林金业:认识分批建仓重要性
    python 将一列文本或字符串调整成一行 中间用逗号 单引号分隔
  • 原文地址:https://blog.csdn.net/haimianjie2012/article/details/128004017