private void method_15( DrawContext.Wireframe context, Bitmap bitmap, out DxfRasterImage rasterImage, out Vector4D transformedOrigin, out Vector4D transformedXAxis, out Vector4D transformedYAxis) { GdiBitmap gdiBitmap = new GdiBitmap(bitmap); rasterImage = (DxfRasterImage) new DxfImage(); DxfImageDef imageDef = new DxfImageDef(context.Model); imageDef.SetBitmap((IBitmap)gdiBitmap); rasterImage.SetImageDef(imageDef, true); IClippingTransformer clippingTransformer = (IClippingTransformer)context.GetTransformer().Clone(); Matrix4D preTransform1 = Transformation4D.Translation((WW.Math.Vector3D) this.point3D_3); clippingTransformer.SetPreTransform(preTransform1); Matrix4D preTransform2 = Transformation4D.Scaling((this.point3D_2 - this.point3D_3).GetLength() / (double)bitmap.Width, (this.point3D_0 - this.point3D_3).GetLength() / (double)bitmap.Height, 1.0); clippingTransformer.SetPreTransform(preTransform2); Matrix4D matrix = clippingTransformer.Matrix; WW.Math.Point3D zero = WW.Math.Point3D.Zero; transformedOrigin = matrix.TransformTo4D(zero); transformedXAxis = matrix.TransformTo4D(zero + WW.Math.Vector3D.XAxis); transformedYAxis = matrix.TransformTo4D(zero + WW.Math.Vector3D.YAxis); }
public override void CopyFrom(DxfHandledObject from, CloneContext cloneContext) { base.CopyFrom(from, cloneContext); DxfRasterImage dxfRasterImage = (DxfRasterImage)from; this.InsertionPoint = dxfRasterImage.InsertionPoint; this.XAxis = dxfRasterImage.XAxis; this.YAxis = dxfRasterImage.YAxis; this.Size = dxfRasterImage.Size; if (dxfRasterImage.ImageDef == null) { this.SetImageDef((DxfImageDef)null, false); } else if (cloneContext.SourceModel == cloneContext.TargetModel) { this.SetImageDef(dxfRasterImage.ImageDef, false); } else { this.SetImageDef((DxfImageDef)dxfRasterImage.ImageDef.Clone(cloneContext), false); } this.ImageDisplayFlags = dxfRasterImage.ImageDisplayFlags; this.ClippingEnabled = dxfRasterImage.ClippingEnabled; this.Brightness = dxfRasterImage.Brightness; this.Contrast = dxfRasterImage.Contrast; this.Fade = dxfRasterImage.Fade; this.BoundaryVertices.Clear(); this.BoundaryVertices.AddRange((IEnumerable <WW.Math.Point2D>)dxfRasterImage.BoundaryVertices); this.bool_3 = dxfRasterImage.bool_3; }
public override IGraphCloneable Clone(CloneContext cloneContext) { DxfRasterImage dxfRasterImage = (DxfRasterImage)cloneContext.GetExistingClone((IGraphCloneable)this); if (dxfRasterImage == null) { dxfRasterImage = (DxfRasterImage) new DxfImage(); cloneContext.RegisterClone((IGraphCloneable)this, (IGraphCloneable)dxfRasterImage); dxfRasterImage.CopyFrom((DxfHandledObject)this, cloneContext); } return((IGraphCloneable)dxfRasterImage); }