Ignore:
Timestamp:
Nov 17, 2004, 2:32:21 PM (19 years ago)
Author:
altba\rryu
Message:

PartListクラスは配列との差が無いので廃止した。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MacFaceLibrary/FaceDef.cs

    r16 r18  
    88using System.IO;
    99using System.Collections;
     10using System.Drawing;
    1011
    1112namespace MacFace
     
    3536                private const int PatternRows = 3;
    3637
    37                 private string _path    = "";
    38                 private string _title   = "";
    39                 private string _author  = "";
    40                 private string _version = ""; /*Version*/
    41                 private Uri    _webSite = null;
    42 
    43                 internal PartList _parts = new PartList();
    44                 internal PartList[][] _patternSuites;
    45                 internal PartList _makers = new PartList();
    46 
    47 
    48                 // ctor
     38                private string _path;
     39                private string _title;
     40                private string _author;
     41                private string _version;
     42                private Uri    _webSite;
     43
     44                private Part[] _parts;
     45                private Part[][][] _patternSuites;
     46                private Part[] _makers;
     47
     48
     49                /// <summary>
     50                /// ƒRƒ“ƒXƒgƒ‰ƒNƒ^B
     51                /// </summary>
     52                /// <param name="path">Šçƒpƒ^[ƒ“ƒtƒ@ƒCƒ‹‚̃pƒX</param>
    4953                public FaceDef(string path)
    5054                {
     
    7579                        }
    7680
     81                        _parts = new Part[partDefList.Count];
    7782                        for (int i = 0; i < partDefList.Count; i++)
    7883                        {
     
    8186                                int x = (int)partDef["pos x"];
    8287                                int y = (int)partDef["pos y"];
    83                                 _parts.Add(new Part(System.IO.Path.Combine(path, filename), x, y));
     88                                _parts[i] = new Part(System.IO.Path.Combine(path, filename), x, y);
    8489                        }
    8590
    86                         _patternSuites = new PartList[PatternCols][];
    87                         ArrayList patternDefSuites = def["pattern"] as ArrayList;
     91                        ArrayList suiteDefList = (ArrayList)def["pattern"];
     92                        _patternSuites = new Part[PatternRows][][];
    8893                        for (int i = 0; i < PatternRows; i++)
    8994                        {
    90                                 PartList[] suite = new PartList[PatternCols];
    91                                 ArrayList patternDefList = patternDefSuites[i] as ArrayList;
     95                                ArrayList suiteDef = (ArrayList)suiteDefList[i];
     96                                Part[][] suite = new Part[PatternCols][];
    9297                                for (int j = 0; j < PatternCols; j++)
    9398                                {
    94                                         PartList pattern = new PartList();
    95                                         foreach (int partNo in (ArrayList)patternDefList[j])
     99                                        ArrayList patternDef = (ArrayList)suiteDef[j];
     100                                        Part[] pattern = new Part[patternDef.Count];
     101                                        for (int k = 0; k < patternDef.Count; k++)
    96102                                        {
    97                                                 pattern.Add(_parts[partNo]);
     103                                                pattern[k] = _parts[(int)patternDef[k]];
    98104                                        }
    99105                                        suite[j] = pattern;
     
    103109                }
    104110
    105                 public PartList Markers
    106                 {
    107                         get { return _makers; }
    108                 }
    109 
    110                 public PartList Parts
    111                 {
    112                         get { return _parts; }
    113                 }
    114 
    115111                public Uri WebSite
    116112                {
     
    138134                }
    139135
    140                 public PartList Pattern(PatternSuite suite, int no)
    141                 {
    142                         return _patternSuites[(int)suite][no];
     136                public void DrawPattern(Graphics g, PatternSuite suite, int no)
     137                {
     138                        Part[] pattern = _patternSuites[(int)suite][no];
     139                        foreach (Part part in pattern)
     140                        {
     141                                g.DrawImage(part.Image,
     142                                        part.Point.X, part.Point.Y,
     143                                        part.Image.Size.Width, part.Image.Size.Height);
     144                        }
     145                }
     146
     147                public Image PatternImage(PatternSuite suite, int no)
     148                {
     149                        Bitmap image = new Bitmap(128, 128);
     150                        Graphics g = Graphics.FromImage(image);
     151                        DrawPattern(g, suite, no);
     152                        g.Dispose();
     153                        return image;
    143154                }
    144155        }
Note: See TracChangeset for help on using the changeset viewer.