[TD]replace GeometryObject only after all changes are done

This commit is contained in:
wandererfan
2022-08-25 12:07:56 -04:00
committed by WandererFan
parent 67ce559bc5
commit c0d69f7d8e
4 changed files with 37 additions and 42 deletions

View File

@@ -67,10 +67,8 @@
#include <Mod/Part/App/PartFeature.h>
#include <Mod/Part/App/TopoShape.h>
#include "DrawPage.h"
#include "DrawUtil.h"
#include "DrawViewSection.h"
#include "Geometry.h"
#include "GeometryObject.h"
#include "Preferences.h"
@@ -418,20 +416,17 @@ void DrawViewDetail::makeDetailShape(TopoDS_Shape& shape,
void DrawViewDetail::postHlrTasks(void)
{
// Base::Console().Message("DVD::postHlrTasks()\n");
geometryObject->pruneVertexGeom(Base::Vector3d(0.0,0.0,0.0),
Radius.getValue() * getScale()); //remove vertices beyond clipradius
DrawViewPart::postHlrTasks();
geometryObject->pruneVertexGeom(Base::Vector3d(0.0, 0.0, 0.0),
Radius.getValue() * getScale()); //remove vertices beyond clipradius
//second pass if required
if (ScaleType.isValue("Automatic") && !checkFit()) {
double newScale = autoScale();
Scale.setValue(newScale);
Scale.purgeTouched();
if (geometryObject) {
delete geometryObject;
geometryObject = nullptr;
detailExec(m_saveShape, m_saveDvp, m_saveDvs);
}
detailExec(m_saveShape, m_saveDvp, m_saveDvs);
}
overrideKeepUpdated(false);
}
@@ -443,7 +438,7 @@ void DrawViewDetail::onMakeDetailFinished(void)
QObject::disconnect(connectDetailWatcher);
//ancestor's buildGeometryObject will run HLR and face finding in a separate thread
geometryObject = buildGeometryObject(m_scaledShape, m_viewAxis);
m_tempGeometryObject = buildGeometryObject(m_scaledShape, m_viewAxis);
}