diff --git a/vr-configurator/Assets/Resources/Model/02.01.98.0000-ERLbach_vereinfacht.obj b/vr-configurator/Assets/Resources/Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht.obj similarity index 100% rename from vr-configurator/Assets/Resources/Model/02.01.98.0000-ERLbach_vereinfacht.obj rename to vr-configurator/Assets/Resources/Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht.obj diff --git a/vr-configurator/Assets/Resources/Model/02.01.98.0000-ERLbach_vereinfacht.obj.meta b/vr-configurator/Assets/Resources/Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht.obj.meta similarity index 100% rename from vr-configurator/Assets/Resources/Model/02.01.98.0000-ERLbach_vereinfacht.obj.meta rename to vr-configurator/Assets/Resources/Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht.obj.meta diff --git a/vr-configurator/Assets/Scripts/Models/Definitions.cs b/vr-configurator/Assets/Scripts/Models/Definitions.cs index fc7e56c..07e6528 100644 --- a/vr-configurator/Assets/Scripts/Models/Definitions.cs +++ b/vr-configurator/Assets/Scripts/Models/Definitions.cs @@ -1,9 +1,107 @@ public class Definitions { + // BIKE PORTS public const string PORT_BIKE_SPROCKET = "bikeSprocket"; public const string PORT_BIKE_PEDAL_L = "bikePedalL"; public const string PORT_BIKE_PEDAL_R = "bikePedalR"; public const string PORT_BIKE_STEER = "bikeSteer"; public const string PORT_BIKE_WHEEL = "bikeWheel"; public const string PORT_BIKE_DRIVER = "bikeDriver"; + + + // ERLCAR PORTS + public const string PORT_ERLBACH_0 = "portErlbach0"; + public const string PORT_ERLBACH_1 = "portErlbach1"; + public const string PORT_ERLBACH_2 = "portErlbach2"; + public const string PORT_ERLBACH_3 = "portErlbach3"; + public const string PORT_ERLBACH_4 = "portErlbach4"; + public const string PORT_ERLBACH_5 = "portErlbach5"; + public const string PORT_ERLBACH_6 = "portErlbach6"; + public const string PORT_ERLBACH_7 = "portErlbach7"; + public const string PORT_ERLBACH_8 = "portErlbach8"; + public const string PORT_ERLBACH_9 = "portErlbach9"; + public const string PORT_ERLBACH_10 = "portErlbach10"; + public const string PORT_ERLBACH_11 = "portErlbach11"; + public const string PORT_ERLBACH_12 = "portErlbach12"; + public const string PORT_ERLBACH_13 = "portErlbach13"; + public const string PORT_ERLBACH_14 = "portErlbach14"; + public const string PORT_ERLBACH_15 = "portErlbach15"; + public const string PORT_ERLBACH_16 = "portErlbach16"; + public const string PORT_ERLBACH_17 = "portErlbach17"; + public const string PORT_ERLBACH_18 = "portErlbach18"; + public const string PORT_ERLBACH_19 = "portErlbach19"; + public const string PORT_ERLBACH_20 = "portErlbach20"; + public const string PORT_ERLBACH_21 = "portErlbach21"; + public const string PORT_ERLBACH_22 = "portErlbach22"; + public const string PORT_ERLBACH_23 = "portErlbach23"; + public const string PORT_ERLBACH_24 = "portErlbach24"; + public const string PORT_ERLBACH_25 = "portErlbach25"; + public const string PORT_ERLBACH_26 = "portErlbach26"; + public const string PORT_ERLBACH_27 = "portErlbach27"; + public const string PORT_ERLBACH_28 = "portErlbach28"; + public const string PORT_ERLBACH_29 = "portErlbach29"; + public const string PORT_ERLBACH_30 = "portErlbach30"; + public const string PORT_ERLBACH_31 = "portErlbach31"; + public const string PORT_ERLBACH_32 = "portErlbach32"; + public const string PORT_ERLBACH_33 = "portErlbach33"; + public const string PORT_ERLBACH_34 = "portErlbach34"; + public const string PORT_ERLBACH_35 = "portErlbach35"; + public const string PORT_ERLBACH_36 = "portErlbach36"; + public const string PORT_ERLBACH_37 = "portErlbach37"; + public const string PORT_ERLBACH_38 = "portErlbach38"; + public const string PORT_ERLBACH_39 = "portErlbach39"; + public const string PORT_ERLBACH_40 = "portErlbach40"; + public const string PORT_ERLBACH_41 = "portErlbach41"; + public const string PORT_ERLBACH_42 = "portErlbach42"; + public const string PORT_ERLBACH_43 = "portErlbach43"; + public const string PORT_ERLBACH_44 = "portErlbach44"; + public const string PORT_ERLBACH_45 = "portErlbach45"; + public const string PORT_ERLBACH_46 = "portErlbach46"; + public const string PORT_ERLBACH_47 = "portErlbach47"; + public const string PORT_ERLBACH_48 = "portErlbach48"; + public const string PORT_ERLBACH_49 = "portErlbach49"; + public const string PORT_ERLBACH_50 = "portErlbach50"; + public const string PORT_ERLBACH_51 = "portErlbach51"; + public const string PORT_ERLBACH_52 = "portErlbach52"; + public const string PORT_ERLBACH_53 = "portErlbach53"; + public const string PORT_ERLBACH_54 = "portErlbach54"; + public const string PORT_ERLBACH_55 = "portErlbach55"; + public const string PORT_ERLBACH_56 = "portErlbach56"; + public const string PORT_ERLBACH_57 = "portErlbach57"; + public const string PORT_ERLBACH_58 = "portErlbach58"; + public const string PORT_ERLBACH_59 = "portErlbach59"; + public const string PORT_ERLBACH_60 = "portErlbach60"; + public const string PORT_ERLBACH_61 = "portErlbach61"; + public const string PORT_ERLBACH_62 = "portErlbach62"; + public const string PORT_ERLBACH_63 = "portErlbach63"; + public const string PORT_ERLBACH_64 = "portErlbach64"; + public const string PORT_ERLBACH_65 = "portErlbach65"; + public const string PORT_ERLBACH_66 = "portErlbach66"; + public const string PORT_ERLBACH_67 = "portErlbach67"; + public const string PORT_ERLBACH_68 = "portErlbach68"; + public const string PORT_ERLBACH_69 = "portErlbach69"; + public const string PORT_ERLBACH_70 = "portErlbach70"; + public const string PORT_ERLBACH_71 = "portErlbach71"; + public const string PORT_ERLBACH_72 = "portErlbach72"; + public const string PORT_ERLBACH_73 = "portErlbach73"; + public const string PORT_ERLBACH_74 = "portErlbach74"; + public const string PORT_ERLBACH_75 = "portErlbach75"; + public const string PORT_ERLBACH_76 = "portErlbach76"; + public const string PORT_ERLBACH_77 = "portErlbach77"; + public const string PORT_ERLBACH_78 = "portErlbach78"; + public const string PORT_ERLBACH_79 = "portErlbach79"; + public const string PORT_ERLBACH_80 = "portErlbach80"; + public const string PORT_ERLBACH_81 = "portErlbach81"; + public const string PORT_ERLBACH_82 = "portErlbach82"; + public const string PORT_ERLBACH_83 = "portErlbach83"; + public const string PORT_ERLBACH_84 = "portErlbach84"; + public const string PORT_ERLBACH_85 = "portErlbach85"; + public const string PORT_ERLBACH_86 = "portErlbach86"; + public const string PORT_ERLBACH_87 = "portErlbach87"; + public const string PORT_ERLBACH_88 = "portErlbach88"; + public const string PORT_ERLBACH_89 = "portErlbach89"; + public const string PORT_ERLBACH_90 = "portErlbach90"; + public const string PORT_ERLBACH_91 = "portErlbach91"; + public const string PORT_ERLBACH_92 = "portErlbach92"; + public const string PORT_ERLBACH_93 = "portErlbach93"; } diff --git a/vr-configurator/Assets/Scripts/Models/ModelList.cs b/vr-configurator/Assets/Scripts/Models/ModelList.cs index 4329cc2..6239134 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelList.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelList.cs @@ -2,64 +2,192 @@ using Unity.Mathematics; using UnityEngine; +/// +/// This class holds all Model Definitions that will be used in the ModelManager +/// Is Planned to be replaced with a JSON Serializer +/// public class ModelList { public static readonly List BaseModels = new List() { new BaseModel( - "Fahrrad", "bike", - Resources.Load($"Model/Bicycle/Models/Low-Poly Bicycle"), - new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + "Fahrrad", + "bike", + Resources.Load("Model/Bicycle/Models/Low-Poly Bicycle"), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), new List - { //please dont ask about the numbers - new Port(Definitions.PORT_BIKE_SPROCKET, new Vector3(0.007933f,0.444f,-0.1614f), "idBikeSprocket"), - new Port(Definitions.PORT_BIKE_PEDAL_L, new Vector3(-0.1252177f,0.5490288f,-0.312027f), "idBikePedalL_1"), - new Port(Definitions.PORT_BIKE_PEDAL_R, new Vector3(0.1410843f,0.3393247f, -0.01154391f), "idBikePedalR_1"), - new Port(Definitions.PORT_BIKE_STEER, new Vector3(0.002989591f,1.214713f,0.4860705f), Quaternion.Euler(-30f,0f,0f), "idBikeHandlebars"), - new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(-0.01431298f,0.4673222f,-0.7874681f), "idBikeWheel_Back1"), - new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(0.01984263f,0.4673225f,0.9462124f), "idBikeWheel_Front1"), - new Port(Definitions.PORT_BIKE_DRIVER, new Vector3(0f,1.25f,-0.65f), Quaternion.Euler(70f,0f,0f), "nuke"), - } + { + //please dont ask about the numbers + new Port(Definitions.PORT_BIKE_SPROCKET, new Vector3(0.007933f, 0.444f, -0.1614f), "idBikeSprocket"), + new Port(Definitions.PORT_BIKE_PEDAL_L, new Vector3(-0.1252177f, 0.5490288f, -0.312027f), "idBikePedalL_1"), + new Port(Definitions.PORT_BIKE_PEDAL_R, new Vector3(0.1410843f, 0.3393247f, -0.01154391f), "idBikePedalR_1"), + new Port(Definitions.PORT_BIKE_STEER, new Vector3(0.002989591f, 1.214713f, 0.4860705f), Quaternion.Euler(-30f, 0f, 0f), "idBikeHandlebars"), + new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(-0.01431298f, 0.4673222f, -0.7874681f), "idBikeWheel_Back1"), + new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(0.01984263f, 0.4673225f, 0.9462124f), "idBikeWheel_Front1"), + new Port(Definitions.PORT_BIKE_DRIVER, new Vector3(0f, 1.25f, -0.65f), Quaternion.Euler(70f, 0f, 0f), "nuke"), + } + ), + new BaseModel( + "ERL-Bach", + "erlbach", + Resources.Load("Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht"), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new List + { + new Port(Definitions.PORT_ERLBACH_0, new Vector3(0f, 0f, 0f), "idErlbachPart0"), + new Port(Definitions.PORT_ERLBACH_1, new Vector3(0f, 0f, 0f), "idErlbachPart1"), + new Port(Definitions.PORT_ERLBACH_2, new Vector3(0f, 0f, 0f), "idErlbachPart2"), + new Port(Definitions.PORT_ERLBACH_3, new Vector3(0f, 0f, 0f), "idErlbachPart3"), + new Port(Definitions.PORT_ERLBACH_4, new Vector3(0f, 0f, 0f), "idErlbachPart4"), + new Port(Definitions.PORT_ERLBACH_5, new Vector3(0f, 0f, 0f), "idErlbachPart5"), + new Port(Definitions.PORT_ERLBACH_6, new Vector3(0f, 0f, 0f), "idErlbachPart6"), + new Port(Definitions.PORT_ERLBACH_7, new Vector3(0f, 0f, 0f), "idErlbachPart7"), + new Port(Definitions.PORT_ERLBACH_8, new Vector3(0f, 0f, 0f), "idErlbachPart8"), + new Port(Definitions.PORT_ERLBACH_9, new Vector3(0f, 0f, 0f), "idErlbachPart9"), + new Port(Definitions.PORT_ERLBACH_10, new Vector3(0f, 0f, 0f), "idErlbachPart10"), + new Port(Definitions.PORT_ERLBACH_11, new Vector3(0f, 0f, 0f), "idErlbachPart11"), + new Port(Definitions.PORT_ERLBACH_12, new Vector3(0f, 0f, 0f), "idErlbachPart12"), + new Port(Definitions.PORT_ERLBACH_13, new Vector3(0f, 0f, 0f), "idErlbachPart13"), + new Port(Definitions.PORT_ERLBACH_14, new Vector3(0f, 0f, 0f), "idErlbachPart14"), + new Port(Definitions.PORT_ERLBACH_15, new Vector3(0f, 0f, 0f), "idErlbachPart15"), + new Port(Definitions.PORT_ERLBACH_16, new Vector3(0f, 0f, 0f), "idErlbachPart16"), + new Port(Definitions.PORT_ERLBACH_17, new Vector3(0f, 0f, 0f), "idErlbachPart17"), + new Port(Definitions.PORT_ERLBACH_18, new Vector3(0f, 0f, 0f), "idErlbachPart18"), + new Port(Definitions.PORT_ERLBACH_19, new Vector3(0f, 0f, 0f), "idErlbachPart19"), + new Port(Definitions.PORT_ERLBACH_20, new Vector3(0f, 0f, 0f), "idErlbachPart20"), + new Port(Definitions.PORT_ERLBACH_21, new Vector3(0f, 0f, 0f), "idErlbachPart21"), + new Port(Definitions.PORT_ERLBACH_22, new Vector3(0f, 0f, 0f), "idErlbachPart22"), + new Port(Definitions.PORT_ERLBACH_23, new Vector3(0f, 0f, 0f), "idErlbachPart23"), + new Port(Definitions.PORT_ERLBACH_24, new Vector3(0f, 0f, 0f), "idErlbachPart24"), + new Port(Definitions.PORT_ERLBACH_25, new Vector3(0f, 0f, 0f), "idErlbachPart25"), + new Port(Definitions.PORT_ERLBACH_26, new Vector3(0f, 0f, 0f), "idErlbachPart26"), + new Port(Definitions.PORT_ERLBACH_27, new Vector3(0f, 0f, 0f), "idErlbachPart27"), + new Port(Definitions.PORT_ERLBACH_28, new Vector3(0f, 0f, 0f), "idErlbachPart28"), + new Port(Definitions.PORT_ERLBACH_29, new Vector3(0f, 0f, 0f), "idErlbachPart29"), + new Port(Definitions.PORT_ERLBACH_30, new Vector3(0f, 0f, 0f), "idErlbachPart30"), + new Port(Definitions.PORT_ERLBACH_31, new Vector3(0f, 0f, 0f), "idErlbachPart31"), + new Port(Definitions.PORT_ERLBACH_32, new Vector3(0f, 0f, 0f), "idErlbachPart32"), + new Port(Definitions.PORT_ERLBACH_33, new Vector3(0f, 0f, 0f), "idErlbachPart33"), + new Port(Definitions.PORT_ERLBACH_34, new Vector3(0f, 0f, 0f), "idErlbachPart34"), + new Port(Definitions.PORT_ERLBACH_35, new Vector3(0f, 0f, 0f), "idErlbachPart35"), + new Port(Definitions.PORT_ERLBACH_36, new Vector3(0f, 0f, 0f), "idErlbachPart36"), + new Port(Definitions.PORT_ERLBACH_37, new Vector3(0f, 0f, 0f), "idErlbachPart37"), + new Port(Definitions.PORT_ERLBACH_38, new Vector3(0f, 0f, 0f), "idErlbachPart38"), + new Port(Definitions.PORT_ERLBACH_39, new Vector3(0f, 0f, 0f), "idErlbachPart39"), + new Port(Definitions.PORT_ERLBACH_40, new Vector3(0f, 0f, 0f), "idErlbachPart40"), + new Port(Definitions.PORT_ERLBACH_41, new Vector3(0f, 0f, 0f), "idErlbachPart41"), + new Port(Definitions.PORT_ERLBACH_42, new Vector3(0f, 0f, 0f), "idErlbachPart42"), + new Port(Definitions.PORT_ERLBACH_43, new Vector3(0f, 0f, 0f), "idErlbachPart43"), + new Port(Definitions.PORT_ERLBACH_44, new Vector3(0f, 0f, 0f), "idErlbachPart44"), + new Port(Definitions.PORT_ERLBACH_45, new Vector3(0f, 0f, 0f), "idErlbachPart45"), + new Port(Definitions.PORT_ERLBACH_46, new Vector3(0f, 0f, 0f), "idErlbachPart46"), + new Port(Definitions.PORT_ERLBACH_47, new Vector3(0f, 0f, 0f), "idErlbachPart47"), + new Port(Definitions.PORT_ERLBACH_48, new Vector3(0f, 0f, 0f), "idErlbachPart48"), + new Port(Definitions.PORT_ERLBACH_49, new Vector3(0f, 0f, 0f), "idErlbachPart49"), + new Port(Definitions.PORT_ERLBACH_50, new Vector3(0f, 0f, 0f), "idErlbachPart50"), + new Port(Definitions.PORT_ERLBACH_51, new Vector3(0f, 0f, 0f), "idErlbachPart51"), + new Port(Definitions.PORT_ERLBACH_52, new Vector3(0f, 0f, 0f), "idErlbachPart52"), + new Port(Definitions.PORT_ERLBACH_53, new Vector3(0f, 0f, 0f), "idErlbachPart53"), + new Port(Definitions.PORT_ERLBACH_54, new Vector3(0f, 0f, 0f), "idErlbachPart54"), + new Port(Definitions.PORT_ERLBACH_55, new Vector3(0f, 0f, 0f), "idErlbachPart55"), + new Port(Definitions.PORT_ERLBACH_56, new Vector3(0f, 0f, 0f), "idErlbachPart56"), + new Port(Definitions.PORT_ERLBACH_57, new Vector3(0f, 0f, 0f), "idErlbachPart57"), + new Port(Definitions.PORT_ERLBACH_58, new Vector3(0f, 0f, 0f), "idErlbachPart58"), + new Port(Definitions.PORT_ERLBACH_59, new Vector3(0f, 0f, 0f), "idErlbachPart59"), + new Port(Definitions.PORT_ERLBACH_60, new Vector3(0f, 0f, 0f), "idErlbachPart60"), + new Port(Definitions.PORT_ERLBACH_61, new Vector3(0f, 0f, 0f), "idErlbachPart61"), + new Port(Definitions.PORT_ERLBACH_62, new Vector3(0f, 0f, 0f), "idErlbachPart62"), + new Port(Definitions.PORT_ERLBACH_63, new Vector3(0f, 0f, 0f), "idErlbachPart63"), + new Port(Definitions.PORT_ERLBACH_64, new Vector3(0f, 0f, 0f), "idErlbachPart64"), + new Port(Definitions.PORT_ERLBACH_65, new Vector3(0f, 0f, 0f), "idErlbachPart65"), + new Port(Definitions.PORT_ERLBACH_66, new Vector3(0f, 0f, 0f), "idErlbachPart66"), + new Port(Definitions.PORT_ERLBACH_67, new Vector3(0f, 0f, 0f), "idErlbachPart67"), + new Port(Definitions.PORT_ERLBACH_68, new Vector3(0f, 0f, 0f), "idErlbachPart68"), + new Port(Definitions.PORT_ERLBACH_69, new Vector3(0f, 0f, 0f), "idErlbachPart69"), + new Port(Definitions.PORT_ERLBACH_70, new Vector3(0f, 0f, 0f), "idErlbachPart70"), + new Port(Definitions.PORT_ERLBACH_71, new Vector3(0f, 0f, 0f), "idErlbachPart71"), + new Port(Definitions.PORT_ERLBACH_72, new Vector3(0f, 0f, 0f), "idErlbachPart72"), + new Port(Definitions.PORT_ERLBACH_73, new Vector3(0f, 0f, 0f), "idErlbachPart73"), + new Port(Definitions.PORT_ERLBACH_74, new Vector3(0f, 0f, 0f), "idErlbachPart74"), + new Port(Definitions.PORT_ERLBACH_75, new Vector3(0f, 0f, 0f), "idErlbachPart75"), + new Port(Definitions.PORT_ERLBACH_76, new Vector3(0f, 0f, 0f), "idErlbachPart76"), + new Port(Definitions.PORT_ERLBACH_77, new Vector3(0f, 0f, 0f), "idErlbachPart77"), + new Port(Definitions.PORT_ERLBACH_78, new Vector3(0f, 0f, 0f), "idErlbachPart78"), + new Port(Definitions.PORT_ERLBACH_79, new Vector3(0f, 0f, 0f), "idErlbachPart79"), + new Port(Definitions.PORT_ERLBACH_80, new Vector3(0f, 0f, 0f), "idErlbachPart80"), + new Port(Definitions.PORT_ERLBACH_81, new Vector3(0f, 0f, 0f), "idErlbachPart81"), + new Port(Definitions.PORT_ERLBACH_82, new Vector3(0f, 0f, 0f), "idErlbachPart82"), + new Port(Definitions.PORT_ERLBACH_83, new Vector3(0f, 0f, 0f), "idErlbachPart83"), + new Port(Definitions.PORT_ERLBACH_84, new Vector3(0f, 0f, 0f), "idErlbachPart84"), + new Port(Definitions.PORT_ERLBACH_85, new Vector3(0f, 0f, 0f), "idErlbachPart85"), + new Port(Definitions.PORT_ERLBACH_86, new Vector3(0f, 0f, 0f), "idErlbachPart86"), + new Port(Definitions.PORT_ERLBACH_87, new Vector3(0f, 0f, 0f), "idErlbachPart87"), + new Port(Definitions.PORT_ERLBACH_88, new Vector3(0f, 0f, 0f), "idErlbachPart88"), + new Port(Definitions.PORT_ERLBACH_89, new Vector3(0f, 0f, 0f), "idErlbachPart89"), + new Port(Definitions.PORT_ERLBACH_90, new Vector3(0f, 0f, 0f), "idErlbachPart90"), + new Port(Definitions.PORT_ERLBACH_91, new Vector3(0f, 0f, 0f), "idErlbachPart91"), + new Port(Definitions.PORT_ERLBACH_92, new Vector3(0f, 0f, 0f), "idErlbachPart92"), + new Port(Definitions.PORT_ERLBACH_93, new Vector3(0f, 0f, 0f), "idErlbachPart93") + } ) }; public static readonly List ChildModels = new List() { new ChildModel( - "driver", "Bacteria", "bacteria", + "driver", + "Bacteria", + "bacteria", Resources.Load("Plagues/Mesh/bacteria"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ), new ChildModel( - "driver", "ICBM", "nuke", - Resources.Load("Plagues/Mesh/Nuke"), + "driver", + "ICBM", + "nuke", + Resources.Load("Plagues/Mesh/Nuke"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ), new ChildModel( - Definitions.PORT_BIKE_WHEEL, "30 Zoller MehrSpeicherFelge", "bike30inchAlloy", - Resources.Load("Plagues/Mesh/Hex"), + Definitions.PORT_BIKE_WHEEL, + "30 Zoller MehrSpeicherFelge", + "bike30inchAlloy", + Resources.Load("Plagues/Mesh/Hex"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ), new ChildModel( - "bikePedalR", "Pedal Rechts", "bikePedalR", - Resources.Load("Plagues/Mesh/Hex"), + "bikePedalR", + "Pedal Rechts", + "bikePedalR", + Resources.Load("Plagues/Mesh/Hex"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ), new ChildModel( - "bikePedalL", "Pedal Links", "bikePedalL", - Resources.Load("Plagues/Mesh/Hex"), + "bikePedalL", + "Pedal Links", + "bikePedalL", + Resources.Load("Plagues/Mesh/Hex"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ) }; - + static ModelList() { - // i love importing .fbx, maybe refactor this function some day - ChildModels.AddRange(ModelLoader.LoadChildModels( + // I love importing .fbx, maybe refactor this function some day + + /* + * ██████ ██ ██ ██ ███████ + * ██ ██ ██ ██ ██ ██ + * ██████ ██ █████ █████ + * ██ ██ ██ ██ ██ ██ + * ██████ ██ ██ ██ ███████ + */ + ModelLoader.LoadChildModelsFromPackedModel( + ChildModels, new string[6] // port { Definitions.PORT_BIKE_SPROCKET, @@ -107,6 +235,509 @@ public class ModelList null, }, 1 //skip the first mesh, which is the basemodel - )); + ); + + /* + * ███████ ██████ ██ ██████ █████ ██████ ██ ██ + * ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + * █████ ██████ ██ █████ ██████ ███████ ██ ███████ + * ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + * ███████ ██ ██ ███████ ██████ ██ ██ ██████ ██ ██ + */ + + ModelLoader.LoadChildModelsFromPackedModel( + ChildModels, + new string[94] // port + { + Definitions.PORT_ERLBACH_0, + Definitions.PORT_ERLBACH_1, + Definitions.PORT_ERLBACH_2, + Definitions.PORT_ERLBACH_3, + Definitions.PORT_ERLBACH_4, + Definitions.PORT_ERLBACH_5, + Definitions.PORT_ERLBACH_6, + Definitions.PORT_ERLBACH_7, + Definitions.PORT_ERLBACH_8, + Definitions.PORT_ERLBACH_9, + Definitions.PORT_ERLBACH_10, + Definitions.PORT_ERLBACH_11, + Definitions.PORT_ERLBACH_12, + Definitions.PORT_ERLBACH_13, + Definitions.PORT_ERLBACH_14, + Definitions.PORT_ERLBACH_15, + Definitions.PORT_ERLBACH_16, + Definitions.PORT_ERLBACH_17, + Definitions.PORT_ERLBACH_18, + Definitions.PORT_ERLBACH_19, + Definitions.PORT_ERLBACH_20, + Definitions.PORT_ERLBACH_21, + Definitions.PORT_ERLBACH_22, + Definitions.PORT_ERLBACH_23, + Definitions.PORT_ERLBACH_24, + Definitions.PORT_ERLBACH_25, + Definitions.PORT_ERLBACH_26, + Definitions.PORT_ERLBACH_27, + Definitions.PORT_ERLBACH_28, + Definitions.PORT_ERLBACH_29, + Definitions.PORT_ERLBACH_30, + Definitions.PORT_ERLBACH_31, + Definitions.PORT_ERLBACH_32, + Definitions.PORT_ERLBACH_33, + Definitions.PORT_ERLBACH_34, + Definitions.PORT_ERLBACH_35, + Definitions.PORT_ERLBACH_36, + Definitions.PORT_ERLBACH_37, + Definitions.PORT_ERLBACH_38, + Definitions.PORT_ERLBACH_39, + Definitions.PORT_ERLBACH_40, + Definitions.PORT_ERLBACH_41, + Definitions.PORT_ERLBACH_42, + Definitions.PORT_ERLBACH_43, + Definitions.PORT_ERLBACH_44, + Definitions.PORT_ERLBACH_45, + Definitions.PORT_ERLBACH_46, + Definitions.PORT_ERLBACH_47, + Definitions.PORT_ERLBACH_48, + Definitions.PORT_ERLBACH_49, + Definitions.PORT_ERLBACH_50, + Definitions.PORT_ERLBACH_51, + Definitions.PORT_ERLBACH_52, + Definitions.PORT_ERLBACH_53, + Definitions.PORT_ERLBACH_54, + Definitions.PORT_ERLBACH_55, + Definitions.PORT_ERLBACH_56, + Definitions.PORT_ERLBACH_57, + Definitions.PORT_ERLBACH_58, + Definitions.PORT_ERLBACH_59, + Definitions.PORT_ERLBACH_60, + Definitions.PORT_ERLBACH_61, + Definitions.PORT_ERLBACH_62, + Definitions.PORT_ERLBACH_63, + Definitions.PORT_ERLBACH_64, + Definitions.PORT_ERLBACH_65, + Definitions.PORT_ERLBACH_66, + Definitions.PORT_ERLBACH_67, + Definitions.PORT_ERLBACH_68, + Definitions.PORT_ERLBACH_69, + Definitions.PORT_ERLBACH_70, + Definitions.PORT_ERLBACH_71, + Definitions.PORT_ERLBACH_72, + Definitions.PORT_ERLBACH_73, + Definitions.PORT_ERLBACH_74, + Definitions.PORT_ERLBACH_75, + Definitions.PORT_ERLBACH_76, + Definitions.PORT_ERLBACH_77, + Definitions.PORT_ERLBACH_78, + Definitions.PORT_ERLBACH_79, + Definitions.PORT_ERLBACH_80, + Definitions.PORT_ERLBACH_81, + Definitions.PORT_ERLBACH_82, + Definitions.PORT_ERLBACH_83, + Definitions.PORT_ERLBACH_84, + Definitions.PORT_ERLBACH_85, + Definitions.PORT_ERLBACH_86, + Definitions.PORT_ERLBACH_87, + Definitions.PORT_ERLBACH_88, + Definitions.PORT_ERLBACH_89, + Definitions.PORT_ERLBACH_90, + Definitions.PORT_ERLBACH_91, + Definitions.PORT_ERLBACH_92, + Definitions.PORT_ERLBACH_93, + }, + new string[94] //human name + { + "Erlbach Part 0", + "Erlbach Part 1", + "Erlbach Part 2", + "Erlbach Part 3", + "Erlbach Part 4", + "Erlbach Part 5", + "Erlbach Part 6", + "Erlbach Part 7", + "Erlbach Part 8", + "Erlbach Part 9", + "Erlbach Part 10", + "Erlbach Part 11", + "Erlbach Part 12", + "Erlbach Part 13", + "Erlbach Part 14", + "Erlbach Part 15", + "Erlbach Part 16", + "Erlbach Part 17", + "Erlbach Part 18", + "Erlbach Part 19", + "Erlbach Part 20", + "Erlbach Part 21", + "Erlbach Part 22", + "Erlbach Part 23", + "Erlbach Part 24", + "Erlbach Part 25", + "Erlbach Part 26", + "Erlbach Part 27", + "Erlbach Part 28", + "Erlbach Part 29", + "Erlbach Part 30", + "Erlbach Part 31", + "Erlbach Part 32", + "Erlbach Part 33", + "Erlbach Part 34", + "Erlbach Part 35", + "Erlbach Part 36", + "Erlbach Part 37", + "Erlbach Part 38", + "Erlbach Part 39", + "Erlbach Part 40", + "Erlbach Part 41", + "Erlbach Part 42", + "Erlbach Part 43", + "Erlbach Part 44", + "Erlbach Part 45", + "Erlbach Part 46", + "Erlbach Part 47", + "Erlbach Part 48", + "Erlbach Part 49", + "Erlbach Part 50", + "Erlbach Part 51", + "Erlbach Part 52", + "Erlbach Part 53", + "Erlbach Part 54", + "Erlbach Part 55", + "Erlbach Part 56", + "Erlbach Part 57", + "Erlbach Part 58", + "Erlbach Part 59", + "Erlbach Part 60", + "Erlbach Part 61", + "Erlbach Part 62", + "Erlbach Part 63", + "Erlbach Part 64", + "Erlbach Part 65", + "Erlbach Part 66", + "Erlbach Part 67", + "Erlbach Part 68", + "Erlbach Part 69", + "Erlbach Part 70", + "Erlbach Part 71", + "Erlbach Part 72", + "Erlbach Part 73", + "Erlbach Part 74", + "Erlbach Part 75", + "Erlbach Part 76", + "Erlbach Part 77", + "Erlbach Part 78", + "Erlbach Part 79", + "Erlbach Part 80", + "Erlbach Part 81", + "Erlbach Part 82", + "Erlbach Part 83", + "Erlbach Part 84", + "Erlbach Part 85", + "Erlbach Part 86", + "Erlbach Part 87", + "Erlbach Part 88", + "Erlbach Part 89", + "Erlbach Part 90", + "Erlbach Part 91", + "Erlbach Part 92", + "Erlbach Part 93", + + }, + new string[94] //id + { + "idErlbachPart0", + "idErlbachPart1", + "idErlbachPart2", + "idErlbachPart3", + "idErlbachPart4", + "idErlbachPart5", + "idErlbachPart6", + "idErlbachPart7", + "idErlbachPart8", + "idErlbachPart9", + "idErlbachPart10", + "idErlbachPart11", + "idErlbachPart12", + "idErlbachPart13", + "idErlbachPart14", + "idErlbachPart15", + "idErlbachPart16", + "idErlbachPart17", + "idErlbachPart18", + "idErlbachPart19", + "idErlbachPart20", + "idErlbachPart21", + "idErlbachPart22", + "idErlbachPart23", + "idErlbachPart24", + "idErlbachPart25", + "idErlbachPart26", + "idErlbachPart27", + "idErlbachPart28", + "idErlbachPart29", + "idErlbachPart30", + "idErlbachPart31", + "idErlbachPart32", + "idErlbachPart33", + "idErlbachPart34", + "idErlbachPart35", + "idErlbachPart36", + "idErlbachPart37", + "idErlbachPart38", + "idErlbachPart39", + "idErlbachPart40", + "idErlbachPart41", + "idErlbachPart42", + "idErlbachPart43", + "idErlbachPart44", + "idErlbachPart45", + "idErlbachPart46", + "idErlbachPart47", + "idErlbachPart48", + "idErlbachPart49", + "idErlbachPart50", + "idErlbachPart51", + "idErlbachPart52", + "idErlbachPart53", + "idErlbachPart54", + "idErlbachPart55", + "idErlbachPart56", + "idErlbachPart57", + "idErlbachPart58", + "idErlbachPart59", + "idErlbachPart60", + "idErlbachPart61", + "idErlbachPart62", + "idErlbachPart63", + "idErlbachPart64", + "idErlbachPart65", + "idErlbachPart66", + "idErlbachPart67", + "idErlbachPart68", + "idErlbachPart69", + "idErlbachPart70", + "idErlbachPart71", + "idErlbachPart72", + "idErlbachPart73", + "idErlbachPart74", + "idErlbachPart75", + "idErlbachPart76", + "idErlbachPart77", + "idErlbachPart78", + "idErlbachPart79", + "idErlbachPart80", + "idErlbachPart81", + "idErlbachPart82", + "idErlbachPart83", + "idErlbachPart84", + "idErlbachPart85", + "idErlbachPart86", + "idErlbachPart87", + "idErlbachPart88", + "idErlbachPart89", + "idErlbachPart90", + "idErlbachPart91", + "idErlbachPart92", + "idErlbachPart93", + + }, + Resources.LoadAll($"Model/ERLbach/02.01.98.0000-ERLbach_vereinfacht"), + new Material[94] //mat + { + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + new Material(Shader.Find("VR/SpatialMapping/Occlusion")), + + }, + new List[94] // ports + { + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + + }, + 0 //skip the first mesh, which is the basemodel + ); } -} \ No newline at end of file +} diff --git a/vr-configurator/Assets/Scripts/Models/ModelManager.cs b/vr-configurator/Assets/Scripts/Models/ModelManager.cs index 5386b37..f972383 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelManager.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelManager.cs @@ -13,8 +13,6 @@ public class ModelManager : MonoBehaviour public GameObject baseModel; //current baseModel public AutoModelSelector autoModelSelector; - - HashSet.Enumerator enumerator; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() @@ -23,6 +21,8 @@ public class ModelManager : MonoBehaviour portDict = new Dictionary>(); childModelDict = new Dictionary(); baseModelList = new List(); + autoModelSelector = FindFirstObjectByType(); + foreach (var baseModel in ModelList.BaseModels) { registerBaseModel(baseModel); @@ -37,20 +37,12 @@ public class ModelManager : MonoBehaviour //TODO: send into model selection Debug.LogError("baseModel is null, fix the configuration"); } - //baseModel.GetComponent().UpdateModel(baseModelList[0]); //TODO: change later when there is a model selection - - - enumerator = getChildModelsForPort("bikeB").GetEnumerator(); // TODO: GUI später } // Update is called once per frame void Update() { - if (Input.GetKeyDown(KeyCode.Space)) //TODO: remove after testing - { - Debug.Log($"Space key was pressed a{enumerator.Current}"); - - } + } void registerChildModel(ChildModel model) diff --git a/vr-configurator/Assets/Scripts/UI/AutoModelSelector.cs b/vr-configurator/Assets/Scripts/UI/AutoModelSelector.cs index 06e8d66..d5f0baa 100644 --- a/vr-configurator/Assets/Scripts/UI/AutoModelSelector.cs +++ b/vr-configurator/Assets/Scripts/UI/AutoModelSelector.cs @@ -96,7 +96,7 @@ public class AutoModelSelector : MonoBehaviour void CreateButtons() { float startY = 0; // Anfangsposition auf Y-Achse - float buttonHeight = 60f; // Abstand zwischen den Buttons + float buttonHeight = 0.5f; // Abstand zwischen den Buttons foreach (var baseModel in ModelList.BaseModels) { diff --git a/vr-configurator/Assets/Scripts/Util/ModelLoader.cs b/vr-configurator/Assets/Scripts/Util/ModelLoader.cs index 7130bf4..0e79523 100644 --- a/vr-configurator/Assets/Scripts/Util/ModelLoader.cs +++ b/vr-configurator/Assets/Scripts/Util/ModelLoader.cs @@ -6,10 +6,9 @@ using UnityEngine; /// public class ModelLoader { - public static List LoadChildModels(string[] port, string[] nameHuman, string[] nameId, Mesh[] meshes, Material[] mats, List[] ports, int fromMesh = 0, int toMesh = -1) + public static void LoadChildModelsFromPackedModel(List appendList, string[] port, string[] nameHuman, string[] nameId, Mesh[] meshes, Material[] mats, List[] ports, int fromMesh = 0, int toMesh = -1) { Debug.Log("LoadChildModels " + fromMesh + " to " + toMesh + " from " + mats.Length + " meshes"); - List models = new List(); if (toMesh == -1) { toMesh = meshes.Length; @@ -17,8 +16,7 @@ public class ModelLoader for (int i = 0; i < toMesh - fromMesh; i++) { Debug.Log($"{i}. {nameId[i]}:{nameHuman[i]} with {port.Length} ports"); - models.Add(new ChildModel(port[i], nameHuman[i], nameId[i], meshes[fromMesh + i], mats[i], ports[i])); + appendList.Add(new ChildModel(port[i], nameHuman[i], nameId[i], meshes[fromMesh + i], mats[i], ports[i])); } - return models; } }