Skip to content

Commit ee5b731

Browse files
committed
Fem: Fix filter data
1 parent a02ff7a commit ee5b731

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

src/Mod/Fem/App/FemPostFilter.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,11 @@ FemPostClipFilter::FemPostClipFilter()
461461

462462
m_extractor->SetExtractInside(0);
463463
setActiveFilterPipeline("extract");
464+
465+
// m_implicitFallback = vtkSmartPointer<vtkBox>::New();
466+
467+
// m_clipper->SetClipFunction(m_implicitFallback);
468+
// m_extractor->SetImplicitFunction(m_implicitFallback);
464469
}
465470

466471
FemPostClipFilter::~FemPostClipFilter() = default;
@@ -476,6 +481,10 @@ void FemPostClipFilter::onChanged(const Property* prop)
476481
m_extractor->SetImplicitFunction(
477482
static_cast<FemPostFunction*>(Function.getValue())->getImplicitFunction());
478483
}
484+
else {
485+
// m_clipper->SetClipFunction(m_implicitFallback);
486+
// m_extractor->SetImplicitFunction(m_implicitFallback);
487+
}
479488
}
480489
else if (prop == &InsideOut) {
481490

@@ -815,6 +824,10 @@ FemPostCutFilter::FemPostCutFilter()
815824
cut.target = m_cutter;
816825
addFilterPipeline(cut, "cut");
817826
setActiveFilterPipeline("cut");
827+
828+
// m_implicitFallback = vtkSmartPointer<vtkPlane>::New();
829+
// m_implicitFallback->SetOrigin(0.0,0.0,0.0);
830+
// m_cutter->SetCutFunction(m_implicitFallback);
818831
}
819832

820833
FemPostCutFilter::~FemPostCutFilter() = default;
@@ -827,6 +840,9 @@ void FemPostCutFilter::onChanged(const Property* prop)
827840
m_cutter->SetCutFunction(
828841
static_cast<FemPostFunction*>(Function.getValue())->getImplicitFunction());
829842
}
843+
else {
844+
// m_cutter->SetCutFunction(m_implicitFallback);
845+
}
830846
}
831847

832848
Fem::FemPostFilter::onChanged(prop);

src/Mod/Fem/App/FemPostFilter.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
#ifndef Fem_FemPostFilter_H
2424
#define Fem_FemPostFilter_H
2525

26+
#include <vtkBox.h>
27+
#include <vtkPlane.h>
2628
#include <vtkContourFilter.h>
2729
#include <vtkCutter.h>
2830
#include <vtkExtractGeometry.h>
@@ -56,9 +58,9 @@ class FemExport FemPostFilter: public Fem::FemPostObject
5658

5759
App::DocumentObjectExecReturn* execute() override;
5860

59-
protected:
6061
vtkDataObject* getInputData();
6162

63+
protected:
6264
// pipeline handling for derived filter
6365
struct FilterPipeline
6466
{
@@ -182,6 +184,7 @@ class FemExport FemPostClipFilter: public FemPostFilter
182184
private:
183185
vtkSmartPointer<vtkTableBasedClipDataSet> m_clipper;
184186
vtkSmartPointer<vtkExtractGeometry> m_extractor;
187+
// vtkSmartPointer<vtkBox> m_implicitFallback;
185188
};
186189

187190

@@ -251,6 +254,7 @@ class FemExport FemPostCutFilter: public FemPostFilter
251254

252255
private:
253256
vtkSmartPointer<vtkCutter> m_cutter;
257+
// vtkSmartPointer<vtkPlane> m_implicitFallback;
254258
};
255259

256260

src/Mod/Fem/Gui/Command.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858

5959
#ifdef FC_USE_VTK
6060
#include <Mod/Fem/App/FemPostPipeline.h>
61+
#include <Mod/Fem/Gui/ViewProviderFemPostObject.h>
6162
#endif
6263

6364

@@ -1690,6 +1691,17 @@ void setupFilter(Gui::Command* cmd, std::string Name)
16901691
if (!selectionIsPipeline) {
16911692
femFilter->Input.setValue(selObject);
16921693
}
1694+
auto t = static_cast<Fem::FemPostObject*>(selObject);
1695+
femFilter->Data.setValue(t->Data.getValue());
1696+
App::GetApplication().getActiveDocument()->recomputeFeature(selObject, true);
1697+
auto selObjectView = static_cast<FemGui::ViewProviderFemPostObject*>(
1698+
Gui::Application::Instance->getViewProvider(selObject));
1699+
cmd->doCommand(Gui::Command::Doc,
1700+
"App.activeDocument().ActiveObject.ViewObject.Field = \"%s\"",
1701+
selObjectView->Field.getValueAsString());
1702+
cmd->doCommand(Gui::Command::Doc,
1703+
"App.activeDocument().ActiveObject.ViewObject.VectorMode = \"%s\"",
1704+
selObjectView->VectorMode.getValueAsString());
16931705

16941706
cmd->updateActive();
16951707
// open the dialog to edit the filter

src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1041,7 +1041,7 @@ void ViewProviderFemPostObject::show()
10411041

10421042
void ViewProviderFemPostObject::OnChange(Base::Subject<int>& /*rCaller*/, int /*rcReason*/)
10431043
{
1044-
bool ResetColorBarRange = false;
1044+
bool ResetColorBarRange = true;
10451045
WriteColorData(ResetColorBarRange);
10461046
}
10471047

0 commit comments

Comments
 (0)