/// <summary> /// Calculates the insertion rotation matrix. /// </summary> /// <param name="insertionUnits">The insertion units.</param> /// <returns>The insert transformation matrix.</returns> public Matrix3 GetTransformation(DrawingUnits insertionUnits) { double docScale = UnitHelper.ConversionFactor(this.Block.Record.Units, insertionUnits); Matrix3 trans = MathHelper.ArbitraryAxis(this.Normal); trans *= Matrix3.RotationZ(this.rotation * MathHelper.DegToRad); trans *= Matrix3.Scale(this.scale * docScale); return(trans); }
/// <summary> /// Initializes a new instance of the <c>BlockRecord</c> class. /// </summary> /// <param name="name">Block definition name.</param> public BlockRecord(string name) : base(DxfObjectCode.BlockRecord) { if (string.IsNullOrEmpty(name)) throw new ArgumentNullException(nameof(name)); this.name = name; this.layout = null; this.units = DefaultUnits; this.allowExploding = true; this.scaleUniformly = false; this.xData = new XDataDictionary(); }
/// <summary> /// Gets the conversion factor between drawing units. /// </summary> /// <param name="from">Original drawing units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The conversion factor between the drawing units.</returns> public static double ConversionFactor(DrawingUnits from, DrawingUnits to) { if (from == DrawingUnits.Unitless || to == DrawingUnits.Unitless) { return(1.0); } decimal factor1 = (decimal)UnitFactors[(int)from]; decimal factor2 = (decimal)UnitFactors[(int)to]; return((double)(factor1 / factor2)); }
/// <summary> /// Initializes a new instance of the <c>BlockRecord</c> class. /// </summary> /// <param name="name">Block definition name.</param> internal BlockRecord(string name) : base(DxfObjectCode.BlockRecord) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } this.name = name; this.layout = null; this.units = DefaultUnits; this.allowExploding = true; this.scaleUniformly = false; }
/// <summary> /// Initializes a new instance of the <c>BlockRecord</c> class. /// </summary> /// <param name="name">Block definition name.</param> public BlockRecord(string name) : base(DxfObjectCode.BlockRecord) { if (string.IsNullOrEmpty(name)) { throw (new ArgumentNullException("name")); } this.name = name; this.layout = null; this.units = DefaultUnits; this.allowExploding = true; this.scaleUniformly = false; this.xData = new XDataDictionary(); AddUnitsXData(); }
/// <summary> /// Gets the conversion factor between image and drawing units. /// </summary> /// <param name="from">Original image units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The conversion factor between the units.</returns> public static double ConversionFactor(ImageUnits from, DrawingUnits to) { // more on the dxf format none sense, they don't even use the same integers for the drawing and the image units int rasterUnits = 0; switch (from) { case ImageUnits.Unitless: rasterUnits = 0; break; case ImageUnits.Millimeters: rasterUnits = 4; break; case ImageUnits.Centimeters: rasterUnits = 5; break; case ImageUnits.Meters: rasterUnits = 6; break; case ImageUnits.Kilometers: rasterUnits = 7; break; case ImageUnits.Inches: rasterUnits = 1; break; case ImageUnits.Feet: rasterUnits = 2; break; case ImageUnits.Yards: rasterUnits = 10; break; case ImageUnits.Miles: rasterUnits = 3; break; } return(UnitFactors[rasterUnits, (int)to]); }
public override void CopyFrom(DxfHandledObject from, CloneContext cloneContext) { base.CopyFrom(from, cloneContext); DxfBlock dxfBlock = (DxfBlock)from; this.blockFlags_0 = dxfBlock.blockFlags_0; this.blockStatusFlags_0 = dxfBlock.blockStatusFlags_0; this.vector3D_0 = dxfBlock.vector3D_0; this.string_0 = dxfBlock.string_0; this.string_1 = dxfBlock.string_1; this.string_2 = dxfBlock.string_2; this.BlockBegin = (DxfBlockBegin)dxfBlock.BlockBegin.Clone(cloneContext); this.BlockEnd = (DxfBlockEnd)dxfBlock.BlockEnd.Clone(cloneContext); if (object.ReferenceEquals((object)dxfBlock.dxfEntityCollection_0, (object)cloneContext.SourceModel.Entities)) { this.method_10(cloneContext.TargetModel.Entities); } this.drawingUnits_0 = dxfBlock.drawingUnits_0; this.bool_0 = dxfBlock.bool_0; this.bool_1 = dxfBlock.bool_1; }
/// <summary> /// Gets the conversion factor between units. /// </summary> /// <param name="from">Original value units.</param> /// <param name="to">Destination value units.</param> /// <returns>The conversion factor between the passed units.</returns> public static double ConversionFactor(DrawingUnits from, ImageUnits to) { return 1/ConversionFactor(to, from); }
/// <summary> /// Calculates the insertion rotation matrix. /// </summary> /// <param name="insertionUnits">The insertion units.</param> /// <returns>The insert rotation matrix.</returns> public Matrix3 GetTransformation(DrawingUnits insertionUnits) { double docScale = UnitHelper.ConversionFactor(this.Block.Record.Units, insertionUnits); Matrix3 trans = MathHelper.ArbitraryAxis(this.normal); trans *= Matrix3.RotationZ(this.rotation * MathHelper.DegToRad); trans *= Matrix3.Scale(this.scale * docScale); return trans; }
/// <summary> /// Gets the conversion factor between units. /// </summary> /// <param name="from">Original value units.</param> /// <param name="to">Destination value units.</param> /// <returns>The conversion factor between the passed units.</returns> public static double ConversionFactor(DrawingUnits from, ImageUnits to) { return(1 / ConversionFactor(to, from)); }
/// <summary> /// Converts a value from one drawing unit to another. /// </summary> /// <param name="value">Number to convert.</param> /// <param name="from">Original drawing units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The converted value to the new drawing units.</returns> public static double ConvertUnit(double value, DrawingUnits from, DrawingUnits to) { return(value * ConversionFactor(from, to)); }
/// <summary> /// Gets the conversion factor between drawing units. /// </summary> /// <param name="from">Original drawing units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The conversion factor between the drawing units.</returns> public static double ConversionFactor(DrawingUnits from, DrawingUnits to) { return(UnitFactors[(int)from, (int)to]); }
/// <summary> /// Initializes a new instance of the <c>BlockRecord</c> class. /// </summary> /// <param name="name">Block definition name.</param> public BlockRecord(string name) : base(name, DxfObjectCode.BlockRecord) { this.units = DrawingUnits.Unitless; }
/// <summary> /// Gets the conversion factor between image and drawing units. /// </summary> /// <param name="from">Original image units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The conversion factor between the units.</returns> public static double ConversionFactor(ImageUnits from, DrawingUnits to) { // more on the dxf format none sense, they don't even use the same integers for the drawing and the image units int rasterUnits = 0; switch (from) { case ImageUnits.Unitless: rasterUnits = 0; break; case ImageUnits.Millimeters: rasterUnits = 4; break; case ImageUnits.Centimeters: rasterUnits = 5; break; case ImageUnits.Meters: rasterUnits = 6; break; case ImageUnits.Kilometers: rasterUnits = 7; break; case ImageUnits.Inches: rasterUnits = 1; break; case ImageUnits.Feet: rasterUnits = 2; break; case ImageUnits.Yards: rasterUnits = 10; break; case ImageUnits.Miles: rasterUnits = 3; break; } return UnitFactors[rasterUnits, (int)to]; }
/// <summary> /// Gets the conversion factor between drawing units. /// </summary> /// <param name="from">Original drawing units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The conversion factor between the drawing units.</returns> public static double ConversionFactor(DrawingUnits from, DrawingUnits to) { return UnitFactors[(int)from, (int)to]; }
/// <summary> /// Converts a value from one drawing unit to another. /// </summary> /// <param name="value">Number to convert.</param> /// <param name="from">Original drawing units.</param> /// <param name="to">Destination drawing units.</param> /// <returns>The converted value to the new drawing units.</returns> public static double ConvertUnit(double value, DrawingUnits from, DrawingUnits to) { return value * ConversionFactor(from, to); }
/// <summary> /// Gets the conversion factor between units. /// </summary> /// <param name="from">Original value units.</param> /// <param name="to">Destination value units.</param> /// <returns>The conversion factor between the passed units.</returns> public static double ConversionFactor(DrawingUnits from, ImageUnits to) { return(ConversionFactor(from, ImageToDrawingUnits(to))); }