Exemple #1
0
	void computeSymmetricDifference(
		CorkTriMesh in0, CorkTriMesh in1, CorkTriMesh *out
	) {
		CorkMesh cmIn0, cmIn1;
		corkTriMesh2CorkMesh(in0, &cmIn0);
		corkTriMesh2CorkMesh(in1, &cmIn1);
    
		cmIn0.boolXor(cmIn1);
    
		corkMesh2CorkTriMesh(&cmIn0, out);
	}
Exemple #2
0
	void computeUnion(
		CorkTriMesh in0, CorkTriMesh in1, CorkTriMesh *out
	) {
		CorkMesh cmIn0, cmIn1;
		corkTriMesh2CorkMesh(in0, &cmIn0);
		corkTriMesh2CorkMesh(in1, &cmIn1);
    
		cmIn0.boolUnion(cmIn1);
    
		corkMesh2CorkTriMesh(&cmIn0, out);
	}
Exemple #3
0
	void computeIntersection(
		CorkTriMesh in0, CorkTriMesh in1, CorkTriMesh *out
	) {
		CorkMesh cmIn0, cmIn1;
		corkTriMesh2CorkMesh(in0, &cmIn0);
		corkTriMesh2CorkMesh(in1, &cmIn1);
    
		cmIn0.boolIsct(cmIn1);
    
		corkMesh2CorkTriMesh(&cmIn0, out);
	}
Exemple #4
0
void computeSecond(
    CorkTriMesh in0, CorkTriMesh in1, CorkTriMesh *out
) {
    CorkMesh cmIn0, cmIn1;
    corkTriMesh2CorkMesh(in0, &cmIn0);
    corkTriMesh2CorkMesh(in1, &cmIn1);
    
    cmIn1.boolFirst(cmIn0);
    
    corkMesh2CorkTriMesh(&cmIn1, out);
}
Exemple #5
0
	void resolveIntersections(
		CorkTriMesh in0, CorkTriMesh in1, CorkTriMesh *out
	) {
		CorkMesh cmIn0, cmIn1;
		corkTriMesh2CorkMesh(in0, &cmIn0);
		corkTriMesh2CorkMesh(in1, &cmIn1);
    
		cmIn0.disjointUnion(cmIn1);
		cmIn0.resolveIntersections();
    
		corkMesh2CorkTriMesh(&cmIn0, out);
	}