OpenSubdiv.OPENSUBDIV_VERSION.Bfr
OpenSubdiv.OPENSUBDIV_VERSION.Far
OpenSubdiv.OPENSUBDIV_VERSION.Osd
OpenSubdiv.OPENSUBDIV_VERSION.Sdc
OpenSubdiv.OPENSUBDIV_VERSION.Vtr

OpenSubdiv.OPENSUBDIV_VERSION.Sdc.Scheme

概述

OpenSubdiv是一个开源的面向细分曲面的计算库,Sdc.Scheme是OpenSubdiv库中的一个类,用于表示细分曲面的拓扑结构。本文档将介绍Sdc.Scheme类的详细使用方法。

构造函数

Sdc.Scheme类有两个构造函数:

Scheme();
Scheme(SchemeType type);
  • Scheme():默认构造函数,创建一个空的拓扑结构。
  • Scheme(SchemeType type):根据传入的SchemeType类型,创建一个指定类型的拓扑结构。

SchemeType是一个枚举类型,包含了以下几种类型:

HBR_CATMARK,
HBR_LOOP,
HBR_BILINEAR,
HBR_PATCH

成员函数

Sdc.Scheme类具有以下成员函数:

Init(HbrMesh<T>* mesh)

初始化拓扑结构。

参数:

  • mesh:待初始化的网格数据。

Refine(HbrMesh<T>* mesh)

对网格进行一次细分,生成新的拓扑结构。

参数:

  • mesh:待细分的网格数据。

Mark(HbrMesh<T>* mesh)

标记所有需要添加新顶点的位置。

参数:

  • mesh:待标记的网格数据。

Unmark(HbrMesh<T>* mesh)

取消标记所有需要添加新顶点的位置。

参数:

  • mesh:待取消标记的网格数据。

SetMaxEdgeLength(float length)

设置最大边长。

参数:

  • length:最大边长值。

GetMaxEdgeLength() const

获取最大边长。

返回值:

  • 最大边长值。

SetPatchArray(std::vector<std::vector<int>> const& patchArray)

设置网格的面片拓扑结构。

参数:

  • patchArray:面片拓扑结构数组。

GetPatchArray() const

获取网格的面片拓扑结构。

返回值:

  • 面片拓扑结构数组。

总结

Sdc.Scheme是OpenSubdiv库中用于表示细分曲面拓扑结构的类,具有初始化、细分、标记、取消标记、设置和获取最大边长、设置和获取面片拓扑结构等功能。在使用时只需要调用对应的函数即可完成相应的操作。