35 lines
1.5 KiB
C++
35 lines
1.5 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "MuR/Platform.h"
|
|
|
|
namespace mu
|
|
{
|
|
class FMesh;
|
|
class FImage;
|
|
class FLayout;
|
|
|
|
/** Generate a classification list for which vertex of pBase is fully contained in pClipMesh */
|
|
extern void MeshClipMeshClassifyVertices(TBitArray<>& VertexInClipMesh, const FMesh* Base, const FMesh* ClipMesh);
|
|
|
|
/** */
|
|
extern void MeshClipWithMesh(FMesh* Result, const FMesh* Base, const FMesh* ClipMesh, bool& bOutSuccess);
|
|
|
|
/** Generate a mask mesh with the faces of the base mesh inside the clip mesh. */
|
|
extern void MeshMaskClipMesh(FMesh* Result, const FMesh* Base, const FMesh* ClipMesh, bool& bOutSuccess);
|
|
|
|
/** Generate a mask mesh with the faces of the base mesh that have all 3 vertices marked in the given mask. */
|
|
extern void MakeMeshMaskFromUVMask(FMesh* Result, const FMesh* Base, const FMesh* BaseForUVs, const FImage* Mask, uint8 LayoutIndex, bool& bOutSuccess);
|
|
|
|
/** Generate a mask mesh with the faces of the base mesh matching the fragment. */
|
|
extern void MeshMaskDiff(FMesh* Result, const FMesh* Base, const FMesh* Fragment, bool& bOutSuccess);
|
|
|
|
/** Generate a mask mesh with the faces of the base mesh that have all 3 vertices inside any block of the given layout. */
|
|
extern void MakeMeshMaskFromLayout(FMesh* Result, const FMesh* Base, const FMesh* BaseForUVs, const FLayout* Mask, uint8 LayoutIndex, bool& bOutSuccess);
|
|
|
|
/** Return true if the mesh is closed. Usually used to validate clipping meshes. */
|
|
extern bool IsMeshClosed(const FMesh* Mesh);
|
|
|
|
}
|