Esempio n. 1
0
        /// <summary>
        /// このクラスのpropertiesのうち in と書かれているものを入力に受け取り、
        /// outと書かれているものを出力する。
        ///
        /// Clipper2Dの合成(operator *)を行なうときには自動的にこのUpdate関数が
        /// 呼び出されるので明示的に呼び出す必要はない。
        /// </summary>
        public void Update()
        {
            if (SrcClipRegion != null && SrcRegion != null)
            {
                // 転送元クリップリージョン
                SrcRegionClipped = GeometricTools.Intersect(SrcClipRegion, SrcRegion);
            }
            else
            {
                SrcRegionClipped = SrcRegion;
            }

            DstRegionClipped = GeometricTools.TransRegion(Trnas, SrcRegionClipped);

            // 転送先にクリッパが設定されていれば…
            if (DstClipRegion != null)
            {
                DstRegionClipped = GeometricTools.Intersect(DstClipRegion, DstRegionClipped);
                // ↑を転送元へ戻す
                SrcRegionClipped = GeometricTools.TransRegion(Trans.Inverse(), DstRegionClipped);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// このクラスのpropertiesのうち in と書かれているものを入力に受け取り、
        /// outと書かれているものを出力する。
        /// 
        /// Clipper2Dの合成(operator *)を行なうときには自動的にこのUpdate関数が
        /// 呼び出されるので明示的に呼び出す必要はない。
        /// </summary>
        public void Update()
        {
            if (SrcClipRegion != null && SrcRegion != null)
            {
                // 転送元クリップリージョン
                SrcRegionClipped = GeometricTools.Intersect(SrcClipRegion, SrcRegion);
            }
            else
            {
                SrcRegionClipped = SrcRegion;
            }

            DstRegionClipped = GeometricTools.TransRegion(Trnas, SrcRegionClipped);

            // 転送先にクリッパが設定されていれば…
            if (DstClipRegion != null)
            {
                DstRegionClipped = GeometricTools.Intersect(DstClipRegion, DstRegionClipped);
                // ↑を転送元へ戻す
                SrcRegionClipped = GeometricTools.TransRegion(Trans.Inverse(), DstRegionClipped);
            }
        }