public double ApplySizeTransferSettingsTo(int _index_in_size, double _size, GeomSizeTransferDef _transfer_settings) { if (_index_in_size < 0 || _index_in_size > 5) { return(0.0); } if (this.instance_size == null || this.instance_size_transfer_settings == null) { return(0.0); } int nrS = this.instance_size.Count; if (nrS < _index_in_size + 1) { return(0.0); } if (this.instance_size_transfer_settings.Count < _index_in_size + 1) { return(this.instance_size[_index_in_size]); } // save to internal containers this.instance_size[_index_in_size] = _size; this.instance_size_transfer_settings[_index_in_size] = _transfer_settings; // perform transfer if (this.instance_size_transfer_settings[_index_in_size].Source == GeomSizeTransferSource.USER) { return(this.instance_size[_index_in_size]); } double new_value = this.instance_size[_index_in_size]; if (this.instance_size_transfer_settings[_index_in_size].Source == GeomSizeTransferSource.PARAMETER && !string.IsNullOrEmpty(this.instance_size_transfer_settings[_index_in_size].ParameterName)) { if (this.InstanceParamValues.ContainsKey(this.instance_size_transfer_settings[_index_in_size].ParameterName)) { new_value = this.InstanceParamValues[this.instance_size_transfer_settings[_index_in_size].ParameterName] + this.instance_size_transfer_settings[_index_in_size].Correction; } } else if (this.instance_size_transfer_settings[_index_in_size].Source == GeomSizeTransferSource.PATH && this.instance_path != null && this.instance_path.Count > 2) { new_value = this.instance_path_length + this.instance_size_transfer_settings[_index_in_size].Correction; } this.instance_size[_index_in_size] = new_value; return(new_value); }
public virtual void AddToExport(ref StringBuilder _sb) { if (_sb == null) { return; } _sb.AppendLine(((int)ParamStructCommonSaveCode.ENTITY_START).ToString()); // 0 _sb.AppendLine(ParamStructTypes.GEOM_RELATION); // GEOM_RELATIONSHIP _sb.AppendLine(((int)ParamStructCommonSaveCode.CLASS_NAME).ToString()); _sb.AppendLine(this.GetType().ToString()); // id, name, state _sb.AppendLine(((int)ParamStructCommonSaveCode.ENTITY_ID).ToString()); _sb.AppendLine(this.ID.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.NAME).ToString()); _sb.AppendLine(this.Name); _sb.AppendLine(((int)GeometricRelationshipSaveCode.STATE_TYPE).ToString()); _sb.AppendLine(GeometryUtils.Relationship2GeometryToString(this.State.Type)); _sb.AppendLine(((int)GeometricRelationshipSaveCode.STATE_ISREALIZED).ToString()); string tmp = (this.State.IsRealized) ? "1" : "0"; _sb.AppendLine(tmp); // referenced geometry _sb.AppendLine(((int)GeometricRelationshipSaveCode.GEOM_IDS_X).ToString()); _sb.AppendLine(this.GeomIDs.X.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.GEOM_IDS_Y).ToString()); _sb.AppendLine(this.GeomIDs.Y.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.GEOM_IDS_Z).ToString()); _sb.AppendLine(this.GeomIDs.Z.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.GEOM_IDS_W).ToString()); _sb.AppendLine(this.GeomIDs.W.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.GEOM_CS).ToString()); _sb.AppendLine(this.GeomCS.ToString(GeometricRelationship.NR_FORMATTER)); // transforms _sb.AppendLine(((int)GeometricRelationshipSaveCode.TRANSF_WC2LC).ToString()); _sb.AppendLine(this.TRm_WC2LC.ToString(GeometricRelationship.NR_FORMATTER)); _sb.AppendLine(((int)GeometricRelationshipSaveCode.TRANSF_LC2WC).ToString()); _sb.AppendLine(this.TRm_LC2WC.ToString(GeometricRelationship.NR_FORMATTER)); // ---------------------- INSTANCE INFORMATION ----------------------------- // // size _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE).ToString()); _sb.AppendLine(this.instance_size.Count.ToString()); foreach (double size_value in this.instance_size) { _sb.AppendLine(((int)ParamStructCommonSaveCode.X_VALUE).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(size_value, "F8")); } // size transfer settings _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE_TRANSSETTINGS).ToString()); _sb.AppendLine(this.instance_size_transfer_settings.Count.ToString()); foreach (GeomSizeTransferDef size_trs in this.instance_size_transfer_settings) { _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE_TS_SOURCE).ToString()); _sb.AppendLine(GeomSizeTransferDef.GeomSizeTransferSourceToString(size_trs.Source)); _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE_TS_INITVAL).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(size_trs.InitialValue, "F8")); _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE_TS_PARNAME).ToString()); _sb.AppendLine(size_trs.ParameterName); _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_SIZE_TS_CORRECT).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(size_trs.Correction, "F8")); } // network element info _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_NWE_ID).ToString()); _sb.AppendLine(this.instance_nwe_id.ToString()); _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_NWE_NAME).ToString()); _sb.AppendLine(this.instance_nwe_name.ToString()); // path _sb.AppendLine(((int)GeometricRelationshipSaveCode.INST_PATH).ToString()); _sb.AppendLine(this.instance_path.Count.ToString()); foreach (Point3D vertex in this.instance_path) { _sb.AppendLine(((int)ParamStructCommonSaveCode.X_VALUE).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(vertex.X, "F8")); _sb.AppendLine(((int)ParamStructCommonSaveCode.Y_VALUE).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(vertex.Y, "F8")); _sb.AppendLine(((int)ParamStructCommonSaveCode.Z_VALUE).ToString()); _sb.AppendLine(Parameter.Parameter.ValueToString(vertex.Z, "F8")); } }