MCPcopy Create free account
hub / github.com/Kitware/VTK / extractRequiredFields

Method extractRequiredFields

Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.cxx:1088–1171  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1086
1087//------------------------------------------------------------------------------
1088void vtkVtkJSSceneGraphSerializer::extractRequiredFields(
1089 Json::Value& extractedFields, vtkMapper* mapper, vtkDataSet* dataSet)
1090{
1091 // FIXME should evolve and support funky mapper which leverage many arrays
1092 vtkDataArray* pointDataArray = nullptr;
1093 vtkDataArray* cellDataArray = nullptr;
1094 if (mapper != nullptr && mapper->IsA("vtkMapper"))
1095 {
1096 vtkTypeBool scalarVisibility = mapper->GetScalarVisibility();
1097 int arrayAccessMode = mapper->GetArrayAccessMode();
1098
1099 int scalarMode = mapper->GetScalarMode();
1100 if (scalarVisibility && scalarMode == 3)
1101 {
1102 pointDataArray =
1103 (arrayAccessMode == 1 ? dataSet->GetPointData()->GetArray(mapper->GetArrayName())
1104 : dataSet->GetPointData()->GetArray(mapper->GetArrayId()));
1105
1106 if (pointDataArray != nullptr)
1107 {
1108 Json::Value arrayMeta = this->ToJson(pointDataArray);
1109 arrayMeta["location"] = "pointData";
1110 extractedFields.append(arrayMeta);
1111 }
1112 }
1113
1114 if (scalarVisibility && scalarMode == 4)
1115 {
1116 cellDataArray =
1117 (arrayAccessMode == 1 ? dataSet->GetCellData()->GetArray(mapper->GetArrayName())
1118 : dataSet->GetCellData()->GetArray(mapper->GetArrayId()));
1119 if (cellDataArray != nullptr)
1120 {
1121 Json::Value arrayMeta = this->ToJson(cellDataArray);
1122 arrayMeta["location"] = "cellData";
1123 extractedFields.append(arrayMeta);
1124 }
1125 }
1126 }
1127
1128 if (pointDataArray == nullptr)
1129 {
1130 vtkDataArray* array = dataSet->GetPointData()->GetScalars();
1131 if (array != nullptr)
1132 {
1133 Json::Value arrayMeta = this->ToJson(array);
1134 arrayMeta["location"] = "pointData";
1135 arrayMeta["registration"] = "setScalars";
1136 extractedFields.append(arrayMeta);
1137 }
1138 }
1139
1140 if (cellDataArray == nullptr)
1141 {
1142 vtkDataArray* array = dataSet->GetCellData()->GetScalars();
1143 if (array != nullptr)
1144 {
1145 Json::Value arrayMeta = this->ToJson(array);

Callers 1

ToJsonMethod · 0.95

Calls 12

ToJsonMethod · 0.95
IsAMethod · 0.80
GetArrayAccessModeMethod · 0.80
GetArrayIdMethod · 0.80
GetArrayMethod · 0.45
GetPointDataMethod · 0.45
GetArrayNameMethod · 0.45
appendMethod · 0.45
GetCellDataMethod · 0.45
GetScalarsMethod · 0.45
GetNormalsMethod · 0.45
GetTCoordsMethod · 0.45

Tested by

no test coverage detected