Fem: Rename VectorMode view property to Component
This commit is contained in:
@@ -392,7 +392,7 @@ TaskPostDisplay::TaskPostDisplay(ViewProviderFemPostObject* view, QWidget* paren
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->DisplayMode,
|
||||
ui->Representation);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Field, ui->Field);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
|
||||
// get Transparency from ViewProvider
|
||||
int trans = getTypedView<ViewProviderFemPostObject>()->Transparency.getValue();
|
||||
@@ -432,18 +432,18 @@ void TaskPostDisplay::onRepresentationActivated(int i)
|
||||
{
|
||||
getTypedView<ViewProviderFemPostObject>()->DisplayMode.setValue(i);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Field, ui->Field);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
}
|
||||
|
||||
void TaskPostDisplay::onFieldActivated(int i)
|
||||
{
|
||||
getTypedView<ViewProviderFemPostObject>()->Field.setValue(i);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
}
|
||||
|
||||
void TaskPostDisplay::onVectorModeActivated(int i)
|
||||
{
|
||||
getTypedView<ViewProviderFemPostObject>()->VectorMode.setValue(i);
|
||||
getTypedView<ViewProviderFemPostObject>()->Component.setValue(i);
|
||||
}
|
||||
|
||||
void TaskPostDisplay::onTransparencyValueChanged(int i)
|
||||
@@ -660,7 +660,7 @@ TaskPostDataAlongLine::TaskPostDataAlongLine(ViewProviderFemPostDataAlongLine* v
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->DisplayMode,
|
||||
ui->Representation);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Field, ui->Field);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
}
|
||||
|
||||
TaskPostDataAlongLine::~TaskPostDataAlongLine()
|
||||
@@ -963,7 +963,7 @@ void TaskPostDataAlongLine::onRepresentationActivated(int i)
|
||||
{
|
||||
getTypedView<ViewProviderFemPostObject>()->DisplayMode.setValue(i);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Field, ui->Field);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
}
|
||||
|
||||
void TaskPostDataAlongLine::onFieldActivated(int i)
|
||||
@@ -971,15 +971,15 @@ void TaskPostDataAlongLine::onFieldActivated(int i)
|
||||
getTypedView<ViewProviderFemPostObject>()->Field.setValue(i);
|
||||
std::string FieldName = ui->Field->currentText().toStdString();
|
||||
getObject<Fem::FemPostDataAlongLineFilter>()->PlotData.setValue(FieldName);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->VectorMode, ui->VectorMode);
|
||||
updateEnumerationList(getTypedView<ViewProviderFemPostObject>()->Component, ui->VectorMode);
|
||||
|
||||
auto vecMode = static_cast<ViewProviderFemPostObject*>(getView())->VectorMode.getEnum();
|
||||
auto vecMode = static_cast<ViewProviderFemPostObject*>(getView())->Component.getEnum();
|
||||
getObject<Fem::FemPostDataAlongLineFilter>()->PlotDataComponent.setValue(vecMode);
|
||||
}
|
||||
|
||||
void TaskPostDataAlongLine::onVectorModeActivated(int i)
|
||||
{
|
||||
getTypedView<ViewProviderFemPostObject>()->VectorMode.setValue(i);
|
||||
getTypedView<ViewProviderFemPostObject>()->Component.setValue(i);
|
||||
int comp = ui->VectorMode->currentIndex();
|
||||
getObject<Fem::FemPostDataAlongLineFilter>()->PlotDataComponent.setValue(comp);
|
||||
}
|
||||
@@ -1628,7 +1628,7 @@ void TaskPostContours::onFieldsChanged(int idx)
|
||||
// we must also update the VectorMode
|
||||
if (!getObject<Fem::FemPostContoursFilter>()->NoColor.getValue()) {
|
||||
auto newMode = getTypedObject<Fem::FemPostContoursFilter>()->VectorMode.getValue();
|
||||
getTypedView<ViewProviderFemPostObject>()->VectorMode.setValue(newMode);
|
||||
getTypedView<ViewProviderFemPostObject>()->Component.setValue(newMode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1644,7 +1644,7 @@ void TaskPostContours::onVectorModeChanged(int idx)
|
||||
updateFields();
|
||||
// now we can set the VectorMode
|
||||
if (!getObject<Fem::FemPostContoursFilter>()->NoColor.getValue()) {
|
||||
getTypedView<ViewProviderFemPostObject>()->VectorMode.setValue(idx);
|
||||
getTypedView<ViewProviderFemPostObject>()->Component.setValue(idx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1668,9 +1668,9 @@ void TaskPostContours::onNoColorChanged(bool state)
|
||||
// the ViewProvider field starts with an additional entry "None",
|
||||
// therefore the desired new setting is idx + 1
|
||||
getTypedView<ViewProviderFemPostObject>()->Field.setValue(currentField + 1);
|
||||
// set the VectorMode too
|
||||
// set the Component too
|
||||
auto currentMode = getTypedObject<Fem::FemPostContoursFilter>()->VectorMode.getValue();
|
||||
getTypedView<ViewProviderFemPostObject>()->VectorMode.setValue(currentMode);
|
||||
getTypedView<ViewProviderFemPostObject>()->Component.setValue(currentMode);
|
||||
}
|
||||
recompute();
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Vector</string>
|
||||
<string>Component</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -125,26 +125,6 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Magnitute</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>X</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Y</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Z</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@@ -160,11 +160,11 @@ ViewProviderFemPostObject::ViewProviderFemPostObject()
|
||||
"Coloring",
|
||||
App::Prop_None,
|
||||
"Select the field used for calculating the color");
|
||||
ADD_PROPERTY_TYPE(VectorMode,
|
||||
ADD_PROPERTY_TYPE(Component,
|
||||
((long)0),
|
||||
"Coloring",
|
||||
App::Prop_None,
|
||||
"Select what to show for a vector field");
|
||||
"Select component to display");
|
||||
ADD_PROPERTY_TYPE(Transparency,
|
||||
(0),
|
||||
"Object Style",
|
||||
@@ -453,8 +453,8 @@ void ViewProviderFemPostObject::updateProperties()
|
||||
Field.purgeTouched();
|
||||
|
||||
// Vector mode
|
||||
if (VectorMode.hasEnums() && VectorMode.getValue() >= 0) {
|
||||
val = VectorMode.getValueAsString();
|
||||
if (Component.hasEnums() && Component.getValue() >= 0) {
|
||||
val = Component.getValueAsString();
|
||||
}
|
||||
|
||||
colorArrays.clear();
|
||||
@@ -469,27 +469,41 @@ void ViewProviderFemPostObject::updateProperties()
|
||||
}
|
||||
|
||||
if (data->GetNumberOfComponents() == 1) {
|
||||
// scalar
|
||||
colorArrays.emplace_back("Not a vector");
|
||||
}
|
||||
else {
|
||||
colorArrays.emplace_back("Magnitude");
|
||||
if (data->GetNumberOfComponents() >= 2) {
|
||||
if (data->GetNumberOfComponents() == 2) {
|
||||
// 2D vector
|
||||
colorArrays.emplace_back("X");
|
||||
colorArrays.emplace_back("Y");
|
||||
}
|
||||
if (data->GetNumberOfComponents() >= 3) {
|
||||
else if (data->GetNumberOfComponents() == 3) {
|
||||
// 3D vector
|
||||
colorArrays.emplace_back("X");
|
||||
colorArrays.emplace_back("Y");
|
||||
colorArrays.emplace_back("Z");
|
||||
}
|
||||
else if (data->GetNumberOfComponents() == 6) {
|
||||
// symmetric tensor
|
||||
colorArrays.emplace_back("XX");
|
||||
colorArrays.emplace_back("YY");
|
||||
colorArrays.emplace_back("ZZ");
|
||||
colorArrays.emplace_back("XY");
|
||||
colorArrays.emplace_back("YZ");
|
||||
colorArrays.emplace_back("ZX");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
VectorMode.setValue(empty);
|
||||
Component.setValue(empty);
|
||||
m_vectorEnum.setEnums(colorArrays);
|
||||
VectorMode.setValue(m_vectorEnum);
|
||||
Component.setValue(m_vectorEnum);
|
||||
|
||||
it = std::ranges::find(colorArrays, val);
|
||||
if (!val.empty() && it != colorArrays.end()) {
|
||||
VectorMode.setValue(val.c_str());
|
||||
Component.setValue(val.c_str());
|
||||
}
|
||||
|
||||
m_blockPropertyChanges = false;
|
||||
@@ -693,10 +707,10 @@ void ViewProviderFemPostObject::WriteColorData(bool ResetColorBarRange)
|
||||
return;
|
||||
}
|
||||
|
||||
int component = VectorMode.getValue() - 1; // 0 is either "Not a vector" or magnitude,
|
||||
// for -1 is correct for magnitude.
|
||||
// x y and z are one number too high
|
||||
if (strcmp(VectorMode.getValueAsString(), "Not a vector") == 0) {
|
||||
int component = Component.getValue() - 1; // 0 is either "Not a vector" or magnitude,
|
||||
// for -1 is correct for magnitude.
|
||||
// x y and z are one number too high
|
||||
if (strcmp(Component.getValueAsString(), "Not a vector") == 0) {
|
||||
component = 0;
|
||||
}
|
||||
|
||||
@@ -920,7 +934,7 @@ void ViewProviderFemPostObject::onChanged(const App::Property* prop)
|
||||
updateProperties();
|
||||
WriteColorData(ResetColorBarRange);
|
||||
}
|
||||
else if (prop == &VectorMode && setupPipeline()) {
|
||||
else if (prop == &Component && setupPipeline()) {
|
||||
WriteColorData(ResetColorBarRange);
|
||||
}
|
||||
else if (prop == &Transparency) {
|
||||
@@ -1108,3 +1122,17 @@ void ViewProviderFemPostObject::onSelectionChanged(const Gui::SelectionChanges&
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ViewProviderFemPostObject::handleChangedPropertyName(Base::XMLReader& reader,
|
||||
const char* typeName,
|
||||
const char* propName)
|
||||
{
|
||||
if (strcmp(propName, "Field") == 0 && strcmp(typeName, "App::PropertyEnumeration") == 0) {
|
||||
App::PropertyEnumeration field;
|
||||
field.Restore(reader);
|
||||
Component.setValue(field.getValue());
|
||||
}
|
||||
else {
|
||||
Gui::ViewProviderDocumentObject::handleChangedPropertyName(reader, typeName, propName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
~ViewProviderFemPostObject() override;
|
||||
|
||||
App::PropertyEnumeration Field;
|
||||
App::PropertyEnumeration VectorMode;
|
||||
App::PropertyEnumeration Component;
|
||||
App::PropertyPercent Transparency;
|
||||
App::PropertyBool PlainColorEdgeOnSurface;
|
||||
App::PropertyColor EdgeColor;
|
||||
@@ -130,6 +130,10 @@ public:
|
||||
// //@}
|
||||
|
||||
protected:
|
||||
void handleChangedPropertyName(Base::XMLReader& reader,
|
||||
const char* typeName,
|
||||
const char* propName) override;
|
||||
|
||||
virtual void setupTaskDialog(TaskDlgPost* dlg);
|
||||
bool setupPipeline();
|
||||
void updateVtk();
|
||||
|
||||
Reference in New Issue
Block a user