Commit Graph

4 Commits

Author SHA1 Message Date
Jimmy Andrews
15250452f9 move fast iterative smoothing algorithm over from ModelingOperators into DynamicMesh + associated cleanup
#rb michael.balzer
#rnx
#preflight 608ca8b93b027a000153d14d

[CL 16175448 by Jimmy Andrews in ue5-main branch]
2021-04-30 21:50:43 -04:00
Ryan Schmidt
ffe3b401cd GeometryProcessing: move all public types in GeometryProcessing plugin into UE::Geometry:: namespace, as well as some code in MeshModelingToolset. Fix fallout in Water, Paint Mode, ChaosEditor, DataPrep, Text3D, Unit Tests, internal projects.
#rb jimmy.andrews, semion.piskarev
#jira none

[CL 15661651 by Ryan Schmidt in ue5-main branch]
2021-03-09 19:33:56 -04:00
ryan schmidt
e7c0c460cc GeometryProcessing: further refactoring of mesh solvers. Moved different parts of LaplacianMeshSmoother file into ConstarinedMeshSmoothers.h, ConstrainedMeshDeformers.h, ConstrainedMeshDeformationSolver.h, MeshDiffusionIntegrator, and MeshDiffusionSmoothing.h. DeformMeshPolygonsTool now uses IConstrainedMeshSolver interface, and no longer includes Private headers from GeometryProcessing.
Also made a small change to LaplacianOperators.cpp:ConstructScaledCotangentLaplacian(), which had checkSlow() that was failing on zero-elements Area matrix at boundary vertices. Code in this function does not appear to correctly handle boundary vertices (however things work out in the end because matrices are squared later?)

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 13145964 via CL 13145965 via CL 13145966
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)

[CL 13145967 by ryan schmidt in Main branch]
2020-05-03 16:34:34 -04:00
ryan schmidt
76437e3798 GeometryProcessing: merge MeshSolverUtilities module into DynamicMesh module. Update Build.cs references, test code.
Most of the code moved to /Private/Solvers/Internal, except:
- MeshElementLinearization.h split into /GeometricObjects/Util/ElementLinearization.h (not mesh-specific) and /DynamicMesh/Solvers/MeshLinearization.h for vtx/tri subclasses
- ELaplacianWeightScheme and a few util functions moved to /DynamicMesh/Solvers/MeshLaplacian.h
- IConstrainedMeshOperator renamed to IConstrainedMeshSolver and moved to /DynamicMesh/Solvers/
- MeshSolverUtilities.h API functions moved to /DynamicMesh/Solvers/MeshSmoothing.h, ConstrainedMeshDeformer.h, ConstrainedMeshSmoother.h
- Laplacian matrix assembly refactored out of LaplacianOperators.cpp and moved to /DynamicMesh/Solvers/LaplacianMatrixAssembly. LaplacianOperator functions are now wrappers around those functions.
- most of FSOAPositions refactored into TVector3Arrays<T>, which it now subclasses. The arrays are now TArray<T> and Eigen::Map is used to pass them to/from Eigen code. Moved to FSparseMatrixD.h

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 13045456 via CL 13045457 via CL 13045458
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)

[CL 13048356 by ryan schmidt in Main branch]
2020-04-27 12:58:07 -04:00