Integration of gauss map, osculating toroidal patches, loop detection and C2 judgement to figure out the singular or loop intersection.
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.

49 lines
1.1 KiB

2 years ago
//
// Created by 14727 on 2022/12/7.
//
#ifndef C2C4_C2C4_H
#define C2C4_C2C4_H
#include "../include/Range.h"
#include "glm/glm.hpp"
2 years ago
#include "srf_mesh.h"
#include "tinynurbs/tinynurbs.h"
#include "vector"
2 years ago
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);
2 years ago
public:
C2C4(const SrfMesh &mesh1_, const SrfMesh &mesh2_,
RationalSurface<real> srf1_, RationalSurface<real> srf2_);
2 years ago
const SrfMesh &mesh1;
const SrfMesh &mesh2;
2 years ago
// 在给定的mesh的最小网格上重新细分的采样数目
int reSampleCnt_u = 17;
int reSampleCnt_v = 17;
2 years ago
RationalSurface<real> srf1;
RationalSurface<real> srf2;
2 years ago
pair<bool, bool> c2OrC4(int patchIdx_u1, int patchIdx_v1, int patchIdx_u2,
int patchIdx_v2);
vector<int> c4ExcludeCols;
2 years ago
};
#endif // C2C4_C2C4_H