public Head(BevelType bevelType, double bevel, double roundness, double buldge) { Bevel = bevel; Buldge = buldge; BevelType = bevelType; Roundness = roundness; }
public static Asset ResolveHeadMeshAsset(DataModelMesh mesh) { Contract.Requires(mesh != null); string result = "Default"; if (mesh is BevelMesh) { BevelMesh bevelMesh = mesh as BevelMesh; BevelType bevelType = BevelType.Unknown; if (mesh is BlockMesh) { bevelType = BevelType.Block; } else if (mesh is CylinderMesh) { bevelType = BevelType.Cylinder; } Head match = Lookup.Keys .Where((head) => bevelType == head.BevelType) .Where((head) => head.FieldsMatchWith(bevelMesh)) .First(); if (match != null) { result = Lookup[match]; } mesh.Scale = new Vector3(1, 1, 1); } else if (mesh is SpecialMesh) { SpecialMesh specialMesh = mesh as SpecialMesh; if (specialMesh.MeshType == MeshType.Sphere) { result = "Perfection"; specialMesh.Scale = new Vector3(1, 1, 1); } } if (result == "Default") { mesh.Scale /= new Vector3(1.25f, 1.25f, 1.25f); } return(Asset.FromResource("Meshes/Heads/" + result + ".mesh")); }