Esempio n. 1
0
 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)
     });
 }
Esempio n. 2
0
        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)
            });
        }
Esempio n. 3
0
        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
     });
 }
Esempio n. 5
0
 /// <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)
     });
 }
Esempio n. 6
0
 /// <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));
 }