19struct FDynamicSubmesh3;
529 bool bReverseOrientation =
false);
606 template <
typename RealType,
int ElementSize>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::Math::TVector< double > FVector3d
Definition MathFwd.h:60
Definition ArrayView.h:139
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition DynamicMesh3.h:108
Definition DynamicMeshEditor.h:71
EDuplicateTriBehavior
Definition DynamicMeshEditor.h:289
GEOMETRYCORE_API int FindOrCreateDuplicateVertex(int VertexID, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:1858
GEOMETRYCORE_API void AppendMesh(const FDynamicMesh3 *AppendMesh, FMeshIndexMappings &IndexMapsOut, TFunction< FVector3d(int, const FVector3d &)> PositionTransform=nullptr, TFunction< FVector3d(int, const FVector3d &)> NormalTransform=nullptr, bool bReverseOrientation=false)
Definition DynamicMeshEditor.cpp:1899
GEOMETRYCORE_API bool RemoveIsolatedVertices()
Definition DynamicMeshEditor.cpp:248
GEOMETRYCORE_API void SplitBowties(FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:1000
GEOMETRYCORE_API bool ReinsertSubmesh(const FDynamicSubmesh3 &Submesh, FOptionallySparseIndexMap &SubToNewV, TArray< int > *NewTris=nullptr, EDuplicateTriBehavior DuplicateBehavior=EDuplicateTriBehavior::EnsureAbort)
Definition DynamicMeshEditor.cpp:1068
GEOMETRYCORE_API void ReverseTriangleOrientations(const TArray< int > &Triangles, bool bInvertNormals)
Definition DynamicMeshEditor.cpp:1671
GEOMETRYCORE_API bool DisconnectTrianglesAlongEdges(const TSet< int32 > &Edges, TArray< int32 > *AddedVertexIDs=nullptr)
Definition DynamicMeshEditor.cpp:864
GEOMETRYCORE_API bool StitchVertexLoopsMinimal(const TArray< int > &VertexLoop1, const TArray< int > &VertexLoop2, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:315
GEOMETRYCORE_API void SetQuadUVsFromProjection(const FIndex2i &QuadTris, const FFrame3d &ProjectionFrame, float UVScaleFactor=1.0f, const FVector2f &UVTranslation=FVector2f::Zero(), int UVLayerIndex=0)
Definition DynamicMeshEditor.cpp:1557
static GEOMETRYCORE_API bool SplitMesh(const FDynamicMesh3 *SourceMesh, TArray< FDynamicMesh3 > &SplitMeshes, TFunctionRef< int(int)> TriIDToMeshID, int DeleteMeshID=-1, TArray< int32 > *MeshIDPerSplitMesh=nullptr, bool bSortByMeshID=false)
Definition DynamicMeshEditor.cpp:2584
GEOMETRYCORE_API bool StitchSparselyCorrespondedVertexLoops(const TArray< int > &VertexIDs1, const TArray< int > &MatchedIndices1, const TArray< int > &VertexIDs2, const TArray< int > &MatchedIndices2, FDynamicMeshEditResult &ResultOut, bool bReverseOrientation=false)
Definition DynamicMeshEditor.cpp:461
void SplitBowties(int VertexID, TArray< int32 > *NewVertices=nullptr)
Definition DynamicMeshEditor.h:251
GEOMETRYCORE_API void InvertTriangleNormals(const TArray< int > &Triangles)
Definition DynamicMeshEditor.cpp:1684
FDynamicMeshEditor(FDynamicMesh3 *MeshIn)
Definition DynamicMeshEditor.h:76
static GEOMETRYCORE_API bool ConvertLoopToTriVidPairSequence(const FDynamicMesh3 &Mesh, const TArray< int32 > &VidLoop, const TArray< int32 > &EdgeLoop, TArray< TPair< int32, TPair< int8, int8 > > > &TriVertPairsOut)
Definition DynamicMeshEditor.cpp:351
void SplitBowties(int VertexID, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.h:266
GEOMETRYCORE_API void AppendUVs(const FDynamicMesh3 *AppendMesh, const FDynamicMeshUVOverlay *FromUVs, FDynamicMeshUVOverlay *ToUVs, const FIndexMapi &VertexMap, const FIndexMapi &TriangleMap, FIndexMapi &UVMapOut)
Definition DynamicMeshEditor.cpp:2240
GEOMETRYCORE_API bool AddTriangleFan_OrderedVertexLoop(int CenterVertex, const TArray< int > &VertexLoop, int GroupID, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:553
GEOMETRYCORE_API void AppendTriangles(const FDynamicMesh3 *SourceMesh, const TArrayView< const int > &SourceTriangles, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult &ResultOut, bool bComputeTriangleMap=true)
Definition DynamicMeshEditor.cpp:2503
GEOMETRYCORE_API void SetGeneralTubeUVs(const TArray< int > &Triangles, const TArray< int > &VertexIDs1, const TArray< int > &MatchedIndices1, const TArray< int > &VertexIDs2, const TArray< int > &MatchedIndices2, const TArray< float > &UValues, const FVector3f &VDir, float UVScaleFactor=1.0f, const FVector2f &UVTranslation=FVector2f::Zero(), int UVLayerIndex=0)
Definition DynamicMeshEditor.cpp:1396
GEOMETRYCORE_API void SplitBowtiesAtTriangles(const TArray< int32 > &TriangleIDs, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:1046
GEOMETRYCORE_API void AppendNormals(const FDynamicMesh3 *AppendMesh, const FDynamicMeshNormalOverlay *FromNormals, FDynamicMeshNormalOverlay *ToNormals, const FIndexMapi &VertexMap, const FIndexMapi &TriangleMap, TFunction< FVector3d(int, const FVector3d &)> NormalTransform, FIndexMapi &NormalMapOut)
Definition DynamicMeshEditor.cpp:2205
GEOMETRYCORE_API void SetQuadNormals(const FIndex2i &QuadTris, const FVector3f &Normal)
Definition DynamicMeshEditor.cpp:1196
GEOMETRYCORE_API void CopyAttributes(int FromTriangleID, int ToTriangleID, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:1730
GEOMETRYCORE_API int FindOrCreateDuplicateGroup(int TriangleID, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:1883
static GEOMETRYCORE_API bool RemoveSeamsAtEdges(const TSet< int32 > &EidsToRemoveAsSeams, TDynamicMeshOverlay< float, 2 > *Overlay)
Definition DynamicMeshEditor.cpp:2784
GEOMETRYCORE_API void SetTriangleNormals(const TArray< int > &Triangles, const FVector3f &Normal)
Definition DynamicMeshEditor.cpp:1231
GEOMETRYCORE_API int FindOrCreateDuplicateUV(int ElementID, int UVLayerIndex, FMeshIndexMappings &IndexMaps)
Definition DynamicMeshEditor.cpp:1809
GEOMETRYCORE_API bool WeldVertexLoops(const TArray< int32 > &VertexLoop1, const TArray< int32 > &VertexLoop2)
Definition DynamicMeshEditor.cpp:384
GEOMETRYCORE_API void AppendElementSubset(const FDynamicMesh3 *FromMesh, const TSet< int > &TriangleROI, const TSet< int > &VertexROI, const TDynamicMeshOverlay< RealType, ElementSize > *FromOverlay, TDynamicMeshOverlay< RealType, ElementSize > *ToOverlay)
FDynamicMesh3 * Mesh
Definition DynamicMeshEditor.h:74
GEOMETRYCORE_API void SetTriangleUVsFromProjection(const TArray< int32 > &Triangles, const FFrame3d &ProjectionFrame, float UVScaleFactor=1.0f, const FVector2f &UVTranslation=FVector2f::Zero(), bool bShiftToOrigin=true, int32 UVLayerIndex=0)
GEOMETRYCORE_API int RemoveSmallComponents(double MinVolume, double MinArea=0.0, int MinTriangleCount=0)
Definition DynamicMeshEditor.cpp:623
static GEOMETRYCORE_API bool CreateSeamsAtEdges(const TSet< int32 > &EidsToMakeIntoSeams, TDynamicMeshOverlay< float, 2 > *Overlay, TArray< int32 > *AddedElementIDs=nullptr)
Definition DynamicMeshEditor.cpp:2792
GEOMETRYCORE_API FVector3f ComputeAndSetQuadNormal(const FIndex2i &QuadTris, bool bIsPlanar=false)
Definition DynamicMeshEditor.cpp:1176
GEOMETRYCORE_API int FindOrCreateDuplicateColor(int ElementID, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult *ResultOut)
Definition DynamicMeshEditor.cpp:1841
GEOMETRYCORE_API void DuplicateTriangles(const TArray< int > &Triangles, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:653
GEOMETRYCORE_API int FindOrCreateDuplicateNormal(int ElementID, int NormalLayerIndex, FMeshIndexMappings &IndexMaps, FDynamicMeshEditResult *ResultOut=nullptr)
Definition DynamicMeshEditor.cpp:1823
GEOMETRYCORE_API void RescaleAttributeUVs(float UVScale=1.0f, bool bWorldSpace=false, int UVLayerIndex=0, TOptional< FTransformSRT3d > ToWorld=TOptional< FTransformSRT3d >())
Definition DynamicMeshEditor.cpp:1619
GEOMETRYCORE_API void AppendColors(const FDynamicMesh3 *AppendMesh, const FDynamicMeshColorOverlay *FromOverlay, FDynamicMeshColorOverlay *ToOverlay, const FIndexMapi &VertexMap, const FIndexMapi &TriangleMap, FIndexMapi &ColorMapOut)
Definition DynamicMeshEditor.cpp:2268
GEOMETRYCORE_API bool StitchVertexLoopToTriVidPairSequence(const TArray< TPair< int32, TPair< int8, int8 > > > &TriVidPairs1, const TArray< int > &VertexLoop2, FDynamicMeshEditResult &ResultOut)
Definition DynamicMeshEditor.cpp:331
GEOMETRYCORE_API bool RemoveTriangles(const TArray< int > &Triangles, bool bRemoveIsolatedVerts)
Definition DynamicMeshEditor.cpp:593
GEOMETRYCORE_API void SetTubeNormals(const TArray< int > &Triangles, const TArray< int > &VertexIDs1, const TArray< int > &MatchedIndices1, const TArray< int > &VertexIDs2, const TArray< int > &MatchedIndices2, bool bReverseNormals=false)
Definition DynamicMeshEditor.cpp:1304
GEOMETRYCORE_API bool DisconnectTriangles(const TArray< int > &Triangles, TArray< FLoopPairSet > &LoopSetOut, bool bHandleBoundaryVertices)
Definition DynamicMeshEditor.cpp:680
Definition DynamicMeshOverlay.h:68
Definition DynamicMeshOverlay.h:714
Definition AdvancedWidgetsModule.cpp:13
Definition Optional.h:131
Definition DynamicMeshEditor.h:26
void Reset()
Definition DynamicMeshEditor.h:47
TArray< TArray< int > > NewPolygons
Definition DynamicMeshEditor.h:35
TArray< int > NewVertices
Definition DynamicMeshEditor.h:28
TArray< int > NewGroups
Definition DynamicMeshEditor.h:38
TArray< int > NewTriangles
Definition DynamicMeshEditor.h:31
TArray< FIndex2i > NewQuads
Definition DynamicMeshEditor.h:33
TArray< TArray< int32 > > NewNormalOverlayElements
Definition DynamicMeshEditor.h:41
GEOMETRYCORE_API void GetAllTriangles(TArray< int > &TrianglesOut) const
Definition DynamicMeshEditor.cpp:229
TArray< int32 > NewColorOverlayElements
Definition DynamicMeshEditor.h:44
Definition DynamicMeshEditor.h:187
bool bOuterIncludesIsolatedVertices
Definition DynamicMeshEditor.h:195
TArray< int32 > OuterVertices
Definition DynamicMeshEditor.h:188
TArray< int32 > OuterEdges
Definition DynamicMeshEditor.h:189
TArray< int32 > InnerEdges
Definition DynamicMeshEditor.h:192
TArray< int32 > InnerVertices
Definition DynamicMeshEditor.h:191
Definition DynamicSubmesh3.h:17
Definition IndexTypes.h:27
Definition MeshIndexMappings.h:22
Definition SparseIndexCollectionTypes.h:161
Definition MeshAdapter.h:24
static TVector2< float > One()
Definition Vector2D.h:80
static TVector2< float > Zero()
Definition Vector2D.h:79