|
| 1 | +/* Generated from Java with JSweet 3.2.0-SNAPSHOT - http://www.jsweet.org */ |
| 2 | +namespace com.vzome.core.kinds { |
| 3 | + export class PlasticPhiFieldApplication extends com.vzome.core.kinds.DefaultFieldApplication { |
| 4 | + /*private*/ icosahedralPerspective: com.vzome.core.kinds.IcosahedralSymmetryPerspective; |
| 5 | + |
| 6 | + symmetryPerspectives: java.util.List<com.vzome.core.editor.SymmetryPerspective>; |
| 7 | + |
| 8 | + /*private*/ H4: com.vzome.core.math.symmetry.QuaternionicSymmetry; |
| 9 | + |
| 10 | + public constructor(field: com.vzome.core.algebra.PlasticPhiField) { |
| 11 | + super(field); |
| 12 | + if (this.icosahedralPerspective === undefined) { this.icosahedralPerspective = null; } |
| 13 | + this.symmetryPerspectives = <any>(new java.util.ArrayList<any>()); |
| 14 | + if (this.H4 === undefined) { this.H4 = null; } |
| 15 | + this.h4Builder = null; |
| 16 | + this.icosahedralPerspective = new com.vzome.core.kinds.IcosahedralSymmetryPerspective(this.getField()); |
| 17 | + this.symmetryPerspectives.add(this.icosahedralPerspective); |
| 18 | + this.symmetryPerspectives.add(super.getDefaultSymmetryPerspective()); |
| 19 | + this.H4 = new com.vzome.core.math.symmetry.QuaternionicSymmetry("H_4", "com/vzome/core/math/symmetry/H4roots.vef", this.getField()); |
| 20 | + } |
| 21 | + |
| 22 | + /** |
| 23 | + * |
| 24 | + * @return {com.vzome.core.algebra.PlasticPhiField} |
| 25 | + */ |
| 26 | + public getField(): com.vzome.core.algebra.PlasticPhiField { |
| 27 | + return <com.vzome.core.algebra.PlasticPhiField><any>super.getField(); |
| 28 | + } |
| 29 | + |
| 30 | + /** |
| 31 | + * |
| 32 | + * @return {*} |
| 33 | + */ |
| 34 | + public getSymmetryPerspectives(): java.util.Collection<com.vzome.core.editor.SymmetryPerspective> { |
| 35 | + return this.symmetryPerspectives; |
| 36 | + } |
| 37 | + |
| 38 | + /** |
| 39 | + * |
| 40 | + * @return {*} |
| 41 | + */ |
| 42 | + public getDefaultSymmetryPerspective(): com.vzome.core.editor.SymmetryPerspective { |
| 43 | + return this.icosahedralPerspective; |
| 44 | + } |
| 45 | + |
| 46 | + /** |
| 47 | + * |
| 48 | + * @param {string} symmName |
| 49 | + * @return {*} |
| 50 | + */ |
| 51 | + public getSymmetryPerspective(symmName: string): com.vzome.core.editor.SymmetryPerspective { |
| 52 | + for(let index=this.symmetryPerspectives.iterator();index.hasNext();) { |
| 53 | + let sp = index.next(); |
| 54 | + { |
| 55 | + if (sp.getName() === symmName){ |
| 56 | + return sp; |
| 57 | + } |
| 58 | + } |
| 59 | + } |
| 60 | + return super.getSymmetryPerspective(symmName); |
| 61 | + } |
| 62 | + |
| 63 | + /** |
| 64 | + * |
| 65 | + * @param {*} toolFactories |
| 66 | + * @param {com.vzome.core.editor.ToolsModel} tools |
| 67 | + */ |
| 68 | + public registerToolFactories(toolFactories: java.util.Map<string, com.vzome.api.Tool.Factory>, tools: com.vzome.core.editor.ToolsModel) { |
| 69 | + super.registerToolFactories(toolFactories, tools); |
| 70 | + const symm: com.vzome.core.math.symmetry.IcosahedralSymmetry = this.icosahedralPerspective.getSymmetry(); |
| 71 | + toolFactories.put("AxialStretchTool", new com.vzome.core.tools.AxialStretchTool.Factory(tools, symm, false, false, false)); |
| 72 | + toolFactories.put("SymmetryTool", new com.vzome.core.tools.IcosahedralToolFactory(tools, symm)); |
| 73 | + } |
| 74 | + |
| 75 | + /** |
| 76 | + * |
| 77 | + * @param {string} name |
| 78 | + * @return {com.vzome.core.math.symmetry.QuaternionicSymmetry} |
| 79 | + */ |
| 80 | + public getQuaternionSymmetry(name: string): com.vzome.core.math.symmetry.QuaternionicSymmetry { |
| 81 | + switch((name)) { |
| 82 | + case "H_4": |
| 83 | + return this.H4; |
| 84 | + default: |
| 85 | + return null; |
| 86 | + } |
| 87 | + } |
| 88 | + |
| 89 | + /*private*/ h4Builder: com.vzome.core.commands.CommandUniformH4Polytope; |
| 90 | + |
| 91 | + /** |
| 92 | + * |
| 93 | + * @param {string} groupName |
| 94 | + * @param {number} index |
| 95 | + * @param {number} edgesToRender |
| 96 | + * @param {com.vzome.core.algebra.AlgebraicNumber[]} edgeScales |
| 97 | + * @param {*} listener |
| 98 | + */ |
| 99 | + public constructPolytope(groupName: string, index: number, edgesToRender: number, edgeScales: com.vzome.core.algebra.AlgebraicNumber[], listener: com.vzome.core.math.symmetry.WythoffConstruction.Listener) { |
| 100 | + switch((groupName)) { |
| 101 | + case "H4": |
| 102 | + if (this.h4Builder == null){ |
| 103 | + const qsymm: com.vzome.core.math.symmetry.QuaternionicSymmetry = new com.vzome.core.math.symmetry.QuaternionicSymmetry("H_4", "com/vzome/core/math/symmetry/H4roots.vef", this.getField()); |
| 104 | + this.h4Builder = new com.vzome.core.commands.CommandUniformH4Polytope(this.getField(), qsymm, 0); |
| 105 | + } |
| 106 | + this.h4Builder.generate(index, edgesToRender, edgeScales, listener); |
| 107 | + break; |
| 108 | + default: |
| 109 | + super.constructPolytope(groupName, index, edgesToRender, edgeScales, listener); |
| 110 | + break; |
| 111 | + } |
| 112 | + } |
| 113 | + } |
| 114 | + PlasticPhiFieldApplication["__class"] = "com.vzome.core.kinds.PlasticPhiFieldApplication"; |
| 115 | + PlasticPhiFieldApplication["__interfaces"] = ["com.vzome.core.math.symmetry.Symmetries4D","com.vzome.core.editor.FieldApplication"]; |
| 116 | + |
| 117 | + |
| 118 | +} |
| 119 | + |
0 commit comments