All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ofdrw.layout.element.canvas.ClipFactory Maven / Gradle / Ivy

The newest version!
package org.ofdrw.layout.element.canvas;

import org.ofdrw.core.basicType.ST_Array;
import org.ofdrw.core.basicType.ST_Box;
import org.ofdrw.core.graph.pathObj.AbbreviatedData;
import org.ofdrw.core.graph.pathObj.CT_Path;
import org.ofdrw.core.pageDescription.clips.Area;
import org.ofdrw.core.pageDescription.clips.CT_Clip;
import org.ofdrw.core.pageDescription.clips.Clips;

/**
 * 裁剪区域构造器
 *
 * @author 权观宇
 * @since 2020-05-04 16:11:55
 */
@Deprecated
public class ClipFactory implements Cloneable {

    /**
     * 裁剪路径数据
     */
    private AbbreviatedData data;

    /**
     * 裁剪路径的变换矩阵
     */
    private ST_Array ctm;



    public ClipFactory(AbbreviatedData data, ST_Array ctm) {
        this.data = data;
        this.ctm = ctm;
    }

    public ClipFactory(AbbreviatedData data) {
        this.data = data;
    }

    public ClipFactory() {
    }


    public AbbreviatedData getData() {
        return data;
    }

    public ClipFactory setData(AbbreviatedData data) {
        this.data = data;
        return this;
    }

    public ST_Array getCtm() {
        return ctm;
    }

    public ClipFactory setCtm(ST_Array ctm) {
        this.ctm = ctm;
        return this;
    }
    /**
     * 构造裁剪对象
     *
     * @return 裁剪区
     */
    public Clips clips(){
        return clips(new ST_Box(0, 0, 210d, 297d));
    }
    /**
     * 构造裁剪对象
     *
     * @param boundary 裁剪边界
     * @return 裁剪区
     */
    public Clips clips(ST_Box boundary) {
        Clips clips = new Clips();
        Area area = new Area();
        if (ctm != null) {
            area.setCTM(ctm.clone());
        }
        CT_Path clipObj = new CT_Path().setAbbreviatedData(data.clone());
        clipObj.setBoundary(boundary);
        area.setClipObj(clipObj);
        return clips.addClip(new CT_Clip().addArea(area));
    }

    @Override
    public ClipFactory clone() {
        ClipFactory that = new ClipFactory();
        if (ctm != null) {
            that.ctm = this.ctm.clone();
        }
        if (data != null) {
            that.data = this.data.clone();
        }
        return that;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy