def evaluateBases(self, surf, u, v, uder=0, vder=0): """ Return matrix that multiples with C to give n points corresponding to (s,u,v). Input surf: integer(n) 0-based surface index u: double(n) Parametric coordinate [0,1] v: double(n) Parametric coordinate [0,1] Output B: double(n,nC) Matrix whose rows correspond to the requested points """ nB = PUBSlib.evaluatebnnz(surf.shape[0], self.nsurf, self.nedge, self.ngroup, self.surf_edge, self.edge_group, self.group_k, surf+1) Ba, Bi, Bj = PUBSlib.evaluatebases(uder, vder, surf.shape[0], nB, self.nD, self.nsurf, self.nedge, self.ngroup, self.nvert, self.surf_vert, self.surf_edge, self.edge_group, self.group_k, self.group_m, self.group_d, self.surf_index_C, self.edge_index_C, self.knot_index, surf+1, u, v) B = scipy.sparse.csc_matrix((Ba,(Bi,Bj)),shape=(surf.shape[0],self.nC)) return B
def evaluateBases(self, surf, u, v, uder=0, vder=0): """ Return matrix that multiples with C to give n points corresponding to (s,u,v). Input surf: integer(n) 0-based surface index u: double(n) Parametric coordinate [0,1] v: double(n) Parametric coordinate [0,1] Output B: double(n,nC) Matrix whose rows correspond to the requested points """ nB = PUBSlib.evaluatebnnz(surf.shape[0], self.nsurf, self.nedge, self.ngroup, self.surf_edge, self.edge_group, self.group_k, surf + 1) Ba, Bi, Bj = PUBSlib.evaluatebases( uder, vder, surf.shape[0], nB, self.nD, self.nsurf, self.nedge, self.ngroup, self.nvert, self.surf_vert, self.surf_edge, self.edge_group, self.group_k, self.group_m, self.group_d, self.surf_index_C, self.edge_index_C, self.knot_index, surf + 1, u, v) B = scipy.sparse.csc_matrix((Ba, (Bi, Bj)), shape=(surf.shape[0], self.nC)) return B