예제 #1
0
        public static EmfPlusRegionNodeData GetNodeData(MetafileReader reader, RegionNodeDataType type)
        {
            EmfPlusRegionNodeData data;

            switch (type)
            {
            case RegionNodeDataType.Rect:
                data = new EmfPlusRegionNodeRect(reader);
                break;

            case RegionNodeDataType.Path:
                data = new EmfPlusRegionNodePath(reader);
                break;

            case RegionNodeDataType.Empty:
                data = null;
                break;

            case RegionNodeDataType.Infinite:
                data = null;
                break;

            case RegionNodeDataType.And:
            case RegionNodeDataType.Or:
            case RegionNodeDataType.Xor:
            case RegionNodeDataType.Exclude:
            case RegionNodeDataType.Complement:
                data = new EmfPlusRegionNodeChildNodes(reader, type);
                break;

            default:
                throw new InvalidOperationException($"Unknown region node type 0x{type:X8}");
            }

            return(data);
        }
예제 #2
0
 public EmfPlusRegionNodeChildNodes(MetafileReader reader, RegionNodeDataType type) : base(type)
 {
     LeftNode  = new EmfPlusRegionNode(reader);
     RightNode = new EmfPlusRegionNode(reader);
 }
예제 #3
0
 public EmfPlusRegionNodeData(RegionNodeDataType type)
 {
     Type = type;
 }