19 public MultiListener<MouseDownListener, MouseMoveListener, MouseUpListener,
50 float relaxForce = 0.2f;
51 float editForce = 1.f;
52 float sharpness = 50.f;
53 float relaxForceAfterEdit = 0.25f;
58 MRVIEWER_API
void init(
const std::shared_ptr<ObjectMesh>& objectMesh );
144 std::shared_ptr<ObjectMesh>
obj_;
146 float minRadius_ = 1.f;
161 bool firstInit_ =
true;
162 bool badRegion_ =
false;
164 bool mousePressed_ =
false;
166 std::chrono::time_point<std::chrono::high_resolution_clock>
timePoint_;
168 bool ownMeshChangedSignal_ =
false;
170 bool connectionsInitialized_ =
false;
179 class SmartChangeMeshPointsAction;
183 bool appendHistoryAction_ =
false;
186 bool enableDeviationTexture_ =
false;
188 bool sameValidVerticesAsInOriginMesh_ =
true;
191 bool ignoreOcclusion_ =
false;
192 bool editOnlyCodirectedSurface_ =
true;
Definition MRMesh/MRLaplacian.h:34
Class to hold one dimension texture with value to UV mapping.
Definition MRPalette.h:26
Definition MRCameraOrientationPlugin.h:8
MouseButton
Definition MRMouse.h:9
@ Remove
Default: separate nested meshes and remove them, just like union operation should do,...
EdgeWeights
determines the weight of each edge in applications like Laplacian
Definition MREnums.h:18
@ PointToPlane
converge much faster than PointToPoint in case of many good (with not all points/normals in one plane...
@ PointToPoint
it is the safest approach but can converge slowly
Definition MRMesh/MRMesh.h:22
Definition MRViewerEventsListener.h:29
a point located on some mesh's face
Definition MRMesh/MRPointOnFace.h:11