Judgment of C2 or C4 intersection of NURBS curve.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

40 lines
832 B

//
// Created by 14727 on 2022/12/7.
//
#ifndef C2C4_C2C4_H
#define C2C4_C2C4_H
#include "tinynurbs/tinynurbs.h"
#include "glm/glm.hpp"
#include "../include/Range.h"
using namespace tinynurbs;
using namespace std;
class C2C4 {
private:
// 雅可比矩阵【行】【列】<左界,右界>
vector<vector<Range>> jacobian;
/**
* 求range去掉某一列的三阶子行列式是否含零
* @return 若去掉某些列,三阶子行列式含零,输出去掉的列号
*/
Range determinant3(int c0, int c1, int c2);
Range determinant2(int l0, int l1, int c0, int c1);
public:
const int sample_u = 100;
const int sample_v = 100;
RationalSurface<double> srf1;
RationalSurface<double> srf2;
pair<bool, bool> c2OrC4();
vector<int> c4ExcludeCols;
};
#endif //C2C4_C2C4_H