本文整理汇总了C++中AttributeSubject::SetFromNode方法的典型用法代码示例。如果您正苦于以下问题:C++ AttributeSubject::SetFromNode方法的具体用法?C++ AttributeSubject::SetFromNode怎么用?C++ AttributeSubject::SetFromNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AttributeSubject
的用法示例。
在下文中一共展示了AttributeSubject::SetFromNode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: root
void
QvisAppearanceWidget::opacityChanged(int opacity, int index)
{
int MultiCurve = viewer->GetPlotIndex("MultiCurve");
AttributeSubject *atts = viewer->DelayedState()->GetPlotAttributes(MultiCurve);
if(atts != 0)
{
DataNode root("root");
atts->CreateNode(&root, true, false);
DataNode *multiCurveNode = root.GetNode("MultiCurveAttributes");
DataNode *multiColorNode = multiCurveNode->GetNode("multiColor");
DataNode *calNode = multiColorNode->GetNode("ColorAttributeList");
DataNode **children = calNode->GetChildren();
DataNode *colorNode = children[index]->GetNode("color");
const unsigned char *oldColor = colorNode->AsUnsignedCharArray();
unsigned char newColor[4];
newColor[0] = oldColor[0];
newColor[1] = oldColor[1];
newColor[2] = oldColor[2];
newColor[3] = (unsigned char)opacity;
colorNode->SetUnsignedCharArray(newColor, 4);
atts->SetFromNode(&root);
atts->Notify();
emit multiCurveChanged(atts);
}
}
示例2: ClearAtts
void
AttributeSubjectMap::SetFromNode(DataNode *parentNode,
AttributeSubject *factoryObj)
{
//
// Clear the attributes.
//
ClearAtts();
//
// Look for the required nodes.
//
if(parentNode == 0)
return;
DataNode *mapNode = parentNode->GetNode("AttributeSubjectMap");
if(mapNode == 0)
return;
DataNode *indicesNode = mapNode->GetNode("indices");
if(indicesNode == 0)
return;
DataNode *attsNode = mapNode->GetNode("attributes");
if(attsNode == 0)
return;
//
// Now that we have all of the nodes that we need, read in the objects
// and add them to the "map".
//
const intVector &iv = indicesNode->AsIntVector();
DataNode **attsObjects = attsNode->GetChildren();
const int numAtts = attsNode->GetNumChildren();
for(int i = 0; i < iv.size(); ++i)
{
if(i < numAtts)
{
// Create a fresh AttributeSubject so that its fields are
// initialized to the default values and not those last read in.
AttributeSubject *reader = factoryObj->NewInstance(false);
// Initialize the object using the data node.
reader->SetFromNode(attsObjects[i]);
// Add the object to the map.
SetAtts(iv[i], reader);
// delete the reader object.
delete reader;
}
}
}
示例3: var
void
MultiCurveViewer::CreatePlot()
{
if(generalWidget->GetCurrentVariable() == -1)
return;
// Determine the variable.
std::string var(generalWidget->GetCurrentVariableName().toStdString());
// Delete the active plots.
viewer->DelayedMethods()->DeleteActivePlots();
// Create a title.
viewer->DelayedMethods()->AddAnnotationObject(AnnotationObject::Text2D, "title0");
viewer->DelayedMethods()->AddAnnotationObject(AnnotationObject::Text2D, "title1");
// Create a multi curve plot.
int MultiCurve = viewer->GetPlotIndex("MultiCurve");
viewer->DelayedMethods()->AddPlot(MultiCurve, var);
AttributeSubject *multiCurveAtts = viewer->DelayedState()->GetPlotAttributes(MultiCurve);
if(multiCurveAtts != 0)
{
DataNode root("root");
multiCurveAtts->CreateNode(&root, true, false);
DataNode *multiCurveNode = root.GetNode("MultiCurveAttributes");
DataNode *multiColorNode = multiCurveNode->GetNode("multiColor");
DataNode *calNode = multiColorNode->GetNode("ColorAttributeList");
DataNode **children = calNode->GetChildren();
unsigned char color[4];
color[0] = 0; color[1] = 100; color[2] = 0; color[3] = 255;
children[0]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 85; color[1] = 107; color[2] = 47;
children[1]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 0; color[1] = 205; color[2] = 208;
children[2]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 0; color[1] = 0; color[2] = 254;
children[3]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 209; color[1] = 105; color[2] = 30;
children[4]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 147; color[1] = 0; color[2] = 210;
children[5]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 83; color[1] = 133; color[2] = 138;
children[6]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 204; color[1] = 38; color[2] = 38;
children[7]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 0; color[1] = 0; color[2] = 0;
children[8]->GetNode("color")->SetUnsignedCharArray(color, 4);
color[0] = 220; color[1] = 20; color[2] = 60;
children[9]->GetNode("color")->SetUnsignedCharArray(color, 4);
multiCurveNode->GetNode("yAxisTitleFormat")->SetString("%4.2f");
multiCurveNode->GetNode("useYAxisTickSpacing")->SetBool(true);
multiCurveNode->GetNode("yAxisTickSpacing")->SetDouble(0.25);
multiCurveNode->GetNode("markerVariable")->SetString("v");
multiCurveAtts->SetFromNode(&root);
multiCurveAtts->Notify();
viewer->DelayedMethods()->SetPlotOptions(MultiCurve);
}
// Add an index select operator.
int IndexSelect = viewer->GetOperatorIndex("IndexSelect");
viewer->DelayedMethods()->AddOperator(IndexSelect);
AttributeSubject *indexSelectAtts = viewer->DelayedState()->GetOperatorAttributes(IndexSelect);
if(indexSelectAtts != 0)
{
indexSelectAtts->SetValue("xMin", 0);
indexSelectAtts->SetValue("xMax", -1);
indexSelectAtts->SetValue("yMin", 16);
indexSelectAtts->SetValue("yMax", 25);
indexSelectAtts->Notify();
viewer->DelayedMethods()->SetOperatorOptions(IndexSelect);
}
//
// Issue a timer to finish the plot.
//
QTimer::singleShot(20, this, SLOT(finishPlot()));
}