enum ChildLab
{
- ChildLab_Name = 1,
+ ChildLab_Begin = 1,
+ ChildLab_Name = ChildLab_Begin,
ChildLab_Position,
ChildLab_Modifiers,
ChildLab_ModifierWithValue,
ChildLab_PlaneRef,
ChildLab_Pnt,
ChildLab_PntText,
- ChildLab_Presentation
+ ChildLab_Presentation,
+ ChildLab_End
};
//=======================================================================
TDataStd_Name::Set(Label(), str);
}
- TDF_ChildIterator anIter(Label());
- for(;anIter.More(); anIter.Next())
+ for (int aChild = ChildLab_Begin; aChild < ChildLab_End; aChild++)
{
- anIter.Value().ForgetAllAttributes();
+ Label().FindChild(aChild).ForgetAllAttributes();
}
if (!theObject->GetName().IsNull() && !theObject->GetName()->IsEmpty())
Handle(TDataStd_AsciiString) anAttName = TDataStd_AsciiString::Set(Label().FindChild(ChildLab_Name),
IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_Dimension,TDataStd_GenericEmpty)
enum ChildLab
{
- ChildLab_Type = 1,
+ ChildLab_Begin = 1,
+ ChildLab_Type = ChildLab_Begin,
ChildLab_Value,
ChildLab_Qualifier,
ChildLab_AngularQualifier,
ChildLab_PntText,
ChildLab_Presentation,
ChildLab_Descriptions,
- ChildLab_DescriptionNames
+ ChildLab_DescriptionNames,
+ ChildLab_End
};
//=======================================================================
TDataStd_Name::Set(Label(), str);
}
- TDF_ChildIterator anIter(Label());
- for(;anIter.More(); anIter.Next())
+ for (int aChild = ChildLab_Begin; aChild < ChildLab_End; aChild++)
{
- anIter.Value().ForgetAllAttributes();
+ Label().FindChild(aChild).ForgetAllAttributes();
}
Handle(TDataStd_Integer) aType = TDataStd_Integer::Set(Label().FindChild(ChildLab_Type), theObject->GetType());
enum ChildLab
{
- ChildLab_Type = 1,
+ ChildLab_Begin = 1,
+ ChildLab_Type = ChildLab_Begin,
ChildLab_TypeOfValue,
ChildLab_Value,
ChildLab_MatReqModif,
ChildLab_Pnt,
ChildLab_PntText,
ChildLab_Presentation,
- ChildLab_AffectedPlane
+ ChildLab_AffectedPlane,
+ ChildLab_End
};
//=======================================================================
TDataStd_Name::Set(Label(), str);
}
- TDF_ChildIterator anIter(Label());
- for(;anIter.More(); anIter.Next())
+ for (int aChild = ChildLab_Begin; aChild < ChildLab_End; aChild++)
{
- anIter.Value().ForgetAllAttributes();
+ Label().FindChild(aChild).ForgetAllAttributes();
}
Handle(TDataStd_Integer) aType = TDataStd_Integer::Set(Label().FindChild(ChildLab_Type), theObject->GetType());
--- /dev/null
+puts "============"
+puts "0029854: XCAF GD&T: Clear contents of reserved labels only"
+puts "============"
+puts ""
+
+pload DCAF
+
+box b 10 10 10
+
+# create document with object
+NewDocument D
+set L [XAddShape D b]
+
+# create datum with reserved children
+set datumL [XAddDatum D $L]
+set aTagNumber 20
+for {set i 1} {${i}<${aTagNumber}} {incr i} {
+ NewChild D $datumL
+}
+
+set val 100
+
+# add datum child with attribute
+set childL [NewChild D $datumL]
+SetInteger D $childL $val
+
+# call setObject func
+XSetDatumPosition D $datumL 2
+
+# check that the new child attribute exists and correct
+set currVal [GetInteger D $childL]
+if { ${val} != ${currVal} } {
+ puts "Error: TDataStd_Integer attribute value is not expected for datum child"
+}
+
+# create tolerance with reserved children
+set TL [XAddGeomTolerance D $L]
+set aTagNumber 19
+for {set i 1} {${i}<${aTagNumber}} {incr i} {
+ NewChild D $TL
+}
+
+# add tolerance child with attribute
+set childL [NewChild D $TL]
+SetInteger D $childL $val
+
+# call setObject func
+XSetToleranceValue D $L 0.5
+
+# check that the new child attribute exists and correct
+set currVal [GetInteger D $childL]
+if { ${val} != ${currVal} } {
+ puts "Error: TDataStd_Integer attribute value is not expected for tolerance child"
+}
+
+# create dimension with reserved children
+set DL [XAddDimension D $L]
+set aTagNumber 19
+for {set i 1} {${i}<${aTagNumber}} {incr i} {
+ NewChild D $DL
+}
+
+# add dimension child with attribute
+set childL [NewChild D $DL]
+SetInteger D $childL $val
+
+# call setObject func
+XSetDimensionValue D $L 0.5
+
+# check that the new child attribute exists and correct
+set currVal [GetInteger D $childL]
+if { ${val} != ${currVal} } {
+ puts "Error: TDataStd_Integer attribute value is not expected for dimension child"
+}