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

Method SynchronizeBlock

Rendering/ANARI/vtkAnariCompositePolyDataMapperNode.cxx:102–199  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

100
101//------------------------------------------------------------------------------
102void vtkAnariCompositePolyDataMapperNode::SynchronizeBlock(
103 vtkMapper* baseMapper, vtkActor* actor, vtkDataObject* dobj, unsigned int& flat_index)
104{
105 vtkAnariProfiling startProfiling(
106 "vtkAnariCompositePolyDataMapperNode::SynchronizeBlock", vtkAnariProfiling::BROWN);
107
108 vtkCompositeDataDisplayAttributes* cda = this->GetCompositeDisplayAttributes();
109
110 vtkProperty* prop = actor->GetProperty();
111 vtkColor3d ecolor(prop->GetEdgeColor());
112
113 bool overrides_visibility = (cda && cda->HasBlockVisibility(dobj));
114 if (overrides_visibility)
115 {
116 this->BlockState.Visibility.push(cda->GetBlockVisibility(dobj));
117 }
118
119 bool overrides_opacity = (cda && cda->HasBlockOpacity(dobj));
120 if (overrides_opacity)
121 {
122 this->BlockState.Opacity.push(cda->GetBlockOpacity(dobj));
123 }
124
125 bool overrides_color = (cda && cda->HasBlockColor(dobj));
126 if (overrides_color)
127 {
128 vtkColor3d color = cda->GetBlockColor(dobj);
129 this->BlockState.AmbientColor.push(color);
130 this->BlockState.DiffuseColor.push(color);
131 this->BlockState.SpecularColor.push(color);
132 }
133
134 bool overrides_material = (cda && cda->HasBlockMaterial(dobj));
135 if (overrides_material)
136 {
137 std::string material = cda->GetBlockMaterial(dobj);
138 this->BlockState.Material.push(material);
139 }
140
141 // Advance flat-index. After this point, flat_index no longer points to this block.
142 flat_index++;
143
144 if (auto dataObjTree = vtkDataObjectTree::SafeDownCast(dobj))
145 {
146 for (unsigned int i = 0, numChildren = dataObjTree->GetNumberOfChildren(); i < numChildren; ++i)
147 {
148 if (auto child = dataObjTree->GetChild(i))
149 {
150 this->SynchronizeBlock(baseMapper, actor, child, flat_index);
151 }
152 else
153 {
154 // speeds things up when dealing with nullptr blocks (which is common with
155 // AMRs).
156 flat_index++;
157 }
158 }
159 }

Callers 1

SynchronizeMethod · 0.95

Calls 15

HasBlockMaterialMethod · 0.80
ClearColorArraysMethod · 0.80
AnariRenderPolyMethod · 0.80
popMethod · 0.80
GetPropertyMethod · 0.45
HasBlockVisibilityMethod · 0.45
pushMethod · 0.45
GetBlockVisibilityMethod · 0.45
HasBlockOpacityMethod · 0.45
GetBlockOpacityMethod · 0.45
HasBlockColorMethod · 0.45

Tested by

no test coverage detected