Source code: com/trapezium/chisel/CreateSer.java
1 /*
2 * @(#)CreateSer.java
3 *
4 * Copyright (c) 1998 by Trapezium Development LLC. All Rights Reserved.
5 *
6 * The information in this file is the property of Trapezium Development LLC
7 * and may be used only in accordance with the terms of the license granted
8 * by Trapezium.
9 *
10 */
11 package com.trapezium.chisel;
12
13 import java.io.File;
14 import java.io.FileOutputStream;
15 import java.io.ObjectOutputStream;
16
17 // test class to create ChiselSetDescriptor serialized objects for
18 // plugin architecture.
19
20 //
21 // The specific plugin "plugin_1.ser", ... , "plugin_<N>.ser" is then
22 // included in the ".jar" file for testing
23
24 //
25 // Release version should probably include the "plugin_1.ser" file in
26 // a "plugin_1.jar" file that is added to the classpath
27 //
28
29 public class CreateSer {
30 public static void main( String[] args ) {
31 ChiselSetDescriptor csd = new ChiselSetDescriptor( "", "", true, "clean",
32 false );
33 csd.addChiselEntry( "com.trapezium.chisel.cleaners.DEFremover",
34 "Remove unused DEFs", false, ChiselSet.UnusedDEFCountListener );
35 csd.addChiselEntry(
36 "com.trapezium.chisel.cleaners.DefaultFieldValueRemover",
37 "Remove default fields", false,
38 ChiselSet.DefaultFieldCountListener );
39 csd.addChiselEntry( "com.trapezium.chisel.cleaners.IFS_DupCoordDetector",
40 "Remove repeated value refs", false,
41 ChiselSet.RepeatedValueCountListener );
42 csd.addChiselEntry( "com.trapezium.chisel.cleaners.IFS_CoordRemover",
43 "Remove unused values", false, ChiselSet.UnusedCoordCountListener );
44 csd.addChiselEntry( "com.trapezium.chisel.cleaners.IFS_DupIndexRemover",
45 "Remove repeated index values", false,
46 ChiselSet.DupIndexCountListener );
47 csd.addChiselEntry( "com.trapezium.chisel.cleaners.DuplicateFieldRemover",
48 "Remove repeated fields", false,
49 ChiselSet.DuplicateFieldCountListener );
50 csd.addChiselEntry(
51 "com.trapezium.chisel.cleaners.UnusedPROTOInterfaceRemover",
52 "Remove unused PROTO interface fields", false,
53 ChiselSet.UnusedPROTOinterfaceCountListener );
54 csd.addChiselEntry( "com.trapezium.chisel.cleaners.IFS_BadFaceRemover",
55 "Remove bad faces", false, ChiselSet.BadFaceCountListener );
56 csd.addChiselEntry( "com.trapezium.chisel.cleaners.NodeRemover",
57 "Remove useless interpolators", false,
58 ChiselSet.UselessNodeCountListener );
59 csd.addChiselEntry( "com.trapezium.chisel.cleaners.IFS_NoFaceRemover",
60 "Remove empty IndexedFaceSets", false,
61 ChiselSet.EmptyIndexedFaceSetCountListener );
62 csd.addChiselEntry( "com.trapezium.chisel.cleaners.ROUTEMover",
63 "Move ROUTEs to end of file", false, ChiselSet.BadRouteListener );
64 csd.addChiselEntry( "com.trapezium.chisel.cleaners.KeyValueRemover",
65 "Remove unnecessary interpolator values", false,
66 ChiselSet.UnnecessaryKeyValueListener );
67 serialize( csd, "builtin_1.ser" );
68
69 csd = new ChiselSetDescriptor( "", "", true, "condense", true );
70 csd.addChiselEntry( "com.trapezium.chisel.condensers.ResolutionMaker",
71 "Adjust numeric resolution", false,
72 ChiselSet.ValueNodeCountListener );
73 csd.addChiselEntry(
74 "com.trapezium.chisel.condensers.InterpolatorResolution",
75 "Adjust Interpolator resolution", false,
76 ChiselSet.InterpolatorCountListener );
77 csd.addChiselEntry( "com.trapezium.chisel.condensers.DEFmaker",
78 "Create DEF/USE", false, ChiselSet.DEFUSECountListener );
79 csd.addChiselEntry( "com.trapezium.chisel.condensers.PROTOMaker",
80 "Create PROTOs for interpolators", false,
81 ChiselSet.InterpolatorCountListener2 );
82 csd.addChiselEntry( "com.trapezium.chisel.condensers.IFS_IndexOptimizer",
83 "Create index fields", false, ChiselSet.UnindexedValueListener );
84 csd.addChiselEntry( "com.trapezium.chisel.condensers.NormalRemover",
85 "Remove normals", false, ChiselSet.NormalCountListener );
86 csd.addChiselEntry( "com.trapezium.chisel.condensers.NameShortener",
87 "Shorten DEF names", false, ChiselSet.DEFUSECountListener2 );
88 csd.addChiselEntry( "com.trapezium.chisel.cleaners.InterpolatorMinimizer",
89 "Single value interpolator keys", false );
90 serialize( csd, "builtin_2.ser" );
91
92 csd = new ChiselSetDescriptor( "", "", true, "reduce", true );
93 csd.addChiselEntry( "com.trapezium.chisel.reducers.IFS_CoplanarTriToQuad",
94 "Coplanar triangle to quad", false );
95 csd.addChiselEntry( "com.trapezium.chisel.reducers.IFS_Simplifier",
96 "Remove smallest edges", false );
97 csd.addChiselEntry( "com.trapezium.chisel.reducers.IFS_PolygonRemover",
98 "Remove smallest triangles", false );
99 csd.addChiselEntry( "com.trapezium.chisel.reducers.IFS_MeshRemover",
100 "Merge parallel edges", false );
101 serialize( csd, "builtin_3.ser" );
102
103 csd = new ChiselSetDescriptor( "", "", false, "reorganize", true );
104 csd.addChiselEntry( "com.trapezium.chisel.reorganizers.Uninline",
105 "Uninline files", false, ChiselSet.InlineCountListener );
106 csd.addChiselEntry( "com.trapezium.chisel.reorganizers.ShapeToInline",
107 "Turn Shapes into Inlines", false );
108 csd.addChiselEntry( "com.trapezium.chisel.reorganizers.ShapeColorSplitter",
109 "Split IFS by color", false );
110 csd.addChiselEntry(
111 "com.trapezium.chisel.reorganizers.ShapeConnectivitySplitter",
112 "Split IFS by connectivity", false );
113 csd.addChiselEntry(
114 "com.trapezium.chisel.reorganizers.ElevationGridSplitter",
115 "Split ElevationGrid", false,
116 ChiselSet.ElevationGridCountListener );
117 serialize( csd, "builtin_4.ser" );
118
119 csd = new ChiselSetDescriptor( "MUTATE", "Modify the geometry in the current world", false, "mutate", true );
120 csd.addChiselEntry( "com.trapezium.chisel.mutators.Cubist",
121 "Cubist", false );
122 csd.addChiselEntry( "com.trapezium.chisel.mutators.Origami",
123 "Origami", false );
124 csd.addChiselEntry( "com.trapezium.chisel.mutators.IFS_Triangulator",
125 "Triangulate", false );
126 csd.addChiselEntry( "com.trapezium.chisel.mutators.IFS_Smasher",
127 "Flatten", false );
128 csd.addChiselEntry( "com.trapezium.chisel.mutators.IFS_FaceToLineSet",
129 "Wireframe", false );
130 csd.addChiselEntry( "com.trapezium.chisel.mutators.IFS_FaceToPointSet",
131 "Point cloud", false );
132 serialize( csd, "plugin_1.ser" );
133 }
134
135 static public void serialize( ChiselSetDescriptor csd, String fileName ) {
136 File f = new File( fileName );
137 try {
138 FileOutputStream fos = new FileOutputStream( f );
139 ObjectOutputStream oos = new ObjectOutputStream( fos );
140 oos.writeObject( csd );
141 } catch ( Exception e ) {
142 System.out.println( "** Exception " + e );
143 e.printStackTrace();
144 }
145 }
146 }