def evaluatePoint(self,surf,u,v,uder=0,vder=0): """ Return point or 1st or 2nd parametric derivative Input surf: integer 0-based surface index u: double Parametric coordinate [0,1] v: double Parametric coordinate [0,1] uder: integer Order of the desired derivative in the u direction vder: integer Order of the desired derivative in the v direction Output return: double(3) x-y-z values of the point or derivative requested """ ugroup = self.edge_group[abs(self.surf_edge[surf,0,0])-1] vgroup = self.edge_group[abs(self.surf_edge[surf,1,0])-1] ku = self.group_k[ugroup-1] kv = self.group_k[vgroup-1] mu = self.group_m[ugroup-1] mv = self.group_m[vgroup-1] P = PUBSlib.evaluatepoint(surf+1,uder,vder,ku,kv,mu,mv,self.nvar,self.nD,self.nC,self.nsurf,self.nedge,self.ngroup,self.nvert,u,v,self.surf_vert,self.surf_edge,self.edge_group,self.group_d,self.surf_index_C,self.edge_index_C,self.knot_index,self.C) return P
def evaluatePoint(self, surf, u, v, uder=0, vder=0): """ Return point or 1st or 2nd parametric derivative Input surf: integer 0-based surface index u: double Parametric coordinate [0,1] v: double Parametric coordinate [0,1] uder: integer Order of the desired derivative in the u direction vder: integer Order of the desired derivative in the v direction Output return: double(3) x-y-z values of the point or derivative requested """ ugroup = self.edge_group[abs(self.surf_edge[surf, 0, 0]) - 1] vgroup = self.edge_group[abs(self.surf_edge[surf, 1, 0]) - 1] ku = self.group_k[ugroup - 1] kv = self.group_k[vgroup - 1] mu = self.group_m[ugroup - 1] mv = self.group_m[vgroup - 1] P = PUBSlib.evaluatepoint( surf + 1, uder, vder, ku, kv, mu, mv, self.nvar, self.nD, self.nC, self.nsurf, self.nedge, self.ngroup, self.nvert, u, v, self.surf_vert, self.surf_edge, self.edge_group, self.group_d, self.surf_index_C, self.edge_index_C, self.knot_index, self.C) return P