//============================================================================ /// <summary> /// The new member to add to this structure. /// </summary> /// <param name="typedValue">Typed value to copy.</param> // N.Herrmann Apr 2002 //============================================================================ protected void initTypeCopy(TTypedValue typedValue) { uint i; Name = typedValue.Name; FBaseType = typedValue.baseType(); FIsScalar = typedValue.isScalar(); FIsArray = typedValue.isArray(); FIsRecord = typedValue.isRecord(); setUnits(typedValue.units()); if (FIsScalar) { createScalar(); switch (FBaseType) { //For scalars, copy the value data. case TBaseType.ITYPE_INT1: //Data pertaining to arrays and records case TBaseType.ITYPE_INT2: // is ultimately stored in their case TBaseType.ITYPE_INT4: // constituent scalars case TBaseType.ITYPE_INT8: setValue(typedValue.asInt()); break; case TBaseType.ITYPE_SINGLE: setValue(typedValue.asSingle()); break; case TBaseType.ITYPE_DOUBLE: setValue(typedValue.asDouble()); break; case TBaseType.ITYPE_BOOL: setValue(typedValue.asBool()); break; case TBaseType.ITYPE_CHAR: case TBaseType.ITYPE_WCHAR: setValue(typedValue.asChar()); break; case TBaseType.ITYPE_STR: case TBaseType.ITYPE_WSTR: setValue(typedValue.asStr()); break; } } else if (FIsArray || FIsRecord) { uint iCount = typedValue.count(); if (FIsArray && (iCount == 0)) { if (typedValue.item(0) != null) newMember(typedValue.item(0)); setElementCount(0); } else for (i = 1; i <= iCount; i++) newMember(typedValue.item(i)); //clones and adds this typed value } }