public static IEnumerable <double> ToDoubleModelScale(this XbimVector3D v, IModelFactors f) { return(new double[] { PrecisionClamp(v.X, f.OneMeter, f.Precision), PrecisionClamp(v.Y, f.OneMeter, f.Precision), PrecisionClamp(v.Z, f.OneMeter, f.Precision) }); }
public static IEnumerable <double> ToDoubleMeter(this XbimVector3D v, IModelFactors f) { var precisionInM = f.Precision * f.LengthToMetresConversionFactor; return(new double[] { PrecisionClamp(v.X, f.LengthToMetresConversionFactor, precisionInM), PrecisionClamp(v.Y, f.LengthToMetresConversionFactor, precisionInM), PrecisionClamp(v.Z, f.LengthToMetresConversionFactor, precisionInM) }); }
protected void Init(IEntityFactory factory) { _factory = factory; InstanceCache = new PersistedEntityInstanceCache(this, factory); InstancesLocal = new XbimInstanceCollection(this); var r = new Random(); UserDefinedId = (short)r.Next(short.MaxValue); // initialise value at random to reduce chance of duplicates Metadata = ExpressMetaData.GetMetadata(factory.GetType().Module); ModelFactors = new XbimModelFactors(Math.PI / 180, 1e-3, 1e-5); }
public static IfcTessellationPrefs FromModelFactors(IModelFactors mf) { return(new IfcTessellationPrefs { OneMeter = mf.OneMeter, Precision = mf.Precision * mf.LengthToMetresConversionFactor, PrecisionMax = mf.PrecisionMax * mf.LengthToMetresConversionFactor, PrecisionBoolean = mf.PrecisionBoolean * mf.LengthToMetresConversionFactor, PrecisionBooleanMax = mf.PrecisionBooleanMax * mf.LengthToMetresConversionFactor, DeflectionAngle = mf.DeflectionAngle, DeflectionTolerance = mf.DeflectionTolerance * mf.LengthToMetresConversionFactor }); }
/// <summary> /// Converts the vector into a length measure enumerable using the model's internal length factors. /// </summary> /// <param name="v">The vector</param> /// <param name="f">The model factors</param> /// <returns>Length measure values in compliance to the model length unit</returns> public static IEnumerable <Xbim.Ifc4.MeasureResource.IfcLengthMeasure> ToIfcLengthMeasure4(this XbimVector3D v, IModelFactors f) { return(new Xbim.Ifc4.MeasureResource.IfcLengthMeasure[] { PrecisionClamp(v.X, f.OneMeter, f.Precision), PrecisionClamp(v.Y, f.OneMeter, f.Precision), PrecisionClamp(v.Z, f.OneMeter, f.Precision) }); }
/// <summary> /// Converts a serialized <see cref="XYZ"/> to an <see cref="XbimVector3D"/> of meter scale. /// </summary> /// <param name="xyz">The vector of meter scale</param> /// <param name="modelFactors">The model conversion factors</param> /// <returns></returns> public static XbimVector3D ToXbimVector3DMeter(this XYZ xyz, IModelFactors modelFactors) { return(ToXbimVector3D(xyz, modelFactors.OneMeter)); }