b = igl.eigen.MatrixXd([[0]]).castint() bc = igl.eigen.MatrixXd([[1, 0, 0]]) # Create a smooth 4-RoSy field S = igl.eigen.MatrixXd() igl.comiso.nrosy(V, F, b, bc, igl.eigen.MatrixXi(), igl.eigen.MatrixXd(), igl.eigen.MatrixXd(), 4, 0.5, X1, S) # Find the orthogonal vector B1 = igl.eigen.MatrixXd() B2 = igl.eigen.MatrixXd() B3 = igl.eigen.MatrixXd() igl.local_basis(V, F, B1, B2, B3) X2 = igl.rotate_vectors(X1, igl.eigen.MatrixXd.Constant(1, 1, pi / 2), B1, B2) gradient_size = 50 iterations = 0 stiffness = 5.0 direct_round = False # Always work on the bisectors, it is more general igl.compute_frame_field_bisectors(V, F, X1, X2, BIS1, BIS2) # Comb the field, implicitly defining the seams igl.comb_cross_field(V, F, BIS1, BIS2, BIS1_combed, BIS2_combed) # Find the integer mismatches igl.cross_field_missmatch(V, F, BIS1_combed, BIS2_combed, True, MMatch)
b = igl.eigen.MatrixXi([[0]]) bc = igl.eigen.MatrixXd([[1, 0, 0]]) # Create a smooth 4-RoSy field S = igl.eigen.MatrixXd() igl.comiso.nrosy(V, F, b, bc, igl.eigen.MatrixXi(), igl.eigen.MatrixXd(), igl.eigen.MatrixXd(), 4, 0.5, X1, S) # Find the the orthogonal vector B1 = igl.eigen.MatrixXd() B2 = igl.eigen.MatrixXd() B3 = igl.eigen.MatrixXd() igl.local_basis(V, F, B1, B2, B3) X2 = igl.rotate_vectors(X1, igl.eigen.MatrixXd.Constant(1, 1, pi / 2), B1, B2) gradient_size = 50 iterations = 0 stiffness = 5.0 direct_round = False # Always work on the bisectors, it is more general igl.compute_frame_field_bisectors(V, F, X1, X2, BIS1, BIS2) # Comb the field, implicitly defining the seams igl.comb_cross_field(V, F, BIS1, BIS2, BIS1_combed, BIS2_combed) # Find the integer mismatches igl.cross_field_missmatch(V, F, BIS1_combed, BIS2_combed, True, MMatch)