コード例 #1
0
ファイル: BsMeshUtility.cpp プロジェクト: lysannschlegel/bsf
	INT32 TriangleClipperBase::clipByPlane(const Plane& plane)
	{
		int state = processVertices(plane);

		if (state == 1)
			return +1; // Nothing is clipped
		else if (state == -1)
			return -1; // Everything is clipped

		processEdges();
		processFaces();

		return 0;
	}
コード例 #2
0
ファイル: ClipMesh.cpp プロジェクト: KasumiL5x/hadan
ClipMesh::Result ClipMesh::clip( const Plane& clipPlane ) {
	const Result result = processVertices(clipPlane);

	// no more processing required if the mesh isn't clipped
	if( result != Result::Dissected ) {
		return result;
	}

	processEdges();
	if( !processFaces(clipPlane) ) {
		//printf("Error: Failed to process faces.\n");
		return Result::Visible;
	}

	return Result::Dissected;
}