RsFillHoleByNurbs_AppendSurfaceEdge

增加一条曲面边界曲线 (surface edge) 作为边界线。曲面边界曲线 (surface edge) 是指落在曲面上的曲线,这条曲线由一条曲面的 2D 参数空间上的二维曲线定义 。 如下图中的蓝色曲线。

接口定义

 
  extern "C" __declspec(dllimport) void RsFillHoleByNurbs_AppendSurfaceEdge(double* cpu, double* cpv, double* curve_weight, 
                     int ctrlp_num, int is_curve_rational, int degree, double* knot,int iso_type, 
                     int continuity, int hasface, double* surf_cpx, 
                     double* surf_cpy, double* surf_cpz, double* surf_weight, 
                     int u_num, int v_num, int is_surf_rational, int u_degree, int v_degree, double* u_knot, double* v_knot)

接口参数

输入数据:

参数包含两个部分内容: 曲面边界曲线的数据和NURBS 曲面数据

曲面边界曲线的数据:

double* cpu : 存储曲线控制顶点的 u 向坐标 , 长度为 ctrlp_num;

double* cpv: 存储曲线控制顶点的 v 向坐标 , 长度为 ctrlp_num;

double* curve_weight: 存储曲线控制顶点的权值 , 长度为 ctrlp_num; 如果该曲线为非有理 B 样条曲线,则 curve_weight 可以为空;

int iso_type: 该曲线是否为等参数线

int continuity: 新曲面在该曲线上的连续性 , 0: G0; 1: G1;

int hasface: 该值总是为 1;

NURBS 曲面数据 :

double* surf_cpx: 曲面控制点的 x 分量坐标,长度为 u_num*v_num ,沿 v 方向排列;

double* surf_cpy: 曲面控制点的 y 分量坐标,长度为 u_num*v_num ,沿 v 方向排列;

double* surf_cpz: 曲面控制点的 z 分量坐标,长度为 u_num*v_num ,沿 v 方向排列;

double* surf_weight: 曲面控制点上的权值,长度为 u_num*v_num ,沿 v 方向排列;如果该曲面是非有理 B 样条曲面 , 该值可以为空 ;

int u_num : 曲面在 U 方向的控制点数目;

int v_num: 曲面在 V 方向的控制点数目;

int is_surf_rational: 曲面是否为有理 NURBS 曲面。 0 代表非有理 B 样条曲面 ; 1 代表有理 NURBS 曲面;

int u_degree: 曲面在 U 方向的次数;

int v_degree: 曲面在 V 方向的次数;

double* u_knot: 曲面在 U 方向的节点向量,长度为 u_num+u_degree+1

double* v_knot: 曲面在 V 方向的节点向量,长度为 v_num+v_degree+1

返回值

无返回值

 

返回顶部