/[gr2lib]/trunk/gr2lib_UnitTest/Program.cs
ViewVC logotype

Contents of /trunk/gr2lib_UnitTest/Program.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 86 - (show annotations) (download)
Fri Jul 16 23:35:21 2010 UTC (9 years, 6 months ago) by william
File size: 11574 byte(s)
Add Try/Catch blocks in to all API Calls

1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 using gr2lib.core;
6 //using gr2lib.core.coretypes;
7 using gr2lib.core.apiversion;
8 using gr2lib.core.exceptions;
9 using gr2lib.core.helpers;
10 using gr2lib.core.coretypes.implementation;
11 using System.Runtime.CompilerServices;
12
13 namespace gr2lib_UnitTest
14 {
15
16 class Program
17 {
18 static void Main(string[] args)
19 {
20 string GrannyFilename = shared.GRANNY_TEST_FILE;
21 try
22 {
23 #region Check Granny2 API Version
24 // Setup access to check loaded Granny2 API Version
25 granny2apiversion apiversion = new granny2apiversion(shared.EXPECTED_API_VERSION);
26
27 // Check if the Loaded API Version Matches
28 if (!apiversion.apiversionsmatch)
29 {
30 // the loaded version does not match
31 Console.WriteLine("Warning:\n" +
32 "\t Loaded Granny2 DLL Version: " + apiversion.apiversion.version + "\n" +
33 "\t Expected Version: " + apiversion.expectedapiversion.version);
34 // return from void to exit application
35 return;
36 }
37 else
38 {
39 // the loaded version matches
40 Console.WriteLine("Loaded granny2.dll: " + apiversion.apiversion.version);
41 }
42 #endregion
43
44 #region Parse Commandline
45 if (args.Length == 1)
46 {
47 GrannyFilename = args[0];
48 }
49 else if (args.Length > 1)
50 {
51 throw new InvalidOperationException("ERROR: Recieved Invalid Commandline: " + new arraytostring<string, string[]>(args));
52 }
53
54 if (System.IO.File.Exists(GrannyFilename))
55 {
56 Console.WriteLine("Using Granny2 File: " + GrannyFilename);
57 }
58 else
59 {
60 throw new System.IO.FileNotFoundException("Unable to find: " + GrannyFilename);
61 }
62 #endregion
63
64 #region Read Granny2 Data
65
66 grnfileinfo info = grnfileinfo.ReadFromFile(GrannyFilename);
67
68 #region Read FromFileName
69 Console.WriteLine();
70 Console.WriteLine("From File Name: " + info.FromFileName);
71 Console.WriteLine("ExtendedData: " + info.ExtendedData);
72 #endregion
73
74 #region Read ArtToolInfo
75 Console.WriteLine();
76 Console.WriteLine("Art Tool Data:");
77 Console.WriteLine("\tTool Name: " + info.ArtToolInfo.FromArtToolName);
78 Console.WriteLine("\tTool Version: " + string.Format("{0}.{1}", info.ArtToolInfo.ArtToolMajorRevision, info.ArtToolInfo.ArtToolMinorRevision));
79 Console.WriteLine("\tTool Units Per Meter: " + info.ArtToolInfo.UnitsPerMeter);
80
81 Console.WriteLine("\tTool Origin: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Origin.x, info.ArtToolInfo.Origin.y, info.ArtToolInfo.Origin.z));
82 Console.WriteLine("\tTool Right: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Right.x, info.ArtToolInfo.Right.y, info.ArtToolInfo.Right.z));
83 Console.WriteLine("\tTool Up: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Up.x, info.ArtToolInfo.Up.y, info.ArtToolInfo.Up.z));
84 Console.WriteLine("\tTool Back: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Back.x, info.ArtToolInfo.Back.y, info.ArtToolInfo.Back.z));
85
86 Console.WriteLine("\tTool ExtendedData: " + info.ArtToolInfo.ExtendedData);
87 #endregion
88
89 #region Read ExporterInfo
90 Console.WriteLine();
91 Console.WriteLine("Exporter Info:");
92 Console.WriteLine("\tExporter Name: " + info.ExporterInfo.ExporterName);
93
94 Console.WriteLine("\tExporter Version: " +
95 string.Format("{0}.{1}.{2}.{3}",
96 info.ExporterInfo.ExporterMajorRevision,
97 info.ExporterInfo.ExporterMinorRevision,
98 info.ExporterInfo.ExporterCustomization,
99 info.ExporterInfo.ExporterBuildNumber));
100
101 Console.WriteLine("\tExporter ExtendedData: " + info.ExporterInfo.ExtendedData);
102 #endregion
103
104 #region Read Textures
105 Console.WriteLine();
106 Console.WriteLine("Texture List:");
107 foreach (Texture t in info.Textures)
108 {
109 Console.WriteLine("\tName: " + t.FromFileName);
110 Console.WriteLine("\tType: " + t.TextureType);
111 Console.WriteLine("\tWidth: " + t.Width);
112 Console.WriteLine("\tHeight: " + t.Height);
113 Console.WriteLine("\tEncoding: " + t.Encoding);
114 Console.WriteLine("\tSubFormat: " + t.SubFormat);
115 // layout
116 Console.WriteLine("\tBytes Per Pixel: " + t.Layout.BytesPerPixel);
117 Console.WriteLine("\tShiftForComponent: " + new arraytostring<int, int[]>(t.Layout.ShiftForComponent));
118 Console.WriteLine("\tBitsForComponent: " + new arraytostring<int, int[]>(t.Layout.BitsForComponent));
119 // images
120 Console.WriteLine("\tImage List:");
121 foreach (Image img in t.Images)
122 {
123 foreach (MIPLevel mip in img.MIPLevels)
124 {
125 Console.WriteLine("\t\tMipLevel Stride: " + mip.Stride);
126 if (mip.Pixels.Count > 0)
127 {
128 Console.WriteLine("\t\tMipLevel Pixel: " + "{Pixel Data " + "[" + mip.Pixels.Count + "]}");
129 //// export image
130 //mip.Pixels.Export(@"exported_images\" + t.FromFileName.Name, t.Width, t.Height, mip.Stride);
131 }
132 }
133 }
134 Console.WriteLine("\tExtendedData: " + t.ExtendedData);
135 Console.WriteLine();
136 }
137 #endregion
138
139 #region Read Materials
140 Console.WriteLine();
141 Console.WriteLine("Material List:");
142 foreach (Material m in info.Materials)
143 {
144 Console.WriteLine("\tMaterial Name: " + m.Name);
145 Console.WriteLine("\t\tMaterial IsTexture: " + m.IsTexture.ToString());
146 if (m.IsTexture)
147 {
148 Texture t = m.Texture;
149 Console.WriteLine("\t\tTexture:");
150 Console.WriteLine("\t\t\tName: " + t.FromFileName);
151 Console.WriteLine("\t\t\tType: " + t.TextureType);
152 Console.WriteLine("\t\t\tWidth: " + t.Width);
153 Console.WriteLine("\t\t\tHeight: " + t.Height);
154 Console.WriteLine("\t\t\tEncoding: " + t.Encoding);
155 Console.WriteLine("\t\t\tSubFormat: " + t.SubFormat);
156 // layout
157 Console.WriteLine("\t\t\tBytes Per Pixel: " + t.Layout.BytesPerPixel);
158 Console.WriteLine("\t\t\tShiftForComponent: " + new arraytostring<int, int[]>(t.Layout.ShiftForComponent));
159 Console.WriteLine("\t\t\tBitsForComponent: " + new arraytostring<int, int[]>(t.Layout.BitsForComponent));
160
161
162 Console.WriteLine("\t\t\tImage List:");
163 foreach (Image img in t.Images)
164 {
165 foreach (MIPLevel mip in img.MIPLevels)
166 {
167 Console.WriteLine("\t\t\t\tMipLevel Stride: " + mip.Stride);
168 if (mip.Pixels.Count > 0)
169 {
170 Console.WriteLine("\t\t\t\tMipLevel Pixel: " + "{Pixel Data " + "[" + mip.Pixels.Count + "]}");
171 //// export image
172 //mip.Pixels.Export(@"exported_images\" + t.FromFileName.Name, t.Width, t.Height, mip.Stride);
173 }
174 }
175 }
176
177 Console.WriteLine("\t\t\tExtendedData: " + t.ExtendedData);
178 Console.WriteLine();
179 }
180 Console.WriteLine("\t\tExtendedData: " + m.ExtendedData);
181 Console.WriteLine();
182 }
183 #endregion
184
185
186 #region Read Skeletons
187 Console.WriteLine();
188 Console.WriteLine("Skeleton List:");
189 foreach (Skeleton s in info.Skeletons)
190 {
191 Console.WriteLine("\tSkeleton Name: " + s.SkeletonName);
192 Console.WriteLine("\tSkeleton LodType: " + s.LodType);
193 Console.WriteLine("\tBones:");
194 foreach (Bone b in s.Bones)
195 {
196 Console.WriteLine("\t\tName: " + b.BoneName);
197 Console.WriteLine("\t\tParent Index: " + b.ParentIndex);
198 Console.WriteLine("\t\tLod Error: " + b.LodError);
199 Console.WriteLine("\t\tTransform: " + b.Transform.ToString());
200 if (b.HasLightInfo) { Console.WriteLine("\t\tLightInfo ExtendedData: " + b.LightInfo.ExtendedData); }
201 if (b.HasCameraInfo) { Console.WriteLine("\t\tCameraInfo ExtendedData: " + b.CameraInfo.ExtendedData); }
202 Console.WriteLine();
203 }
204 Console.WriteLine("\t\tExtendedData: " + s.ExtendedData);
205 Console.WriteLine();
206 }
207 #endregion
208 }
209 #endregion
210
211
212 catch (granny2apiloadexception ex)
213 {
214 Console.WriteLine(ex.Message);
215 }
216 catch (Exception ex)
217 {
218 RuntimeWrappedException rwe = ex as RuntimeWrappedException;
219 if (rwe != null)
220 {
221 Console.WriteLine(rwe.ToString());
222 }
223 else
224 {
225 Console.WriteLine(ex.Message);
226 }
227 }
228 }
229 }
230 }
231

  ViewVC Help
Powered by ViewVC 1.1.22