diff --git a/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs b/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs
index 441f3195..77cef6cc 100644
--- a/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs
+++ b/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs
@@ -1,5 +1,4 @@
using TriLibCore.General;
-using TriLibCore.Mappers;
using UnityEditor;
using UnityEngine;
@@ -49,76 +48,137 @@ namespace TriLibCore.Editor
{
case 0:
GUILayout.Label(new GUIContent("Scene", "Scene import settings"), "BoldLabel");
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ScaleFactor"), new GUIContent("Scale Factor", "Model scale multiplier."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("UseFileScale"), new GUIContent("Use File Scale", "Turn on this flag to use the file original scale."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportVisibility"), new GUIContent("Import Visibility", "Turn on this field to apply the visibility property to Mesh Renderers/Skinned Mesh Renderers."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportCameras"), new GUIContent("Import Cameras", "Turn on this field to enable Cameras importing."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportLights"), new GUIContent("Import Lights", "Turn on this field to enable Lights importing."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("Static"), new GUIContent("Import as Static", "Turn on this field to import the Model as a static Game Object."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("SortHierarchyByName"), new GUIContent("Sort Hierarchy by Name", "Turn on this field to sort the Model hierarchy by name."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AddAssetUnloader"), new GUIContent("Add Asset Unloader", "Turn on this field to add the Asset Unloader Component to the loaded Game Object."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ShowLoadingWarnings"), new GUIContent("Show Loading Warnings", "Turn on this field to display Model loading warnings on the Console."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("CloseStreamAutomatically"), new GUIContent("Close Stream Automatically", "Turn on this field to close the Model loading Stream automatically."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("DestroyOnError"), new GUIContent("Destroy on Error", "Turn on this field to destroy the loaded Game Object automatically when there is any loading error."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("PivotPosition"), new GUIContent("Pivot Position", "Use this field to realign the Model pivot based on the given value."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("DisableObjectsRenaming"), new GUIContent("Disable Objects Renaming", "Turn on this field to disable objects renaming."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("MergeSingleChild"), new GUIContent("Merge Single Child", "Turn on this field to merge single child models into a single GameObject."));
-
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ScaleFactor"),
+ new GUIContent("Scale Factor", "Model scale multiplier."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UseFileScale"),
+ new GUIContent("Use File Scale", "Turn on this flag to use the file's original scale."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportVisibility"),
+ new GUIContent("Import Visibility", "Turn on this field to apply the visibility property to Mesh Renderers/Skinned Mesh Renderers."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportCameras"),
+ new GUIContent("Import Cameras", "Turn on this field to enable camera importing."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportLights"),
+ new GUIContent("Import Lights", "Turn on this field to enable light importing."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("Static"),
+ new GUIContent("Import as Static", "Turn on this field to import the Model as a static Game Object."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("SortHierarchyByName"),
+ new GUIContent("Sort Hierarchy by Name", "Turn on this field to sort the Model hierarchy by name."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AddAssetUnloader"),
+ new GUIContent("Add Asset Unloader", "Turn on this field to add the Asset Unloader Component to the loaded Game Object."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("CloseStreamAutomatically"),
+ new GUIContent("Close Stream Automatically", "Turn on this field to close the Model loading Stream automatically."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("DestroyOnError"),
+ new GUIContent("Destroy on Error", "Turn on this field to destroy the loaded Game Object automatically when there is any loading error."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("PivotPosition"),
+ new GUIContent("Pivot Position", "Use this field to realign the Model pivot based on the given value."));
+ var disableObjectsRenamingProperty = serializedObject.FindProperty("DisableObjectsRenaming");
+ EditorGUILayout.PropertyField(disableObjectsRenamingProperty,
+ new GUIContent("Disable Object Renaming", "Turn on this field to disable object renaming."));
+ if (!disableObjectsRenamingProperty.boolValue)
+ {
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MaxObjectsToRename"),
+ new GUIContent("Max Objects to Rename",
+ "Use this field to set the maximum number of objects TriLib can rename. Renaming is an expensive process, so it's advised to keep this value low."));
+ }
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MergeSingleChild"),
+ new GUIContent("Merge Single Child", "Turn on this field to merge single-child models into a single GameObject."));
EditorGUILayout.Space();
GUILayout.Label(new GUIContent("Meshes", "Global settings for generated meshes"), "BoldLabel");
var importMeshesProperty = serializedObject.FindProperty("ImportMeshes");
- EditorGUILayout.PropertyField(importMeshesProperty, new GUIContent("Import Meshes", "Turn on this field to import Model Meshes."));
+ EditorGUILayout.PropertyField(importMeshesProperty,
+ new GUIContent("Import Meshes", "Turn on this field to import Model Meshes."));
if (importMeshesProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("MarkMeshesAsDynamic"), new GUIContent("Mark Meshes as Dynamic", "Turn on this field to mark created meshes as dynamic."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MarkMeshesAsDynamic"),
+ new GUIContent("Mark Meshes as Dynamic", "Turn on this field to mark created meshes as dynamic."));
var generateCollidersProperty = serializedObject.FindProperty("GenerateColliders");
- EditorGUILayout.PropertyField(generateCollidersProperty, new GUIContent("Generate Colliders", "Turn on this field to generate Colliders for imported Meshes."));
+ EditorGUILayout.PropertyField(generateCollidersProperty,
+ new GUIContent("Generate Colliders", "Turn on this field to generate Colliders for imported Meshes."));
if (generateCollidersProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ConvexColliders"), new GUIContent("Convex Colliders", "Turn on this field to generate convex Colliders when the GenerateColliders field is enabled."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ConvexColliders"),
+ new GUIContent("Convex Colliders", "Turn on this field to generate convex Colliders when GenerateColliders is enabled."));
}
- EditorGUILayout.PropertyField(serializedObject.FindProperty("IndexFormat"), new GUIContent("Index Format", "Mesh index format (16 or 32 bits)."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("KeepQuads"), new GUIContent("Keep Quads", "Turn on this field to mantain Mesh quads (Useful for DX11 tesselation)."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("MergeVertices"), new GUIContent("Merge Vertices", "Turn on this field to merge model duplicated vertices where possible."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("IndexFormat"),
+ new GUIContent("Index Format", "Mesh index format (16 or 32 bits)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("KeepQuads"),
+ new GUIContent("Keep Quads", "Turn on this field to maintain Mesh quads (useful for DX11 tessellation)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MergeVertices"),
+ new GUIContent("Merge Vertices", "Turn on this field to merge model duplicated vertices where possible."));
var importNormalsProperty = serializedObject.FindProperty("ImportNormals");
- EditorGUILayout.PropertyField(importNormalsProperty, new GUIContent("Import Normals", "Turn on this field to import Mesh normals. If not enabled, normals will be calculated instead."));
+ EditorGUILayout.PropertyField(importNormalsProperty,
+ new GUIContent("Import Normals", "Turn on this field to import Mesh normals. If disabled, normals will be calculated instead."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("BakeAxisConversion"),
+ new GUIContent("Bake Axis Conversion", "Turn on this field to bake the model transform into models and animations (Experimental)."));
+
var generateNormalsProperty = serializedObject.FindProperty("GenerateNormals");
if (generateNormalsProperty.boolValue)
{
- EditorGUILayout.PropertyField(generateNormalsProperty, new GUIContent("Generate Normals", "Turn off this field to disable Mesh normals generation."));
+ EditorGUILayout.PropertyField(generateNormalsProperty,
+ new GUIContent("Generate Normals", "Turn off this field to disable Mesh normals generation."));
var useUnityNativeNormalCalculatorProperty = serializedObject.FindProperty("UseUnityNativeNormalCalculator");
- EditorGUILayout.PropertyField(useUnityNativeNormalCalculatorProperty, new GUIContent("Use Unity Native Normal Calculator", "Turn on this field to use the builtin Unity normal calculator."));
+ EditorGUILayout.PropertyField(useUnityNativeNormalCalculatorProperty,
+ new GUIContent("Use Unity Native Normal Calculator", "Turn on this field to use the built-in Unity normal calculator."));
if (!useUnityNativeNormalCalculatorProperty.boolValue)
{
- EditorGUILayout.Slider(serializedObject.FindProperty("SmoothingAngle"), 0f, 180f, new GUIContent("Smoothing Angle", "Normals calculation smoothing angle."));
+ EditorGUILayout.Slider(serializedObject.FindProperty("SmoothingAngle"), 0f, 180f,
+ new GUIContent("Smoothing Angle", "Normals calculation smoothing angle."));
}
}
var importBlendShapesProperty = serializedObject.FindProperty("ImportBlendShapes");
- EditorGUILayout.PropertyField(importBlendShapesProperty, new GUIContent("Import Blend Shapes", "Turn on this field to import Mesh Blend Shapes."));
+ EditorGUILayout.PropertyField(importBlendShapesProperty,
+ new GUIContent("Import Blend Shapes", "Turn on this field to import Mesh Blend Shapes."));
if (importBlendShapesProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportBlendShapeNormals"), new GUIContent("Import Blend Shape Normals", "Turn on this field to import Mesh Blend Shape normals."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("CalculateBlendShapeNormals"), new GUIContent("Calculate Blend Shape Normals", "Turn on this field to calculate Mesh Blend Shape normals when none can be imported."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportBlendShapeNormals"),
+ new GUIContent("Import Blend Shape Normals", "Turn on this field to import Mesh Blend Shape normals."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("CalculateBlendShapeNormals"),
+ new GUIContent("Calculate Blend Shape Normals",
+ "Turn on this field to calculate Mesh Blend Shape normals when none are available in the file."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("BlendShapeMapper"),
+ new GUIContent("Blend Shape Mapper",
+ "Use this field to set a BlendShapeMapper to use with the loaded model. BlendShapeMappers can replace the Unity built-in blend shape playback system."));
}
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportColors"), new GUIContent("Import Colors", "Turn on this field to import Mesh Colors."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ImportColors"),
+ new GUIContent("Import Colors", "Turn on this field to import Mesh colors."));
var importTangentsProperty = serializedObject.FindProperty("ImportTangents");
- EditorGUILayout.PropertyField(importTangentsProperty, new GUIContent("Import Tangents", "Turn on this field to import Mesh tangents. If not enabled, tangents will be calculated instead."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("GenerateTangents"), new GUIContent("Generate Tangents", "Turn off this field to disable Mesh tangents generation."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("SwapUVs"), new GUIContent("Swap UVs", "Turn on this field to swap Mesh UVs. (uv1 into uv2)"));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("LODScreenRelativeTransitionHeightBase"), new GUIContent("LOD Screen Relative Transition Height Base", "Defines the initial screen relative transition height when creating LOD Groups."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ReadEnabled"), new GUIContent("Read Enabled", "Turn on this field to make mesh CPU data readable."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("DisableTesselation"), new GUIContent("Disable Tesselation", "Turn on this field to disable polygon tesselation."));
+ EditorGUILayout.PropertyField(importTangentsProperty,
+ new GUIContent("Import Tangents",
+ "Turn on this field to import Mesh tangents. If disabled, tangents will be calculated instead."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("GenerateTangents"),
+ new GUIContent("Generate Tangents", "Turn off this field to disable Mesh tangents generation."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("SwapUVs"),
+ new GUIContent("Swap UVs", "Turn on this field to swap Mesh UVs (uv1 into uv2)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("LODScreenRelativeTransitionHeightBase"),
+ new GUIContent("LOD Screen Relative Transition Height Base",
+ "Defines the initial screen relative transition height when creating LOD Groups."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ReadEnabled"),
+ new GUIContent("Read Enabled", "Turn on this field to make mesh CPU data readable."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("DisableTesselation"),
+ new GUIContent("Disable Tessellation", "Turn on this field to disable polygon tessellation."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UseSharedMeshes"),
+ new GUIContent("Use Shared Meshes",
+ "Turn off this field to use the mesh filter's \"mesh\" property instead of the \"sharedMesh\" property."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MeshWorldTransform"),
+ new GUIContent("Mesh World Transform",
+ "Use this field to define a transformation applied in world space to all mesh vertices."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UpdateSkinnedMeshRendererWhenOffscreen"),
+ new GUIContent("Update Skinned Mesh Renderer when Offscreen",
+ "Turn on this field to update SkinnedMeshRenderers when they're offscreen."));
}
var loadPointCloudsProperty = serializedObject.FindProperty("LoadPointClouds");
- EditorGUILayout.PropertyField(loadPointCloudsProperty, new GUIContent("Load Point Clouds", "TTurn on this field to load the model as a Point Cloud (PLY and OBJ only)"));
+ EditorGUILayout.PropertyField(loadPointCloudsProperty,
+ new GUIContent("Load Point Clouds",
+ "Turn on this field to load the model as a point cloud (PLY and OBJ only)."));
if (!loadPointCloudsProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("OptimizeMeshes"), new GUIContent("Optimize Meshes", "Turn on this field to optimize imported Meshes for GPU access."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("OptimizeMeshes"),
+ new GUIContent("Optimize Meshes", "Turn on this field to optimize imported Meshes for GPU access."));
}
break;
case 1:
var animationTypeProperty = serializedObject.FindProperty("AnimationType");
- EditorGUILayout.PropertyField(animationTypeProperty, new GUIContent("Animation Type", "Model rigging type."));
+ EditorGUILayout.PropertyField(animationTypeProperty,
+ new GUIContent("Animation Type", "Model rigging type."));
var animationType = (AnimationType)animationTypeProperty.intValue;
switch (animationType)
{
@@ -126,98 +186,181 @@ namespace TriLibCore.Editor
case AnimationType.Humanoid:
var avatarDefinitionTypeProperty = serializedObject.FindProperty("AvatarDefinition");
- EditorGUILayout.PropertyField(avatarDefinitionTypeProperty, new GUIContent("Avatar Definition", "Type of avatar creation for the Model."));
+ EditorGUILayout.PropertyField(avatarDefinitionTypeProperty,
+ new GUIContent("Avatar Definition", "Type of avatar creation for the Model."));
var avatarDefinitionType = (AvatarDefinitionType)avatarDefinitionTypeProperty.intValue;
switch (avatarDefinitionType)
{
case AvatarDefinitionType.CreateFromThisModel:
if (animationType == AnimationType.Humanoid)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("HumanDescription"), new GUIContent("Human Description", "Human Description used to create the humanoid Avatar, when the humanoid rigging type is selected."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("SampleBindPose"), new GUIContent("Sample Bind Pose", "Turn on this field to enforce the loaded Model to the bind-pose when rigging."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceTPose"), new GUIContent("Enforce T-Pose", "Turn on this field to enforce the loaded Model to the t-pose when rigging."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("HumanoidAvatarMapper"), new GUIContent("Humanoid Avatar Mapper", "Mapper used to map the humanoid Avatar, when the humanoid rigging type is selected."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("HumanDescription"),
+ new GUIContent("Human Description",
+ "Human Description used to create the humanoid Avatar, when the humanoid rigging type is selected."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("SampleBindPose"),
+ new GUIContent("Sample Bind Pose",
+ "Turn on this field to enforce the loaded Model to the bind-pose when rigging."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceTPose"),
+ new GUIContent("Enforce T-Pose",
+ "Turn on this field to enforce the loaded Model to a T-pose when rigging."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("HumanoidAvatarMapper"),
+ new GUIContent("Humanoid Avatar Mapper",
+ "Mapper used to map the humanoid Avatar when the humanoid rigging type is selected."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyAvatarHipsCompensation"),
+ new GUIContent("Apply Avatar Hips Compensation",
+ "Turn off this field if your avatars seem to hover over the ground. This disables avatar hips height compensation."));
}
break;
case AvatarDefinitionType.CopyFromOtherAvatar:
- EditorGUILayout.PropertyField(serializedObject.FindProperty("Avatar"), new GUIContent("Source", "Source Avatar to use when copying from other Avatar."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("Avatar"),
+ new GUIContent("Source", "Source Avatar to use when copying from another Avatar."));
break;
}
break;
case AnimationType.Legacy:
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AutomaticallyPlayLegacyAnimations"), new GUIContent("Play Legacy Animations Automatically", "Turn on this field to play Legacy Animation Clips automatically (The first available Clip will be played)."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceAnimatorWithLegacyAnimations"), new GUIContent("Enforce Animator with Legacy Animations", "Turn on this field to add an Animator when the AnimationType is set to Legacy."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AutomaticallyPlayLegacyAnimations"),
+ new GUIContent("Play Legacy Animations Automatically",
+ "Turn on this field to play Legacy Animation Clips automatically (The first available Clip will be played)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceAnimatorWithLegacyAnimations"),
+ new GUIContent("Enforce Animator with Legacy Animations",
+ "Turn on this field to add an Animator when the AnimationType is set to Legacy."));
break;
}
if (animationType != AnimationType.None)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("RootBoneMapper"), new GUIContent("Root Bone Mapper", "Mapper used to find the Model root bone."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("RootBoneMapper"),
+ new GUIContent("Root Bone Mapper", "Mapper used to find the Model root bone."));
}
break;
case 2:
animationTypeProperty = serializedObject.FindProperty("AnimationType");
animationType = (AnimationType)animationTypeProperty.intValue;
- //todo: add constraints
if (animationType != AnimationType.None)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("EnsureQuaternionContinuity"), new GUIContent("Ensure Quaternion Continuity", "Turn on this field to realign quaternion keys to ensure shortest interpolation paths."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ResampleFrequency"), new GUIContent("Resample Frequency", "Defines the FBX Rotation Animation Curve resampling frequency. (1 = every frame, 2 = every 2 frames, 3 = every 3 frames and so on)"));
- //todo: add keyframe reduction
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AnimationWrapMode"), new GUIContent("Wrap Mode", "Default wrap-mode to apply to Animations."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AnimationClipMappers"), new GUIContent("Animation Clip Mappers", "Mappers used to process Animation Clips."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AddAllBonesToSkinnedMeshRenderers"), new GUIContent("Add all Bones to Skinned Mesh Renderers", "Turn on this field to add all available bones to every created SkinnedMeshRenderer."));
-
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("EnsureQuaternionContinuity"),
+ new GUIContent("Ensure Quaternion Continuity",
+ "Turn on this field to realign quaternion keys to ensure the shortest interpolation paths."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ResampleFrequency"),
+ new GUIContent("Resample Frequency",
+ "Defines the FBX Rotation Animation Curve resampling frequency. (1 = every frame, 2 = every 2 frames, etc.)"));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AnimationWrapMode"),
+ new GUIContent("Wrap Mode", "Default wrap-mode to apply to Animations."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AnimationClipMappers"),
+ new GUIContent("Animation Clip Mappers", "Mappers used to process Animation Clips."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AddAllBonesToSkinnedMeshRenderers"),
+ new GUIContent("Add All Bones to Skinned Mesh Renderers",
+ "Turn on this field to add all available bones to every created SkinnedMeshRenderer."));
}
break;
case 3:
var importMaterialsProperty = serializedObject.FindProperty("ImportMaterials");
- EditorGUILayout.PropertyField(importMaterialsProperty, new GUIContent("Import Materials", "Turn on this field to import Materials."));
+ EditorGUILayout.PropertyField(importMaterialsProperty,
+ new GUIContent("Import Materials", "Turn on this field to import Materials."));
if (importMaterialsProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("UseMaterialKeywords"), new GUIContent("Use Material Keywords", "Turn on this field to enable/disable created Material Keywords based on the source native Materials."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("AlphaMaterialMode"), new GUIContent("Alpha Material Mode", "Chooses the way TriLib creates alpha materials."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("MaterialMappers"), new GUIContent("Material Mappers", "Mappers used to create suitable Unity Materials from original Materials."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("DoubleSidedMaterials"), new GUIContent("Double Sided Materials", "Turn on this field to create double-sided Materials (TriLib does that by duplicating the original Meshes)."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("SetUnusedTexturePropertiesToNull"), new GUIContent("Set unused Texture Properties to Null", "Turn on this field to set the unused Material Texture Properties to null."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("CreateMaterialsForAllModels"), new GUIContent("Create Materials for all Models", "Turn on this field to make TriLib create materials for every loaded model, even models without an original material."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UseMaterialKeywords"),
+ new GUIContent("Use Material Keywords",
+ "Turn on this field to enable/disable created Material keywords based on the source native materials."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("AlphaMaterialMode"),
+ new GUIContent("Alpha Material Mode", "Chooses the way TriLib creates alpha materials."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MaterialMappers"),
+ new GUIContent("Material Mappers", "Mappers used to create suitable Unity Materials from original Materials."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("DoubleSidedMaterials"),
+ new GUIContent("Double-Sided Materials",
+ "Turn on this field to create double-sided Materials (TriLib does that by duplicating the original Meshes)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("SetUnusedTexturePropertiesToNull"),
+ new GUIContent("Set Unused Texture Properties to Null",
+ "Turn on this field to set unused Material Texture Properties to null."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UseSharedMaterials"),
+ new GUIContent("Use Shared Materials",
+ "Turn on this field to use the renderers' \"sharedMaterials\" property instead of \"materials\"."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("DoPBRConversion"),
+ new GUIContent("Do PBR Conversion",
+ "Turn off this field to disable Phong to PBR conversion."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyGammaCurveToMaterialColors"),
+ new GUIContent("Apply Gamma Curve to Material Colors",
+ "When this field is on, TriLib will also apply the gamma curve to the material colors."));
+
}
break;
case 4:
var importTexturesProperty = serializedObject.FindProperty("ImportTextures");
- EditorGUILayout.PropertyField(importTexturesProperty, new GUIContent("Import Textures", "Turn on this field to import Textures."));
+ EditorGUILayout.PropertyField(importTexturesProperty,
+ new GUIContent("Import Textures", "Turn on this field to import Textures."));
if (importTexturesProperty.boolValue)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("TextureMappers"), new GUIContent("Texture Mappers", "Mappers used to find native Texture Streams from custom sources."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("TextureCompressionQuality"), new GUIContent("Texture Compression Quality", "Texture compression to apply on loaded Textures."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("GenerateMipmaps"), new GUIContent("Generate Mipmaps", "Turn on this field to enable Textures mip-map generation."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("FixNormalMaps"), new GUIContent("Fix Normal Maps", "Turn on this field to change normal map channels order to ABBR instead of RGBA."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceAlphaChannelTextures"), new GUIContent("Enforce Alpha Channel Textures", "Turn on this field to enforce alpha channel on textures creation."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("TextureMappers"),
+ new GUIContent("Texture Mappers", "Mappers used to find native Texture Streams from custom sources."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("TextureCompressionQuality"),
+ new GUIContent("Texture Compression Quality",
+ "Texture compression to apply on loaded Textures."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("GenerateMipmaps"),
+ new GUIContent("Generate Mipmaps", "Turn on this field to enable Texture mipmap generation."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("FixNormalMaps"),
+ new GUIContent("Fix Normal Maps",
+ "Turn on this field to change the normal map channel order to ABBR instead of RGBA."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("EnforceAlphaChannelTextures"),
+ new GUIContent("Enforce Alpha Channel Textures",
+ "Turn on this field to enforce an alpha channel on texture creation."));
var alphaMaterialModeProperty = serializedObject.FindProperty("AlphaMaterialMode");
if (alphaMaterialModeProperty.enumValueIndex > 0)
{
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ScanForAlphaPixels"), new GUIContent("Scan for Alpha Pixels", "Turn on this field to scan Textures for alpha-blended pixels in order to generate transparent Materials."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ScanForAlphaPixels"),
+ new GUIContent("Scan for Alpha Pixels",
+ "Turn on this field to scan textures for alpha-blended pixels to generate transparent Materials."));
}
- EditorGUILayout.PropertyField(serializedObject.FindProperty("LoadTexturesAsSRGB"), new GUIContent("Load Textures as sRGB", "Turn off this field to load textures as linear, instead of sRGB."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyGammaCurveToMaterialColors"), new GUIContent("Apply Gamma Curve to Material Colors", "When this field is on, TriLib will also apply the gamma curve to the material colors."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyTexturesOffsetAndScaling"), new GUIContent("Apply Textures Offset and Scaling", "Turn on this field to apply Textures offset and scaling."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("DiscardUnusedTextures"), new GUIContent("Discard Unused Textures", "Turn off this field to keep unused Textures."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ForcePowerOfTwoTextures"), new GUIContent("Force Power of Two Textures", "Turn on this field to enforce power of two resolution when loading textures (needed for texture compression and in some platforms)."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("UseUnityNativeTextureLoader"), new GUIContent("Use Unity Native Texture Loader", "Turn on this field to use Unity builtin Texture loader instead of stb_image."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("MaxTexturesResolution"), new GUIContent("Max Textures Resolution", "Use this field to limit textures resolution. Textures with resolutions higher than this value (when the value is not zero) will not be loaded."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ConvertMaterialTexturesUsingHalfRes"), new GUIContent("Convert Material Textures using Half Res", "Turn off this field to generate the \"Metallic/Smoothness/Specular/Roughness\" textures with the full original resolution."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("LoadTexturesAsSRGB"),
+ new GUIContent("Load Textures as sRGB",
+ "Turn off this field to load textures as linear instead of sRGB."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyTexturesOffsetAndScaling"),
+ new GUIContent("Apply Textures Offset and Scaling",
+ "Turn on this field to apply texture offset and scaling."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("DiscardUnusedTextures"),
+ new GUIContent("Discard Unused Textures",
+ "Turn off this field to keep unused Textures."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ForcePowerOfTwoTextures"),
+ new GUIContent("Force Power of Two Textures",
+ "Turn on this field to enforce power-of-two resolution when loading textures (needed for compression on some platforms)."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UseUnityNativeTextureLoader"),
+ new GUIContent("Use Unity Native Texture Loader",
+ "Turn on this field to use the Unity built-in Texture loader instead of stb_image."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("MaxTexturesResolution"),
+ new GUIContent("Max Textures Resolution",
+ "Use this field to limit texture resolution. Textures with resolutions higher than this value (when not zero) will not be loaded."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ConvertMaterialTexturesUsingHalfRes"),
+ new GUIContent("Convert Material Textures Using Half Res",
+ "Turn off this field to generate the \"Metallic/Smoothness/Specular/Roughness\" textures at their full original resolution."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("LoadDisplacementTextures"),
+ new GUIContent("Load Displacement Textures",
+ "Turn on this field to load displacement textures."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("LoadTexturesViaWebRequest"),
+ new GUIContent("Load Textures via Web Request",
+ "Turn on this field to load textures using the UnityWebRequest class (experimental). " +
+ "UnityWebRequest is the fastest way to load PNG/JPG textures but uses more memory."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ConvertTexturesAs2D"),
+ new GUIContent("Convert Textures as 2D",
+ "Turn off this field to keep processed/composed textures as RenderTextures."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ApplyTransparencyTexture"),
+ new GUIContent("Apply Transparency Texture",
+ "Turn off this field to disable composing the Albedo texture using the original material's transparency texture."));
-
}
break;
case 5:
- EditorGUILayout.PropertyField(serializedObject.FindProperty("ExternalDataMapper"), new GUIContent("External Data Mapper", "Mapper used to find data Streams on external sources."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("UserPropertiesMapper"), new GUIContent("User Properties Mapper", " Mapper used to process User Properties from Models."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("LipSyncMappers"), new GUIContent("Lip Sync Mappers", "Mappers used to configure Lip-Sync Blend Shapes."));
- EditorGUILayout.PropertyField(serializedObject.FindProperty("NameMapper"), new GUIContent("Name Mapper", "This class can be inherited and used to generate Game Object naming based on file-format model specific data."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("ExternalDataMapper"),
+ new GUIContent("External Data Mapper", "Mapper used to find data Streams on external sources."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("UserPropertiesMapper"),
+ new GUIContent("User Properties Mapper", "Mapper used to process User Properties from Models."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("LipSyncMappers"),
+ new GUIContent("Lip Sync Mappers", "Mappers used to configure Lip-Sync Blend Shapes."));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("NameMapper"),
+ new GUIContent("Name Mapper",
+ "This class can be inherited and used to generate GameObject naming based on file-format model-specific data."));
break;
}
EditorGUILayout.EndVertical();
serializedObject.ApplyModifiedProperties();
}
+
}
}
\ No newline at end of file
diff --git a/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs.meta b/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs.meta
index 0cb31018..8c920d90 100644
--- a/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: e964c5e158b24dc6ad03b0a14c2ef811
-timeCreated: 1573053965
\ No newline at end of file
+timeCreated: 1573053965
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/AssetLoaderOptionsEditor.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs b/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs
index c1d9cff7..6515f05a 100644
--- a/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs
+++ b/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs
@@ -1,15 +1,13 @@
-using System;
-using UnityEditor;
+using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEngine;
-using Debug = UnityEngine.Debug;
namespace TriLibCore.Editor
{
public class BuildProcessor : IPreprocessBuildWithReport
{
- public int callbackOrder => -1000;
+ public int callbackOrder => 0;
public void OnPreprocessBuild(BuildReport report)
{
@@ -18,44 +16,17 @@ namespace TriLibCore.Editor
#else
PlayerSettings.WebGL.threadsSupport = false;
#endif
+ if (!Application.isBatchMode)
+ {
#if UNITY_WSA
- if (!Application.isBatchMode && !PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.RemovableStorage) && EditorUtility.DisplayDialog(
- "TriLib", "TriLib cache system needs the [RemovableStorage] WSA Capacity enabled. Do you want to enable it?", "Yes", "No"))
+ if (!PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.RemovableStorage) && EditorUtility.DisplayDialog(
+ "TriLib", "TriLib cache system needs the [RemovableStorage] WSA Capacity enabled. Do you want to enable it now?", "Yes", "No"))
{
PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.RemovableStorage, true);
}
#endif
- var waitingMappers = false;
- string materialMapper = null;
- var arguments = Environment.GetCommandLineArgs();
- for (var i = 0; i < arguments.Length; i++)
- {
- var argument = arguments[i];
- if (waitingMappers)
- {
- materialMapper = argument;
- continue;
- }
-
- switch (argument)
- {
- case "-trilib_mappers":
- {
- waitingMappers = true;
- break;
- }
- }
- }
-
- if (materialMapper is object)
- {
- Debug.Log($"Using the given material mapper:{materialMapper}.");
- CheckMappers.SelectMapper(materialMapper);
- }
- else
- {
- CheckMappers.Initialize();
}
+ CheckMappers.EnableCompatibleMaterialMapperIfNeeded();
}
}
}
\ No newline at end of file
diff --git a/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs.meta b/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs.meta
index 70659bd8..2c7aebe9 100644
--- a/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: d556beac2d22e38459a0060666d79950
+guid: 48732532528e378478a056f14449aa64
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/BuildProcessor.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs b/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs
new file mode 100644
index 00000000..663b802f
--- /dev/null
+++ b/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs
@@ -0,0 +1,41 @@
+using System;
+using TriLibCore.General;
+using TriLibCore.Mappers;
+using UnityEditor;
+using UnityEngine;
+
+
+namespace TriLibCore.Editor
+{
+ [CustomEditor(typeof(ByNameHumanoidAvatarMapper))]
+ public class ByNameHumanoidAvatarMapperEditor : UnityEditor.Editor
+ {
+ private bool[] _folded = new bool[2];
+
+ public override void OnInspectorGUI()
+ {
+ _folded[0] = EditorGUILayout.BeginFoldoutHeaderGroup(_folded[0], "String Comparison");
+ if (_folded[0])
+ {
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("stringComparisonMode"));
+ EditorGUILayout.PropertyField(serializedObject.FindProperty("CaseInsensitive"));
+ }
+ EditorGUILayout.EndFoldoutHeaderGroup();
+ _folded[1] = EditorGUILayout.BeginFoldoutHeaderGroup(_folded[1], "Bones Mapping");
+ EditorGUILayout.EndFoldoutHeaderGroup();
+ if (_folded[1])
+ {
+ var bonesMapping = serializedObject.FindProperty("BonesMapping");
+ for (var i = 0; i < bonesMapping.arraySize; i++)
+ {
+ var boneMapping = bonesMapping.GetArrayElementAtIndex(i);
+ var humanBone = boneMapping.FindPropertyRelative("HumanBone");
+ var enumDisplayNames = humanBone.enumDisplayNames;
+ var boneNames = boneMapping.FindPropertyRelative("BoneNames");
+ EditorGUILayout.PropertyField(boneNames, new GUIContent(enumDisplayNames[humanBone.enumValueIndex]));
+ }
+ }
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs.meta b/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs.meta
new file mode 100644
index 00000000..0b2428e7
--- /dev/null
+++ b/Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: ae81488757bd60e4db304d3c72f0cfde
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/ByNameHumanoidAvatarMapperEditor.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs b/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs
index 23049214..63956e4a 100644
--- a/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs
+++ b/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs
@@ -5,71 +5,72 @@ using UnityEngine;
namespace TriLibCore.Editor
{
+ ///
+ /// Represents a series of Material Mapper utility methods.
+ ///
+ [InitializeOnLoad]
public static class CheckMappers
{
- [InitializeOnEnterPlayMode]
- [InitializeOnLoadMethod]
- public static void Initialize()
+ [MenuItem("Tools/TriLib/Select Material Mappers based on Rendering Pipeline")]
+ private static void AutoSelect()
{
- var hasAnyMapper = false;
+ string materialMapperName;
+ for (var i = 0; i < MaterialMapper.RegisteredMappers.Count; i++)
+ {
+ materialMapperName = MaterialMapper.RegisteredMappers[i];
+ TriLibSettings.SetBool(materialMapperName, false);
+ }
+ materialMapperName = AssetLoader.GetCompatibleMaterialMapperName();
+ SelectMapper(materialMapperName);
+ }
+
+ ///
+ /// Enables a compatible Material Mapper if none is found.
+ ///
+ public static void EnableCompatibleMaterialMapperIfNeeded()
+ {
+ string materialMapperName;
+ for (var i = 0; i < MaterialMapper.RegisteredMappers.Count; i++)
+ {
+ materialMapperName = MaterialMapper.RegisteredMappers[i];
+ if (TriLibSettings.GetBool(materialMapperName, false))
+ {
+ return;
+ }
+ }
+ EnableCompatibleMaterialMapper();
+ }
+
+ ///
+ /// Tries to find the best Material Mapper depending on the Rendering Pipeline.
+ ///
+ public static void EnableCompatibleMaterialMapper()
+ {
+ var usingMaterialMapper = false;
for (var i = 0; i < MaterialMapper.RegisteredMappers.Count; i++)
{
var materialMapperName = MaterialMapper.RegisteredMappers[i];
if (TriLibSettings.GetBool(materialMapperName))
{
- hasAnyMapper = true;
+ usingMaterialMapper = true;
break;
}
}
-
- if (!hasAnyMapper)
+ if (!usingMaterialMapper)
{
- string materialMapper;
- if (GraphicsSettingsUtils.IsUsingHDRPPipeline)
- {
- materialMapper = "HDRPMaterialMapper";
- }
- else if (GraphicsSettingsUtils.IsUsingUniversalPipeline)
- {
- materialMapper = "UniversalRPMaterialMapper";
- }
- else
- {
- materialMapper = "StandardMaterialMapper";
- }
- Debug.Log($"TriLib is configured to use the '{materialMapper}' Material Mapper. If you want to use different Material Mappers, you can change this setting on the Project Settings/TriLib area.");
- TriLibSettings.SetBool(materialMapper, true);
+ var materialMapperName = AssetLoader.GetCompatibleMaterialMapperName();
+ SelectMapper(materialMapperName);
}
}
- [MenuItem("Tools/TriLib/Select Material Mappers based on Rendering Pipeline")]
- public static void AutoSelect()
+ static CheckMappers()
{
- for (var i = 0; i < MaterialMapper.RegisteredMappers.Count; i++)
- {
- var materialMapperName = MaterialMapper.RegisteredMappers[i];
- TriLibSettings.SetBool(materialMapperName, false);
- }
-
- string materialMapper;
- if (GraphicsSettingsUtils.IsUsingHDRPPipeline)
- {
- materialMapper = "HDRPMaterialMapper";
- }
- else if (GraphicsSettingsUtils.IsUsingUniversalPipeline)
- {
- materialMapper = "UniversalRPMaterialMapper";
- }
- else
- {
- materialMapper = "StandardMaterialMapper";
- }
- SelectMapper(materialMapper);
+ EnableCompatibleMaterialMapperIfNeeded();
}
public static void SelectMapper(string materialMapper)
{
- Debug.Log($"TriLib is configured to use the '{materialMapper}' Material Mapper. If you want to use different Material Mappers, you can change this setting on the Project Settings/TriLib area.");
+ Debug.Log($"TriLib is configured to use the '{materialMapper}' Material Mapper. If you want to use different Material Mappers, you can change this setting on the 'Edit->Project Settings->TriLib' menu.");
TriLibSettings.SetBool(materialMapper, true);
}
}
diff --git a/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs.meta b/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs.meta
index 8871606e..0887e2b9 100644
--- a/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/CheckMappers.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/CheckMappers.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/ImporterOption.cs.meta b/Assets/Editor/TriLibCore/Scripts/ImporterOption.cs.meta
index be59ef6b..864ec00e 100644
--- a/Assets/Editor/TriLibCore/Scripts/ImporterOption.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/ImporterOption.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: c201497c49b244e8a7ae0152eb5ad027
-timeCreated: 1573070165
\ No newline at end of file
+timeCreated: 1573070165
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/ImporterOption.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/LipSyncMappingEditor.cs.meta b/Assets/Editor/TriLibCore/Scripts/LipSyncMappingEditor.cs.meta
index fb600bf7..a30da4d1 100644
--- a/Assets/Editor/TriLibCore/Scripts/LipSyncMappingEditor.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/LipSyncMappingEditor.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/LipSyncMappingEditor.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/MapperContextActions.cs.meta b/Assets/Editor/TriLibCore/Scripts/MapperContextActions.cs.meta
index ddb40be8..e3109fd4 100644
--- a/Assets/Editor/TriLibCore/Scripts/MapperContextActions.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/MapperContextActions.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/MapperContextActions.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/PreBuiltResources.cs.meta b/Assets/Editor/TriLibCore/Scripts/PreBuiltResources.cs.meta
index 6b1faa50..3913b6ec 100644
--- a/Assets/Editor/TriLibCore/Scripts/PreBuiltResources.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/PreBuiltResources.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/PreBuiltResources.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs b/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs
new file mode 100644
index 00000000..e0fc6477
--- /dev/null
+++ b/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs
@@ -0,0 +1,52 @@
+using UnityEditor;
+using UnityEngine;
+
+namespace TriLibCore.Editor
+{
+ ///
+ /// Represents a class with Shader Variant Collection utility methods.
+ ///
+ public static class ShaderVariantCollectionUtils
+ {
+ ///
+ /// Adds the given Shader Variant Collection to the Graphic Settings preloaded shaders.
+ ///
+ /// The Shader Variant Collection to add.
+ public static void AddShaderVariantCollectionToGraphicSettings(ShaderVariantCollection shaderVariantCollection)
+ {
+ var graphicSettingAssets = AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/GraphicsSettings.asset");
+ if (graphicSettingAssets != null && graphicSettingAssets.Length > 0)
+ {
+ var graphicsSettings = new SerializedObject(graphicSettingAssets[0]);
+ var preloadedShaders = graphicsSettings.FindProperty("m_PreloadedShaders");
+ preloadedShaders.InsertArrayElementAtIndex(preloadedShaders.arraySize);
+ preloadedShaders.GetArrayElementAtIndex(preloadedShaders.arraySize - 1).objectReferenceValue = shaderVariantCollection;
+ graphicsSettings.ApplyModifiedProperties();
+ }
+ }
+
+ ///
+ /// Returns whether the given Shader Variant Collection exists on the Graphic Settings preloaded shaders.
+ ///
+ /// The Shader Variant Collection to check for.
+ /// Whether the Shader Variant Collection exists on the Graphic Settings preloaded shaders.
+ public static bool IsShaderVariantCollectionPreloaded(ShaderVariantCollection shaderVariantCollection)
+ {
+ var graphicSettingAssets = AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/GraphicsSettings.asset");
+ if (graphicSettingAssets != null && graphicSettingAssets.Length > 0)
+ {
+ var graphicsSettings = new SerializedObject(graphicSettingAssets[0]);
+ var preloadedShaders = graphicsSettings.FindProperty("m_PreloadedShaders");
+ for (var i = 0; i < preloadedShaders.arraySize; i++)
+ {
+ if (preloadedShaders.GetArrayElementAtIndex(i).objectReferenceValue == shaderVariantCollection)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs.meta b/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs.meta
new file mode 100644
index 00000000..5697fb38
--- /dev/null
+++ b/Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 9d608c222bc0e864cbc3769c06a760e0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/ShaderVariantCollectionUtils.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/SimpleAnimationPlayerEditor.cs.meta b/Assets/Editor/TriLibCore/Scripts/SimpleAnimationPlayerEditor.cs.meta
index 8b8e19eb..a391382d 100644
--- a/Assets/Editor/TriLibCore/Scripts/SimpleAnimationPlayerEditor.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/SimpleAnimationPlayerEditor.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: f2d92827e4bc43d68ac3a39cbdee0da3
-timeCreated: 1589229113
\ No newline at end of file
+timeCreated: 1589229113
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/SimpleAnimationPlayerEditor.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs b/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs
index a350e890..b7adfbe1 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs
@@ -2,7 +2,11 @@
using System;
using UnityEditor;
using Object = UnityEngine.Object;
+#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
namespace TriLibCore.Editor
{
#if !TRILIB_DISABLE_EDITOR_3MF_IMPORT
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs.meta
index 0f4f70be..dec2aeaf 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLib3MFScriptedImporter.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs b/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs
index 40d763f8..ddfe0d14 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs
@@ -7,9 +7,13 @@ namespace TriLibCore.Editor
{
public static bool IsSymbolDefined(string targetDefineSymbol)
{
- var targetGroup = NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
- //var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
- var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(targetGroup);
+#if UNITY_2020_3_OR_NEWER
+ var buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
+ var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(buildTargetGroup);
+ var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
+#else
+ var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
+#endif
var defineSymbolsArray = defineSymbols.Split(';');
for (var i = 0; i < defineSymbolsArray.Length; i++)
{
@@ -20,15 +24,18 @@ namespace TriLibCore.Editor
return true;
}
}
-
return false;
}
public static void UpdateSymbol(string targetDefineSymbol, bool value)
{
- var targetGroup = NamedBuildTarget.FromBuildTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
- var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(targetGroup);
- //var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
+#if UNITY_2020_3_OR_NEWER
+ var buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
+ var namedBuildTarget = NamedBuildTarget.FromBuildTargetGroup(buildTargetGroup);
+ var defineSymbols = PlayerSettings.GetScriptingDefineSymbols(namedBuildTarget);
+#else
+ var defineSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
+#endif
var defineSymbolsArray = defineSymbols.Split(';');
var newDefineSymbols = string.Empty;
var isDefined = false;
@@ -42,10 +49,8 @@ namespace TriLibCore.Editor
{
continue;
}
-
isDefined = true;
}
-
newDefineSymbols += string.Format("{0};", trimmedDefineSymbol);
}
@@ -53,8 +58,11 @@ namespace TriLibCore.Editor
{
newDefineSymbols += string.Format("{0};", targetDefineSymbol);
}
- PlayerSettings.SetScriptingDefineSymbols(targetGroup, newDefineSymbols);
- //PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newDefineSymbols);
+#if UNITY_2020_3_OR_NEWER
+ PlayerSettings.SetScriptingDefineSymbols(namedBuildTarget, newDefineSymbols);
+#else
+ PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newDefineSymbols);
+#endif
}
}
}
\ No newline at end of file
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs.meta
index 90fe804e..016df8c0 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibDefineSymbolsHelper.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibDeprecationWarnings.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibDeprecationWarnings.cs.meta
index 916d8f9f..2153a687 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibDeprecationWarnings.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibDeprecationWarnings.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibDeprecationWarnings.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs b/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs
index d043b915..162d5734 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs
@@ -2,7 +2,11 @@
using System;
using UnityEditor;
using Object = UnityEngine.Object;
+#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
namespace TriLibCore.Editor
{
#if !TRILIB_DISABLE_EDITOR_GLTF_IMPORT
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs.meta
index 8ee6d3d0..c2d6f33a 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibGLTFScriptedImporter.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs b/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs
index 53a3e8d5..219c055a 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs
@@ -2,7 +2,11 @@
using System;
using UnityEditor;
using Object = UnityEngine.Object;
+#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
namespace TriLibCore.Editor
{
#if !TRILIB_DISABLE_EDITOR_PLY_IMPORT
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs.meta
index c24321da..de64bcc0 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibPLYScriptedImporter.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs b/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs
index f6662462..1a5efa39 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs
@@ -2,7 +2,11 @@
using System;
using UnityEditor;
using Object = UnityEngine.Object;
+#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
namespace TriLibCore.Editor
{
#if !TRILIB_DISABLE_EDITOR_STL_IMPORT
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs.meta
index 38f93bea..897f46aa 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibSTLScriptedImporter.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs b/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs
index a1332a10..2f9e9bf1 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs
@@ -1,4 +1,5 @@
#pragma warning disable CS0105
+#pragma warning disable CS0618
using UnityEngine;
using TriLibCore.Interfaces;
using UnityEditor;
@@ -19,6 +20,8 @@ namespace TriLibCore.Editor
}
//Editor coroutines are not allowed
assetLoaderOptions.UseCoroutines = false;
+ //Asset Unloader is not suitable for editor loading
+ assetLoaderOptions.AddAssetUnloader = false;
return assetLoaderOptions;
}
set => userData = EditorJsonUtility.ToJson(value);
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs.meta
index 46b9f9f2..87aa952e 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibScriptedImporter.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs b/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs
index 15e1f529..ac449f1d 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs
@@ -39,7 +39,7 @@ namespace TriLibCore.Editor
GUILayout.Label("You can disable runtime file-formats importing here");
EditorGUILayout.Space();
ShowConditionalToggle("Disable runtime FBX importing", "TRILIB_DISABLE_FBX_IMPORT");
- ShowConditionalToggle("Disable runtime gLTF2 importing", "TRILIB_DISABLE_GLTF_IMPORT");
+ ShowConditionalToggle("Disable runtime glTF2 importing", "TRILIB_DISABLE_GLTF_IMPORT");
ShowConditionalToggle("Disable runtime OBJ importing", "TRILIB_DISABLE_OBJ_IMPORT");
ShowConditionalToggle("Disable runtime STL importing", "TRILIB_DISABLE_STL_IMPORT");
ShowConditionalToggle("Disable runtime PLY importing", "TRILIB_DISABLE_PLY_IMPORT");
@@ -51,7 +51,7 @@ namespace TriLibCore.Editor
EditorPrefs.SetInt("TriLibTimeout", EditorGUILayout.IntField("Loading timeout", EditorPrefs.GetInt("TriLibTimeout", 180)));
GUILayout.Label("You can disable in editor file-formats importing to avoid conflicts with other editor importers");
EditorGUILayout.Space();
- ShowConditionalToggle("Disable in editor gLTF2 importing", "TRILIB_DISABLE_EDITOR_GLTF_IMPORT");
+ ShowConditionalToggle("Disable in editor glTF2 importing", "TRILIB_DISABLE_EDITOR_GLTF_IMPORT");
ShowConditionalToggle("Disable in editor PLY importing", "TRILIB_DISABLE_EDITOR_PLY_IMPORT");
ShowConditionalToggle("Disable in editor 3MF importing", "TRILIB_DISABLE_EDITOR_3MF_IMPORT");
ShowConditionalToggle("Disable in editor STL importing", "TRILIB_DISABLE_EDITOR_STL_IMPORT");
@@ -75,10 +75,8 @@ namespace TriLibCore.Editor
GUILayout.Label("Misc Options", EditorStyles.boldLabel);
GUILayout.Label("Advanced and experimental options");
EditorGUILayout.Space();
- //todo: fbx sdk will be included in a future update
- //ShowConditionalToggle("Use FBX SDK (Experimental)", "TRILIB_USE_FBXSDK");
ShowConditionalToggle("Enable UWP threaded loading (Experimental)", "TRILIB_ENABLE_UWP_THREADS");
- ShowConditionalToggle("Enable gLTF2 Draco decompression (Experimental)", "TRILIB_DRACO");
+ ShowConditionalToggle("Enable glTF2 Draco decompression (Experimental)", "TRILIB_DRACO");
ShowConditionalToggle("Force synchronous loading", "TRILIB_FORCE_SYNC");
ShowConditionalToggle("Change thread names (Debug purposes only)", "TRILIB_USE_THREAD_NAMES");
ShowConditionalToggle("Disable asset loader options validations", "TRILIB_DISABLE_VALIDATIONS");
@@ -98,13 +96,16 @@ namespace TriLibCore.Editor
{
Application.OpenURL("https://ricardoreis.net/trilibwiki/index.php");
}
+ if (GUILayout.Button("Discord Server"))
+ {
+ Application.OpenURL("https://discord.gg/FV6tqCxY2U");
+ }
if (GUILayout.Button("Support"))
{
Application.OpenURL("https://ricardoreis.net/contact/");
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
- CheckMappers.Initialize();
base.OnGUI(searchContext);
}
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs.meta
index 1c24752d..0839911a 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: a5b653e1047e419fb6dc0d9b9d4d2c46
-timeCreated: 1573055735
\ No newline at end of file
+timeCreated: 1573055735
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibSettingsProvider.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibSplashScreen.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibSplashScreen.cs.meta
index 0cc7c8b9..75ab9e53 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibSplashScreen.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibSplashScreen.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibSplashScreen.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibVersionInfo.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibVersionInfo.cs.meta
index 62c5512a..8aa737ab 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibVersionInfo.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibVersionInfo.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibVersionInfo.cs
+ uploadId: 752923
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs b/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs
index 4e09d4c3..fa8272fa 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs
@@ -1,6 +1,9 @@
-using System.IO;
+using System;
+using System.IO;
+using System.Text.RegularExpressions;
using UnityEditor;
using UnityEngine;
+using UnityEngine.Windows;
namespace TriLibCore.Editor
{
@@ -8,8 +11,6 @@ namespace TriLibCore.Editor
{
private class Styles
{
- public const float WindowWidth = 0.75f;
- public const float WindowHeight = 0.5f;
public static readonly GUIStyle HeaderStyle = new GUIStyle("label") { fontSize = 19, fontStyle = FontStyle.Bold, margin = new RectOffset(10, 10, 5, 5) };
public static readonly GUIStyle SubHeaderStyle = new GUIStyle("label") { margin = new RectOffset(10, 10, 5, 5), fontStyle = FontStyle.Bold };
public static readonly GUIStyle TextStyle = new GUIStyle("label") { margin = new RectOffset(20, 20, 5, 5) };
@@ -19,8 +20,12 @@ namespace TriLibCore.Editor
private string _text;
private bool _loaded;
- private Vector2 _changeLogScrollPosition;
- private Vector2 _notesScrollPosition;
+ private Vector2 _scrollPosition;
+
+ private static readonly string ChangelogPattern = @"(?<=Changelog:)(.*?)(?=(Version Notes:|$))";
+ private static readonly string VersionNotesPattern = @"(?<=Version Notes:)(.*)";
+ private static readonly string Pattern = @"(https?://[^\s]+)";
+ private static readonly Regex URIRegex = new Regex(@"^https?://");
private static TriLibVersionNotes Instance
{
@@ -28,7 +33,6 @@ namespace TriLibCore.Editor
{
var window = GetWindow();
window.titleContent = new GUIContent("TriLib Version Notes");
- window.minSize = new Vector2(Styles.WindowWidth * Screen.width, Styles.WindowHeight * Screen.height);
return window;
}
}
@@ -72,61 +76,46 @@ namespace TriLibCore.Editor
}
_loaded = true;
}
- EditorGUILayout.BeginVertical();
- using (var stringReader = new StringReader(_text))
+ _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition);
+ var changelogMatch = Regex.Match(_text, ChangelogPattern, RegexOptions.Singleline);
+ var changelogSection = changelogMatch.Success ? changelogMatch.Value.Trim() : "No changelog found";
+ var versionNotesMatch = Regex.Match(_text, VersionNotesPattern, RegexOptions.Singleline);
+ var versionNotesSection = versionNotesMatch.Success ? versionNotesMatch.Value.Trim() : "No version notes found";
+ GUILayout.Label("Version Notes", Styles.SubHeaderStyle);
+ var groups = Regex.Split(versionNotesSection, Pattern);
+ foreach (var group in groups)
{
- var changeLogOpen = false;
- var version = stringReader.ReadLine();
- GUILayout.Label($"TriLib {version}", Styles.HeaderStyle);
- for (; ; )
+ if (!string.IsNullOrEmpty(group))
{
- var line = stringReader.ReadLine();
- if (line == null)
+ if (URIRegex.IsMatch(group))
{
- break;
- }
- if (line.ToLowerInvariant() == "changelog:")
- {
- EditorGUILayout.Space();
- GUILayout.Label("Changelog", Styles.SubHeaderStyle);
- _changeLogScrollPosition = GUILayout.BeginScrollView(_changeLogScrollPosition, GUILayout.Height(260f));
- changeLogOpen = true;
- }
- else if (line.ToLowerInvariant() == "version notes:")
- {
- if (changeLogOpen)
+ GUILayout.BeginHorizontal();
+ GUILayout.Space(20);
+ if (EditorGUILayout.LinkButton(group))
{
- GUILayout.EndScrollView();
- changeLogOpen = false;
+ Application.OpenURL(group);
}
- EditorGUILayout.Space();
- GUILayout.Label("Version Notes", Styles.SubHeaderStyle);
- var versionInfo = stringReader.ReadToEnd();
- _notesScrollPosition = EditorGUILayout.BeginScrollView(_notesScrollPosition);
- EditorGUILayout.TextArea(versionInfo, Styles.TextAreaStyle);
- EditorGUILayout.EndScrollView();
- break;
+ GUILayout.EndHorizontal();
}
else
{
- GUILayout.Label(line, Styles.TextStyle);
+ EditorGUILayout.TextArea(group, Styles.TextAreaStyle);
}
}
- if (changeLogOpen)
- {
- GUILayout.EndScrollView();
- }
- EditorGUILayout.EndVertical();
- EditorGUILayout.Space();
- GUILayout.Label("You can show this window on the Project Settings/TriLib area", Styles.SubHeaderStyle);
- EditorGUILayout.BeginHorizontal();
- GUILayout.FlexibleSpace();
- if (GUILayout.Button("Close", Styles.ButtonStyle))
- {
- Close();
- }
- EditorGUILayout.EndHorizontal();
}
+ EditorGUILayout.Space();
+ GUILayout.Label("Changelog", Styles.SubHeaderStyle);
+ EditorGUILayout.TextArea(changelogSection, Styles.TextAreaStyle);
+ EditorGUILayout.EndScrollView();
+ EditorGUILayout.Space();
+ GUILayout.Label("You can show this window on the Project Settings/TriLib area", Styles.SubHeaderStyle);
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.FlexibleSpace();
+ if (GUILayout.Button("Close", Styles.ButtonStyle))
+ {
+ Close();
+ }
+ EditorGUILayout.EndHorizontal();
}
}
}
diff --git a/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs.meta b/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs.meta
index 52e33691..7d99e2e0 100644
--- a/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs.meta
+++ b/Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs.meta
@@ -9,3 +9,10 @@ MonoImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Editor/TriLibCore/Scripts/TriLibVersionNotes.cs
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll b/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll
new file mode 100644
index 00000000..0b4e761d
Binary files /dev/null and b/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll.meta b/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll.meta
new file mode 100644
index 00000000..22896888
--- /dev/null
+++ b/Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll.meta
@@ -0,0 +1,40 @@
+fileFormatVersion: 2
+guid: 1677d96caecc54a479a901472beec0e7
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/ICSharpCode.SharpZipLib.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll b/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll
new file mode 100644
index 00000000..c40ec3a7
Binary files /dev/null and b/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll.meta b/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll.meta
new file mode 100644
index 00000000..93e35f8c
--- /dev/null
+++ b/Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll.meta
@@ -0,0 +1,40 @@
+fileFormatVersion: 2
+guid: 8be21df24d4fae54784eb25606dbfa07
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/IxMilia.ThreeMf.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll b/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll
new file mode 100644
index 00000000..5bc92f3e
Binary files /dev/null and b/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll.meta b/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll.meta
new file mode 100644
index 00000000..a4308fa3
--- /dev/null
+++ b/Assets/Plugins/TriLib/Debug/LibTessDotNet.dll.meta
@@ -0,0 +1,40 @@
+fileFormatVersion: 2
+guid: 8185ce2036dadcd4d9ef9fcdf2cbd3e4
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/LibTessDotNet.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/StbImageSharp.dll b/Assets/Plugins/TriLib/Debug/StbImageSharp.dll
new file mode 100644
index 00000000..d8b3ea45
Binary files /dev/null and b/Assets/Plugins/TriLib/Debug/StbImageSharp.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/StbImageSharp.dll.meta b/Assets/Plugins/TriLib/Debug/StbImageSharp.dll.meta
new file mode 100644
index 00000000..ef43cbc7
--- /dev/null
+++ b/Assets/Plugins/TriLib/Debug/StbImageSharp.dll.meta
@@ -0,0 +1,40 @@
+fileFormatVersion: 2
+guid: 34ae3d9f2f4574f4eae07b11e2303010
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/StbImageSharp.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll
index 81627f01..d0f9eed1 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll.meta
index 04b29735..0e946a2d 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Dae.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll
index 94d0d6d3..8f7e1e86 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll.meta
index 0317822c..561dc775 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Fbx.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll
index 95e60eef..26c0743f 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll.meta
index 4b256d31..5fdeba24 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.Draco.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll
index fdceefe7..c7a239eb 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll.meta
index e3d5e2fa..fe00dd3e 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Gltf.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll
index 10f7a6f7..8cdad25b 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll.meta
index b642696c..cf12fec2 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.HDRLoader.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll
index 6686bff5..0582ce72 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll.meta
index f570e6bd..7711b52d 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Obj.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll
index 49445337..7475273a 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll.meta
index ef8ee295..e8fab116 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll.meta
@@ -5,33 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings:
- CPU: ARMv7
- first:
Any:
second:
@@ -40,59 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
- CPU: AnyCPU
DefaultValueInitialized: true
- OS: AnyOS
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings:
- CPU: AnyCPU
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings:
- CPU: x86_64
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings:
- CPU: x86
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings:
- CPU: x86_64
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- DontProcess: false
- PlaceholderPath:
- SDK: AnySDK
- ScriptingBackend: AnyScriptingBackend
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings:
- AddToEmbeddedBinaries: false
- CPU: AnyCPU
- CompileFlags:
- FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Ply.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll
index bcfcd4ed..2647a80e 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll.meta
index 1e75146e..7adfe24c 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.Stl.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll
index 038f9ab9..0038d425 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll.meta
index 1aa22a0e..c43538c1 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll.meta
@@ -5,32 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings: {}
- first:
Any:
second:
@@ -39,45 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
DefaultValueInitialized: true
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings: {}
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings: {}
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings: {}
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.ThreeMf.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.dll b/Assets/Plugins/TriLib/Debug/TriLibCore.dll
index 0891d8a4..0caebfa9 100644
Binary files a/Assets/Plugins/TriLib/Debug/TriLibCore.dll and b/Assets/Plugins/TriLib/Debug/TriLibCore.dll differ
diff --git a/Assets/Plugins/TriLib/Debug/TriLibCore.dll.meta b/Assets/Plugins/TriLib/Debug/TriLibCore.dll.meta
index 85f85b74..177133be 100644
--- a/Assets/Plugins/TriLib/Debug/TriLibCore.dll.meta
+++ b/Assets/Plugins/TriLib/Debug/TriLibCore.dll.meta
@@ -5,33 +5,12 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
- defineConstraints:
- - UNITY_EDITOR || DEVELOPMENT
+ defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
- validateReferences: 0
+ validateReferences: 1
platformData:
- - first:
- : Any
- second:
- enabled: 0
- settings:
- Exclude Android: 0
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude WebGL: 0
- Exclude Win: 0
- Exclude Win64: 0
- Exclude WindowsStoreApps: 0
- Exclude iOS: 0
- - first:
- Android: Android
- second:
- enabled: 1
- settings:
- CPU: ARMv7
- first:
Any:
second:
@@ -40,59 +19,22 @@ PluginImporter:
- first:
Editor: Editor
second:
- enabled: 1
+ enabled: 0
settings:
- CPU: AnyCPU
DefaultValueInitialized: true
- OS: AnyOS
- - first:
- Standalone: Linux64
- second:
- enabled: 1
- settings:
- CPU: AnyCPU
- - first:
- Standalone: OSXUniversal
- second:
- enabled: 1
- settings:
- CPU: x86_64
- - first:
- Standalone: Win
- second:
- enabled: 1
- settings:
- CPU: x86
- - first:
- Standalone: Win64
- second:
- enabled: 1
- settings:
- CPU: x86_64
- - first:
- WebGL: WebGL
- second:
- enabled: 1
- settings: {}
- first:
Windows Store Apps: WindowsStoreApps
second:
- enabled: 1
+ enabled: 0
settings:
CPU: AnyCPU
- DontProcess: false
- PlaceholderPath:
- SDK: AnySDK
- ScriptingBackend: AnyScriptingBackend
- - first:
- iPhone: iOS
- second:
- enabled: 1
- settings:
- AddToEmbeddedBinaries: false
- CPU: AnyCPU
- CompileFlags:
- FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLib/Debug/TriLibCore.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibGltfDraco/Android/arm64-v8a/libdracodec_unity.so.meta b/Assets/Plugins/TriLibGltfDraco/Android/arm64-v8a/libdracodec_unity.so.meta
index 703aef47..7ba8e2f1 100644
--- a/Assets/Plugins/TriLibGltfDraco/Android/arm64-v8a/libdracodec_unity.so.meta
+++ b/Assets/Plugins/TriLibGltfDraco/Android/arm64-v8a/libdracodec_unity.so.meta
@@ -80,3 +80,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibGltfDraco/Android/arm64-v8a/libdracodec_unity.so
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibGltfDraco/Android/armeabi-v7a/libdracodec_unity.so.meta b/Assets/Plugins/TriLibGltfDraco/Android/armeabi-v7a/libdracodec_unity.so.meta
index 6f5ea8a6..b1cea0d1 100644
--- a/Assets/Plugins/TriLibGltfDraco/Android/armeabi-v7a/libdracodec_unity.so.meta
+++ b/Assets/Plugins/TriLibGltfDraco/Android/armeabi-v7a/libdracodec_unity.so.meta
@@ -80,3 +80,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibGltfDraco/Android/armeabi-v7a/libdracodec_unity.so
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle.meta b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle.meta
new file mode 100644
index 00000000..d17c4a3a
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle.meta
@@ -0,0 +1,93 @@
+fileFormatVersion: 2
+guid: b54d30c9662afcb448f24f1d94ab3b61
+folderAsset: yes
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ : Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 1
+ Exclude Linux64: 1
+ Exclude OSXUniversal: 0
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude WindowsStoreApps: 1
+ Exclude iOS: 1
+ - first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: OSX
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: false
+ PlaceholderPath:
+ SDK: AnySDK
+ ScriptingBackend: AnyScriptingBackend
+ - first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ AddToEmbeddedBinaries: false
+ CPU: AnyCPU
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents.meta b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents.meta
new file mode 100644
index 00000000..4af5dea8
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a4f882777573f74d8f3a36bb62d40e1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/Info.plist b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/Info.plist
new file mode 100644
index 00000000..6f163a16
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/Info.plist
@@ -0,0 +1,46 @@
+
+
+
+
+ BuildMachineOSBuild
+ 21F79
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ dracodec_unity
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleLongVersionString
+
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CSResourcesFileMapped
+
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 13A1030d
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 12.0
+ DTSDKBuild
+ 21A344
+ DTSDKName
+ macosx12.0
+ DTXcode
+ 1310
+ DTXcodeBuild
+ 13A1030d
+ LSMinimumSystemVersion
+ 12.0
+ NSHumanReadableCopyright
+
+
+
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS.meta b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS.meta
new file mode 100644
index 00000000..bae64b3e
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 66060e14a0254fc4aa00d1d421846768
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS/dracodec_unity b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS/dracodec_unity
new file mode 100644
index 00000000..ee625d98
Binary files /dev/null and b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/MacOS/dracodec_unity differ
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature.meta b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature.meta
new file mode 100644
index 00000000..1bd087dc
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e1af676f8d590c141851b6211afb7050
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature/CodeResources b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature/CodeResources
new file mode 100644
index 00000000..d5d0fd74
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/OSX/dracodec_unity.bundle/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,115 @@
+
+
+
+
+ files
+
+ files2
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/Assets/Plugins/dracodec_unity.dll b/Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll
similarity index 100%
rename from Assets/Plugins/dracodec_unity.dll
rename to Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll
diff --git a/Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll.meta b/Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll.meta
new file mode 100644
index 00000000..6b068aa5
--- /dev/null
+++ b/Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll.meta
@@ -0,0 +1,99 @@
+fileFormatVersion: 2
+guid: 5ab3e0421ff09b545a490c0d1dc3c348
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 1
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ : Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 0
+ Exclude Win64: 0
+ Exclude WindowsStoreApps: 1
+ Exclude iOS: 1
+ - first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ OS: Windows
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: X86
+ DontProcess: false
+ PlaceholderPath:
+ SDK: AnySDK
+ ScriptingBackend: AnyScriptingBackend
+ - first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ AddToEmbeddedBinaries: false
+ CPU: AnyCPU
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibGltfDraco/Windows/dracodec_unity.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibGltfDraco/iOS/libdraco.a.meta b/Assets/Plugins/TriLibGltfDraco/iOS/libdraco.a.meta
index a6bcc163..4f895d01 100644
--- a/Assets/Plugins/TriLibGltfDraco/iOS/libdraco.a.meta
+++ b/Assets/Plugins/TriLibGltfDraco/iOS/libdraco.a.meta
@@ -90,3 +90,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibGltfDraco/iOS/libdraco.a
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibGltfDraco/iOS/libdracodec_unity.a.meta b/Assets/Plugins/TriLibGltfDraco/iOS/libdracodec_unity.a.meta
index 0a3a690e..3feb11a3 100644
--- a/Assets/Plugins/TriLibGltfDraco/iOS/libdracodec_unity.a.meta
+++ b/Assets/Plugins/TriLibGltfDraco/iOS/libdracodec_unity.a.meta
@@ -90,3 +90,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibGltfDraco/iOS/libdracodec_unity.a
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowser.java.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowser.java.meta
index a3caee03..6712bf4c 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowser.java.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowser.java.meta
@@ -30,3 +30,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowser.java
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserAndroidListener.java.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserAndroidListener.java.meta
index 3299a56f..72f5705f 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserAndroidListener.java.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserAndroidListener.java.meta
@@ -30,3 +30,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserAndroidListener.java
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserFragment.java.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserFragment.java.meta
index 9fae4832..3c72220c 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserFragment.java.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserFragment.java.meta
@@ -30,3 +30,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Android/StandaloneFileBrowserFragment.java
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Linux/x86_64/libStandaloneFileBrowser.so.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Linux/x86_64/libStandaloneFileBrowser.so.meta
index c7454c3d..f77ef218 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Linux/x86_64/libStandaloneFileBrowser.so.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Linux/x86_64/libStandaloneFileBrowser.so.meta
@@ -136,3 +136,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Linux/x86_64/libStandaloneFileBrowser.so
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.bundle.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.bundle.meta
index 72f14856..5b447aa5 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.bundle.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.bundle.meta
@@ -50,16 +50,16 @@ PluginImporter:
second:
enabled: 0
settings:
- CPU: x86_64
+ CPU: AnyCPU
- first:
Standalone: OSXIntel
second:
- enabled: 1
+ enabled: 0
settings: {}
- first:
Standalone: OSXIntel64
second:
- enabled: 1
+ enabled: 0
settings: {}
- first:
Standalone: OSXUniversal
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib
index f0138206..5f8b7c74 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib
@@ -7,8 +7,9 @@ var TriLibStandaloneFileBrowserWebGLPlugin = {
// Match all video files: "video/*"
// Match all audio files: "audio/*"
// Custom: ".plist, .xml, .yaml"
- // multiselect: Allows multiple file selection
- UploadFile: function(gameObjectNamePtr, methodNamePtr, filterPtr, multiselect) {
+ // multiselect: Allows multiple file selection.
+ // selectDirectory: Allows selecting a directory and all its files.
+ UploadFile: function(gameObjectNamePtr, methodNamePtr, filterPtr, multiselect, selectDirectory) {
var gameObjectName = UTF8ToString(gameObjectNamePtr);
var methodName = UTF8ToString(methodNamePtr);
var filter = UTF8ToString(filterPtr);
@@ -20,18 +21,22 @@ var TriLibStandaloneFileBrowserWebGLPlugin = {
fileInput.setAttribute('id', gameObjectName);
fileInput.setAttribute('type', 'file');
fileInput.setAttribute('class', 'standalone-file-picker');
- if (multiselect) {
- fileInput.setAttribute('multiple', 'multiple');
- }
- if (filter) {
- fileInput.setAttribute('accept', filter);
+ if (selectDirectory) {
+ fileInput.setAttribute('webkitdirectory', 'webkitdirectory');
+ } else {
+ if (multiselect) {
+ fileInput.setAttribute('multiple', 'multiple');
+ }
+ if (filter) {
+ fileInput.setAttribute('accept', filter);
+ }
}
fileInput.onclick = function(event) {
- event.stopPropagation();
+ event.stopPropagation();
this.value = null;
};
fileInput.onchange = function(event) {
- event.stopPropagation();
+ event.stopPropagation();
var urls = [];
for (var i = 0; i < event.target.files.length; i++) {
urls.push({
@@ -42,16 +47,20 @@ var TriLibStandaloneFileBrowserWebGLPlugin = {
SendMessage(gameObjectName, methodName, JSON.stringify(urls));
document.body.removeChild(fileInput);
};
+ fileInput.oncancel = function(event) {
+ event.stopPropagation();
+ document.body.removeChild(fileInput);
+ };
document.body.appendChild(fileInput);
- fileInput.focus();
+ fileInput.focus();
fileInput.click();
this.oldGameObjectName = gameObjectName;
},
- // DownloadFile method does not open SaveFileDialog like standalone builds, its just allows user to download file
+ // DownloadFile method does not open SaveFileDialog like standalone builds, its just allows user to download files.
// gameObjectNamePtr: Unique GameObject name. Required for calling back unity with SendMessage.
// methodNamePtr: Callback method name on given GameObject.
- // filenamePtr: Filename with extension
+ // filenamePtr: Filename with extension.
// byteArray: byte[]
// byteArraySize: byte[].Length
DownloadFile: function(gameObjectNamePtr, methodNamePtr, filenamePtr, byteArray, byteArraySize) {
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib.meta
index 66ad8722..25843aa6 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib.meta
@@ -97,3 +97,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/StandaloneFileBrowser.jslib
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x64/StandaloneFileBrowser.dll.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x64/StandaloneFileBrowser.dll.meta
index 49120e03..bf3dcc7e 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x64/StandaloneFileBrowser.dll.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x64/StandaloneFileBrowser.dll.meta
@@ -96,3 +96,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x64/StandaloneFileBrowser.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x86/StandaloneFileBrowser.dll.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x86/StandaloneFileBrowser.dll.meta
index 6ecd5c9b..3239aed7 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x86/StandaloneFileBrowser.dll.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x86/StandaloneFileBrowser.dll.meta
@@ -96,3 +96,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/Windows/x86/StandaloneFileBrowser.dll
+ uploadId: 752923
diff --git a/Assets/Plugins/TriLibStandaloneFileBrowser/iOS/StandaloneFileBrowser.mm.meta b/Assets/Plugins/TriLibStandaloneFileBrowser/iOS/StandaloneFileBrowser.mm.meta
index eb12f4fc..3ee5c55b 100644
--- a/Assets/Plugins/TriLibStandaloneFileBrowser/iOS/StandaloneFileBrowser.mm.meta
+++ b/Assets/Plugins/TriLibStandaloneFileBrowser/iOS/StandaloneFileBrowser.mm.meta
@@ -95,3 +95,10 @@ PluginImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Plugins/TriLibStandaloneFileBrowser/iOS/StandaloneFileBrowser.mm
+ uploadId: 752923
diff --git a/Assets/Plugins/dracodec_unity.dll.meta b/Assets/Plugins/dracodec_unity.dll.meta
deleted file mode 100644
index c0d4bcf5..00000000
--- a/Assets/Plugins/dracodec_unity.dll.meta
+++ /dev/null
@@ -1,46 +0,0 @@
-fileFormatVersion: 2
-guid: 9ad2e6fcfec6626429b52e881c7016ab
-PluginImporter:
- externalObjects: {}
- serializedVersion: 3
- iconMap: {}
- executionOrder: {}
- defineConstraints: []
- isPreloaded: 1
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
- platformData:
- Any:
- enabled: 1
- settings:
- Exclude Editor: 0
- Exclude Linux64: 0
- Exclude OSXUniversal: 0
- Exclude Win: 0
- Exclude Win64: 0
- Editor:
- enabled: 1
- settings:
- CPU: AnyCPU
- DefaultValueInitialized: true
- OS: AnyOS
- Linux64:
- enabled: 1
- settings:
- CPU: x86_64
- OSXUniversal:
- enabled: 1
- settings:
- CPU: None
- Win:
- enabled: 1
- settings:
- CPU: x86
- Win64:
- enabled: 1
- settings:
- CPU: None
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/ProjectSetting/DefaultUniversal Render Pipeline Asset_Renderer.asset b/Assets/ProjectSetting/DefaultUniversal Render Pipeline Asset_Renderer.asset
index cd14079d..409f42d7 100644
--- a/Assets/ProjectSetting/DefaultUniversal Render Pipeline Asset_Renderer.asset
+++ b/Assets/ProjectSetting/DefaultUniversal Render Pipeline Asset_Renderer.asset
@@ -24,8 +24,9 @@ MonoBehaviour:
probeSamplingDebugMesh: {fileID: 0}
probeSamplingDebugTexture: {fileID: 0}
probeVolumeBlendStatesCS: {fileID: 0}
- m_RendererFeatures: []
- m_RendererFeatureMap:
+ m_RendererFeatures:
+ - {fileID: 203358797822649256}
+ m_RendererFeatureMap: a8632bcabf79d202
m_UseNativeRenderPass: 0
xrSystemData: {fileID: 0}
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
@@ -51,3 +52,20 @@ MonoBehaviour:
m_DepthTextureFormat: 0
m_AccurateGbufferNormals: 0
m_IntermediateTextureMode: 1
+--- !u!114 &203358797822649256
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c96e8c42a07c7dd498c6973ddaa9dd1d, type: 3}
+ m_Name: EdgeDetection
+ m_EditorClassIdentifier:
+ m_Active: 1
+ settings:
+ renderPassEvent: 500
+ outlineThickness: 3
+ outlineColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants b/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants
new file mode 100644
index 00000000..0f3cb8ec
--- /dev/null
+++ b/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants
@@ -0,0 +1,10 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!200 &20000000
+ShaderVariantCollection:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: HDRPVariantCollection
+ m_Shaders: {}
diff --git a/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants.meta b/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants.meta
new file mode 100644
index 00000000..3fa810c2
--- /dev/null
+++ b/Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 5f4d89098d9e5bc41bdb8924c2eaf314
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 20000000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/HDRP/HDRPVariantCollection.shadervariants
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat
index 7d4ccdfc..a48a26d2 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat
@@ -12,18 +12,28 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 11
+ version: 13
+ hdPluginSubTargetMaterialVersions:
+ m_Keys: []
+ m_Values:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibHDRP
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
- m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _EMISSIVE_COLOR_MAP _MASKMAP _NORMALMAP
- _NORMALMAP_TANGENT_SPACE
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _DISABLE_SSR_TRANSPARENT
+ - _EMISSIVE_COLOR_MAP
+ - _MASKMAP
+ - _NORMALMAP
+ - _NORMALMAP_TANGENT_SPACE
+ m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -36,6 +46,7 @@ Material:
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -155,6 +166,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _TransmissionMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -171,6 +186,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
@@ -183,6 +199,8 @@ Material:
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 0
+ - _AlphaRemapMax: 1
+ - _AlphaRemapMin: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
@@ -218,6 +236,7 @@ Material:
- _DistortionVectorBias: -1
- _DistortionVectorScale: 2
- _DoubleSidedEnable: 0
+ - _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
@@ -253,6 +272,8 @@ Material:
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
+ - _ObjectSpaceUVMapping: 0
+ - _ObjectSpaceUVMappingEmissive: 0
- _OcclusionStrength: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
@@ -281,10 +302,10 @@ Material:
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- - _StencilWriteMaskDepth: 8
+ - _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- - _StencilWriteMaskGBuffer: 14
- - _StencilWriteMaskMV: 40
+ - _StencilWriteMaskGBuffer: 15
+ - _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
@@ -292,6 +313,7 @@ Material:
- _TexWorldScaleEmissive: 1
- _Thickness: 1
- _TransmissionEnable: 1
+ - _TransmissionMask: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat.meta b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat.meta
index fc420699..ac7b8588 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat.meta
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/HDRP/TriLibHDRP.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat
index be9dd8d5..ab04701b 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat
@@ -12,18 +12,31 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 11
+ version: 13
+ hdPluginSubTargetMaterialVersions:
+ m_Keys: []
+ m_Values:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibHDRPAlpha
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
- m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _DOUBLESIDED_ON _EMISSIVE_COLOR_MAP
- _ENABLE_FOG_ON_TRANSPARENT _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE _SURFACE_TYPE_TRANSPARENT
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _DISABLE_SSR_TRANSPARENT
+ - _DOUBLESIDED_ON
+ - _EMISSIVE_COLOR_MAP
+ - _ENABLE_FOG_ON_TRANSPARENT
+ - _MASKMAP
+ - _NORMALMAP
+ - _NORMALMAP_TANGENT_SPACE
+ - _SURFACE_TYPE_TRANSPARENT
+ m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
@@ -37,6 +50,7 @@ Material:
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -152,6 +166,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _TransmissionMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -168,6 +186,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
@@ -180,6 +199,8 @@ Material:
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 10
+ - _AlphaRemapMax: 1
+ - _AlphaRemapMin: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
@@ -216,6 +237,7 @@ Material:
- _DistortionVectorBias: -1
- _DistortionVectorScale: 2
- _DoubleSidedEnable: 1
+ - _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 10
- _EmissiveColorMode: 1
@@ -251,6 +273,8 @@ Material:
- _Mode: 2
- _NormalMapSpace: 0
- _NormalScale: 1
+ - _ObjectSpaceUVMapping: 0
+ - _ObjectSpaceUVMappingEmissive: 0
- _OcclusionStrength: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
@@ -281,10 +305,10 @@ Material:
- _StencilRefGBuffer: 2
- _StencilRefMV: 32
- _StencilWriteMask: 6
- - _StencilWriteMaskDepth: 8
+ - _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- - _StencilWriteMaskGBuffer: 14
- - _StencilWriteMaskMV: 40
+ - _StencilWriteMaskGBuffer: 15
+ - _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 1
@@ -294,6 +318,7 @@ Material:
- _TexWorldScaleEmissive: 1
- _Thickness: 1
- _TransmissionEnable: 1
+ - _TransmissionMask: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat.meta b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat.meta
index 2719d5e6..3604cfaf 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat.meta
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlpha.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat
index 24155701..d9765bd5 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat
@@ -12,18 +12,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 11
+ version: 13
+ hdPluginSubTargetMaterialVersions:
+ m_Keys: []
+ m_Values:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibHDRPAlphaCutout
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
- m_ShaderKeywords: _ALPHATEST_ON _DISABLE_SSR_TRANSPARENT _DOUBLESIDED_ON _EMISSIVE_COLOR_MAP
- _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHATEST_ON
+ - _DISABLE_SSR_TRANSPARENT
+ - _DOUBLESIDED_ON
+ - _EMISSIVE_COLOR_MAP
+ - _MASKMAP
+ - _NORMALMAP
+ - _NORMALMAP_TANGENT_SPACE
+ m_InvalidKeywords: []
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
@@ -37,6 +49,7 @@ Material:
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -152,6 +165,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _TransmissionMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -168,6 +185,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
@@ -180,6 +198,8 @@ Material:
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 0
+ - _AlphaRemapMax: 1
+ - _AlphaRemapMin: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
@@ -215,6 +235,7 @@ Material:
- _DistortionVectorBias: -1
- _DistortionVectorScale: 2
- _DoubleSidedEnable: 1
+ - _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
@@ -250,6 +271,8 @@ Material:
- _Mode: 1
- _NormalMapSpace: 0
- _NormalScale: 1
+ - _ObjectSpaceUVMapping: 0
+ - _ObjectSpaceUVMappingEmissive: 0
- _OcclusionStrength: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
@@ -278,10 +301,10 @@ Material:
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- - _StencilWriteMaskDepth: 8
+ - _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- - _StencilWriteMaskGBuffer: 14
- - _StencilWriteMaskMV: 40
+ - _StencilWriteMaskGBuffer: 15
+ - _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
@@ -289,6 +312,7 @@ Material:
- _TexWorldScaleEmissive: 1
- _Thickness: 1
- _TransmissionEnable: 1
+ - _TransmissionMask: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat.meta b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat.meta
index b6e06758..c16a091d 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat.meta
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPAlphaCutout.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat
index 737e67bf..607f41d5 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat
@@ -2,15 +2,22 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibHDRPLoading
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
- m_ShaderKeywords: _DISABLE_SSR_TRANSPARENT _EMISSIVE_COLOR_MAP _MASKMAP _NORMALMAP
- _NORMALMAP_TANGENT_SPACE
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _DISABLE_SSR_TRANSPARENT
+ - _EMISSIVE_COLOR_MAP
+ - _MASKMAP
+ - _NORMALMAP
+ - _NORMALMAP_TANGENT_SPACE
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -23,6 +30,7 @@ Material:
- TransparentDepthPostpass
- TransparentBackface
- RayTracingPrepass
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -138,6 +146,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _TransmissionMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -154,6 +166,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- _AORemapMax: 1
- _AORemapMin: 0
@@ -166,6 +179,8 @@ Material:
- _AlphaCutoffPrepass: 0.5
- _AlphaCutoffShadow: 0.5
- _AlphaDstBlend: 0
+ - _AlphaRemapMax: 1
+ - _AlphaRemapMin: 0
- _AlphaSrcBlend: 1
- _AlphaToMask: 0
- _AlphaToMaskInspectorValue: 0
@@ -201,6 +216,7 @@ Material:
- _DistortionVectorBias: -1
- _DistortionVectorScale: 2
- _DoubleSidedEnable: 0
+ - _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
@@ -236,6 +252,8 @@ Material:
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
+ - _ObjectSpaceUVMapping: 0
+ - _ObjectSpaceUVMappingEmissive: 0
- _OcclusionStrength: 1
- _OpaqueCullMode: 2
- _PPDLodThreshold: 5
@@ -264,10 +282,10 @@ Material:
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- - _StencilWriteMaskDepth: 8
+ - _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- - _StencilWriteMaskGBuffer: 14
- - _StencilWriteMaskMV: 40
+ - _StencilWriteMaskGBuffer: 15
+ - _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
@@ -275,6 +293,7 @@ Material:
- _TexWorldScaleEmissive: 1
- _Thickness: 1
- _TransmissionEnable: 1
+ - _TransmissionMask: 1
- _TransparentBackfaceEnable: 0
- _TransparentCullMode: 2
- _TransparentDepthPostpassEnable: 0
@@ -323,4 +342,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 11
+ version: 13
+ hdPluginSubTargetMaterialVersions:
+ m_Keys: []
+ m_Values:
diff --git a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat.meta b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat.meta
index 51f08ef1..2622b15a 100644
--- a/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat.meta
+++ b/Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/HDRP/TriLibHDRPLoading.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat
index 4bf1a3d6..1ec7272c 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat
@@ -2,37 +2,23 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandard
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _METALLICSPECGLOSSMAP
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _EMISSION _METALLICGLOSSMAP _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
- stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ stringTagMap: {}
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -54,7 +40,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -73,35 +59,11 @@ Material:
m_Texture: {fileID: 2800000, guid: d1597ba5656dbe14998ca5a123fc8c77, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- - _Blend: 0
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0.5
- _GlossyReflections: 1
@@ -109,34 +71,12 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _UVSec: 0
- - _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
---- !u!114 &7489121585098606463
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat.meta
index e0c36764..c805b625 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: f33ead15185d5fe4c812052c58708127
+guid: 34299f43105692d4d916d49aaae74148
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandard.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat
index ac85158f..ef3d07e9 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat
@@ -2,37 +2,25 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardAlpha
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _METALLICSPECGLOSSMAP
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSION _METALLICGLOSSMAP _NORMALMAP _RENDERINGMODE_TRANSPARENT
+ _TRANSPARENCY_TRANSPARENT
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
+ m_CustomRenderQueue: 3000
stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ RenderType: Transparent
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -54,7 +42,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -73,35 +61,12 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- _Blend: 1
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- - _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
+ - _DstBlend: 10
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 1
@@ -109,40 +74,17 @@ Material:
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- _RenderingMode: 3
- _ShadingMode: 0
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _TRANSPARENCY: 1
- _TYPE: 0
- _UVSec: 0
- - _WorkflowMode: 1
- - _ZWrite: 1
+ - _ZWrite: 0
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Offset: {r: 0, g: 0, b: 0, a: 0}
- - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- _Tilling: {r: 1, g: 1, b: 0, a: 0}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
---- !u!114 &2856157590176698782
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat.meta
index ecef68f7..36b01a62 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat.meta
@@ -1,10 +1,15 @@
fileFormatVersion: 2
-guid: ebc39c170ad300b478a407b5068a14e6
-timeCreated: 1575818796
-licenseType: Store
+guid: 5e11ad76aa50c8b44bcb5d546cd7262f
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 2100000
+ mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlpha.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat
index 87184ae9..786f3e37 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat
@@ -1,51 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &-1072164187095390848
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardAlphaCompose
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _METALLICSPECGLOSSMAP
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 4800000, guid: 0ee5d4feef5d0b642bae7e8e492afb79, type: 3}
+ m_ShaderKeywords: _ALPHABLEND_ON _EMISSION _METALLICGLOSSMAP _NORMALMAP _RENDERINGMODE_TRANSPARENT
+ _TRANSPARENCY_TRANSPARENT
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
- stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ stringTagMap: {}
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -67,7 +41,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -86,35 +60,12 @@ Material:
m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- _Blend: 1
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- - _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
+ - _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
@@ -122,27 +73,17 @@ Material:
- _Mode: 2
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- _RenderingMode: 3
- _ShadingMode: 0
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- - _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
+ - _SrcBlend: 5
- _TRANSPARENCY: 1
- _TYPE: 0
- _UVSec: 0
- - _WorkflowMode: 1
- - _ZWrite: 1
+ - _ZWrite: 0
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Offset: {r: 0, g: 0, b: 0, a: 0}
- - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- _Tilling: {r: 1, g: 1, b: 0, a: 0}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat.meta
index 7591e0a4..a52f5074 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: ff1efb65f5d997f48bbfef47c881b204
+guid: 6302700af9146a54d9a53cefcd53e1ca
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCompose.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat
index efe44a14..fde1a100 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat
@@ -1,51 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &-2168034174940192317
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardAlphaCutout
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _METALLICSPECGLOSSMAP
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHATEST_ON _EMISSION _METALLICGLOSSMAP _NORMALMAP
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
+ m_CustomRenderQueue: 2450
stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ RenderType: TransparentCutout
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -67,7 +41,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -82,39 +56,11 @@ Material:
m_Texture: {fileID: 2800000, guid: e750797e248c18b40866b42b34ff9336, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - _SpecGlossMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- - _Blend: 0
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0.5
- _GlossyReflections: 1
@@ -122,21 +68,11 @@ Material:
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _UVSec: 0
- - _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat.meta
index 236d97fe..bcff8ce8 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: e52054e2f47d4c046b25298941bd38af
+guid: c53f2359734184a46a7fdfdfa9978478
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutout.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat
index 03336ba6..07848cf2 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat
@@ -1,50 +1,25 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &-7567989823488027647
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardAlphaCutoutNoMetallicTexture
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHATEST_ON _EMISSION _NORMALMAP
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
+ m_CustomRenderQueue: 2450
stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ RenderType: TransparentCutout
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -66,7 +41,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -81,39 +56,11 @@ Material:
m_Texture: {fileID: 2800000, guid: e750797e248c18b40866b42b34ff9336, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - _SpecGlossMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- - _Blend: 0
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 1
@@ -121,21 +68,11 @@ Material:
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _UVSec: 0
- - _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat.meta
index 4767cbc0..1d4746ad 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: 3e17e905deb312540951ae08f6ce9cc5
+guid: 8309f1fb458c996458674486dcd9f05e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaCutoutNoMetallicTexture.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat
index 9defb112..7f51ffc6 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat
@@ -2,36 +2,25 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardAlphaNoMetallicTexture
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _EMISSION _NORMALMAP _RENDERINGMODE_TRANSPARENT
+ _TRANSPARENCY_TRANSPARENT
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
- m_CustomRenderQueue: -1
+ m_CustomRenderQueue: 3000
stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ RenderType: Transparent
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -53,7 +42,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -72,35 +61,12 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- _Blend: 1
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- - _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
+ - _DstBlend: 10
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
@@ -108,40 +74,17 @@ Material:
- _Mode: 3
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- _RenderingMode: 3
- _ShadingMode: 0
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _TRANSPARENCY: 1
- _TYPE: 0
- _UVSec: 0
- - _WorkflowMode: 1
- - _ZWrite: 1
+ - _ZWrite: 0
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Offset: {r: 0, g: 0, b: 0, a: 0}
- - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- _Tilling: {r: 1, g: 1, b: 0, a: 0}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
---- !u!114 &7172821291921153923
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat.meta
index 6ca39ea2..325148b5 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: 9264059e381bf1e4ca4e0513aa079d9a
+guid: 3cfca9826465c8345a87491023dfac5f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardAlphaNoMetallicTexture.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat
index aabef187..3126bc28 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat
@@ -2,36 +2,23 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardNoMetallicTexture
- m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords:
- - _EMISSION
- - _NORMALMAP
- - _OCCLUSIONMAP
- m_InvalidKeywords: []
+ m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: _EMISSION _NORMALMAP _SPECGLOSSMAP
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
- stringTagMap:
- RenderType: Opaque
- disabledShaderPasses:
- - MOTIONVECTORS
- m_LockedProperties:
+ stringTagMap: {}
+ disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- - _BaseMap:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
m_Scale: {x: 1, y: 1}
@@ -53,7 +40,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
- m_Texture: {fileID: 0}
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
@@ -72,35 +59,11 @@ Material:
m_Texture: {fileID: 2800000, guid: d1597ba5656dbe14998ca5a123fc8c77, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- - unity_Lightmaps:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_LightmapsInd:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- - unity_ShadowMasks:
- m_Texture: {fileID: 0}
- m_Scale: {x: 1, y: 1}
- m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- - _AddPrecomputedVelocity: 0
- - _AlphaClip: 0
- - _AlphaToMask: 0
- - _Blend: 0
- - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- - _ClearCoatMask: 0
- - _ClearCoatSmoothness: 0
- - _Cull: 2
- _Cutoff: 0.5
- - _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- - _DstBlendAlpha: 0
- - _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 1
@@ -108,34 +71,12 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- - _QueueOffset: 0
- - _ReceiveShadows: 1
- - _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- - _SrcBlendAlpha: 1
- - _Surface: 0
- _UVSec: 0
- - _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
---- !u!114 &696836461817144425
-MonoBehaviour:
- m_ObjectHideFlags: 11
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- version: 9
diff --git a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat.meta b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat.meta
index 0018209d..a5ddeee8 100644
--- a/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat.meta
+++ b/Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: 741bdccfa39a5ab4f979a397708991a4
+guid: 1ef02446831dc7746b5fc43385fcbd9f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/Standard/TriLibStandardNoMetallicTexture.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRP.mat.meta b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRP.mat.meta
index 2e41c184..156ea2b8 100644
--- a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRP.mat.meta
+++ b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRP.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRP.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlpha.mat.meta b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlpha.mat.meta
index 96fa0cac..a5b6e43f 100644
--- a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlpha.mat.meta
+++ b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlpha.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlpha.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlphaCutout.mat.meta b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlphaCutout.mat.meta
index c2d51b2e..83ed8a64 100644
--- a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlphaCutout.mat.meta
+++ b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlphaCutout.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPAlphaCutout.mat
+ uploadId: 752923
diff --git a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPLoading.mat.meta b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPLoading.mat.meta
index 2564b1cf..12571da7 100644
--- a/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPLoading.mat.meta
+++ b/Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPLoading.mat.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Resources/Materials/TriLib/UniversalRP/TriLibUniversalRPLoading.mat
+ uploadId: 752923
diff --git a/Assets/Scenes/0.30.0.unity b/Assets/Scenes/0.30.0.unity
index 1918b651..b9793a79 100644
--- a/Assets/Scenes/0.30.0.unity
+++ b/Assets/Scenes/0.30.0.unity
@@ -371,6 +371,114 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 192ba749438045e4bb32753ffff354b1, type: 3}
+--- !u!1 &98482316
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 98482320}
+ - component: {fileID: 98482319}
+ - component: {fileID: 98482318}
+ - component: {fileID: 98482317}
+ m_Layer: 10
+ m_Name: Cube_1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &98482317
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 98482316}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &98482318
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 98482316}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &98482319
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 98482316}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &98482320
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 98482316}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 153.36485, y: 1.39249, z: 12.459}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!224 &110380560 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1112357447546033534, guid: 86fac645f610e6c43a57c53dec3f6e48, type: 3}
@@ -831,6 +939,115 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e201c98d4bf3f4e45b9ec8ddf10c66eb, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &386841988
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 386841992}
+ - component: {fileID: 386841991}
+ - component: {fileID: 386841990}
+ - component: {fileID: 386841989}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &386841989
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 386841988}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &386841990
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 386841988}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RayTracingAccelStructBuildFlagsOverride: 0
+ m_RayTracingAccelStructBuildFlags: 1
+ m_SmallMeshCulling: 1
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
+ - {fileID: 2100000, guid: 2f38c8f07c5df0a47b95a3f98376a6e1, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &386841991
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 386841988}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &386841992
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 386841988}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 153.36485, y: 1.39249, z: 14.91748}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &391151067
GameObject:
m_ObjectHideFlags: 0
@@ -2562,7 +2779,7 @@ Light:
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
- m_Bits: 4294967295
+ m_Bits: 1023
m_RenderingLayerMask: 1
m_Lightmapping: 1
m_LightShadowCasterMode: 0
@@ -8490,6 +8707,71 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 4132525226981379914, guid: 87e4fb57e7f74c84b93bbf2bcb594c8a, type: 3}
m_PrefabInstance: {fileID: 1291368616}
m_PrefabAsset: {fileID: 0}
+--- !u!1001 &1337320217
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 154.58975
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.29
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 20.45
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.00000008146034
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: 'm_Materials.Array.data[1]'
+ value:
+ objectReference: {fileID: 2100000, guid: 2f38c8f07c5df0a47b95a3f98376a6e1, type: 2}
+ - target: {fileID: 919132149155446097, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_Name
+ value: StackerCrane_01
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: a567352e336933243b131db7eb5907dd, type: 3}
--- !u!1001 &1439596646
PrefabInstance:
m_ObjectHideFlags: 0
@@ -9174,6 +9456,136 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 9204995643987852086, guid: b7fb9c984bb17994ca59c9312245bd9e, type: 3}
m_PrefabInstance: {fileID: 1712022042}
m_PrefabAsset: {fileID: 0}
+--- !u!1001 &1774235427
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 152.26622
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.4205714
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 19.957623
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.7071067
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.7071068
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: 'm_Materials.Array.data[1]'
+ value:
+ objectReference: {fileID: 2100000, guid: 2f38c8f07c5df0a47b95a3f98376a6e1, type: 2}
+ - target: {fileID: 919132149155446097, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+ propertyPath: m_Name
+ value: AGV_250529
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7d99a54ccc500d349b3c4734fa57b9d3, type: 3}
+--- !u!1001 &1776234964
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 154.58975
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.29
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 30.7
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.00000008146034
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: -7511558181221131132, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: 'm_Materials.Array.data[1]'
+ value:
+ objectReference: {fileID: 2100000, guid: 2f38c8f07c5df0a47b95a3f98376a6e1, type: 2}
+ - target: {fileID: 919132149155446097, guid: a567352e336933243b131db7eb5907dd, type: 3}
+ propertyPath: m_Name
+ value: StackerCrane_02
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: a567352e336933243b131db7eb5907dd, type: 3}
--- !u!1001 &1802595083
PrefabInstance:
m_ObjectHideFlags: 0
@@ -10667,6 +11079,127 @@ MonoBehaviour:
_canBeDisplayed: 1
_isExpanded: 1
_physicsMode: 1
+--- !u!1 &1973474726
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1973474729}
+ - component: {fileID: 1973474728}
+ - component: {fileID: 1973474727}
+ m_Layer: 0
+ m_Name: Directional Light_1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1973474727
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1973474726}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Version: 3
+ m_UsePipelineSettings: 1
+ m_AdditionalLightsShadowResolutionTier: 2
+ m_LightLayerMask: 1
+ m_RenderingLayers: 1
+ m_CustomShadowLayers: 0
+ m_ShadowLayerMask: 1
+ m_ShadowRenderingLayers: 1
+ m_LightCookieSize: {x: 1, y: 1}
+ m_LightCookieOffset: {x: 0, y: 0}
+ m_SoftShadowQuality: 0
+--- !u!108 &1973474728
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1973474726}
+ m_Enabled: 1
+ serializedVersion: 11
+ m_Type: 1
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 1024
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ForceVisible: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+ m_LightUnit: 1
+ m_LuxAtDistance: 1
+ m_EnableSpotReflector: 1
+--- !u!4 &1973474729
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1973474726}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.6733953, y: 0.28435186, z: -0.316804, w: 0.6044154}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 96.18, y: 50.39, z: 0}
--- !u!1 &1981809315
GameObject:
m_ObjectHideFlags: 0
@@ -12746,4 +13279,10 @@ SceneRoots:
- {fileID: 1981809316}
- {fileID: 216528118}
- {fileID: 481136644}
+ - {fileID: 1973474729}
- {fileID: 1833346089}
+ - {fileID: 386841992}
+ - {fileID: 98482320}
+ - {fileID: 1337320217}
+ - {fileID: 1776234964}
+ - {fileID: 1774235427}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials.meta
new file mode 100644
index 00000000..0a38d3de
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 76cb66145d8f3d14cae0259bfa734ff0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources.meta
new file mode 100644
index 00000000..8c2a4733
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bb1307069dfcfda42bc21938ec12967a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers.meta
new file mode 100644
index 00000000..c258f7c4
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 66cbac253fcd4814c91568846312e9cb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset
new file mode 100644
index 00000000..c97089f3
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset
@@ -0,0 +1,17 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 8a36de450874dc54ab06925948b58455, type: 3}
+ m_Name: AutodeskInteractiveStandardMaterialMapper
+ m_EditorClassIdentifier:
+ UseShaderVariantCollection: 1
+ CheckingOrder: 0
+ ForceStandardMaterial: 0
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset.meta
new file mode 100644
index 00000000..65f7dfcb
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 94bb488223720a24f8729e23c3ddcb07
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Mappers/AutodeskInteractiveStandardMaterialMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers.meta
new file mode 100644
index 00000000..4aa691c9
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cae34e3ad2e347649a5089444cc8042a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset
new file mode 100644
index 00000000..268bd47e
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset
@@ -0,0 +1,14 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6e76fe25aa96cda4e8867eec833228d9, type: 3}
+ m_Name: AutodeskInteractiveMaterialsHelper
+ m_EditorClassIdentifier:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset.meta
new file mode 100644
index 00000000..175fcdda
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: f21f327f08638754ebc157c5ecc0de58
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/MaterialHelpers/AutodeskInteractiveMaterialsHelper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials.meta
new file mode 100644
index 00000000..3a7cf718
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22c98c9e2dc0fdd498ac82033c478610
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive.meta
new file mode 100644
index 00000000..955de6eb
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e0fbc545210c21842a03b59d673f5de3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP.meta
new file mode 100644
index 00000000..f6a79f8f
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b1ae0efecfeefe543839e563d27816fa
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat
new file mode 100644
index 00000000..d8c5aad5
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat
@@ -0,0 +1,313 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-3589388143771982665
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 13
+ hdPluginSubTargetMaterialVersions:
+ m_Keys: []
+ m_Values:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AutodeskInteractive
+ m_Shader: {fileID: 4800000, guid: 7252379db4c18b641b517f2c91bb57e1, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _DISABLE_SSR_TRANSPARENT
+ m_InvalidKeywords:
+ - _NORMALMAP_TANGENT_SPACE
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: 2225
+ stringTagMap:
+ MotionVector: User
+ disabledShaderPasses:
+ - TransparentDepthPrepass
+ - TransparentDepthPostpass
+ - TransparentBackface
+ - RayTracingPrepass
+ - MOTIONVECTORS
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _AnisotropyMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BaseColorMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BentNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BentNormalMapOS:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _CoatMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 2800000, guid: bd6be82f929b8ee48bb5e0431ee844a1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissiveColorMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _HeightMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _IridescenceMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _IridescenceThicknessMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: bd6be82f929b8ee48bb5e0431ee844a1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _NormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _NormalMapOS:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecularColorMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SubsurfaceMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TangentMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TangentMapOS:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ThicknessMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TransmissionMaskMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _TransmittanceColorMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AORemapMax: 1
+ - _AORemapMin: 0
+ - _ATDistance: 1
+ - _AddPrecomputedVelocity: 0
+ - _AlbedoAffectEmissive: 0
+ - _AlphaCutoff: 0.5
+ - _AlphaCutoffEnable: 0
+ - _AlphaCutoffPostpass: 0.5
+ - _AlphaCutoffPrepass: 0.5
+ - _AlphaCutoffShadow: 0.5
+ - _AlphaDstBlend: 0
+ - _AlphaRemapMax: 1
+ - _AlphaRemapMin: 0
+ - _AlphaSrcBlend: 1
+ - _Anisotropy: 0
+ - _BlendMode: 0
+ - _CoatMask: 0
+ - _ConservativeDepthOffsetEnable: 0
+ - _CullMode: 2
+ - _CullModeForward: 2
+ - _Cutoff: 0.5
+ - _DepthOffsetEnable: 0
+ - _DetailAlbedoScale: 1
+ - _DetailNormalScale: 1
+ - _DetailSmoothnessScale: 1
+ - _DiffusionProfile: 0
+ - _DiffusionProfileHash: 0
+ - _DisplacementLockObjectScale: 1
+ - _DisplacementLockTilingScale: 1
+ - _DisplacementMode: 0
+ - _DoubleSidedEnable: 0
+ - _DoubleSidedGIMode: 0
+ - _DoubleSidedNormalMode: 1
+ - _DstBlend: 0
+ - _EmissiveColorMode: 1
+ - _EmissiveExposureWeight: 1
+ - _EmissiveIntensity: 1
+ - _EmissiveIntensityUnit: 0
+ - _EnableBlendModePreserveSpecularLighting: 1
+ - _EnableFogOnTransparent: 1
+ - _EnableGeometricSpecularAA: 0
+ - _EnergyConservingSpecularColor: 1
+ - _ExcludeFromTUAndAA: 0
+ - _Glossiness: 0
+ - _HeightAmplitude: 0.02
+ - _HeightCenter: 0.5
+ - _HeightMapParametrization: 0
+ - _HeightMax: 1
+ - _HeightMin: -1
+ - _HeightOffset: 0
+ - _HeightPoMAmplitude: 2
+ - _HeightTessAmplitude: 2
+ - _HeightTessCenter: 0.5
+ - _InvTilingScale: 1
+ - _Ior: 1.5
+ - _IridescenceMask: 1
+ - _IridescenceThickness: 1
+ - _LinkDetailsWithBase: 1
+ - _MaterialID: 1
+ - _Metallic: 0
+ - _MetallicRemapMax: 1
+ - _MetallicRemapMin: 0
+ - _NormalMapSpace: 0
+ - _NormalScale: 1
+ - _ObjectSpaceUVMapping: 0
+ - _ObjectSpaceUVMappingEmissive: 0
+ - _OpaqueCullMode: 2
+ - _PPDLodThreshold: 5
+ - _PPDMaxSamples: 15
+ - _PPDMinSamples: 5
+ - _PPDPrimitiveLength: 1
+ - _PPDPrimitiveWidth: 1
+ - _RayTracing: 0
+ - _ReceivesSSR: 1
+ - _ReceivesSSRTransparent: 0
+ - _RefractionModel: 0
+ - _RenderQueueType: 1
+ - _RequireSplitLighting: 0
+ - _Smoothness: 0.5
+ - _SmoothnessRemapMax: 1
+ - _SmoothnessRemapMin: 0
+ - _SpecularAAScreenSpaceVariance: 0.1
+ - _SpecularAAThreshold: 0.2
+ - _SpecularOcclusionMode: 1
+ - _SrcBlend: 1
+ - _StencilRef: 0
+ - _StencilRefDepth: 8
+ - _StencilRefDistortionVec: 4
+ - _StencilRefGBuffer: 10
+ - _StencilRefMV: 40
+ - _StencilWriteMask: 6
+ - _StencilWriteMaskDepth: 9
+ - _StencilWriteMaskDistortionVec: 4
+ - _StencilWriteMaskGBuffer: 15
+ - _StencilWriteMaskMV: 41
+ - _SubsurfaceMask: 1
+ - _SupportDecals: 1
+ - _SurfaceType: 0
+ - _TexWorldScale: 1
+ - _TexWorldScaleEmissive: 1
+ - _Thickness: 1
+ - _TransmissionEnable: 1
+ - _TransmissionMask: 1
+ - _TransparentBackfaceEnable: 0
+ - _TransparentCullMode: 2
+ - _TransparentDepthPostpassEnable: 0
+ - _TransparentDepthPrepassEnable: 0
+ - _TransparentSortPriority: 0
+ - _TransparentWritingMotionVec: 0
+ - _TransparentZWrite: 0
+ - _UVBase: 0
+ - _UVDetail: 0
+ - _UVEmissive: 0
+ - _UseAoMap: 1
+ - _UseColorMap: 1
+ - _UseEmissiveIntensity: 0
+ - _UseEmissiveMap: 1
+ - _UseMetallicMap: 1
+ - _UseNormalMap: 1
+ - _UseRoughnessMap: 1
+ - _UseShadowThreshold: 0
+ - _ZTestDepthEqualForOpaque: 3
+ - _ZTestGBuffer: 4
+ - _ZTestTransparent: 4
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
+ - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
+ - _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Emissive: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
+ - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1}
+ - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0}
+ - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
+ - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
+ - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0}
+ - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1}
+ - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
+ - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}
+ - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0}
+ - _UvOffset: {r: 0, g: 0, b: 0, a: 0}
+ - _UvTiling: {r: 1, g: 1, b: 0, a: 0}
+ m_BuildTextureStacks: []
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat.meta
new file mode 100644
index 00000000..8b5062ac
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 6e58d2a47b548c3469c8456ebd73b518
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/HDRP/AutodeskInteractive.mat
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard.meta
new file mode 100644
index 00000000..51dc6d27
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f69cd564a0c9cd84db2656252c98dae6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat
new file mode 100644
index 00000000..cd941132
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat
@@ -0,0 +1,89 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AutodeskInteractive
+ m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
+ m_ValidKeywords:
+ - _EMISSION
+ - _METALLICGLOSSMAP
+ - _NORMALMAP
+ - _PARALLAXMAP
+ - _SPECGLOSSMAP
+ m_InvalidKeywords: []
+ m_LightmapFlags: 1
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: bd6be82f929b8ee48bb5e0431ee844a1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 2800000, guid: bd6be82f929b8ee48bb5e0431ee844a1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat.meta
new file mode 100644
index 00000000..d1d5e9f8
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 0f4a08f113c500748991e2da7bfe07fe
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.mat
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants
new file mode 100644
index 00000000..057250c4
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants
@@ -0,0 +1,61 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!200 &20000000
+ShaderVariantCollection:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AutodeskInteractive
+ m_Shaders:
+ - first: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON LIGHTMAP_ON
+ LIGHTMAP_SHADOW_MIXING _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON LIGHTMAP_ON
+ _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING
+ LIGHTPROBE_SH _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING
+ _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED LIGHTMAP_ON LIGHTPROBE_SH _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DIRLIGHTMAP_COMBINED LIGHTMAP_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING
+ _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON LIGHTMAP_ON _METALLICGLOSSMAP _NORMALMAP
+ _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP
+ _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING LIGHTPROBE_SH _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON LIGHTPROBE_SH _METALLICGLOSSMAP _NORMALMAP
+ _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP
+ _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTPROBE_SH SHADOWS_SHADOWMASK _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP _SPECGLOSSMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTPROBE_SH _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP
+ _SPECGLOSSMAP
+ passType: 4
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants.meta
new file mode 100644
index 00000000..1106f473
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: cebc2343de9cf0c4e9c64a75823c22f6
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 20000000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/Standard/AutodeskInteractive.shadervariants
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP.meta
new file mode 100644
index 00000000..67402430
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3c5191b4a17ac6d40aac934a8631b432
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat
new file mode 100644
index 00000000..2a37f5a9
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat
@@ -0,0 +1,145 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-5627935563606694300
+MonoBehaviour:
+ m_ObjectHideFlags: 11
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ version: 9
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: AutodeskInteractive
+ m_Shader: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses:
+ - MOTIONVECTORS
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: 14eeb87a1b34eaa4db60b71bcf17bdad, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailAlbedoMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailMask:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _DetailNormalMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _EmissionMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MetallicGlossMap:
+ m_Texture: {fileID: 2800000, guid: bd6be82f929b8ee48bb5e0431ee844a1, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _OcclusionMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _ParallaxMap:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _SpecGlossMap:
+ m_Texture: {fileID: 2800000, guid: e6e4bc18e57a0c042905df7fed60433c, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_Lightmaps:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_LightmapsInd:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - unity_ShadowMasks:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AlphaClip: 0
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
+ - _BumpScale: 1
+ - _ClearCoatMask: 0
+ - _ClearCoatSmoothness: 0
+ - _Cull: 2
+ - _Cutoff: 0.5
+ - _DetailAlbedoMapScale: 1
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _DstBlendAlpha: 0
+ - _EnvironmentReflections: 1
+ - _GlossMapScale: 0
+ - _Glossiness: 0
+ - _GlossyReflections: 0
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.005
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _UseAoMap: 1
+ - _UseColorMap: 1
+ - _UseEmissiveMap: 1
+ - _UseMetallicMap: 1
+ - _UseNormalMap: 1
+ - _UseRoughnessMap: 1
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+ - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ - _UvOffset: {r: 0, g: 0, b: 0, a: 0}
+ - _UvTiling: {r: 1, g: 1, b: 0, a: 0}
+ m_BuildTextureStacks: []
+ m_AllowLocking: 1
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat.meta
new file mode 100644
index 00000000..b03a14e8
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 646d2d81a95a44946a6fbe3fa6a63c51
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Resources/Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive.mat
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes.meta
new file mode 100644
index 00000000..d3f96028
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6cdac0e2c9326a34981656e6ca6b271a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity
new file mode 100644
index 00000000..6f719ee3
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity
@@ -0,0 +1,1001 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.46320033, g: 0.51395684, b: 0.5903558, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 546969407}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &153877214
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 153877216}
+ - component: {fileID: 153877217}
+ m_Layer: 0
+ m_Name: AutodeskInteractiveMateirals
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &153877216
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 153877214}
+ m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
+--- !u!114 &153877217
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 153877214}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b40fa36b296c04d87a7b7dbf922003, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _loadModelButton: {fileID: 1280881142}
+ _progressText: {fileID: 1806920293}
+--- !u!850595691 &546969407
+LightingSettings:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Settings.lighting
+ serializedVersion: 4
+ m_GIWorkflowMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_RealtimeEnvironmentLighting: 1
+ m_BounceScale: 1
+ m_AlbedoBoost: 1
+ m_IndirectOutputScale: 1
+ m_UsingShadowmask: 1
+ m_BakeBackend: 0
+ m_LightmapMaxSize: 1024
+ m_BakeResolution: 40
+ m_Padding: 2
+ m_LightmapCompression: 3
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAO: 0
+ m_MixedBakeMode: 2
+ m_LightmapsBakeMode: 1
+ m_FilterMode: 1
+ m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_RealtimeResolution: 2
+ m_ForceWhiteAlbedo: 0
+ m_ForceUpdates: 0
+ m_FinalGather: 0
+ m_FinalGatherRayCount: 256
+ m_FinalGatherFiltering: 1
+ m_PVRCulling: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_LightProbeSampleCountMultiplier: 4
+ m_PVRBounces: 2
+ m_PVRMinBounces: 2
+ m_PVREnvironmentMIS: 0
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_PVRTiledBaking: 0
+--- !u!1 &809567019
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 809567021}
+ - component: {fileID: 809567020}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &809567020
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 809567019}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &809567021
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 809567019}
+ m_LocalRotation: {x: -0.21949817, y: 0.7567979, z: -0.31347594, w: -0.5299155}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 45, y: 250, z: 0}
+--- !u!1 &1118294650
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1118294651}
+ - component: {fileID: 1118294654}
+ - component: {fileID: 1118294653}
+ - component: {fileID: 1118294652}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1118294651
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1118294650}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1932248235}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 20, y: -20}
+ m_SizeDelta: {x: -20, y: -20}
+ m_Pivot: {x: 0, y: 1}
+--- !u!114 &1118294652
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1118294650}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 1}
+ m_EffectDistance: {x: 1, y: -1}
+ m_UseGraphicAlpha: 1
+--- !u!114 &1118294653
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1118294650}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: This sample loads a model using a custom Material Mapper that creates and
+ populates Autodesk Interactive materials
+--- !u!222 &1118294654
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1118294650}
+ m_CullTransparentMesh: 0
+--- !u!1 &1280881140
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1280881141}
+ - component: {fileID: 1280881144}
+ - component: {fileID: 1280881143}
+ - component: {fileID: 1280881142}
+ m_Layer: 5
+ m_Name: Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1280881141
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1280881140}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1602568267}
+ m_Father: {fileID: 1932248235}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 20, y: -90}
+ m_SizeDelta: {x: 160, y: 30}
+ m_Pivot: {x: 0, y: 1}
+--- !u!114 &1280881142
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1280881140}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1280881143}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 153877217}
+ m_TargetAssemblyTypeName: TriLibCore.Samples.AutodeskInteractiveMaterialsSample,
+ Assembly-CSharp
+ m_MethodName: LoadModel
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1280881143
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1280881140}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1280881144
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1280881140}
+ m_CullTransparentMesh: 0
+--- !u!1 &1602568266
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1602568267}
+ - component: {fileID: 1602568269}
+ - component: {fileID: 1602568268}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1602568267
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1602568266}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1280881141}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1602568268
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1602568266}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Load Model
+
+'
+--- !u!222 &1602568269
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1602568266}
+ m_CullTransparentMesh: 0
+--- !u!1 &1806920290
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1806920291}
+ - component: {fileID: 1806920294}
+ - component: {fileID: 1806920293}
+ - component: {fileID: 1806920292}
+ m_Layer: 5
+ m_Name: Progress
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1806920291
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1806920290}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1932248235}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 20, y: -50}
+ m_SizeDelta: {x: -20, y: -50}
+ m_Pivot: {x: 0, y: 1}
+--- !u!114 &1806920292
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1806920290}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: cfabb0440166ab443bba8876756fdfa9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EffectColor: {r: 0, g: 0, b: 0, a: 1}
+ m_EffectDistance: {x: 1, y: -1}
+ m_UseGraphicAlpha: 1
+--- !u!114 &1806920293
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1806920290}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &1806920294
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1806920290}
+ m_CullTransparentMesh: 0
+--- !u!1 &1813965413
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1813965417}
+ - component: {fileID: 1813965416}
+ - component: {fileID: 1813965415}
+ - component: {fileID: 1813965414}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &1813965414
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1813965413}
+ m_Enabled: 1
+--- !u!124 &1813965415
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1813965413}
+ m_Enabled: 1
+--- !u!20 &1813965416
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1813965413}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.3897059, g: 0.3897059, b: 0.3897059, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.01
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1813965417
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1813965413}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.01, z: -0.05}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1868373955
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1868373958}
+ - component: {fileID: 1868373957}
+ - component: {fileID: 1868373956}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1868373956
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1868373955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &1868373957
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1868373955}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &1868373958
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1868373955}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1932248231
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1932248235}
+ - component: {fileID: 1932248234}
+ - component: {fileID: 1932248233}
+ - component: {fileID: 1932248232}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1932248232
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1932248231}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1932248233
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1932248231}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &1932248234
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1932248231}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1932248235
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1932248231}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1118294651}
+ - {fileID: 1806920291}
+ - {fileID: 1280881141}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity.meta
new file mode 100644
index 00000000..48397100
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 71a589ea5ec973b49aefc069f31a1485
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/AutodeskInteractiveMaterials.unity
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts.meta
new file mode 100644
index 00000000..613b93f7
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 89882057393fef745a756d8152f495f3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs
new file mode 100644
index 00000000..47129317
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs
@@ -0,0 +1,154 @@
+#pragma warning disable 649
+using TriLibCore.Extensions;
+using TriLibCore.Utils;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace TriLibCore.Samples
+{
+ ///
+ /// Demonstrates how to load a 3D model using an OS file picker and apply a custom material mapping for Autodesk Interactive materials.
+ /// This sample creates the if necessary, configures them using
+ /// , and then launches the file picker via
+ /// .
+ ///
+ public class AutodeskInteractiveMaterialsSample : MonoBehaviour
+ {
+ ///
+ /// Holds a reference to the last loaded model GameObject.
+ ///
+ private GameObject _loadedGameObject;
+
+ ///
+ /// Button that triggers the model load action.
+ ///
+ [SerializeField]
+ private Button _loadModelButton;
+
+ ///
+ /// Text element used to indicate the current loading progress.
+ ///
+ [SerializeField]
+ private Text _progressText;
+
+ ///
+ /// Cached instance used for configuring the asset loader.
+ ///
+ private AssetLoaderOptions _assetLoaderOptions;
+
+ ///
+ /// Creates the (if not already available) and displays the OS file-picker
+ /// to select a model file for loading. The method also configures the asset loader to use the Autodesk Interactive
+ /// material mapper.
+ ///
+ ///
+ /// You can create custom by right-clicking in the Assets window and selecting
+ /// "TriLib->Create->AssetLoaderOptions->Pre-Built AssetLoaderOptions".
+ ///
+ public void LoadModel()
+ {
+ if (_assetLoaderOptions == null)
+ {
+ _assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions(false, true);
+ }
+ // Configure the AssetLoaderOptions to use the Autodesk Interactive material mapper.
+ AutodeskInteractiveMaterialsHelper.SetupStatic(ref _assetLoaderOptions);
+
+ // Create an instance of the file picker asset loader and show the file dialog.
+ var assetLoaderFilePicker = AssetLoaderFilePicker.Create();
+ assetLoaderFilePicker.LoadModelFromFilePickerAsync(
+ "Select a Model file",
+ OnLoad,
+ OnMaterialsLoad,
+ OnProgress,
+ OnBeginLoad,
+ OnError,
+ null,
+ _assetLoaderOptions);
+ }
+
+ ///
+ /// Callback executed when the model loading begins.
+ ///
+ ///
+ /// A boolean indicating whether any file was selected.
+ ///
+ private void OnBeginLoad(bool filesSelected)
+ {
+ _loadModelButton.interactable = !filesSelected;
+ _progressText.enabled = filesSelected;
+ }
+
+ ///
+ /// Callback executed if an error occurs during the model loading process.
+ ///
+ ///
+ /// A contextualized error object containing the original exception and additional context.
+ ///
+ private void OnError(IContextualizedError obj)
+ {
+ Debug.LogError($"An error occurred while loading your model: {obj.GetInnerException()}");
+ }
+
+ ///
+ /// Callback executed to update the loading progress UI.
+ ///
+ ///
+ /// The context used to load the model, containing progress information.
+ ///
+ ///
+ /// A float (from 0 to 1) indicating the current progress percentage.
+ ///
+ private void OnProgress(AssetLoaderContext assetLoaderContext, float progress)
+ {
+ _progressText.text = $"Progress: {progress:P}";
+ }
+
+ ///
+ /// Callback executed when the model and its associated resources (e.g., textures, materials)
+ /// have been fully loaded.
+ ///
+ ///
+ /// The fully loaded GameObject is referenced by .
+ ///
+ ///
+ /// The context used for the model loading process.
+ ///
+ private void OnMaterialsLoad(AssetLoaderContext assetLoaderContext)
+ {
+ if (assetLoaderContext.RootGameObject != null)
+ {
+ Debug.Log("Model fully loaded.");
+ }
+ else
+ {
+ Debug.Log("Model could not be loaded.");
+ }
+ _loadModelButton.interactable = true;
+ _progressText.enabled = false;
+ }
+
+ ///
+ /// Callback executed when the model's meshes and hierarchy have been loaded.
+ ///
+ ///
+ /// The loaded GameObject is available in .
+ ///
+ ///
+ /// The context that holds the loaded model data.
+ ///
+ private void OnLoad(AssetLoaderContext assetLoaderContext)
+ {
+ if (_loadedGameObject != null)
+ {
+ Destroy(_loadedGameObject);
+ }
+ _loadedGameObject = assetLoaderContext.RootGameObject;
+ if (_loadedGameObject != null && Camera.main != null)
+ {
+ // Adjust the main camera to fit the bounds of the loaded model.
+ Camera.main.FitToBounds(assetLoaderContext.RootGameObject, 2f);
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs.meta
new file mode 100644
index 00000000..536a5855
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: b0b40fa36b296c04d87a7b7dbf922003
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scenes/Scripts/AutodeskInteractiveMaterialsSample.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts.meta
new file mode 100644
index 00000000..c3048c88
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 26b9e99f04281d34dabdb671500829de
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers.meta
new file mode 100644
index 00000000..51745606
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c9ffdd68d7879ef4fa4dc8ba4fcb0a0d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs
new file mode 100644
index 00000000..c9e76f1b
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections;
+using TriLibCore.General;
+using TriLibCore.Utils;
+using UnityEngine;
+
+namespace TriLibCore.Mappers
+{
+ ///
+ /// A specialized that converts TriLib virtual materials into
+ /// Autodesk Interactive materials. This mapper adjusts the material presets based on the currently
+ /// active render pipeline (HDRP, URP, or Standard), and it forces the use of a Shader Variant Collection.
+ ///
+ [Serializable]
+ [CreateAssetMenu(menuName = "TriLib/Mappers/Material/Autodesk Interactive Standard Material Mapper", fileName = "AutodeskInteractiveStandardMaterialMapper")]
+ public class AutodeskInteractiveStandardMaterialMapper : StandardMaterialMapper
+ {
+ public override bool UseShaderVariantCollection => true;
+
+ public override Material MaterialPreset
+ {
+ get
+ {
+ if (GraphicsSettingsUtils.IsUsingHDRPPipeline)
+ {
+ return Resources.Load("Materials/AutodeskInteractive/HDRP/AutodeskInteractive");
+ }
+ if (GraphicsSettingsUtils.IsUsingUniversalPipeline)
+ {
+ return Resources.Load("Materials/AutodeskInteractive/UniversalRP/AutodeskInteractive");
+ }
+ return Resources.Load("Materials/AutodeskInteractive/Standard/AutodeskInteractive");
+ }
+ }
+
+ public override Material LoadingMaterial => MaterialPreset;
+
+ public override Material CutoutMaterialPreset => MaterialPreset;
+
+ public override Material TransparentComposeMaterialPreset => MaterialPreset;
+
+ public override Material TransparentMaterialPreset => MaterialPreset;
+
+ public override Material MaterialPresetNoMetallicTexture => MaterialPreset;
+
+ public override Material CutoutMaterialPresetNoMetallicTexture => MaterialPreset;
+
+ public override Material TransparentMaterialPresetNoMetallicTexture => MaterialPreset;
+
+ public override Material TransparentComposeMaterialPresetNoMetallicTexture => MaterialPreset;
+
+ public override bool ExtractMetallicAndSmoothness => true;
+
+ public override bool IsCompatible(MaterialMapperContext materialMapperContext)
+ {
+ return (materialMapperContext == null || materialMapperContext.Material?.UsesRoughnessSetup == true);
+ }
+
+ protected override IEnumerable ApplyGlossinessMapTexture(TextureLoadingContext textureLoadingContext)
+ {
+ if (textureLoadingContext.UnityTexture != null)
+ {
+ textureLoadingContext.Context.AddUsedTexture(textureLoadingContext.UnityTexture);
+ }
+ textureLoadingContext.MaterialMapperContext.VirtualMaterial.SetProperty("_SpecGlossMap", textureLoadingContext.UnityTexture, GenericMaterialProperty.MetallicMap);
+ if (textureLoadingContext.UnityTexture != null)
+ {
+ textureLoadingContext.MaterialMapperContext.VirtualMaterial.EnableKeyword("_SPECGLOSSMAP");
+ }
+ else
+ {
+ textureLoadingContext.MaterialMapperContext.VirtualMaterial.DisableKeyword("_SPECGLOSSMAP");
+ }
+ yield break;
+ }
+
+ public override string GetGlossinessOrRoughnessName(MaterialMapperContext materialMapperContext)
+ {
+ return "_Glossiness";
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs.meta
new file mode 100644
index 00000000..703f4cac
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 8a36de450874dc54ab06925948b58455
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Mappers/AutodeskInteractiveStandardMaterialMapper.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils.meta
new file mode 100644
index 00000000..bbabee79
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eb2dab806630a7d43a4af52555ec4bf9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs
new file mode 100644
index 00000000..116179c2
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs
@@ -0,0 +1,77 @@
+using TriLibCore.Mappers;
+using UnityEngine;
+
+namespace TriLibCore.Utils
+{
+ ///
+ /// Provides helper methods to configure an instance
+ /// with the , ensuring correct
+ /// interpretation and rendering of Autodesk Interactive materials.
+ ///
+ [CreateAssetMenu(
+ menuName = "TriLib/MaterialsHelper/Autodesk Interactive Materials Helper",
+ fileName = "AutodeskInteractiveMaterialsHelper")]
+ public class AutodeskInteractiveMaterialsHelper : MaterialsHelper
+ {
+ ///
+ /// A static convenience method to create a temporary instance of
+ /// and call
+ /// on the provided
+ /// .
+ ///
+ ///
+ /// A reference to an existing . If null,
+ /// a default loader options object is created before applying the Autodesk Interactive settings.
+ ///
+ public static void SetupStatic(ref AssetLoaderOptions assetLoaderOptions)
+ {
+ CreateInstance().Setup(ref assetLoaderOptions);
+ }
+
+ ///
+ /// Configures the specified to use
+ /// the , adding it to the list
+ /// of instances. This method also adjusts certain
+ /// properties of to better handle
+ /// Autodesk Interactive material data (e.g., allowing displacement textures).
+ ///
+ ///
+ /// A reference to the object being configured.
+ /// If null, a default instance is created automatically.
+ ///
+ public override void Setup(ref AssetLoaderOptions assetLoaderOptions)
+ {
+ var autodeskInteractiveMaterialMapper =
+ ScriptableObject.CreateInstance();
+
+ if (autodeskInteractiveMaterialMapper != null)
+ {
+ // Ensure a valid AssetLoaderOptions instance exists
+ if (assetLoaderOptions == null)
+ {
+ assetLoaderOptions = AssetLoader.CreateDefaultLoaderOptions();
+ }
+
+ // Append the Autodesk interactive material mapper
+ if (assetLoaderOptions.MaterialMappers == null)
+ {
+ assetLoaderOptions.MaterialMappers =
+ new MaterialMapper[] { autodeskInteractiveMaterialMapper };
+ }
+ else
+ {
+ ArrayUtils.Add(ref assetLoaderOptions.MaterialMappers, autodeskInteractiveMaterialMapper);
+ }
+
+ // Configure additional asset loader settings for Autodesk Interactive usage
+ assetLoaderOptions.CreateMaterialsForAllModels = true;
+ assetLoaderOptions.SetUnusedTexturePropertiesToNull = false;
+ assetLoaderOptions.ConvertMaterialTextures = false;
+ assetLoaderOptions.LoadDisplacementTextures = true;
+
+ // Set the mapper’s checking order to prioritize or arrange it among other mappers
+ autodeskInteractiveMaterialMapper.CheckingOrder = 1;
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs.meta
new file mode 100644
index 00000000..3aef801f
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 6e76fe25aa96cda4e8867eec833228d9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibAutodeskInteractiveMaterials/Scripts/Utils/AutodeskInteractiveMaterialsHelper.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer.meta
new file mode 100644
index 00000000..01341427
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4a426137d7d7d144e8f970404d056193
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources.meta
new file mode 100644
index 00000000..1c1a693a
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3ef2ed5aa2786c847b19223010f3ac11
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers.meta
new file mode 100644
index 00000000..176aeaa9
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d2c3a993d1b4c0a4dbabf0a4705972f5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset
new file mode 100644
index 00000000..9c219cfc
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset
@@ -0,0 +1,14 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ecaea67d88087cb4f917bf27fdd0ebd3, type: 3}
+ m_Name: BlendShapePlayerMapper
+ m_EditorClassIdentifier:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset.meta
new file mode 100644
index 00000000..20e89ea7
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 6b92146696a47e4498f63887f335eb88
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Resources/Mappers/BlendShapePlayerMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts.meta
new file mode 100644
index 00000000..ba2299ac
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c6f76603bc4e6724d91f4bb4f74e49a6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs
new file mode 100644
index 00000000..d214d6c1
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs
@@ -0,0 +1,18562 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using TriLibCore.Geometries;
+using TriLibCore.Interfaces;
+using Unity.Collections;
+using Unity.Jobs;
+using UnityEngine;
+
+namespace TriLibCore.BlendShapePlayer
+{
+ ///
+ /// This script represents a system used to set up an efficient Blend Shape player.
+ ///
+ public class BlendShapePlayer : MonoBehaviour
+ {
+ private const int MaxBlendShapes = 2048;
+
+ #region animatable fields
+ [HideInInspector]
+ public float Shape0;
+ [HideInInspector]
+ public float Shape1;
+ [HideInInspector]
+ public float Shape2;
+ [HideInInspector]
+ public float Shape3;
+ [HideInInspector]
+ public float Shape4;
+ [HideInInspector]
+ public float Shape5;
+ [HideInInspector]
+ public float Shape6;
+ [HideInInspector]
+ public float Shape7;
+ [HideInInspector]
+ public float Shape8;
+ [HideInInspector]
+ public float Shape9;
+ [HideInInspector]
+ public float Shape10;
+ [HideInInspector]
+ public float Shape11;
+ [HideInInspector]
+ public float Shape12;
+ [HideInInspector]
+ public float Shape13;
+ [HideInInspector]
+ public float Shape14;
+ [HideInInspector]
+ public float Shape15;
+ [HideInInspector]
+ public float Shape16;
+ [HideInInspector]
+ public float Shape17;
+ [HideInInspector]
+ public float Shape18;
+ [HideInInspector]
+ public float Shape19;
+ [HideInInspector]
+ public float Shape20;
+ [HideInInspector]
+ public float Shape21;
+ [HideInInspector]
+ public float Shape22;
+ [HideInInspector]
+ public float Shape23;
+ [HideInInspector]
+ public float Shape24;
+ [HideInInspector]
+ public float Shape25;
+ [HideInInspector]
+ public float Shape26;
+ [HideInInspector]
+ public float Shape27;
+ [HideInInspector]
+ public float Shape28;
+ [HideInInspector]
+ public float Shape29;
+ [HideInInspector]
+ public float Shape30;
+ [HideInInspector]
+ public float Shape31;
+ [HideInInspector]
+ public float Shape32;
+ [HideInInspector]
+ public float Shape33;
+ [HideInInspector]
+ public float Shape34;
+ [HideInInspector]
+ public float Shape35;
+ [HideInInspector]
+ public float Shape36;
+ [HideInInspector]
+ public float Shape37;
+ [HideInInspector]
+ public float Shape38;
+ [HideInInspector]
+ public float Shape39;
+ [HideInInspector]
+ public float Shape40;
+ [HideInInspector]
+ public float Shape41;
+ [HideInInspector]
+ public float Shape42;
+ [HideInInspector]
+ public float Shape43;
+ [HideInInspector]
+ public float Shape44;
+ [HideInInspector]
+ public float Shape45;
+ [HideInInspector]
+ public float Shape46;
+ [HideInInspector]
+ public float Shape47;
+ [HideInInspector]
+ public float Shape48;
+ [HideInInspector]
+ public float Shape49;
+ [HideInInspector]
+ public float Shape50;
+ [HideInInspector]
+ public float Shape51;
+ [HideInInspector]
+ public float Shape52;
+ [HideInInspector]
+ public float Shape53;
+ [HideInInspector]
+ public float Shape54;
+ [HideInInspector]
+ public float Shape55;
+ [HideInInspector]
+ public float Shape56;
+ [HideInInspector]
+ public float Shape57;
+ [HideInInspector]
+ public float Shape58;
+ [HideInInspector]
+ public float Shape59;
+ [HideInInspector]
+ public float Shape60;
+ [HideInInspector]
+ public float Shape61;
+ [HideInInspector]
+ public float Shape62;
+ [HideInInspector]
+ public float Shape63;
+ [HideInInspector]
+ public float Shape64;
+ [HideInInspector]
+ public float Shape65;
+ [HideInInspector]
+ public float Shape66;
+ [HideInInspector]
+ public float Shape67;
+ [HideInInspector]
+ public float Shape68;
+ [HideInInspector]
+ public float Shape69;
+ [HideInInspector]
+ public float Shape70;
+ [HideInInspector]
+ public float Shape71;
+ [HideInInspector]
+ public float Shape72;
+ [HideInInspector]
+ public float Shape73;
+ [HideInInspector]
+ public float Shape74;
+ [HideInInspector]
+ public float Shape75;
+ [HideInInspector]
+ public float Shape76;
+ [HideInInspector]
+ public float Shape77;
+ [HideInInspector]
+ public float Shape78;
+ [HideInInspector]
+ public float Shape79;
+ [HideInInspector]
+ public float Shape80;
+ [HideInInspector]
+ public float Shape81;
+ [HideInInspector]
+ public float Shape82;
+ [HideInInspector]
+ public float Shape83;
+ [HideInInspector]
+ public float Shape84;
+ [HideInInspector]
+ public float Shape85;
+ [HideInInspector]
+ public float Shape86;
+ [HideInInspector]
+ public float Shape87;
+ [HideInInspector]
+ public float Shape88;
+ [HideInInspector]
+ public float Shape89;
+ [HideInInspector]
+ public float Shape90;
+ [HideInInspector]
+ public float Shape91;
+ [HideInInspector]
+ public float Shape92;
+ [HideInInspector]
+ public float Shape93;
+ [HideInInspector]
+ public float Shape94;
+ [HideInInspector]
+ public float Shape95;
+ [HideInInspector]
+ public float Shape96;
+ [HideInInspector]
+ public float Shape97;
+ [HideInInspector]
+ public float Shape98;
+ [HideInInspector]
+ public float Shape99;
+ [HideInInspector]
+ public float Shape100;
+ [HideInInspector]
+ public float Shape101;
+ [HideInInspector]
+ public float Shape102;
+ [HideInInspector]
+ public float Shape103;
+ [HideInInspector]
+ public float Shape104;
+ [HideInInspector]
+ public float Shape105;
+ [HideInInspector]
+ public float Shape106;
+ [HideInInspector]
+ public float Shape107;
+ [HideInInspector]
+ public float Shape108;
+ [HideInInspector]
+ public float Shape109;
+ [HideInInspector]
+ public float Shape110;
+ [HideInInspector]
+ public float Shape111;
+ [HideInInspector]
+ public float Shape112;
+ [HideInInspector]
+ public float Shape113;
+ [HideInInspector]
+ public float Shape114;
+ [HideInInspector]
+ public float Shape115;
+ [HideInInspector]
+ public float Shape116;
+ [HideInInspector]
+ public float Shape117;
+ [HideInInspector]
+ public float Shape118;
+ [HideInInspector]
+ public float Shape119;
+ [HideInInspector]
+ public float Shape120;
+ [HideInInspector]
+ public float Shape121;
+ [HideInInspector]
+ public float Shape122;
+ [HideInInspector]
+ public float Shape123;
+ [HideInInspector]
+ public float Shape124;
+ [HideInInspector]
+ public float Shape125;
+ [HideInInspector]
+ public float Shape126;
+ [HideInInspector]
+ public float Shape127;
+ [HideInInspector]
+ public float Shape128;
+ [HideInInspector]
+ public float Shape129;
+ [HideInInspector]
+ public float Shape130;
+ [HideInInspector]
+ public float Shape131;
+ [HideInInspector]
+ public float Shape132;
+ [HideInInspector]
+ public float Shape133;
+ [HideInInspector]
+ public float Shape134;
+ [HideInInspector]
+ public float Shape135;
+ [HideInInspector]
+ public float Shape136;
+ [HideInInspector]
+ public float Shape137;
+ [HideInInspector]
+ public float Shape138;
+ [HideInInspector]
+ public float Shape139;
+ [HideInInspector]
+ public float Shape140;
+ [HideInInspector]
+ public float Shape141;
+ [HideInInspector]
+ public float Shape142;
+ [HideInInspector]
+ public float Shape143;
+ [HideInInspector]
+ public float Shape144;
+ [HideInInspector]
+ public float Shape145;
+ [HideInInspector]
+ public float Shape146;
+ [HideInInspector]
+ public float Shape147;
+ [HideInInspector]
+ public float Shape148;
+ [HideInInspector]
+ public float Shape149;
+ [HideInInspector]
+ public float Shape150;
+ [HideInInspector]
+ public float Shape151;
+ [HideInInspector]
+ public float Shape152;
+ [HideInInspector]
+ public float Shape153;
+ [HideInInspector]
+ public float Shape154;
+ [HideInInspector]
+ public float Shape155;
+ [HideInInspector]
+ public float Shape156;
+ [HideInInspector]
+ public float Shape157;
+ [HideInInspector]
+ public float Shape158;
+ [HideInInspector]
+ public float Shape159;
+ [HideInInspector]
+ public float Shape160;
+ [HideInInspector]
+ public float Shape161;
+ [HideInInspector]
+ public float Shape162;
+ [HideInInspector]
+ public float Shape163;
+ [HideInInspector]
+ public float Shape164;
+ [HideInInspector]
+ public float Shape165;
+ [HideInInspector]
+ public float Shape166;
+ [HideInInspector]
+ public float Shape167;
+ [HideInInspector]
+ public float Shape168;
+ [HideInInspector]
+ public float Shape169;
+ [HideInInspector]
+ public float Shape170;
+ [HideInInspector]
+ public float Shape171;
+ [HideInInspector]
+ public float Shape172;
+ [HideInInspector]
+ public float Shape173;
+ [HideInInspector]
+ public float Shape174;
+ [HideInInspector]
+ public float Shape175;
+ [HideInInspector]
+ public float Shape176;
+ [HideInInspector]
+ public float Shape177;
+ [HideInInspector]
+ public float Shape178;
+ [HideInInspector]
+ public float Shape179;
+ [HideInInspector]
+ public float Shape180;
+ [HideInInspector]
+ public float Shape181;
+ [HideInInspector]
+ public float Shape182;
+ [HideInInspector]
+ public float Shape183;
+ [HideInInspector]
+ public float Shape184;
+ [HideInInspector]
+ public float Shape185;
+ [HideInInspector]
+ public float Shape186;
+ [HideInInspector]
+ public float Shape187;
+ [HideInInspector]
+ public float Shape188;
+ [HideInInspector]
+ public float Shape189;
+ [HideInInspector]
+ public float Shape190;
+ [HideInInspector]
+ public float Shape191;
+ [HideInInspector]
+ public float Shape192;
+ [HideInInspector]
+ public float Shape193;
+ [HideInInspector]
+ public float Shape194;
+ [HideInInspector]
+ public float Shape195;
+ [HideInInspector]
+ public float Shape196;
+ [HideInInspector]
+ public float Shape197;
+ [HideInInspector]
+ public float Shape198;
+ [HideInInspector]
+ public float Shape199;
+ [HideInInspector]
+ public float Shape200;
+ [HideInInspector]
+ public float Shape201;
+ [HideInInspector]
+ public float Shape202;
+ [HideInInspector]
+ public float Shape203;
+ [HideInInspector]
+ public float Shape204;
+ [HideInInspector]
+ public float Shape205;
+ [HideInInspector]
+ public float Shape206;
+ [HideInInspector]
+ public float Shape207;
+ [HideInInspector]
+ public float Shape208;
+ [HideInInspector]
+ public float Shape209;
+ [HideInInspector]
+ public float Shape210;
+ [HideInInspector]
+ public float Shape211;
+ [HideInInspector]
+ public float Shape212;
+ [HideInInspector]
+ public float Shape213;
+ [HideInInspector]
+ public float Shape214;
+ [HideInInspector]
+ public float Shape215;
+ [HideInInspector]
+ public float Shape216;
+ [HideInInspector]
+ public float Shape217;
+ [HideInInspector]
+ public float Shape218;
+ [HideInInspector]
+ public float Shape219;
+ [HideInInspector]
+ public float Shape220;
+ [HideInInspector]
+ public float Shape221;
+ [HideInInspector]
+ public float Shape222;
+ [HideInInspector]
+ public float Shape223;
+ [HideInInspector]
+ public float Shape224;
+ [HideInInspector]
+ public float Shape225;
+ [HideInInspector]
+ public float Shape226;
+ [HideInInspector]
+ public float Shape227;
+ [HideInInspector]
+ public float Shape228;
+ [HideInInspector]
+ public float Shape229;
+ [HideInInspector]
+ public float Shape230;
+ [HideInInspector]
+ public float Shape231;
+ [HideInInspector]
+ public float Shape232;
+ [HideInInspector]
+ public float Shape233;
+ [HideInInspector]
+ public float Shape234;
+ [HideInInspector]
+ public float Shape235;
+ [HideInInspector]
+ public float Shape236;
+ [HideInInspector]
+ public float Shape237;
+ [HideInInspector]
+ public float Shape238;
+ [HideInInspector]
+ public float Shape239;
+ [HideInInspector]
+ public float Shape240;
+ [HideInInspector]
+ public float Shape241;
+ [HideInInspector]
+ public float Shape242;
+ [HideInInspector]
+ public float Shape243;
+ [HideInInspector]
+ public float Shape244;
+ [HideInInspector]
+ public float Shape245;
+ [HideInInspector]
+ public float Shape246;
+ [HideInInspector]
+ public float Shape247;
+ [HideInInspector]
+ public float Shape248;
+ [HideInInspector]
+ public float Shape249;
+ [HideInInspector]
+ public float Shape250;
+ [HideInInspector]
+ public float Shape251;
+ [HideInInspector]
+ public float Shape252;
+ [HideInInspector]
+ public float Shape253;
+ [HideInInspector]
+ public float Shape254;
+ [HideInInspector]
+ public float Shape255;
+ [HideInInspector]
+ public float Shape256;
+ [HideInInspector]
+ public float Shape257;
+ [HideInInspector]
+ public float Shape258;
+ [HideInInspector]
+ public float Shape259;
+ [HideInInspector]
+ public float Shape260;
+ [HideInInspector]
+ public float Shape261;
+ [HideInInspector]
+ public float Shape262;
+ [HideInInspector]
+ public float Shape263;
+ [HideInInspector]
+ public float Shape264;
+ [HideInInspector]
+ public float Shape265;
+ [HideInInspector]
+ public float Shape266;
+ [HideInInspector]
+ public float Shape267;
+ [HideInInspector]
+ public float Shape268;
+ [HideInInspector]
+ public float Shape269;
+ [HideInInspector]
+ public float Shape270;
+ [HideInInspector]
+ public float Shape271;
+ [HideInInspector]
+ public float Shape272;
+ [HideInInspector]
+ public float Shape273;
+ [HideInInspector]
+ public float Shape274;
+ [HideInInspector]
+ public float Shape275;
+ [HideInInspector]
+ public float Shape276;
+ [HideInInspector]
+ public float Shape277;
+ [HideInInspector]
+ public float Shape278;
+ [HideInInspector]
+ public float Shape279;
+ [HideInInspector]
+ public float Shape280;
+ [HideInInspector]
+ public float Shape281;
+ [HideInInspector]
+ public float Shape282;
+ [HideInInspector]
+ public float Shape283;
+ [HideInInspector]
+ public float Shape284;
+ [HideInInspector]
+ public float Shape285;
+ [HideInInspector]
+ public float Shape286;
+ [HideInInspector]
+ public float Shape287;
+ [HideInInspector]
+ public float Shape288;
+ [HideInInspector]
+ public float Shape289;
+ [HideInInspector]
+ public float Shape290;
+ [HideInInspector]
+ public float Shape291;
+ [HideInInspector]
+ public float Shape292;
+ [HideInInspector]
+ public float Shape293;
+ [HideInInspector]
+ public float Shape294;
+ [HideInInspector]
+ public float Shape295;
+ [HideInInspector]
+ public float Shape296;
+ [HideInInspector]
+ public float Shape297;
+ [HideInInspector]
+ public float Shape298;
+ [HideInInspector]
+ public float Shape299;
+ [HideInInspector]
+ public float Shape300;
+ [HideInInspector]
+ public float Shape301;
+ [HideInInspector]
+ public float Shape302;
+ [HideInInspector]
+ public float Shape303;
+ [HideInInspector]
+ public float Shape304;
+ [HideInInspector]
+ public float Shape305;
+ [HideInInspector]
+ public float Shape306;
+ [HideInInspector]
+ public float Shape307;
+ [HideInInspector]
+ public float Shape308;
+ [HideInInspector]
+ public float Shape309;
+ [HideInInspector]
+ public float Shape310;
+ [HideInInspector]
+ public float Shape311;
+ [HideInInspector]
+ public float Shape312;
+ [HideInInspector]
+ public float Shape313;
+ [HideInInspector]
+ public float Shape314;
+ [HideInInspector]
+ public float Shape315;
+ [HideInInspector]
+ public float Shape316;
+ [HideInInspector]
+ public float Shape317;
+ [HideInInspector]
+ public float Shape318;
+ [HideInInspector]
+ public float Shape319;
+ [HideInInspector]
+ public float Shape320;
+ [HideInInspector]
+ public float Shape321;
+ [HideInInspector]
+ public float Shape322;
+ [HideInInspector]
+ public float Shape323;
+ [HideInInspector]
+ public float Shape324;
+ [HideInInspector]
+ public float Shape325;
+ [HideInInspector]
+ public float Shape326;
+ [HideInInspector]
+ public float Shape327;
+ [HideInInspector]
+ public float Shape328;
+ [HideInInspector]
+ public float Shape329;
+ [HideInInspector]
+ public float Shape330;
+ [HideInInspector]
+ public float Shape331;
+ [HideInInspector]
+ public float Shape332;
+ [HideInInspector]
+ public float Shape333;
+ [HideInInspector]
+ public float Shape334;
+ [HideInInspector]
+ public float Shape335;
+ [HideInInspector]
+ public float Shape336;
+ [HideInInspector]
+ public float Shape337;
+ [HideInInspector]
+ public float Shape338;
+ [HideInInspector]
+ public float Shape339;
+ [HideInInspector]
+ public float Shape340;
+ [HideInInspector]
+ public float Shape341;
+ [HideInInspector]
+ public float Shape342;
+ [HideInInspector]
+ public float Shape343;
+ [HideInInspector]
+ public float Shape344;
+ [HideInInspector]
+ public float Shape345;
+ [HideInInspector]
+ public float Shape346;
+ [HideInInspector]
+ public float Shape347;
+ [HideInInspector]
+ public float Shape348;
+ [HideInInspector]
+ public float Shape349;
+ [HideInInspector]
+ public float Shape350;
+ [HideInInspector]
+ public float Shape351;
+ [HideInInspector]
+ public float Shape352;
+ [HideInInspector]
+ public float Shape353;
+ [HideInInspector]
+ public float Shape354;
+ [HideInInspector]
+ public float Shape355;
+ [HideInInspector]
+ public float Shape356;
+ [HideInInspector]
+ public float Shape357;
+ [HideInInspector]
+ public float Shape358;
+ [HideInInspector]
+ public float Shape359;
+ [HideInInspector]
+ public float Shape360;
+ [HideInInspector]
+ public float Shape361;
+ [HideInInspector]
+ public float Shape362;
+ [HideInInspector]
+ public float Shape363;
+ [HideInInspector]
+ public float Shape364;
+ [HideInInspector]
+ public float Shape365;
+ [HideInInspector]
+ public float Shape366;
+ [HideInInspector]
+ public float Shape367;
+ [HideInInspector]
+ public float Shape368;
+ [HideInInspector]
+ public float Shape369;
+ [HideInInspector]
+ public float Shape370;
+ [HideInInspector]
+ public float Shape371;
+ [HideInInspector]
+ public float Shape372;
+ [HideInInspector]
+ public float Shape373;
+ [HideInInspector]
+ public float Shape374;
+ [HideInInspector]
+ public float Shape375;
+ [HideInInspector]
+ public float Shape376;
+ [HideInInspector]
+ public float Shape377;
+ [HideInInspector]
+ public float Shape378;
+ [HideInInspector]
+ public float Shape379;
+ [HideInInspector]
+ public float Shape380;
+ [HideInInspector]
+ public float Shape381;
+ [HideInInspector]
+ public float Shape382;
+ [HideInInspector]
+ public float Shape383;
+ [HideInInspector]
+ public float Shape384;
+ [HideInInspector]
+ public float Shape385;
+ [HideInInspector]
+ public float Shape386;
+ [HideInInspector]
+ public float Shape387;
+ [HideInInspector]
+ public float Shape388;
+ [HideInInspector]
+ public float Shape389;
+ [HideInInspector]
+ public float Shape390;
+ [HideInInspector]
+ public float Shape391;
+ [HideInInspector]
+ public float Shape392;
+ [HideInInspector]
+ public float Shape393;
+ [HideInInspector]
+ public float Shape394;
+ [HideInInspector]
+ public float Shape395;
+ [HideInInspector]
+ public float Shape396;
+ [HideInInspector]
+ public float Shape397;
+ [HideInInspector]
+ public float Shape398;
+ [HideInInspector]
+ public float Shape399;
+ [HideInInspector]
+ public float Shape400;
+ [HideInInspector]
+ public float Shape401;
+ [HideInInspector]
+ public float Shape402;
+ [HideInInspector]
+ public float Shape403;
+ [HideInInspector]
+ public float Shape404;
+ [HideInInspector]
+ public float Shape405;
+ [HideInInspector]
+ public float Shape406;
+ [HideInInspector]
+ public float Shape407;
+ [HideInInspector]
+ public float Shape408;
+ [HideInInspector]
+ public float Shape409;
+ [HideInInspector]
+ public float Shape410;
+ [HideInInspector]
+ public float Shape411;
+ [HideInInspector]
+ public float Shape412;
+ [HideInInspector]
+ public float Shape413;
+ [HideInInspector]
+ public float Shape414;
+ [HideInInspector]
+ public float Shape415;
+ [HideInInspector]
+ public float Shape416;
+ [HideInInspector]
+ public float Shape417;
+ [HideInInspector]
+ public float Shape418;
+ [HideInInspector]
+ public float Shape419;
+ [HideInInspector]
+ public float Shape420;
+ [HideInInspector]
+ public float Shape421;
+ [HideInInspector]
+ public float Shape422;
+ [HideInInspector]
+ public float Shape423;
+ [HideInInspector]
+ public float Shape424;
+ [HideInInspector]
+ public float Shape425;
+ [HideInInspector]
+ public float Shape426;
+ [HideInInspector]
+ public float Shape427;
+ [HideInInspector]
+ public float Shape428;
+ [HideInInspector]
+ public float Shape429;
+ [HideInInspector]
+ public float Shape430;
+ [HideInInspector]
+ public float Shape431;
+ [HideInInspector]
+ public float Shape432;
+ [HideInInspector]
+ public float Shape433;
+ [HideInInspector]
+ public float Shape434;
+ [HideInInspector]
+ public float Shape435;
+ [HideInInspector]
+ public float Shape436;
+ [HideInInspector]
+ public float Shape437;
+ [HideInInspector]
+ public float Shape438;
+ [HideInInspector]
+ public float Shape439;
+ [HideInInspector]
+ public float Shape440;
+ [HideInInspector]
+ public float Shape441;
+ [HideInInspector]
+ public float Shape442;
+ [HideInInspector]
+ public float Shape443;
+ [HideInInspector]
+ public float Shape444;
+ [HideInInspector]
+ public float Shape445;
+ [HideInInspector]
+ public float Shape446;
+ [HideInInspector]
+ public float Shape447;
+ [HideInInspector]
+ public float Shape448;
+ [HideInInspector]
+ public float Shape449;
+ [HideInInspector]
+ public float Shape450;
+ [HideInInspector]
+ public float Shape451;
+ [HideInInspector]
+ public float Shape452;
+ [HideInInspector]
+ public float Shape453;
+ [HideInInspector]
+ public float Shape454;
+ [HideInInspector]
+ public float Shape455;
+ [HideInInspector]
+ public float Shape456;
+ [HideInInspector]
+ public float Shape457;
+ [HideInInspector]
+ public float Shape458;
+ [HideInInspector]
+ public float Shape459;
+ [HideInInspector]
+ public float Shape460;
+ [HideInInspector]
+ public float Shape461;
+ [HideInInspector]
+ public float Shape462;
+ [HideInInspector]
+ public float Shape463;
+ [HideInInspector]
+ public float Shape464;
+ [HideInInspector]
+ public float Shape465;
+ [HideInInspector]
+ public float Shape466;
+ [HideInInspector]
+ public float Shape467;
+ [HideInInspector]
+ public float Shape468;
+ [HideInInspector]
+ public float Shape469;
+ [HideInInspector]
+ public float Shape470;
+ [HideInInspector]
+ public float Shape471;
+ [HideInInspector]
+ public float Shape472;
+ [HideInInspector]
+ public float Shape473;
+ [HideInInspector]
+ public float Shape474;
+ [HideInInspector]
+ public float Shape475;
+ [HideInInspector]
+ public float Shape476;
+ [HideInInspector]
+ public float Shape477;
+ [HideInInspector]
+ public float Shape478;
+ [HideInInspector]
+ public float Shape479;
+ [HideInInspector]
+ public float Shape480;
+ [HideInInspector]
+ public float Shape481;
+ [HideInInspector]
+ public float Shape482;
+ [HideInInspector]
+ public float Shape483;
+ [HideInInspector]
+ public float Shape484;
+ [HideInInspector]
+ public float Shape485;
+ [HideInInspector]
+ public float Shape486;
+ [HideInInspector]
+ public float Shape487;
+ [HideInInspector]
+ public float Shape488;
+ [HideInInspector]
+ public float Shape489;
+ [HideInInspector]
+ public float Shape490;
+ [HideInInspector]
+ public float Shape491;
+ [HideInInspector]
+ public float Shape492;
+ [HideInInspector]
+ public float Shape493;
+ [HideInInspector]
+ public float Shape494;
+ [HideInInspector]
+ public float Shape495;
+ [HideInInspector]
+ public float Shape496;
+ [HideInInspector]
+ public float Shape497;
+ [HideInInspector]
+ public float Shape498;
+ [HideInInspector]
+ public float Shape499;
+ [HideInInspector]
+ public float Shape500;
+ [HideInInspector]
+ public float Shape501;
+ [HideInInspector]
+ public float Shape502;
+ [HideInInspector]
+ public float Shape503;
+ [HideInInspector]
+ public float Shape504;
+ [HideInInspector]
+ public float Shape505;
+ [HideInInspector]
+ public float Shape506;
+ [HideInInspector]
+ public float Shape507;
+ [HideInInspector]
+ public float Shape508;
+ [HideInInspector]
+ public float Shape509;
+ [HideInInspector]
+ public float Shape510;
+ [HideInInspector]
+ public float Shape511;
+ [HideInInspector]
+ public float Shape512;
+ [HideInInspector]
+ public float Shape513;
+ [HideInInspector]
+ public float Shape514;
+ [HideInInspector]
+ public float Shape515;
+ [HideInInspector]
+ public float Shape516;
+ [HideInInspector]
+ public float Shape517;
+ [HideInInspector]
+ public float Shape518;
+ [HideInInspector]
+ public float Shape519;
+ [HideInInspector]
+ public float Shape520;
+ [HideInInspector]
+ public float Shape521;
+ [HideInInspector]
+ public float Shape522;
+ [HideInInspector]
+ public float Shape523;
+ [HideInInspector]
+ public float Shape524;
+ [HideInInspector]
+ public float Shape525;
+ [HideInInspector]
+ public float Shape526;
+ [HideInInspector]
+ public float Shape527;
+ [HideInInspector]
+ public float Shape528;
+ [HideInInspector]
+ public float Shape529;
+ [HideInInspector]
+ public float Shape530;
+ [HideInInspector]
+ public float Shape531;
+ [HideInInspector]
+ public float Shape532;
+ [HideInInspector]
+ public float Shape533;
+ [HideInInspector]
+ public float Shape534;
+ [HideInInspector]
+ public float Shape535;
+ [HideInInspector]
+ public float Shape536;
+ [HideInInspector]
+ public float Shape537;
+ [HideInInspector]
+ public float Shape538;
+ [HideInInspector]
+ public float Shape539;
+ [HideInInspector]
+ public float Shape540;
+ [HideInInspector]
+ public float Shape541;
+ [HideInInspector]
+ public float Shape542;
+ [HideInInspector]
+ public float Shape543;
+ [HideInInspector]
+ public float Shape544;
+ [HideInInspector]
+ public float Shape545;
+ [HideInInspector]
+ public float Shape546;
+ [HideInInspector]
+ public float Shape547;
+ [HideInInspector]
+ public float Shape548;
+ [HideInInspector]
+ public float Shape549;
+ [HideInInspector]
+ public float Shape550;
+ [HideInInspector]
+ public float Shape551;
+ [HideInInspector]
+ public float Shape552;
+ [HideInInspector]
+ public float Shape553;
+ [HideInInspector]
+ public float Shape554;
+ [HideInInspector]
+ public float Shape555;
+ [HideInInspector]
+ public float Shape556;
+ [HideInInspector]
+ public float Shape557;
+ [HideInInspector]
+ public float Shape558;
+ [HideInInspector]
+ public float Shape559;
+ [HideInInspector]
+ public float Shape560;
+ [HideInInspector]
+ public float Shape561;
+ [HideInInspector]
+ public float Shape562;
+ [HideInInspector]
+ public float Shape563;
+ [HideInInspector]
+ public float Shape564;
+ [HideInInspector]
+ public float Shape565;
+ [HideInInspector]
+ public float Shape566;
+ [HideInInspector]
+ public float Shape567;
+ [HideInInspector]
+ public float Shape568;
+ [HideInInspector]
+ public float Shape569;
+ [HideInInspector]
+ public float Shape570;
+ [HideInInspector]
+ public float Shape571;
+ [HideInInspector]
+ public float Shape572;
+ [HideInInspector]
+ public float Shape573;
+ [HideInInspector]
+ public float Shape574;
+ [HideInInspector]
+ public float Shape575;
+ [HideInInspector]
+ public float Shape576;
+ [HideInInspector]
+ public float Shape577;
+ [HideInInspector]
+ public float Shape578;
+ [HideInInspector]
+ public float Shape579;
+ [HideInInspector]
+ public float Shape580;
+ [HideInInspector]
+ public float Shape581;
+ [HideInInspector]
+ public float Shape582;
+ [HideInInspector]
+ public float Shape583;
+ [HideInInspector]
+ public float Shape584;
+ [HideInInspector]
+ public float Shape585;
+ [HideInInspector]
+ public float Shape586;
+ [HideInInspector]
+ public float Shape587;
+ [HideInInspector]
+ public float Shape588;
+ [HideInInspector]
+ public float Shape589;
+ [HideInInspector]
+ public float Shape590;
+ [HideInInspector]
+ public float Shape591;
+ [HideInInspector]
+ public float Shape592;
+ [HideInInspector]
+ public float Shape593;
+ [HideInInspector]
+ public float Shape594;
+ [HideInInspector]
+ public float Shape595;
+ [HideInInspector]
+ public float Shape596;
+ [HideInInspector]
+ public float Shape597;
+ [HideInInspector]
+ public float Shape598;
+ [HideInInspector]
+ public float Shape599;
+ [HideInInspector]
+ public float Shape600;
+ [HideInInspector]
+ public float Shape601;
+ [HideInInspector]
+ public float Shape602;
+ [HideInInspector]
+ public float Shape603;
+ [HideInInspector]
+ public float Shape604;
+ [HideInInspector]
+ public float Shape605;
+ [HideInInspector]
+ public float Shape606;
+ [HideInInspector]
+ public float Shape607;
+ [HideInInspector]
+ public float Shape608;
+ [HideInInspector]
+ public float Shape609;
+ [HideInInspector]
+ public float Shape610;
+ [HideInInspector]
+ public float Shape611;
+ [HideInInspector]
+ public float Shape612;
+ [HideInInspector]
+ public float Shape613;
+ [HideInInspector]
+ public float Shape614;
+ [HideInInspector]
+ public float Shape615;
+ [HideInInspector]
+ public float Shape616;
+ [HideInInspector]
+ public float Shape617;
+ [HideInInspector]
+ public float Shape618;
+ [HideInInspector]
+ public float Shape619;
+ [HideInInspector]
+ public float Shape620;
+ [HideInInspector]
+ public float Shape621;
+ [HideInInspector]
+ public float Shape622;
+ [HideInInspector]
+ public float Shape623;
+ [HideInInspector]
+ public float Shape624;
+ [HideInInspector]
+ public float Shape625;
+ [HideInInspector]
+ public float Shape626;
+ [HideInInspector]
+ public float Shape627;
+ [HideInInspector]
+ public float Shape628;
+ [HideInInspector]
+ public float Shape629;
+ [HideInInspector]
+ public float Shape630;
+ [HideInInspector]
+ public float Shape631;
+ [HideInInspector]
+ public float Shape632;
+ [HideInInspector]
+ public float Shape633;
+ [HideInInspector]
+ public float Shape634;
+ [HideInInspector]
+ public float Shape635;
+ [HideInInspector]
+ public float Shape636;
+ [HideInInspector]
+ public float Shape637;
+ [HideInInspector]
+ public float Shape638;
+ [HideInInspector]
+ public float Shape639;
+ [HideInInspector]
+ public float Shape640;
+ [HideInInspector]
+ public float Shape641;
+ [HideInInspector]
+ public float Shape642;
+ [HideInInspector]
+ public float Shape643;
+ [HideInInspector]
+ public float Shape644;
+ [HideInInspector]
+ public float Shape645;
+ [HideInInspector]
+ public float Shape646;
+ [HideInInspector]
+ public float Shape647;
+ [HideInInspector]
+ public float Shape648;
+ [HideInInspector]
+ public float Shape649;
+ [HideInInspector]
+ public float Shape650;
+ [HideInInspector]
+ public float Shape651;
+ [HideInInspector]
+ public float Shape652;
+ [HideInInspector]
+ public float Shape653;
+ [HideInInspector]
+ public float Shape654;
+ [HideInInspector]
+ public float Shape655;
+ [HideInInspector]
+ public float Shape656;
+ [HideInInspector]
+ public float Shape657;
+ [HideInInspector]
+ public float Shape658;
+ [HideInInspector]
+ public float Shape659;
+ [HideInInspector]
+ public float Shape660;
+ [HideInInspector]
+ public float Shape661;
+ [HideInInspector]
+ public float Shape662;
+ [HideInInspector]
+ public float Shape663;
+ [HideInInspector]
+ public float Shape664;
+ [HideInInspector]
+ public float Shape665;
+ [HideInInspector]
+ public float Shape666;
+ [HideInInspector]
+ public float Shape667;
+ [HideInInspector]
+ public float Shape668;
+ [HideInInspector]
+ public float Shape669;
+ [HideInInspector]
+ public float Shape670;
+ [HideInInspector]
+ public float Shape671;
+ [HideInInspector]
+ public float Shape672;
+ [HideInInspector]
+ public float Shape673;
+ [HideInInspector]
+ public float Shape674;
+ [HideInInspector]
+ public float Shape675;
+ [HideInInspector]
+ public float Shape676;
+ [HideInInspector]
+ public float Shape677;
+ [HideInInspector]
+ public float Shape678;
+ [HideInInspector]
+ public float Shape679;
+ [HideInInspector]
+ public float Shape680;
+ [HideInInspector]
+ public float Shape681;
+ [HideInInspector]
+ public float Shape682;
+ [HideInInspector]
+ public float Shape683;
+ [HideInInspector]
+ public float Shape684;
+ [HideInInspector]
+ public float Shape685;
+ [HideInInspector]
+ public float Shape686;
+ [HideInInspector]
+ public float Shape687;
+ [HideInInspector]
+ public float Shape688;
+ [HideInInspector]
+ public float Shape689;
+ [HideInInspector]
+ public float Shape690;
+ [HideInInspector]
+ public float Shape691;
+ [HideInInspector]
+ public float Shape692;
+ [HideInInspector]
+ public float Shape693;
+ [HideInInspector]
+ public float Shape694;
+ [HideInInspector]
+ public float Shape695;
+ [HideInInspector]
+ public float Shape696;
+ [HideInInspector]
+ public float Shape697;
+ [HideInInspector]
+ public float Shape698;
+ [HideInInspector]
+ public float Shape699;
+ [HideInInspector]
+ public float Shape700;
+ [HideInInspector]
+ public float Shape701;
+ [HideInInspector]
+ public float Shape702;
+ [HideInInspector]
+ public float Shape703;
+ [HideInInspector]
+ public float Shape704;
+ [HideInInspector]
+ public float Shape705;
+ [HideInInspector]
+ public float Shape706;
+ [HideInInspector]
+ public float Shape707;
+ [HideInInspector]
+ public float Shape708;
+ [HideInInspector]
+ public float Shape709;
+ [HideInInspector]
+ public float Shape710;
+ [HideInInspector]
+ public float Shape711;
+ [HideInInspector]
+ public float Shape712;
+ [HideInInspector]
+ public float Shape713;
+ [HideInInspector]
+ public float Shape714;
+ [HideInInspector]
+ public float Shape715;
+ [HideInInspector]
+ public float Shape716;
+ [HideInInspector]
+ public float Shape717;
+ [HideInInspector]
+ public float Shape718;
+ [HideInInspector]
+ public float Shape719;
+ [HideInInspector]
+ public float Shape720;
+ [HideInInspector]
+ public float Shape721;
+ [HideInInspector]
+ public float Shape722;
+ [HideInInspector]
+ public float Shape723;
+ [HideInInspector]
+ public float Shape724;
+ [HideInInspector]
+ public float Shape725;
+ [HideInInspector]
+ public float Shape726;
+ [HideInInspector]
+ public float Shape727;
+ [HideInInspector]
+ public float Shape728;
+ [HideInInspector]
+ public float Shape729;
+ [HideInInspector]
+ public float Shape730;
+ [HideInInspector]
+ public float Shape731;
+ [HideInInspector]
+ public float Shape732;
+ [HideInInspector]
+ public float Shape733;
+ [HideInInspector]
+ public float Shape734;
+ [HideInInspector]
+ public float Shape735;
+ [HideInInspector]
+ public float Shape736;
+ [HideInInspector]
+ public float Shape737;
+ [HideInInspector]
+ public float Shape738;
+ [HideInInspector]
+ public float Shape739;
+ [HideInInspector]
+ public float Shape740;
+ [HideInInspector]
+ public float Shape741;
+ [HideInInspector]
+ public float Shape742;
+ [HideInInspector]
+ public float Shape743;
+ [HideInInspector]
+ public float Shape744;
+ [HideInInspector]
+ public float Shape745;
+ [HideInInspector]
+ public float Shape746;
+ [HideInInspector]
+ public float Shape747;
+ [HideInInspector]
+ public float Shape748;
+ [HideInInspector]
+ public float Shape749;
+ [HideInInspector]
+ public float Shape750;
+ [HideInInspector]
+ public float Shape751;
+ [HideInInspector]
+ public float Shape752;
+ [HideInInspector]
+ public float Shape753;
+ [HideInInspector]
+ public float Shape754;
+ [HideInInspector]
+ public float Shape755;
+ [HideInInspector]
+ public float Shape756;
+ [HideInInspector]
+ public float Shape757;
+ [HideInInspector]
+ public float Shape758;
+ [HideInInspector]
+ public float Shape759;
+ [HideInInspector]
+ public float Shape760;
+ [HideInInspector]
+ public float Shape761;
+ [HideInInspector]
+ public float Shape762;
+ [HideInInspector]
+ public float Shape763;
+ [HideInInspector]
+ public float Shape764;
+ [HideInInspector]
+ public float Shape765;
+ [HideInInspector]
+ public float Shape766;
+ [HideInInspector]
+ public float Shape767;
+ [HideInInspector]
+ public float Shape768;
+ [HideInInspector]
+ public float Shape769;
+ [HideInInspector]
+ public float Shape770;
+ [HideInInspector]
+ public float Shape771;
+ [HideInInspector]
+ public float Shape772;
+ [HideInInspector]
+ public float Shape773;
+ [HideInInspector]
+ public float Shape774;
+ [HideInInspector]
+ public float Shape775;
+ [HideInInspector]
+ public float Shape776;
+ [HideInInspector]
+ public float Shape777;
+ [HideInInspector]
+ public float Shape778;
+ [HideInInspector]
+ public float Shape779;
+ [HideInInspector]
+ public float Shape780;
+ [HideInInspector]
+ public float Shape781;
+ [HideInInspector]
+ public float Shape782;
+ [HideInInspector]
+ public float Shape783;
+ [HideInInspector]
+ public float Shape784;
+ [HideInInspector]
+ public float Shape785;
+ [HideInInspector]
+ public float Shape786;
+ [HideInInspector]
+ public float Shape787;
+ [HideInInspector]
+ public float Shape788;
+ [HideInInspector]
+ public float Shape789;
+ [HideInInspector]
+ public float Shape790;
+ [HideInInspector]
+ public float Shape791;
+ [HideInInspector]
+ public float Shape792;
+ [HideInInspector]
+ public float Shape793;
+ [HideInInspector]
+ public float Shape794;
+ [HideInInspector]
+ public float Shape795;
+ [HideInInspector]
+ public float Shape796;
+ [HideInInspector]
+ public float Shape797;
+ [HideInInspector]
+ public float Shape798;
+ [HideInInspector]
+ public float Shape799;
+ [HideInInspector]
+ public float Shape800;
+ [HideInInspector]
+ public float Shape801;
+ [HideInInspector]
+ public float Shape802;
+ [HideInInspector]
+ public float Shape803;
+ [HideInInspector]
+ public float Shape804;
+ [HideInInspector]
+ public float Shape805;
+ [HideInInspector]
+ public float Shape806;
+ [HideInInspector]
+ public float Shape807;
+ [HideInInspector]
+ public float Shape808;
+ [HideInInspector]
+ public float Shape809;
+ [HideInInspector]
+ public float Shape810;
+ [HideInInspector]
+ public float Shape811;
+ [HideInInspector]
+ public float Shape812;
+ [HideInInspector]
+ public float Shape813;
+ [HideInInspector]
+ public float Shape814;
+ [HideInInspector]
+ public float Shape815;
+ [HideInInspector]
+ public float Shape816;
+ [HideInInspector]
+ public float Shape817;
+ [HideInInspector]
+ public float Shape818;
+ [HideInInspector]
+ public float Shape819;
+ [HideInInspector]
+ public float Shape820;
+ [HideInInspector]
+ public float Shape821;
+ [HideInInspector]
+ public float Shape822;
+ [HideInInspector]
+ public float Shape823;
+ [HideInInspector]
+ public float Shape824;
+ [HideInInspector]
+ public float Shape825;
+ [HideInInspector]
+ public float Shape826;
+ [HideInInspector]
+ public float Shape827;
+ [HideInInspector]
+ public float Shape828;
+ [HideInInspector]
+ public float Shape829;
+ [HideInInspector]
+ public float Shape830;
+ [HideInInspector]
+ public float Shape831;
+ [HideInInspector]
+ public float Shape832;
+ [HideInInspector]
+ public float Shape833;
+ [HideInInspector]
+ public float Shape834;
+ [HideInInspector]
+ public float Shape835;
+ [HideInInspector]
+ public float Shape836;
+ [HideInInspector]
+ public float Shape837;
+ [HideInInspector]
+ public float Shape838;
+ [HideInInspector]
+ public float Shape839;
+ [HideInInspector]
+ public float Shape840;
+ [HideInInspector]
+ public float Shape841;
+ [HideInInspector]
+ public float Shape842;
+ [HideInInspector]
+ public float Shape843;
+ [HideInInspector]
+ public float Shape844;
+ [HideInInspector]
+ public float Shape845;
+ [HideInInspector]
+ public float Shape846;
+ [HideInInspector]
+ public float Shape847;
+ [HideInInspector]
+ public float Shape848;
+ [HideInInspector]
+ public float Shape849;
+ [HideInInspector]
+ public float Shape850;
+ [HideInInspector]
+ public float Shape851;
+ [HideInInspector]
+ public float Shape852;
+ [HideInInspector]
+ public float Shape853;
+ [HideInInspector]
+ public float Shape854;
+ [HideInInspector]
+ public float Shape855;
+ [HideInInspector]
+ public float Shape856;
+ [HideInInspector]
+ public float Shape857;
+ [HideInInspector]
+ public float Shape858;
+ [HideInInspector]
+ public float Shape859;
+ [HideInInspector]
+ public float Shape860;
+ [HideInInspector]
+ public float Shape861;
+ [HideInInspector]
+ public float Shape862;
+ [HideInInspector]
+ public float Shape863;
+ [HideInInspector]
+ public float Shape864;
+ [HideInInspector]
+ public float Shape865;
+ [HideInInspector]
+ public float Shape866;
+ [HideInInspector]
+ public float Shape867;
+ [HideInInspector]
+ public float Shape868;
+ [HideInInspector]
+ public float Shape869;
+ [HideInInspector]
+ public float Shape870;
+ [HideInInspector]
+ public float Shape871;
+ [HideInInspector]
+ public float Shape872;
+ [HideInInspector]
+ public float Shape873;
+ [HideInInspector]
+ public float Shape874;
+ [HideInInspector]
+ public float Shape875;
+ [HideInInspector]
+ public float Shape876;
+ [HideInInspector]
+ public float Shape877;
+ [HideInInspector]
+ public float Shape878;
+ [HideInInspector]
+ public float Shape879;
+ [HideInInspector]
+ public float Shape880;
+ [HideInInspector]
+ public float Shape881;
+ [HideInInspector]
+ public float Shape882;
+ [HideInInspector]
+ public float Shape883;
+ [HideInInspector]
+ public float Shape884;
+ [HideInInspector]
+ public float Shape885;
+ [HideInInspector]
+ public float Shape886;
+ [HideInInspector]
+ public float Shape887;
+ [HideInInspector]
+ public float Shape888;
+ [HideInInspector]
+ public float Shape889;
+ [HideInInspector]
+ public float Shape890;
+ [HideInInspector]
+ public float Shape891;
+ [HideInInspector]
+ public float Shape892;
+ [HideInInspector]
+ public float Shape893;
+ [HideInInspector]
+ public float Shape894;
+ [HideInInspector]
+ public float Shape895;
+ [HideInInspector]
+ public float Shape896;
+ [HideInInspector]
+ public float Shape897;
+ [HideInInspector]
+ public float Shape898;
+ [HideInInspector]
+ public float Shape899;
+ [HideInInspector]
+ public float Shape900;
+ [HideInInspector]
+ public float Shape901;
+ [HideInInspector]
+ public float Shape902;
+ [HideInInspector]
+ public float Shape903;
+ [HideInInspector]
+ public float Shape904;
+ [HideInInspector]
+ public float Shape905;
+ [HideInInspector]
+ public float Shape906;
+ [HideInInspector]
+ public float Shape907;
+ [HideInInspector]
+ public float Shape908;
+ [HideInInspector]
+ public float Shape909;
+ [HideInInspector]
+ public float Shape910;
+ [HideInInspector]
+ public float Shape911;
+ [HideInInspector]
+ public float Shape912;
+ [HideInInspector]
+ public float Shape913;
+ [HideInInspector]
+ public float Shape914;
+ [HideInInspector]
+ public float Shape915;
+ [HideInInspector]
+ public float Shape916;
+ [HideInInspector]
+ public float Shape917;
+ [HideInInspector]
+ public float Shape918;
+ [HideInInspector]
+ public float Shape919;
+ [HideInInspector]
+ public float Shape920;
+ [HideInInspector]
+ public float Shape921;
+ [HideInInspector]
+ public float Shape922;
+ [HideInInspector]
+ public float Shape923;
+ [HideInInspector]
+ public float Shape924;
+ [HideInInspector]
+ public float Shape925;
+ [HideInInspector]
+ public float Shape926;
+ [HideInInspector]
+ public float Shape927;
+ [HideInInspector]
+ public float Shape928;
+ [HideInInspector]
+ public float Shape929;
+ [HideInInspector]
+ public float Shape930;
+ [HideInInspector]
+ public float Shape931;
+ [HideInInspector]
+ public float Shape932;
+ [HideInInspector]
+ public float Shape933;
+ [HideInInspector]
+ public float Shape934;
+ [HideInInspector]
+ public float Shape935;
+ [HideInInspector]
+ public float Shape936;
+ [HideInInspector]
+ public float Shape937;
+ [HideInInspector]
+ public float Shape938;
+ [HideInInspector]
+ public float Shape939;
+ [HideInInspector]
+ public float Shape940;
+ [HideInInspector]
+ public float Shape941;
+ [HideInInspector]
+ public float Shape942;
+ [HideInInspector]
+ public float Shape943;
+ [HideInInspector]
+ public float Shape944;
+ [HideInInspector]
+ public float Shape945;
+ [HideInInspector]
+ public float Shape946;
+ [HideInInspector]
+ public float Shape947;
+ [HideInInspector]
+ public float Shape948;
+ [HideInInspector]
+ public float Shape949;
+ [HideInInspector]
+ public float Shape950;
+ [HideInInspector]
+ public float Shape951;
+ [HideInInspector]
+ public float Shape952;
+ [HideInInspector]
+ public float Shape953;
+ [HideInInspector]
+ public float Shape954;
+ [HideInInspector]
+ public float Shape955;
+ [HideInInspector]
+ public float Shape956;
+ [HideInInspector]
+ public float Shape957;
+ [HideInInspector]
+ public float Shape958;
+ [HideInInspector]
+ public float Shape959;
+ [HideInInspector]
+ public float Shape960;
+ [HideInInspector]
+ public float Shape961;
+ [HideInInspector]
+ public float Shape962;
+ [HideInInspector]
+ public float Shape963;
+ [HideInInspector]
+ public float Shape964;
+ [HideInInspector]
+ public float Shape965;
+ [HideInInspector]
+ public float Shape966;
+ [HideInInspector]
+ public float Shape967;
+ [HideInInspector]
+ public float Shape968;
+ [HideInInspector]
+ public float Shape969;
+ [HideInInspector]
+ public float Shape970;
+ [HideInInspector]
+ public float Shape971;
+ [HideInInspector]
+ public float Shape972;
+ [HideInInspector]
+ public float Shape973;
+ [HideInInspector]
+ public float Shape974;
+ [HideInInspector]
+ public float Shape975;
+ [HideInInspector]
+ public float Shape976;
+ [HideInInspector]
+ public float Shape977;
+ [HideInInspector]
+ public float Shape978;
+ [HideInInspector]
+ public float Shape979;
+ [HideInInspector]
+ public float Shape980;
+ [HideInInspector]
+ public float Shape981;
+ [HideInInspector]
+ public float Shape982;
+ [HideInInspector]
+ public float Shape983;
+ [HideInInspector]
+ public float Shape984;
+ [HideInInspector]
+ public float Shape985;
+ [HideInInspector]
+ public float Shape986;
+ [HideInInspector]
+ public float Shape987;
+ [HideInInspector]
+ public float Shape988;
+ [HideInInspector]
+ public float Shape989;
+ [HideInInspector]
+ public float Shape990;
+ [HideInInspector]
+ public float Shape991;
+ [HideInInspector]
+ public float Shape992;
+ [HideInInspector]
+ public float Shape993;
+ [HideInInspector]
+ public float Shape994;
+ [HideInInspector]
+ public float Shape995;
+ [HideInInspector]
+ public float Shape996;
+ [HideInInspector]
+ public float Shape997;
+ [HideInInspector]
+ public float Shape998;
+ [HideInInspector]
+ public float Shape999;
+ [HideInInspector]
+ public float Shape1000;
+ [HideInInspector]
+ public float Shape1001;
+ [HideInInspector]
+ public float Shape1002;
+ [HideInInspector]
+ public float Shape1003;
+ [HideInInspector]
+ public float Shape1004;
+ [HideInInspector]
+ public float Shape1005;
+ [HideInInspector]
+ public float Shape1006;
+ [HideInInspector]
+ public float Shape1007;
+ [HideInInspector]
+ public float Shape1008;
+ [HideInInspector]
+ public float Shape1009;
+ [HideInInspector]
+ public float Shape1010;
+ [HideInInspector]
+ public float Shape1011;
+ [HideInInspector]
+ public float Shape1012;
+ [HideInInspector]
+ public float Shape1013;
+ [HideInInspector]
+ public float Shape1014;
+ [HideInInspector]
+ public float Shape1015;
+ [HideInInspector]
+ public float Shape1016;
+ [HideInInspector]
+ public float Shape1017;
+ [HideInInspector]
+ public float Shape1018;
+ [HideInInspector]
+ public float Shape1019;
+ [HideInInspector]
+ public float Shape1020;
+ [HideInInspector]
+ public float Shape1021;
+ [HideInInspector]
+ public float Shape1022;
+ [HideInInspector]
+ public float Shape1023;
+ [HideInInspector]
+ public float Shape1024;
+ [HideInInspector]
+ public float Shape1025;
+ [HideInInspector]
+ public float Shape1026;
+ [HideInInspector]
+ public float Shape1027;
+ [HideInInspector]
+ public float Shape1028;
+ [HideInInspector]
+ public float Shape1029;
+ [HideInInspector]
+ public float Shape1030;
+ [HideInInspector]
+ public float Shape1031;
+ [HideInInspector]
+ public float Shape1032;
+ [HideInInspector]
+ public float Shape1033;
+ [HideInInspector]
+ public float Shape1034;
+ [HideInInspector]
+ public float Shape1035;
+ [HideInInspector]
+ public float Shape1036;
+ [HideInInspector]
+ public float Shape1037;
+ [HideInInspector]
+ public float Shape1038;
+ [HideInInspector]
+ public float Shape1039;
+ [HideInInspector]
+ public float Shape1040;
+ [HideInInspector]
+ public float Shape1041;
+ [HideInInspector]
+ public float Shape1042;
+ [HideInInspector]
+ public float Shape1043;
+ [HideInInspector]
+ public float Shape1044;
+ [HideInInspector]
+ public float Shape1045;
+ [HideInInspector]
+ public float Shape1046;
+ [HideInInspector]
+ public float Shape1047;
+ [HideInInspector]
+ public float Shape1048;
+ [HideInInspector]
+ public float Shape1049;
+ [HideInInspector]
+ public float Shape1050;
+ [HideInInspector]
+ public float Shape1051;
+ [HideInInspector]
+ public float Shape1052;
+ [HideInInspector]
+ public float Shape1053;
+ [HideInInspector]
+ public float Shape1054;
+ [HideInInspector]
+ public float Shape1055;
+ [HideInInspector]
+ public float Shape1056;
+ [HideInInspector]
+ public float Shape1057;
+ [HideInInspector]
+ public float Shape1058;
+ [HideInInspector]
+ public float Shape1059;
+ [HideInInspector]
+ public float Shape1060;
+ [HideInInspector]
+ public float Shape1061;
+ [HideInInspector]
+ public float Shape1062;
+ [HideInInspector]
+ public float Shape1063;
+ [HideInInspector]
+ public float Shape1064;
+ [HideInInspector]
+ public float Shape1065;
+ [HideInInspector]
+ public float Shape1066;
+ [HideInInspector]
+ public float Shape1067;
+ [HideInInspector]
+ public float Shape1068;
+ [HideInInspector]
+ public float Shape1069;
+ [HideInInspector]
+ public float Shape1070;
+ [HideInInspector]
+ public float Shape1071;
+ [HideInInspector]
+ public float Shape1072;
+ [HideInInspector]
+ public float Shape1073;
+ [HideInInspector]
+ public float Shape1074;
+ [HideInInspector]
+ public float Shape1075;
+ [HideInInspector]
+ public float Shape1076;
+ [HideInInspector]
+ public float Shape1077;
+ [HideInInspector]
+ public float Shape1078;
+ [HideInInspector]
+ public float Shape1079;
+ [HideInInspector]
+ public float Shape1080;
+ [HideInInspector]
+ public float Shape1081;
+ [HideInInspector]
+ public float Shape1082;
+ [HideInInspector]
+ public float Shape1083;
+ [HideInInspector]
+ public float Shape1084;
+ [HideInInspector]
+ public float Shape1085;
+ [HideInInspector]
+ public float Shape1086;
+ [HideInInspector]
+ public float Shape1087;
+ [HideInInspector]
+ public float Shape1088;
+ [HideInInspector]
+ public float Shape1089;
+ [HideInInspector]
+ public float Shape1090;
+ [HideInInspector]
+ public float Shape1091;
+ [HideInInspector]
+ public float Shape1092;
+ [HideInInspector]
+ public float Shape1093;
+ [HideInInspector]
+ public float Shape1094;
+ [HideInInspector]
+ public float Shape1095;
+ [HideInInspector]
+ public float Shape1096;
+ [HideInInspector]
+ public float Shape1097;
+ [HideInInspector]
+ public float Shape1098;
+ [HideInInspector]
+ public float Shape1099;
+ [HideInInspector]
+ public float Shape1100;
+ [HideInInspector]
+ public float Shape1101;
+ [HideInInspector]
+ public float Shape1102;
+ [HideInInspector]
+ public float Shape1103;
+ [HideInInspector]
+ public float Shape1104;
+ [HideInInspector]
+ public float Shape1105;
+ [HideInInspector]
+ public float Shape1106;
+ [HideInInspector]
+ public float Shape1107;
+ [HideInInspector]
+ public float Shape1108;
+ [HideInInspector]
+ public float Shape1109;
+ [HideInInspector]
+ public float Shape1110;
+ [HideInInspector]
+ public float Shape1111;
+ [HideInInspector]
+ public float Shape1112;
+ [HideInInspector]
+ public float Shape1113;
+ [HideInInspector]
+ public float Shape1114;
+ [HideInInspector]
+ public float Shape1115;
+ [HideInInspector]
+ public float Shape1116;
+ [HideInInspector]
+ public float Shape1117;
+ [HideInInspector]
+ public float Shape1118;
+ [HideInInspector]
+ public float Shape1119;
+ [HideInInspector]
+ public float Shape1120;
+ [HideInInspector]
+ public float Shape1121;
+ [HideInInspector]
+ public float Shape1122;
+ [HideInInspector]
+ public float Shape1123;
+ [HideInInspector]
+ public float Shape1124;
+ [HideInInspector]
+ public float Shape1125;
+ [HideInInspector]
+ public float Shape1126;
+ [HideInInspector]
+ public float Shape1127;
+ [HideInInspector]
+ public float Shape1128;
+ [HideInInspector]
+ public float Shape1129;
+ [HideInInspector]
+ public float Shape1130;
+ [HideInInspector]
+ public float Shape1131;
+ [HideInInspector]
+ public float Shape1132;
+ [HideInInspector]
+ public float Shape1133;
+ [HideInInspector]
+ public float Shape1134;
+ [HideInInspector]
+ public float Shape1135;
+ [HideInInspector]
+ public float Shape1136;
+ [HideInInspector]
+ public float Shape1137;
+ [HideInInspector]
+ public float Shape1138;
+ [HideInInspector]
+ public float Shape1139;
+ [HideInInspector]
+ public float Shape1140;
+ [HideInInspector]
+ public float Shape1141;
+ [HideInInspector]
+ public float Shape1142;
+ [HideInInspector]
+ public float Shape1143;
+ [HideInInspector]
+ public float Shape1144;
+ [HideInInspector]
+ public float Shape1145;
+ [HideInInspector]
+ public float Shape1146;
+ [HideInInspector]
+ public float Shape1147;
+ [HideInInspector]
+ public float Shape1148;
+ [HideInInspector]
+ public float Shape1149;
+ [HideInInspector]
+ public float Shape1150;
+ [HideInInspector]
+ public float Shape1151;
+ [HideInInspector]
+ public float Shape1152;
+ [HideInInspector]
+ public float Shape1153;
+ [HideInInspector]
+ public float Shape1154;
+ [HideInInspector]
+ public float Shape1155;
+ [HideInInspector]
+ public float Shape1156;
+ [HideInInspector]
+ public float Shape1157;
+ [HideInInspector]
+ public float Shape1158;
+ [HideInInspector]
+ public float Shape1159;
+ [HideInInspector]
+ public float Shape1160;
+ [HideInInspector]
+ public float Shape1161;
+ [HideInInspector]
+ public float Shape1162;
+ [HideInInspector]
+ public float Shape1163;
+ [HideInInspector]
+ public float Shape1164;
+ [HideInInspector]
+ public float Shape1165;
+ [HideInInspector]
+ public float Shape1166;
+ [HideInInspector]
+ public float Shape1167;
+ [HideInInspector]
+ public float Shape1168;
+ [HideInInspector]
+ public float Shape1169;
+ [HideInInspector]
+ public float Shape1170;
+ [HideInInspector]
+ public float Shape1171;
+ [HideInInspector]
+ public float Shape1172;
+ [HideInInspector]
+ public float Shape1173;
+ [HideInInspector]
+ public float Shape1174;
+ [HideInInspector]
+ public float Shape1175;
+ [HideInInspector]
+ public float Shape1176;
+ [HideInInspector]
+ public float Shape1177;
+ [HideInInspector]
+ public float Shape1178;
+ [HideInInspector]
+ public float Shape1179;
+ [HideInInspector]
+ public float Shape1180;
+ [HideInInspector]
+ public float Shape1181;
+ [HideInInspector]
+ public float Shape1182;
+ [HideInInspector]
+ public float Shape1183;
+ [HideInInspector]
+ public float Shape1184;
+ [HideInInspector]
+ public float Shape1185;
+ [HideInInspector]
+ public float Shape1186;
+ [HideInInspector]
+ public float Shape1187;
+ [HideInInspector]
+ public float Shape1188;
+ [HideInInspector]
+ public float Shape1189;
+ [HideInInspector]
+ public float Shape1190;
+ [HideInInspector]
+ public float Shape1191;
+ [HideInInspector]
+ public float Shape1192;
+ [HideInInspector]
+ public float Shape1193;
+ [HideInInspector]
+ public float Shape1194;
+ [HideInInspector]
+ public float Shape1195;
+ [HideInInspector]
+ public float Shape1196;
+ [HideInInspector]
+ public float Shape1197;
+ [HideInInspector]
+ public float Shape1198;
+ [HideInInspector]
+ public float Shape1199;
+ [HideInInspector]
+ public float Shape1200;
+ [HideInInspector]
+ public float Shape1201;
+ [HideInInspector]
+ public float Shape1202;
+ [HideInInspector]
+ public float Shape1203;
+ [HideInInspector]
+ public float Shape1204;
+ [HideInInspector]
+ public float Shape1205;
+ [HideInInspector]
+ public float Shape1206;
+ [HideInInspector]
+ public float Shape1207;
+ [HideInInspector]
+ public float Shape1208;
+ [HideInInspector]
+ public float Shape1209;
+ [HideInInspector]
+ public float Shape1210;
+ [HideInInspector]
+ public float Shape1211;
+ [HideInInspector]
+ public float Shape1212;
+ [HideInInspector]
+ public float Shape1213;
+ [HideInInspector]
+ public float Shape1214;
+ [HideInInspector]
+ public float Shape1215;
+ [HideInInspector]
+ public float Shape1216;
+ [HideInInspector]
+ public float Shape1217;
+ [HideInInspector]
+ public float Shape1218;
+ [HideInInspector]
+ public float Shape1219;
+ [HideInInspector]
+ public float Shape1220;
+ [HideInInspector]
+ public float Shape1221;
+ [HideInInspector]
+ public float Shape1222;
+ [HideInInspector]
+ public float Shape1223;
+ [HideInInspector]
+ public float Shape1224;
+ [HideInInspector]
+ public float Shape1225;
+ [HideInInspector]
+ public float Shape1226;
+ [HideInInspector]
+ public float Shape1227;
+ [HideInInspector]
+ public float Shape1228;
+ [HideInInspector]
+ public float Shape1229;
+ [HideInInspector]
+ public float Shape1230;
+ [HideInInspector]
+ public float Shape1231;
+ [HideInInspector]
+ public float Shape1232;
+ [HideInInspector]
+ public float Shape1233;
+ [HideInInspector]
+ public float Shape1234;
+ [HideInInspector]
+ public float Shape1235;
+ [HideInInspector]
+ public float Shape1236;
+ [HideInInspector]
+ public float Shape1237;
+ [HideInInspector]
+ public float Shape1238;
+ [HideInInspector]
+ public float Shape1239;
+ [HideInInspector]
+ public float Shape1240;
+ [HideInInspector]
+ public float Shape1241;
+ [HideInInspector]
+ public float Shape1242;
+ [HideInInspector]
+ public float Shape1243;
+ [HideInInspector]
+ public float Shape1244;
+ [HideInInspector]
+ public float Shape1245;
+ [HideInInspector]
+ public float Shape1246;
+ [HideInInspector]
+ public float Shape1247;
+ [HideInInspector]
+ public float Shape1248;
+ [HideInInspector]
+ public float Shape1249;
+ [HideInInspector]
+ public float Shape1250;
+ [HideInInspector]
+ public float Shape1251;
+ [HideInInspector]
+ public float Shape1252;
+ [HideInInspector]
+ public float Shape1253;
+ [HideInInspector]
+ public float Shape1254;
+ [HideInInspector]
+ public float Shape1255;
+ [HideInInspector]
+ public float Shape1256;
+ [HideInInspector]
+ public float Shape1257;
+ [HideInInspector]
+ public float Shape1258;
+ [HideInInspector]
+ public float Shape1259;
+ [HideInInspector]
+ public float Shape1260;
+ [HideInInspector]
+ public float Shape1261;
+ [HideInInspector]
+ public float Shape1262;
+ [HideInInspector]
+ public float Shape1263;
+ [HideInInspector]
+ public float Shape1264;
+ [HideInInspector]
+ public float Shape1265;
+ [HideInInspector]
+ public float Shape1266;
+ [HideInInspector]
+ public float Shape1267;
+ [HideInInspector]
+ public float Shape1268;
+ [HideInInspector]
+ public float Shape1269;
+ [HideInInspector]
+ public float Shape1270;
+ [HideInInspector]
+ public float Shape1271;
+ [HideInInspector]
+ public float Shape1272;
+ [HideInInspector]
+ public float Shape1273;
+ [HideInInspector]
+ public float Shape1274;
+ [HideInInspector]
+ public float Shape1275;
+ [HideInInspector]
+ public float Shape1276;
+ [HideInInspector]
+ public float Shape1277;
+ [HideInInspector]
+ public float Shape1278;
+ [HideInInspector]
+ public float Shape1279;
+ [HideInInspector]
+ public float Shape1280;
+ [HideInInspector]
+ public float Shape1281;
+ [HideInInspector]
+ public float Shape1282;
+ [HideInInspector]
+ public float Shape1283;
+ [HideInInspector]
+ public float Shape1284;
+ [HideInInspector]
+ public float Shape1285;
+ [HideInInspector]
+ public float Shape1286;
+ [HideInInspector]
+ public float Shape1287;
+ [HideInInspector]
+ public float Shape1288;
+ [HideInInspector]
+ public float Shape1289;
+ [HideInInspector]
+ public float Shape1290;
+ [HideInInspector]
+ public float Shape1291;
+ [HideInInspector]
+ public float Shape1292;
+ [HideInInspector]
+ public float Shape1293;
+ [HideInInspector]
+ public float Shape1294;
+ [HideInInspector]
+ public float Shape1295;
+ [HideInInspector]
+ public float Shape1296;
+ [HideInInspector]
+ public float Shape1297;
+ [HideInInspector]
+ public float Shape1298;
+ [HideInInspector]
+ public float Shape1299;
+ [HideInInspector]
+ public float Shape1300;
+ [HideInInspector]
+ public float Shape1301;
+ [HideInInspector]
+ public float Shape1302;
+ [HideInInspector]
+ public float Shape1303;
+ [HideInInspector]
+ public float Shape1304;
+ [HideInInspector]
+ public float Shape1305;
+ [HideInInspector]
+ public float Shape1306;
+ [HideInInspector]
+ public float Shape1307;
+ [HideInInspector]
+ public float Shape1308;
+ [HideInInspector]
+ public float Shape1309;
+ [HideInInspector]
+ public float Shape1310;
+ [HideInInspector]
+ public float Shape1311;
+ [HideInInspector]
+ public float Shape1312;
+ [HideInInspector]
+ public float Shape1313;
+ [HideInInspector]
+ public float Shape1314;
+ [HideInInspector]
+ public float Shape1315;
+ [HideInInspector]
+ public float Shape1316;
+ [HideInInspector]
+ public float Shape1317;
+ [HideInInspector]
+ public float Shape1318;
+ [HideInInspector]
+ public float Shape1319;
+ [HideInInspector]
+ public float Shape1320;
+ [HideInInspector]
+ public float Shape1321;
+ [HideInInspector]
+ public float Shape1322;
+ [HideInInspector]
+ public float Shape1323;
+ [HideInInspector]
+ public float Shape1324;
+ [HideInInspector]
+ public float Shape1325;
+ [HideInInspector]
+ public float Shape1326;
+ [HideInInspector]
+ public float Shape1327;
+ [HideInInspector]
+ public float Shape1328;
+ [HideInInspector]
+ public float Shape1329;
+ [HideInInspector]
+ public float Shape1330;
+ [HideInInspector]
+ public float Shape1331;
+ [HideInInspector]
+ public float Shape1332;
+ [HideInInspector]
+ public float Shape1333;
+ [HideInInspector]
+ public float Shape1334;
+ [HideInInspector]
+ public float Shape1335;
+ [HideInInspector]
+ public float Shape1336;
+ [HideInInspector]
+ public float Shape1337;
+ [HideInInspector]
+ public float Shape1338;
+ [HideInInspector]
+ public float Shape1339;
+ [HideInInspector]
+ public float Shape1340;
+ [HideInInspector]
+ public float Shape1341;
+ [HideInInspector]
+ public float Shape1342;
+ [HideInInspector]
+ public float Shape1343;
+ [HideInInspector]
+ public float Shape1344;
+ [HideInInspector]
+ public float Shape1345;
+ [HideInInspector]
+ public float Shape1346;
+ [HideInInspector]
+ public float Shape1347;
+ [HideInInspector]
+ public float Shape1348;
+ [HideInInspector]
+ public float Shape1349;
+ [HideInInspector]
+ public float Shape1350;
+ [HideInInspector]
+ public float Shape1351;
+ [HideInInspector]
+ public float Shape1352;
+ [HideInInspector]
+ public float Shape1353;
+ [HideInInspector]
+ public float Shape1354;
+ [HideInInspector]
+ public float Shape1355;
+ [HideInInspector]
+ public float Shape1356;
+ [HideInInspector]
+ public float Shape1357;
+ [HideInInspector]
+ public float Shape1358;
+ [HideInInspector]
+ public float Shape1359;
+ [HideInInspector]
+ public float Shape1360;
+ [HideInInspector]
+ public float Shape1361;
+ [HideInInspector]
+ public float Shape1362;
+ [HideInInspector]
+ public float Shape1363;
+ [HideInInspector]
+ public float Shape1364;
+ [HideInInspector]
+ public float Shape1365;
+ [HideInInspector]
+ public float Shape1366;
+ [HideInInspector]
+ public float Shape1367;
+ [HideInInspector]
+ public float Shape1368;
+ [HideInInspector]
+ public float Shape1369;
+ [HideInInspector]
+ public float Shape1370;
+ [HideInInspector]
+ public float Shape1371;
+ [HideInInspector]
+ public float Shape1372;
+ [HideInInspector]
+ public float Shape1373;
+ [HideInInspector]
+ public float Shape1374;
+ [HideInInspector]
+ public float Shape1375;
+ [HideInInspector]
+ public float Shape1376;
+ [HideInInspector]
+ public float Shape1377;
+ [HideInInspector]
+ public float Shape1378;
+ [HideInInspector]
+ public float Shape1379;
+ [HideInInspector]
+ public float Shape1380;
+ [HideInInspector]
+ public float Shape1381;
+ [HideInInspector]
+ public float Shape1382;
+ [HideInInspector]
+ public float Shape1383;
+ [HideInInspector]
+ public float Shape1384;
+ [HideInInspector]
+ public float Shape1385;
+ [HideInInspector]
+ public float Shape1386;
+ [HideInInspector]
+ public float Shape1387;
+ [HideInInspector]
+ public float Shape1388;
+ [HideInInspector]
+ public float Shape1389;
+ [HideInInspector]
+ public float Shape1390;
+ [HideInInspector]
+ public float Shape1391;
+ [HideInInspector]
+ public float Shape1392;
+ [HideInInspector]
+ public float Shape1393;
+ [HideInInspector]
+ public float Shape1394;
+ [HideInInspector]
+ public float Shape1395;
+ [HideInInspector]
+ public float Shape1396;
+ [HideInInspector]
+ public float Shape1397;
+ [HideInInspector]
+ public float Shape1398;
+ [HideInInspector]
+ public float Shape1399;
+ [HideInInspector]
+ public float Shape1400;
+ [HideInInspector]
+ public float Shape1401;
+ [HideInInspector]
+ public float Shape1402;
+ [HideInInspector]
+ public float Shape1403;
+ [HideInInspector]
+ public float Shape1404;
+ [HideInInspector]
+ public float Shape1405;
+ [HideInInspector]
+ public float Shape1406;
+ [HideInInspector]
+ public float Shape1407;
+ [HideInInspector]
+ public float Shape1408;
+ [HideInInspector]
+ public float Shape1409;
+ [HideInInspector]
+ public float Shape1410;
+ [HideInInspector]
+ public float Shape1411;
+ [HideInInspector]
+ public float Shape1412;
+ [HideInInspector]
+ public float Shape1413;
+ [HideInInspector]
+ public float Shape1414;
+ [HideInInspector]
+ public float Shape1415;
+ [HideInInspector]
+ public float Shape1416;
+ [HideInInspector]
+ public float Shape1417;
+ [HideInInspector]
+ public float Shape1418;
+ [HideInInspector]
+ public float Shape1419;
+ [HideInInspector]
+ public float Shape1420;
+ [HideInInspector]
+ public float Shape1421;
+ [HideInInspector]
+ public float Shape1422;
+ [HideInInspector]
+ public float Shape1423;
+ [HideInInspector]
+ public float Shape1424;
+ [HideInInspector]
+ public float Shape1425;
+ [HideInInspector]
+ public float Shape1426;
+ [HideInInspector]
+ public float Shape1427;
+ [HideInInspector]
+ public float Shape1428;
+ [HideInInspector]
+ public float Shape1429;
+ [HideInInspector]
+ public float Shape1430;
+ [HideInInspector]
+ public float Shape1431;
+ [HideInInspector]
+ public float Shape1432;
+ [HideInInspector]
+ public float Shape1433;
+ [HideInInspector]
+ public float Shape1434;
+ [HideInInspector]
+ public float Shape1435;
+ [HideInInspector]
+ public float Shape1436;
+ [HideInInspector]
+ public float Shape1437;
+ [HideInInspector]
+ public float Shape1438;
+ [HideInInspector]
+ public float Shape1439;
+ [HideInInspector]
+ public float Shape1440;
+ [HideInInspector]
+ public float Shape1441;
+ [HideInInspector]
+ public float Shape1442;
+ [HideInInspector]
+ public float Shape1443;
+ [HideInInspector]
+ public float Shape1444;
+ [HideInInspector]
+ public float Shape1445;
+ [HideInInspector]
+ public float Shape1446;
+ [HideInInspector]
+ public float Shape1447;
+ [HideInInspector]
+ public float Shape1448;
+ [HideInInspector]
+ public float Shape1449;
+ [HideInInspector]
+ public float Shape1450;
+ [HideInInspector]
+ public float Shape1451;
+ [HideInInspector]
+ public float Shape1452;
+ [HideInInspector]
+ public float Shape1453;
+ [HideInInspector]
+ public float Shape1454;
+ [HideInInspector]
+ public float Shape1455;
+ [HideInInspector]
+ public float Shape1456;
+ [HideInInspector]
+ public float Shape1457;
+ [HideInInspector]
+ public float Shape1458;
+ [HideInInspector]
+ public float Shape1459;
+ [HideInInspector]
+ public float Shape1460;
+ [HideInInspector]
+ public float Shape1461;
+ [HideInInspector]
+ public float Shape1462;
+ [HideInInspector]
+ public float Shape1463;
+ [HideInInspector]
+ public float Shape1464;
+ [HideInInspector]
+ public float Shape1465;
+ [HideInInspector]
+ public float Shape1466;
+ [HideInInspector]
+ public float Shape1467;
+ [HideInInspector]
+ public float Shape1468;
+ [HideInInspector]
+ public float Shape1469;
+ [HideInInspector]
+ public float Shape1470;
+ [HideInInspector]
+ public float Shape1471;
+ [HideInInspector]
+ public float Shape1472;
+ [HideInInspector]
+ public float Shape1473;
+ [HideInInspector]
+ public float Shape1474;
+ [HideInInspector]
+ public float Shape1475;
+ [HideInInspector]
+ public float Shape1476;
+ [HideInInspector]
+ public float Shape1477;
+ [HideInInspector]
+ public float Shape1478;
+ [HideInInspector]
+ public float Shape1479;
+ [HideInInspector]
+ public float Shape1480;
+ [HideInInspector]
+ public float Shape1481;
+ [HideInInspector]
+ public float Shape1482;
+ [HideInInspector]
+ public float Shape1483;
+ [HideInInspector]
+ public float Shape1484;
+ [HideInInspector]
+ public float Shape1485;
+ [HideInInspector]
+ public float Shape1486;
+ [HideInInspector]
+ public float Shape1487;
+ [HideInInspector]
+ public float Shape1488;
+ [HideInInspector]
+ public float Shape1489;
+ [HideInInspector]
+ public float Shape1490;
+ [HideInInspector]
+ public float Shape1491;
+ [HideInInspector]
+ public float Shape1492;
+ [HideInInspector]
+ public float Shape1493;
+ [HideInInspector]
+ public float Shape1494;
+ [HideInInspector]
+ public float Shape1495;
+ [HideInInspector]
+ public float Shape1496;
+ [HideInInspector]
+ public float Shape1497;
+ [HideInInspector]
+ public float Shape1498;
+ [HideInInspector]
+ public float Shape1499;
+ [HideInInspector]
+ public float Shape1500;
+ [HideInInspector]
+ public float Shape1501;
+ [HideInInspector]
+ public float Shape1502;
+ [HideInInspector]
+ public float Shape1503;
+ [HideInInspector]
+ public float Shape1504;
+ [HideInInspector]
+ public float Shape1505;
+ [HideInInspector]
+ public float Shape1506;
+ [HideInInspector]
+ public float Shape1507;
+ [HideInInspector]
+ public float Shape1508;
+ [HideInInspector]
+ public float Shape1509;
+ [HideInInspector]
+ public float Shape1510;
+ [HideInInspector]
+ public float Shape1511;
+ [HideInInspector]
+ public float Shape1512;
+ [HideInInspector]
+ public float Shape1513;
+ [HideInInspector]
+ public float Shape1514;
+ [HideInInspector]
+ public float Shape1515;
+ [HideInInspector]
+ public float Shape1516;
+ [HideInInspector]
+ public float Shape1517;
+ [HideInInspector]
+ public float Shape1518;
+ [HideInInspector]
+ public float Shape1519;
+ [HideInInspector]
+ public float Shape1520;
+ [HideInInspector]
+ public float Shape1521;
+ [HideInInspector]
+ public float Shape1522;
+ [HideInInspector]
+ public float Shape1523;
+ [HideInInspector]
+ public float Shape1524;
+ [HideInInspector]
+ public float Shape1525;
+ [HideInInspector]
+ public float Shape1526;
+ [HideInInspector]
+ public float Shape1527;
+ [HideInInspector]
+ public float Shape1528;
+ [HideInInspector]
+ public float Shape1529;
+ [HideInInspector]
+ public float Shape1530;
+ [HideInInspector]
+ public float Shape1531;
+ [HideInInspector]
+ public float Shape1532;
+ [HideInInspector]
+ public float Shape1533;
+ [HideInInspector]
+ public float Shape1534;
+ [HideInInspector]
+ public float Shape1535;
+ [HideInInspector]
+ public float Shape1536;
+ [HideInInspector]
+ public float Shape1537;
+ [HideInInspector]
+ public float Shape1538;
+ [HideInInspector]
+ public float Shape1539;
+ [HideInInspector]
+ public float Shape1540;
+ [HideInInspector]
+ public float Shape1541;
+ [HideInInspector]
+ public float Shape1542;
+ [HideInInspector]
+ public float Shape1543;
+ [HideInInspector]
+ public float Shape1544;
+ [HideInInspector]
+ public float Shape1545;
+ [HideInInspector]
+ public float Shape1546;
+ [HideInInspector]
+ public float Shape1547;
+ [HideInInspector]
+ public float Shape1548;
+ [HideInInspector]
+ public float Shape1549;
+ [HideInInspector]
+ public float Shape1550;
+ [HideInInspector]
+ public float Shape1551;
+ [HideInInspector]
+ public float Shape1552;
+ [HideInInspector]
+ public float Shape1553;
+ [HideInInspector]
+ public float Shape1554;
+ [HideInInspector]
+ public float Shape1555;
+ [HideInInspector]
+ public float Shape1556;
+ [HideInInspector]
+ public float Shape1557;
+ [HideInInspector]
+ public float Shape1558;
+ [HideInInspector]
+ public float Shape1559;
+ [HideInInspector]
+ public float Shape1560;
+ [HideInInspector]
+ public float Shape1561;
+ [HideInInspector]
+ public float Shape1562;
+ [HideInInspector]
+ public float Shape1563;
+ [HideInInspector]
+ public float Shape1564;
+ [HideInInspector]
+ public float Shape1565;
+ [HideInInspector]
+ public float Shape1566;
+ [HideInInspector]
+ public float Shape1567;
+ [HideInInspector]
+ public float Shape1568;
+ [HideInInspector]
+ public float Shape1569;
+ [HideInInspector]
+ public float Shape1570;
+ [HideInInspector]
+ public float Shape1571;
+ [HideInInspector]
+ public float Shape1572;
+ [HideInInspector]
+ public float Shape1573;
+ [HideInInspector]
+ public float Shape1574;
+ [HideInInspector]
+ public float Shape1575;
+ [HideInInspector]
+ public float Shape1576;
+ [HideInInspector]
+ public float Shape1577;
+ [HideInInspector]
+ public float Shape1578;
+ [HideInInspector]
+ public float Shape1579;
+ [HideInInspector]
+ public float Shape1580;
+ [HideInInspector]
+ public float Shape1581;
+ [HideInInspector]
+ public float Shape1582;
+ [HideInInspector]
+ public float Shape1583;
+ [HideInInspector]
+ public float Shape1584;
+ [HideInInspector]
+ public float Shape1585;
+ [HideInInspector]
+ public float Shape1586;
+ [HideInInspector]
+ public float Shape1587;
+ [HideInInspector]
+ public float Shape1588;
+ [HideInInspector]
+ public float Shape1589;
+ [HideInInspector]
+ public float Shape1590;
+ [HideInInspector]
+ public float Shape1591;
+ [HideInInspector]
+ public float Shape1592;
+ [HideInInspector]
+ public float Shape1593;
+ [HideInInspector]
+ public float Shape1594;
+ [HideInInspector]
+ public float Shape1595;
+ [HideInInspector]
+ public float Shape1596;
+ [HideInInspector]
+ public float Shape1597;
+ [HideInInspector]
+ public float Shape1598;
+ [HideInInspector]
+ public float Shape1599;
+ [HideInInspector]
+ public float Shape1600;
+ [HideInInspector]
+ public float Shape1601;
+ [HideInInspector]
+ public float Shape1602;
+ [HideInInspector]
+ public float Shape1603;
+ [HideInInspector]
+ public float Shape1604;
+ [HideInInspector]
+ public float Shape1605;
+ [HideInInspector]
+ public float Shape1606;
+ [HideInInspector]
+ public float Shape1607;
+ [HideInInspector]
+ public float Shape1608;
+ [HideInInspector]
+ public float Shape1609;
+ [HideInInspector]
+ public float Shape1610;
+ [HideInInspector]
+ public float Shape1611;
+ [HideInInspector]
+ public float Shape1612;
+ [HideInInspector]
+ public float Shape1613;
+ [HideInInspector]
+ public float Shape1614;
+ [HideInInspector]
+ public float Shape1615;
+ [HideInInspector]
+ public float Shape1616;
+ [HideInInspector]
+ public float Shape1617;
+ [HideInInspector]
+ public float Shape1618;
+ [HideInInspector]
+ public float Shape1619;
+ [HideInInspector]
+ public float Shape1620;
+ [HideInInspector]
+ public float Shape1621;
+ [HideInInspector]
+ public float Shape1622;
+ [HideInInspector]
+ public float Shape1623;
+ [HideInInspector]
+ public float Shape1624;
+ [HideInInspector]
+ public float Shape1625;
+ [HideInInspector]
+ public float Shape1626;
+ [HideInInspector]
+ public float Shape1627;
+ [HideInInspector]
+ public float Shape1628;
+ [HideInInspector]
+ public float Shape1629;
+ [HideInInspector]
+ public float Shape1630;
+ [HideInInspector]
+ public float Shape1631;
+ [HideInInspector]
+ public float Shape1632;
+ [HideInInspector]
+ public float Shape1633;
+ [HideInInspector]
+ public float Shape1634;
+ [HideInInspector]
+ public float Shape1635;
+ [HideInInspector]
+ public float Shape1636;
+ [HideInInspector]
+ public float Shape1637;
+ [HideInInspector]
+ public float Shape1638;
+ [HideInInspector]
+ public float Shape1639;
+ [HideInInspector]
+ public float Shape1640;
+ [HideInInspector]
+ public float Shape1641;
+ [HideInInspector]
+ public float Shape1642;
+ [HideInInspector]
+ public float Shape1643;
+ [HideInInspector]
+ public float Shape1644;
+ [HideInInspector]
+ public float Shape1645;
+ [HideInInspector]
+ public float Shape1646;
+ [HideInInspector]
+ public float Shape1647;
+ [HideInInspector]
+ public float Shape1648;
+ [HideInInspector]
+ public float Shape1649;
+ [HideInInspector]
+ public float Shape1650;
+ [HideInInspector]
+ public float Shape1651;
+ [HideInInspector]
+ public float Shape1652;
+ [HideInInspector]
+ public float Shape1653;
+ [HideInInspector]
+ public float Shape1654;
+ [HideInInspector]
+ public float Shape1655;
+ [HideInInspector]
+ public float Shape1656;
+ [HideInInspector]
+ public float Shape1657;
+ [HideInInspector]
+ public float Shape1658;
+ [HideInInspector]
+ public float Shape1659;
+ [HideInInspector]
+ public float Shape1660;
+ [HideInInspector]
+ public float Shape1661;
+ [HideInInspector]
+ public float Shape1662;
+ [HideInInspector]
+ public float Shape1663;
+ [HideInInspector]
+ public float Shape1664;
+ [HideInInspector]
+ public float Shape1665;
+ [HideInInspector]
+ public float Shape1666;
+ [HideInInspector]
+ public float Shape1667;
+ [HideInInspector]
+ public float Shape1668;
+ [HideInInspector]
+ public float Shape1669;
+ [HideInInspector]
+ public float Shape1670;
+ [HideInInspector]
+ public float Shape1671;
+ [HideInInspector]
+ public float Shape1672;
+ [HideInInspector]
+ public float Shape1673;
+ [HideInInspector]
+ public float Shape1674;
+ [HideInInspector]
+ public float Shape1675;
+ [HideInInspector]
+ public float Shape1676;
+ [HideInInspector]
+ public float Shape1677;
+ [HideInInspector]
+ public float Shape1678;
+ [HideInInspector]
+ public float Shape1679;
+ [HideInInspector]
+ public float Shape1680;
+ [HideInInspector]
+ public float Shape1681;
+ [HideInInspector]
+ public float Shape1682;
+ [HideInInspector]
+ public float Shape1683;
+ [HideInInspector]
+ public float Shape1684;
+ [HideInInspector]
+ public float Shape1685;
+ [HideInInspector]
+ public float Shape1686;
+ [HideInInspector]
+ public float Shape1687;
+ [HideInInspector]
+ public float Shape1688;
+ [HideInInspector]
+ public float Shape1689;
+ [HideInInspector]
+ public float Shape1690;
+ [HideInInspector]
+ public float Shape1691;
+ [HideInInspector]
+ public float Shape1692;
+ [HideInInspector]
+ public float Shape1693;
+ [HideInInspector]
+ public float Shape1694;
+ [HideInInspector]
+ public float Shape1695;
+ [HideInInspector]
+ public float Shape1696;
+ [HideInInspector]
+ public float Shape1697;
+ [HideInInspector]
+ public float Shape1698;
+ [HideInInspector]
+ public float Shape1699;
+ [HideInInspector]
+ public float Shape1700;
+ [HideInInspector]
+ public float Shape1701;
+ [HideInInspector]
+ public float Shape1702;
+ [HideInInspector]
+ public float Shape1703;
+ [HideInInspector]
+ public float Shape1704;
+ [HideInInspector]
+ public float Shape1705;
+ [HideInInspector]
+ public float Shape1706;
+ [HideInInspector]
+ public float Shape1707;
+ [HideInInspector]
+ public float Shape1708;
+ [HideInInspector]
+ public float Shape1709;
+ [HideInInspector]
+ public float Shape1710;
+ [HideInInspector]
+ public float Shape1711;
+ [HideInInspector]
+ public float Shape1712;
+ [HideInInspector]
+ public float Shape1713;
+ [HideInInspector]
+ public float Shape1714;
+ [HideInInspector]
+ public float Shape1715;
+ [HideInInspector]
+ public float Shape1716;
+ [HideInInspector]
+ public float Shape1717;
+ [HideInInspector]
+ public float Shape1718;
+ [HideInInspector]
+ public float Shape1719;
+ [HideInInspector]
+ public float Shape1720;
+ [HideInInspector]
+ public float Shape1721;
+ [HideInInspector]
+ public float Shape1722;
+ [HideInInspector]
+ public float Shape1723;
+ [HideInInspector]
+ public float Shape1724;
+ [HideInInspector]
+ public float Shape1725;
+ [HideInInspector]
+ public float Shape1726;
+ [HideInInspector]
+ public float Shape1727;
+ [HideInInspector]
+ public float Shape1728;
+ [HideInInspector]
+ public float Shape1729;
+ [HideInInspector]
+ public float Shape1730;
+ [HideInInspector]
+ public float Shape1731;
+ [HideInInspector]
+ public float Shape1732;
+ [HideInInspector]
+ public float Shape1733;
+ [HideInInspector]
+ public float Shape1734;
+ [HideInInspector]
+ public float Shape1735;
+ [HideInInspector]
+ public float Shape1736;
+ [HideInInspector]
+ public float Shape1737;
+ [HideInInspector]
+ public float Shape1738;
+ [HideInInspector]
+ public float Shape1739;
+ [HideInInspector]
+ public float Shape1740;
+ [HideInInspector]
+ public float Shape1741;
+ [HideInInspector]
+ public float Shape1742;
+ [HideInInspector]
+ public float Shape1743;
+ [HideInInspector]
+ public float Shape1744;
+ [HideInInspector]
+ public float Shape1745;
+ [HideInInspector]
+ public float Shape1746;
+ [HideInInspector]
+ public float Shape1747;
+ [HideInInspector]
+ public float Shape1748;
+ [HideInInspector]
+ public float Shape1749;
+ [HideInInspector]
+ public float Shape1750;
+ [HideInInspector]
+ public float Shape1751;
+ [HideInInspector]
+ public float Shape1752;
+ [HideInInspector]
+ public float Shape1753;
+ [HideInInspector]
+ public float Shape1754;
+ [HideInInspector]
+ public float Shape1755;
+ [HideInInspector]
+ public float Shape1756;
+ [HideInInspector]
+ public float Shape1757;
+ [HideInInspector]
+ public float Shape1758;
+ [HideInInspector]
+ public float Shape1759;
+ [HideInInspector]
+ public float Shape1760;
+ [HideInInspector]
+ public float Shape1761;
+ [HideInInspector]
+ public float Shape1762;
+ [HideInInspector]
+ public float Shape1763;
+ [HideInInspector]
+ public float Shape1764;
+ [HideInInspector]
+ public float Shape1765;
+ [HideInInspector]
+ public float Shape1766;
+ [HideInInspector]
+ public float Shape1767;
+ [HideInInspector]
+ public float Shape1768;
+ [HideInInspector]
+ public float Shape1769;
+ [HideInInspector]
+ public float Shape1770;
+ [HideInInspector]
+ public float Shape1771;
+ [HideInInspector]
+ public float Shape1772;
+ [HideInInspector]
+ public float Shape1773;
+ [HideInInspector]
+ public float Shape1774;
+ [HideInInspector]
+ public float Shape1775;
+ [HideInInspector]
+ public float Shape1776;
+ [HideInInspector]
+ public float Shape1777;
+ [HideInInspector]
+ public float Shape1778;
+ [HideInInspector]
+ public float Shape1779;
+ [HideInInspector]
+ public float Shape1780;
+ [HideInInspector]
+ public float Shape1781;
+ [HideInInspector]
+ public float Shape1782;
+ [HideInInspector]
+ public float Shape1783;
+ [HideInInspector]
+ public float Shape1784;
+ [HideInInspector]
+ public float Shape1785;
+ [HideInInspector]
+ public float Shape1786;
+ [HideInInspector]
+ public float Shape1787;
+ [HideInInspector]
+ public float Shape1788;
+ [HideInInspector]
+ public float Shape1789;
+ [HideInInspector]
+ public float Shape1790;
+ [HideInInspector]
+ public float Shape1791;
+ [HideInInspector]
+ public float Shape1792;
+ [HideInInspector]
+ public float Shape1793;
+ [HideInInspector]
+ public float Shape1794;
+ [HideInInspector]
+ public float Shape1795;
+ [HideInInspector]
+ public float Shape1796;
+ [HideInInspector]
+ public float Shape1797;
+ [HideInInspector]
+ public float Shape1798;
+ [HideInInspector]
+ public float Shape1799;
+ [HideInInspector]
+ public float Shape1800;
+ [HideInInspector]
+ public float Shape1801;
+ [HideInInspector]
+ public float Shape1802;
+ [HideInInspector]
+ public float Shape1803;
+ [HideInInspector]
+ public float Shape1804;
+ [HideInInspector]
+ public float Shape1805;
+ [HideInInspector]
+ public float Shape1806;
+ [HideInInspector]
+ public float Shape1807;
+ [HideInInspector]
+ public float Shape1808;
+ [HideInInspector]
+ public float Shape1809;
+ [HideInInspector]
+ public float Shape1810;
+ [HideInInspector]
+ public float Shape1811;
+ [HideInInspector]
+ public float Shape1812;
+ [HideInInspector]
+ public float Shape1813;
+ [HideInInspector]
+ public float Shape1814;
+ [HideInInspector]
+ public float Shape1815;
+ [HideInInspector]
+ public float Shape1816;
+ [HideInInspector]
+ public float Shape1817;
+ [HideInInspector]
+ public float Shape1818;
+ [HideInInspector]
+ public float Shape1819;
+ [HideInInspector]
+ public float Shape1820;
+ [HideInInspector]
+ public float Shape1821;
+ [HideInInspector]
+ public float Shape1822;
+ [HideInInspector]
+ public float Shape1823;
+ [HideInInspector]
+ public float Shape1824;
+ [HideInInspector]
+ public float Shape1825;
+ [HideInInspector]
+ public float Shape1826;
+ [HideInInspector]
+ public float Shape1827;
+ [HideInInspector]
+ public float Shape1828;
+ [HideInInspector]
+ public float Shape1829;
+ [HideInInspector]
+ public float Shape1830;
+ [HideInInspector]
+ public float Shape1831;
+ [HideInInspector]
+ public float Shape1832;
+ [HideInInspector]
+ public float Shape1833;
+ [HideInInspector]
+ public float Shape1834;
+ [HideInInspector]
+ public float Shape1835;
+ [HideInInspector]
+ public float Shape1836;
+ [HideInInspector]
+ public float Shape1837;
+ [HideInInspector]
+ public float Shape1838;
+ [HideInInspector]
+ public float Shape1839;
+ [HideInInspector]
+ public float Shape1840;
+ [HideInInspector]
+ public float Shape1841;
+ [HideInInspector]
+ public float Shape1842;
+ [HideInInspector]
+ public float Shape1843;
+ [HideInInspector]
+ public float Shape1844;
+ [HideInInspector]
+ public float Shape1845;
+ [HideInInspector]
+ public float Shape1846;
+ [HideInInspector]
+ public float Shape1847;
+ [HideInInspector]
+ public float Shape1848;
+ [HideInInspector]
+ public float Shape1849;
+ [HideInInspector]
+ public float Shape1850;
+ [HideInInspector]
+ public float Shape1851;
+ [HideInInspector]
+ public float Shape1852;
+ [HideInInspector]
+ public float Shape1853;
+ [HideInInspector]
+ public float Shape1854;
+ [HideInInspector]
+ public float Shape1855;
+ [HideInInspector]
+ public float Shape1856;
+ [HideInInspector]
+ public float Shape1857;
+ [HideInInspector]
+ public float Shape1858;
+ [HideInInspector]
+ public float Shape1859;
+ [HideInInspector]
+ public float Shape1860;
+ [HideInInspector]
+ public float Shape1861;
+ [HideInInspector]
+ public float Shape1862;
+ [HideInInspector]
+ public float Shape1863;
+ [HideInInspector]
+ public float Shape1864;
+ [HideInInspector]
+ public float Shape1865;
+ [HideInInspector]
+ public float Shape1866;
+ [HideInInspector]
+ public float Shape1867;
+ [HideInInspector]
+ public float Shape1868;
+ [HideInInspector]
+ public float Shape1869;
+ [HideInInspector]
+ public float Shape1870;
+ [HideInInspector]
+ public float Shape1871;
+ [HideInInspector]
+ public float Shape1872;
+ [HideInInspector]
+ public float Shape1873;
+ [HideInInspector]
+ public float Shape1874;
+ [HideInInspector]
+ public float Shape1875;
+ [HideInInspector]
+ public float Shape1876;
+ [HideInInspector]
+ public float Shape1877;
+ [HideInInspector]
+ public float Shape1878;
+ [HideInInspector]
+ public float Shape1879;
+ [HideInInspector]
+ public float Shape1880;
+ [HideInInspector]
+ public float Shape1881;
+ [HideInInspector]
+ public float Shape1882;
+ [HideInInspector]
+ public float Shape1883;
+ [HideInInspector]
+ public float Shape1884;
+ [HideInInspector]
+ public float Shape1885;
+ [HideInInspector]
+ public float Shape1886;
+ [HideInInspector]
+ public float Shape1887;
+ [HideInInspector]
+ public float Shape1888;
+ [HideInInspector]
+ public float Shape1889;
+ [HideInInspector]
+ public float Shape1890;
+ [HideInInspector]
+ public float Shape1891;
+ [HideInInspector]
+ public float Shape1892;
+ [HideInInspector]
+ public float Shape1893;
+ [HideInInspector]
+ public float Shape1894;
+ [HideInInspector]
+ public float Shape1895;
+ [HideInInspector]
+ public float Shape1896;
+ [HideInInspector]
+ public float Shape1897;
+ [HideInInspector]
+ public float Shape1898;
+ [HideInInspector]
+ public float Shape1899;
+ [HideInInspector]
+ public float Shape1900;
+ [HideInInspector]
+ public float Shape1901;
+ [HideInInspector]
+ public float Shape1902;
+ [HideInInspector]
+ public float Shape1903;
+ [HideInInspector]
+ public float Shape1904;
+ [HideInInspector]
+ public float Shape1905;
+ [HideInInspector]
+ public float Shape1906;
+ [HideInInspector]
+ public float Shape1907;
+ [HideInInspector]
+ public float Shape1908;
+ [HideInInspector]
+ public float Shape1909;
+ [HideInInspector]
+ public float Shape1910;
+ [HideInInspector]
+ public float Shape1911;
+ [HideInInspector]
+ public float Shape1912;
+ [HideInInspector]
+ public float Shape1913;
+ [HideInInspector]
+ public float Shape1914;
+ [HideInInspector]
+ public float Shape1915;
+ [HideInInspector]
+ public float Shape1916;
+ [HideInInspector]
+ public float Shape1917;
+ [HideInInspector]
+ public float Shape1918;
+ [HideInInspector]
+ public float Shape1919;
+ [HideInInspector]
+ public float Shape1920;
+ [HideInInspector]
+ public float Shape1921;
+ [HideInInspector]
+ public float Shape1922;
+ [HideInInspector]
+ public float Shape1923;
+ [HideInInspector]
+ public float Shape1924;
+ [HideInInspector]
+ public float Shape1925;
+ [HideInInspector]
+ public float Shape1926;
+ [HideInInspector]
+ public float Shape1927;
+ [HideInInspector]
+ public float Shape1928;
+ [HideInInspector]
+ public float Shape1929;
+ [HideInInspector]
+ public float Shape1930;
+ [HideInInspector]
+ public float Shape1931;
+ [HideInInspector]
+ public float Shape1932;
+ [HideInInspector]
+ public float Shape1933;
+ [HideInInspector]
+ public float Shape1934;
+ [HideInInspector]
+ public float Shape1935;
+ [HideInInspector]
+ public float Shape1936;
+ [HideInInspector]
+ public float Shape1937;
+ [HideInInspector]
+ public float Shape1938;
+ [HideInInspector]
+ public float Shape1939;
+ [HideInInspector]
+ public float Shape1940;
+ [HideInInspector]
+ public float Shape1941;
+ [HideInInspector]
+ public float Shape1942;
+ [HideInInspector]
+ public float Shape1943;
+ [HideInInspector]
+ public float Shape1944;
+ [HideInInspector]
+ public float Shape1945;
+ [HideInInspector]
+ public float Shape1946;
+ [HideInInspector]
+ public float Shape1947;
+ [HideInInspector]
+ public float Shape1948;
+ [HideInInspector]
+ public float Shape1949;
+ [HideInInspector]
+ public float Shape1950;
+ [HideInInspector]
+ public float Shape1951;
+ [HideInInspector]
+ public float Shape1952;
+ [HideInInspector]
+ public float Shape1953;
+ [HideInInspector]
+ public float Shape1954;
+ [HideInInspector]
+ public float Shape1955;
+ [HideInInspector]
+ public float Shape1956;
+ [HideInInspector]
+ public float Shape1957;
+ [HideInInspector]
+ public float Shape1958;
+ [HideInInspector]
+ public float Shape1959;
+ [HideInInspector]
+ public float Shape1960;
+ [HideInInspector]
+ public float Shape1961;
+ [HideInInspector]
+ public float Shape1962;
+ [HideInInspector]
+ public float Shape1963;
+ [HideInInspector]
+ public float Shape1964;
+ [HideInInspector]
+ public float Shape1965;
+ [HideInInspector]
+ public float Shape1966;
+ [HideInInspector]
+ public float Shape1967;
+ [HideInInspector]
+ public float Shape1968;
+ [HideInInspector]
+ public float Shape1969;
+ [HideInInspector]
+ public float Shape1970;
+ [HideInInspector]
+ public float Shape1971;
+ [HideInInspector]
+ public float Shape1972;
+ [HideInInspector]
+ public float Shape1973;
+ [HideInInspector]
+ public float Shape1974;
+ [HideInInspector]
+ public float Shape1975;
+ [HideInInspector]
+ public float Shape1976;
+ [HideInInspector]
+ public float Shape1977;
+ [HideInInspector]
+ public float Shape1978;
+ [HideInInspector]
+ public float Shape1979;
+ [HideInInspector]
+ public float Shape1980;
+ [HideInInspector]
+ public float Shape1981;
+ [HideInInspector]
+ public float Shape1982;
+ [HideInInspector]
+ public float Shape1983;
+ [HideInInspector]
+ public float Shape1984;
+ [HideInInspector]
+ public float Shape1985;
+ [HideInInspector]
+ public float Shape1986;
+ [HideInInspector]
+ public float Shape1987;
+ [HideInInspector]
+ public float Shape1988;
+ [HideInInspector]
+ public float Shape1989;
+ [HideInInspector]
+ public float Shape1990;
+ [HideInInspector]
+ public float Shape1991;
+ [HideInInspector]
+ public float Shape1992;
+ [HideInInspector]
+ public float Shape1993;
+ [HideInInspector]
+ public float Shape1994;
+ [HideInInspector]
+ public float Shape1995;
+ [HideInInspector]
+ public float Shape1996;
+ [HideInInspector]
+ public float Shape1997;
+ [HideInInspector]
+ public float Shape1998;
+ [HideInInspector]
+ public float Shape1999;
+ [HideInInspector]
+ public float Shape2000;
+ [HideInInspector]
+ public float Shape2001;
+ [HideInInspector]
+ public float Shape2002;
+ [HideInInspector]
+ public float Shape2003;
+ [HideInInspector]
+ public float Shape2004;
+ [HideInInspector]
+ public float Shape2005;
+ [HideInInspector]
+ public float Shape2006;
+ [HideInInspector]
+ public float Shape2007;
+ [HideInInspector]
+ public float Shape2008;
+ [HideInInspector]
+ public float Shape2009;
+ [HideInInspector]
+ public float Shape2010;
+ [HideInInspector]
+ public float Shape2011;
+ [HideInInspector]
+ public float Shape2012;
+ [HideInInspector]
+ public float Shape2013;
+ [HideInInspector]
+ public float Shape2014;
+ [HideInInspector]
+ public float Shape2015;
+ [HideInInspector]
+ public float Shape2016;
+ [HideInInspector]
+ public float Shape2017;
+ [HideInInspector]
+ public float Shape2018;
+ [HideInInspector]
+ public float Shape2019;
+ [HideInInspector]
+ public float Shape2020;
+ [HideInInspector]
+ public float Shape2021;
+ [HideInInspector]
+ public float Shape2022;
+ [HideInInspector]
+ public float Shape2023;
+ [HideInInspector]
+ public float Shape2024;
+ [HideInInspector]
+ public float Shape2025;
+ [HideInInspector]
+ public float Shape2026;
+ [HideInInspector]
+ public float Shape2027;
+ [HideInInspector]
+ public float Shape2028;
+ [HideInInspector]
+ public float Shape2029;
+ [HideInInspector]
+ public float Shape2030;
+ [HideInInspector]
+ public float Shape2031;
+ [HideInInspector]
+ public float Shape2032;
+ [HideInInspector]
+ public float Shape2033;
+ [HideInInspector]
+ public float Shape2034;
+ [HideInInspector]
+ public float Shape2035;
+ [HideInInspector]
+ public float Shape2036;
+ [HideInInspector]
+ public float Shape2037;
+ [HideInInspector]
+ public float Shape2038;
+ [HideInInspector]
+ public float Shape2039;
+ [HideInInspector]
+ public float Shape2040;
+ [HideInInspector]
+ public float Shape2041;
+ [HideInInspector]
+ public float Shape2042;
+ [HideInInspector]
+ public float Shape2043;
+ [HideInInspector]
+ public float Shape2044;
+ [HideInInspector]
+ public float Shape2045;
+ [HideInInspector]
+ public float Shape2046;
+ [HideInInspector]
+ public float Shape2047;
+ [HideInInspector]
+ public float Shape2048;
+ #endregion
+
+ #region fields getter
+ public float GetFieldValue(int index)
+ {
+ switch (index)
+ {
+ case 0:
+ return Shape0;
+ case 1:
+ return Shape1;
+ case 2:
+ return Shape2;
+ case 3:
+ return Shape3;
+ case 4:
+ return Shape4;
+ case 5:
+ return Shape5;
+ case 6:
+ return Shape6;
+ case 7:
+ return Shape7;
+ case 8:
+ return Shape8;
+ case 9:
+ return Shape9;
+ case 10:
+ return Shape10;
+ case 11:
+ return Shape11;
+ case 12:
+ return Shape12;
+ case 13:
+ return Shape13;
+ case 14:
+ return Shape14;
+ case 15:
+ return Shape15;
+ case 16:
+ return Shape16;
+ case 17:
+ return Shape17;
+ case 18:
+ return Shape18;
+ case 19:
+ return Shape19;
+ case 20:
+ return Shape20;
+ case 21:
+ return Shape21;
+ case 22:
+ return Shape22;
+ case 23:
+ return Shape23;
+ case 24:
+ return Shape24;
+ case 25:
+ return Shape25;
+ case 26:
+ return Shape26;
+ case 27:
+ return Shape27;
+ case 28:
+ return Shape28;
+ case 29:
+ return Shape29;
+ case 30:
+ return Shape30;
+ case 31:
+ return Shape31;
+ case 32:
+ return Shape32;
+ case 33:
+ return Shape33;
+ case 34:
+ return Shape34;
+ case 35:
+ return Shape35;
+ case 36:
+ return Shape36;
+ case 37:
+ return Shape37;
+ case 38:
+ return Shape38;
+ case 39:
+ return Shape39;
+ case 40:
+ return Shape40;
+ case 41:
+ return Shape41;
+ case 42:
+ return Shape42;
+ case 43:
+ return Shape43;
+ case 44:
+ return Shape44;
+ case 45:
+ return Shape45;
+ case 46:
+ return Shape46;
+ case 47:
+ return Shape47;
+ case 48:
+ return Shape48;
+ case 49:
+ return Shape49;
+ case 50:
+ return Shape50;
+ case 51:
+ return Shape51;
+ case 52:
+ return Shape52;
+ case 53:
+ return Shape53;
+ case 54:
+ return Shape54;
+ case 55:
+ return Shape55;
+ case 56:
+ return Shape56;
+ case 57:
+ return Shape57;
+ case 58:
+ return Shape58;
+ case 59:
+ return Shape59;
+ case 60:
+ return Shape60;
+ case 61:
+ return Shape61;
+ case 62:
+ return Shape62;
+ case 63:
+ return Shape63;
+ case 64:
+ return Shape64;
+ case 65:
+ return Shape65;
+ case 66:
+ return Shape66;
+ case 67:
+ return Shape67;
+ case 68:
+ return Shape68;
+ case 69:
+ return Shape69;
+ case 70:
+ return Shape70;
+ case 71:
+ return Shape71;
+ case 72:
+ return Shape72;
+ case 73:
+ return Shape73;
+ case 74:
+ return Shape74;
+ case 75:
+ return Shape75;
+ case 76:
+ return Shape76;
+ case 77:
+ return Shape77;
+ case 78:
+ return Shape78;
+ case 79:
+ return Shape79;
+ case 80:
+ return Shape80;
+ case 81:
+ return Shape81;
+ case 82:
+ return Shape82;
+ case 83:
+ return Shape83;
+ case 84:
+ return Shape84;
+ case 85:
+ return Shape85;
+ case 86:
+ return Shape86;
+ case 87:
+ return Shape87;
+ case 88:
+ return Shape88;
+ case 89:
+ return Shape89;
+ case 90:
+ return Shape90;
+ case 91:
+ return Shape91;
+ case 92:
+ return Shape92;
+ case 93:
+ return Shape93;
+ case 94:
+ return Shape94;
+ case 95:
+ return Shape95;
+ case 96:
+ return Shape96;
+ case 97:
+ return Shape97;
+ case 98:
+ return Shape98;
+ case 99:
+ return Shape99;
+ case 100:
+ return Shape100;
+ case 101:
+ return Shape101;
+ case 102:
+ return Shape102;
+ case 103:
+ return Shape103;
+ case 104:
+ return Shape104;
+ case 105:
+ return Shape105;
+ case 106:
+ return Shape106;
+ case 107:
+ return Shape107;
+ case 108:
+ return Shape108;
+ case 109:
+ return Shape109;
+ case 110:
+ return Shape110;
+ case 111:
+ return Shape111;
+ case 112:
+ return Shape112;
+ case 113:
+ return Shape113;
+ case 114:
+ return Shape114;
+ case 115:
+ return Shape115;
+ case 116:
+ return Shape116;
+ case 117:
+ return Shape117;
+ case 118:
+ return Shape118;
+ case 119:
+ return Shape119;
+ case 120:
+ return Shape120;
+ case 121:
+ return Shape121;
+ case 122:
+ return Shape122;
+ case 123:
+ return Shape123;
+ case 124:
+ return Shape124;
+ case 125:
+ return Shape125;
+ case 126:
+ return Shape126;
+ case 127:
+ return Shape127;
+ case 128:
+ return Shape128;
+ case 129:
+ return Shape129;
+ case 130:
+ return Shape130;
+ case 131:
+ return Shape131;
+ case 132:
+ return Shape132;
+ case 133:
+ return Shape133;
+ case 134:
+ return Shape134;
+ case 135:
+ return Shape135;
+ case 136:
+ return Shape136;
+ case 137:
+ return Shape137;
+ case 138:
+ return Shape138;
+ case 139:
+ return Shape139;
+ case 140:
+ return Shape140;
+ case 141:
+ return Shape141;
+ case 142:
+ return Shape142;
+ case 143:
+ return Shape143;
+ case 144:
+ return Shape144;
+ case 145:
+ return Shape145;
+ case 146:
+ return Shape146;
+ case 147:
+ return Shape147;
+ case 148:
+ return Shape148;
+ case 149:
+ return Shape149;
+ case 150:
+ return Shape150;
+ case 151:
+ return Shape151;
+ case 152:
+ return Shape152;
+ case 153:
+ return Shape153;
+ case 154:
+ return Shape154;
+ case 155:
+ return Shape155;
+ case 156:
+ return Shape156;
+ case 157:
+ return Shape157;
+ case 158:
+ return Shape158;
+ case 159:
+ return Shape159;
+ case 160:
+ return Shape160;
+ case 161:
+ return Shape161;
+ case 162:
+ return Shape162;
+ case 163:
+ return Shape163;
+ case 164:
+ return Shape164;
+ case 165:
+ return Shape165;
+ case 166:
+ return Shape166;
+ case 167:
+ return Shape167;
+ case 168:
+ return Shape168;
+ case 169:
+ return Shape169;
+ case 170:
+ return Shape170;
+ case 171:
+ return Shape171;
+ case 172:
+ return Shape172;
+ case 173:
+ return Shape173;
+ case 174:
+ return Shape174;
+ case 175:
+ return Shape175;
+ case 176:
+ return Shape176;
+ case 177:
+ return Shape177;
+ case 178:
+ return Shape178;
+ case 179:
+ return Shape179;
+ case 180:
+ return Shape180;
+ case 181:
+ return Shape181;
+ case 182:
+ return Shape182;
+ case 183:
+ return Shape183;
+ case 184:
+ return Shape184;
+ case 185:
+ return Shape185;
+ case 186:
+ return Shape186;
+ case 187:
+ return Shape187;
+ case 188:
+ return Shape188;
+ case 189:
+ return Shape189;
+ case 190:
+ return Shape190;
+ case 191:
+ return Shape191;
+ case 192:
+ return Shape192;
+ case 193:
+ return Shape193;
+ case 194:
+ return Shape194;
+ case 195:
+ return Shape195;
+ case 196:
+ return Shape196;
+ case 197:
+ return Shape197;
+ case 198:
+ return Shape198;
+ case 199:
+ return Shape199;
+ case 200:
+ return Shape200;
+ case 201:
+ return Shape201;
+ case 202:
+ return Shape202;
+ case 203:
+ return Shape203;
+ case 204:
+ return Shape204;
+ case 205:
+ return Shape205;
+ case 206:
+ return Shape206;
+ case 207:
+ return Shape207;
+ case 208:
+ return Shape208;
+ case 209:
+ return Shape209;
+ case 210:
+ return Shape210;
+ case 211:
+ return Shape211;
+ case 212:
+ return Shape212;
+ case 213:
+ return Shape213;
+ case 214:
+ return Shape214;
+ case 215:
+ return Shape215;
+ case 216:
+ return Shape216;
+ case 217:
+ return Shape217;
+ case 218:
+ return Shape218;
+ case 219:
+ return Shape219;
+ case 220:
+ return Shape220;
+ case 221:
+ return Shape221;
+ case 222:
+ return Shape222;
+ case 223:
+ return Shape223;
+ case 224:
+ return Shape224;
+ case 225:
+ return Shape225;
+ case 226:
+ return Shape226;
+ case 227:
+ return Shape227;
+ case 228:
+ return Shape228;
+ case 229:
+ return Shape229;
+ case 230:
+ return Shape230;
+ case 231:
+ return Shape231;
+ case 232:
+ return Shape232;
+ case 233:
+ return Shape233;
+ case 234:
+ return Shape234;
+ case 235:
+ return Shape235;
+ case 236:
+ return Shape236;
+ case 237:
+ return Shape237;
+ case 238:
+ return Shape238;
+ case 239:
+ return Shape239;
+ case 240:
+ return Shape240;
+ case 241:
+ return Shape241;
+ case 242:
+ return Shape242;
+ case 243:
+ return Shape243;
+ case 244:
+ return Shape244;
+ case 245:
+ return Shape245;
+ case 246:
+ return Shape246;
+ case 247:
+ return Shape247;
+ case 248:
+ return Shape248;
+ case 249:
+ return Shape249;
+ case 250:
+ return Shape250;
+ case 251:
+ return Shape251;
+ case 252:
+ return Shape252;
+ case 253:
+ return Shape253;
+ case 254:
+ return Shape254;
+ case 255:
+ return Shape255;
+ case 256:
+ return Shape256;
+ case 257:
+ return Shape257;
+ case 258:
+ return Shape258;
+ case 259:
+ return Shape259;
+ case 260:
+ return Shape260;
+ case 261:
+ return Shape261;
+ case 262:
+ return Shape262;
+ case 263:
+ return Shape263;
+ case 264:
+ return Shape264;
+ case 265:
+ return Shape265;
+ case 266:
+ return Shape266;
+ case 267:
+ return Shape267;
+ case 268:
+ return Shape268;
+ case 269:
+ return Shape269;
+ case 270:
+ return Shape270;
+ case 271:
+ return Shape271;
+ case 272:
+ return Shape272;
+ case 273:
+ return Shape273;
+ case 274:
+ return Shape274;
+ case 275:
+ return Shape275;
+ case 276:
+ return Shape276;
+ case 277:
+ return Shape277;
+ case 278:
+ return Shape278;
+ case 279:
+ return Shape279;
+ case 280:
+ return Shape280;
+ case 281:
+ return Shape281;
+ case 282:
+ return Shape282;
+ case 283:
+ return Shape283;
+ case 284:
+ return Shape284;
+ case 285:
+ return Shape285;
+ case 286:
+ return Shape286;
+ case 287:
+ return Shape287;
+ case 288:
+ return Shape288;
+ case 289:
+ return Shape289;
+ case 290:
+ return Shape290;
+ case 291:
+ return Shape291;
+ case 292:
+ return Shape292;
+ case 293:
+ return Shape293;
+ case 294:
+ return Shape294;
+ case 295:
+ return Shape295;
+ case 296:
+ return Shape296;
+ case 297:
+ return Shape297;
+ case 298:
+ return Shape298;
+ case 299:
+ return Shape299;
+ case 300:
+ return Shape300;
+ case 301:
+ return Shape301;
+ case 302:
+ return Shape302;
+ case 303:
+ return Shape303;
+ case 304:
+ return Shape304;
+ case 305:
+ return Shape305;
+ case 306:
+ return Shape306;
+ case 307:
+ return Shape307;
+ case 308:
+ return Shape308;
+ case 309:
+ return Shape309;
+ case 310:
+ return Shape310;
+ case 311:
+ return Shape311;
+ case 312:
+ return Shape312;
+ case 313:
+ return Shape313;
+ case 314:
+ return Shape314;
+ case 315:
+ return Shape315;
+ case 316:
+ return Shape316;
+ case 317:
+ return Shape317;
+ case 318:
+ return Shape318;
+ case 319:
+ return Shape319;
+ case 320:
+ return Shape320;
+ case 321:
+ return Shape321;
+ case 322:
+ return Shape322;
+ case 323:
+ return Shape323;
+ case 324:
+ return Shape324;
+ case 325:
+ return Shape325;
+ case 326:
+ return Shape326;
+ case 327:
+ return Shape327;
+ case 328:
+ return Shape328;
+ case 329:
+ return Shape329;
+ case 330:
+ return Shape330;
+ case 331:
+ return Shape331;
+ case 332:
+ return Shape332;
+ case 333:
+ return Shape333;
+ case 334:
+ return Shape334;
+ case 335:
+ return Shape335;
+ case 336:
+ return Shape336;
+ case 337:
+ return Shape337;
+ case 338:
+ return Shape338;
+ case 339:
+ return Shape339;
+ case 340:
+ return Shape340;
+ case 341:
+ return Shape341;
+ case 342:
+ return Shape342;
+ case 343:
+ return Shape343;
+ case 344:
+ return Shape344;
+ case 345:
+ return Shape345;
+ case 346:
+ return Shape346;
+ case 347:
+ return Shape347;
+ case 348:
+ return Shape348;
+ case 349:
+ return Shape349;
+ case 350:
+ return Shape350;
+ case 351:
+ return Shape351;
+ case 352:
+ return Shape352;
+ case 353:
+ return Shape353;
+ case 354:
+ return Shape354;
+ case 355:
+ return Shape355;
+ case 356:
+ return Shape356;
+ case 357:
+ return Shape357;
+ case 358:
+ return Shape358;
+ case 359:
+ return Shape359;
+ case 360:
+ return Shape360;
+ case 361:
+ return Shape361;
+ case 362:
+ return Shape362;
+ case 363:
+ return Shape363;
+ case 364:
+ return Shape364;
+ case 365:
+ return Shape365;
+ case 366:
+ return Shape366;
+ case 367:
+ return Shape367;
+ case 368:
+ return Shape368;
+ case 369:
+ return Shape369;
+ case 370:
+ return Shape370;
+ case 371:
+ return Shape371;
+ case 372:
+ return Shape372;
+ case 373:
+ return Shape373;
+ case 374:
+ return Shape374;
+ case 375:
+ return Shape375;
+ case 376:
+ return Shape376;
+ case 377:
+ return Shape377;
+ case 378:
+ return Shape378;
+ case 379:
+ return Shape379;
+ case 380:
+ return Shape380;
+ case 381:
+ return Shape381;
+ case 382:
+ return Shape382;
+ case 383:
+ return Shape383;
+ case 384:
+ return Shape384;
+ case 385:
+ return Shape385;
+ case 386:
+ return Shape386;
+ case 387:
+ return Shape387;
+ case 388:
+ return Shape388;
+ case 389:
+ return Shape389;
+ case 390:
+ return Shape390;
+ case 391:
+ return Shape391;
+ case 392:
+ return Shape392;
+ case 393:
+ return Shape393;
+ case 394:
+ return Shape394;
+ case 395:
+ return Shape395;
+ case 396:
+ return Shape396;
+ case 397:
+ return Shape397;
+ case 398:
+ return Shape398;
+ case 399:
+ return Shape399;
+ case 400:
+ return Shape400;
+ case 401:
+ return Shape401;
+ case 402:
+ return Shape402;
+ case 403:
+ return Shape403;
+ case 404:
+ return Shape404;
+ case 405:
+ return Shape405;
+ case 406:
+ return Shape406;
+ case 407:
+ return Shape407;
+ case 408:
+ return Shape408;
+ case 409:
+ return Shape409;
+ case 410:
+ return Shape410;
+ case 411:
+ return Shape411;
+ case 412:
+ return Shape412;
+ case 413:
+ return Shape413;
+ case 414:
+ return Shape414;
+ case 415:
+ return Shape415;
+ case 416:
+ return Shape416;
+ case 417:
+ return Shape417;
+ case 418:
+ return Shape418;
+ case 419:
+ return Shape419;
+ case 420:
+ return Shape420;
+ case 421:
+ return Shape421;
+ case 422:
+ return Shape422;
+ case 423:
+ return Shape423;
+ case 424:
+ return Shape424;
+ case 425:
+ return Shape425;
+ case 426:
+ return Shape426;
+ case 427:
+ return Shape427;
+ case 428:
+ return Shape428;
+ case 429:
+ return Shape429;
+ case 430:
+ return Shape430;
+ case 431:
+ return Shape431;
+ case 432:
+ return Shape432;
+ case 433:
+ return Shape433;
+ case 434:
+ return Shape434;
+ case 435:
+ return Shape435;
+ case 436:
+ return Shape436;
+ case 437:
+ return Shape437;
+ case 438:
+ return Shape438;
+ case 439:
+ return Shape439;
+ case 440:
+ return Shape440;
+ case 441:
+ return Shape441;
+ case 442:
+ return Shape442;
+ case 443:
+ return Shape443;
+ case 444:
+ return Shape444;
+ case 445:
+ return Shape445;
+ case 446:
+ return Shape446;
+ case 447:
+ return Shape447;
+ case 448:
+ return Shape448;
+ case 449:
+ return Shape449;
+ case 450:
+ return Shape450;
+ case 451:
+ return Shape451;
+ case 452:
+ return Shape452;
+ case 453:
+ return Shape453;
+ case 454:
+ return Shape454;
+ case 455:
+ return Shape455;
+ case 456:
+ return Shape456;
+ case 457:
+ return Shape457;
+ case 458:
+ return Shape458;
+ case 459:
+ return Shape459;
+ case 460:
+ return Shape460;
+ case 461:
+ return Shape461;
+ case 462:
+ return Shape462;
+ case 463:
+ return Shape463;
+ case 464:
+ return Shape464;
+ case 465:
+ return Shape465;
+ case 466:
+ return Shape466;
+ case 467:
+ return Shape467;
+ case 468:
+ return Shape468;
+ case 469:
+ return Shape469;
+ case 470:
+ return Shape470;
+ case 471:
+ return Shape471;
+ case 472:
+ return Shape472;
+ case 473:
+ return Shape473;
+ case 474:
+ return Shape474;
+ case 475:
+ return Shape475;
+ case 476:
+ return Shape476;
+ case 477:
+ return Shape477;
+ case 478:
+ return Shape478;
+ case 479:
+ return Shape479;
+ case 480:
+ return Shape480;
+ case 481:
+ return Shape481;
+ case 482:
+ return Shape482;
+ case 483:
+ return Shape483;
+ case 484:
+ return Shape484;
+ case 485:
+ return Shape485;
+ case 486:
+ return Shape486;
+ case 487:
+ return Shape487;
+ case 488:
+ return Shape488;
+ case 489:
+ return Shape489;
+ case 490:
+ return Shape490;
+ case 491:
+ return Shape491;
+ case 492:
+ return Shape492;
+ case 493:
+ return Shape493;
+ case 494:
+ return Shape494;
+ case 495:
+ return Shape495;
+ case 496:
+ return Shape496;
+ case 497:
+ return Shape497;
+ case 498:
+ return Shape498;
+ case 499:
+ return Shape499;
+ case 500:
+ return Shape500;
+ case 501:
+ return Shape501;
+ case 502:
+ return Shape502;
+ case 503:
+ return Shape503;
+ case 504:
+ return Shape504;
+ case 505:
+ return Shape505;
+ case 506:
+ return Shape506;
+ case 507:
+ return Shape507;
+ case 508:
+ return Shape508;
+ case 509:
+ return Shape509;
+ case 510:
+ return Shape510;
+ case 511:
+ return Shape511;
+ case 512:
+ return Shape512;
+ case 513:
+ return Shape513;
+ case 514:
+ return Shape514;
+ case 515:
+ return Shape515;
+ case 516:
+ return Shape516;
+ case 517:
+ return Shape517;
+ case 518:
+ return Shape518;
+ case 519:
+ return Shape519;
+ case 520:
+ return Shape520;
+ case 521:
+ return Shape521;
+ case 522:
+ return Shape522;
+ case 523:
+ return Shape523;
+ case 524:
+ return Shape524;
+ case 525:
+ return Shape525;
+ case 526:
+ return Shape526;
+ case 527:
+ return Shape527;
+ case 528:
+ return Shape528;
+ case 529:
+ return Shape529;
+ case 530:
+ return Shape530;
+ case 531:
+ return Shape531;
+ case 532:
+ return Shape532;
+ case 533:
+ return Shape533;
+ case 534:
+ return Shape534;
+ case 535:
+ return Shape535;
+ case 536:
+ return Shape536;
+ case 537:
+ return Shape537;
+ case 538:
+ return Shape538;
+ case 539:
+ return Shape539;
+ case 540:
+ return Shape540;
+ case 541:
+ return Shape541;
+ case 542:
+ return Shape542;
+ case 543:
+ return Shape543;
+ case 544:
+ return Shape544;
+ case 545:
+ return Shape545;
+ case 546:
+ return Shape546;
+ case 547:
+ return Shape547;
+ case 548:
+ return Shape548;
+ case 549:
+ return Shape549;
+ case 550:
+ return Shape550;
+ case 551:
+ return Shape551;
+ case 552:
+ return Shape552;
+ case 553:
+ return Shape553;
+ case 554:
+ return Shape554;
+ case 555:
+ return Shape555;
+ case 556:
+ return Shape556;
+ case 557:
+ return Shape557;
+ case 558:
+ return Shape558;
+ case 559:
+ return Shape559;
+ case 560:
+ return Shape560;
+ case 561:
+ return Shape561;
+ case 562:
+ return Shape562;
+ case 563:
+ return Shape563;
+ case 564:
+ return Shape564;
+ case 565:
+ return Shape565;
+ case 566:
+ return Shape566;
+ case 567:
+ return Shape567;
+ case 568:
+ return Shape568;
+ case 569:
+ return Shape569;
+ case 570:
+ return Shape570;
+ case 571:
+ return Shape571;
+ case 572:
+ return Shape572;
+ case 573:
+ return Shape573;
+ case 574:
+ return Shape574;
+ case 575:
+ return Shape575;
+ case 576:
+ return Shape576;
+ case 577:
+ return Shape577;
+ case 578:
+ return Shape578;
+ case 579:
+ return Shape579;
+ case 580:
+ return Shape580;
+ case 581:
+ return Shape581;
+ case 582:
+ return Shape582;
+ case 583:
+ return Shape583;
+ case 584:
+ return Shape584;
+ case 585:
+ return Shape585;
+ case 586:
+ return Shape586;
+ case 587:
+ return Shape587;
+ case 588:
+ return Shape588;
+ case 589:
+ return Shape589;
+ case 590:
+ return Shape590;
+ case 591:
+ return Shape591;
+ case 592:
+ return Shape592;
+ case 593:
+ return Shape593;
+ case 594:
+ return Shape594;
+ case 595:
+ return Shape595;
+ case 596:
+ return Shape596;
+ case 597:
+ return Shape597;
+ case 598:
+ return Shape598;
+ case 599:
+ return Shape599;
+ case 600:
+ return Shape600;
+ case 601:
+ return Shape601;
+ case 602:
+ return Shape602;
+ case 603:
+ return Shape603;
+ case 604:
+ return Shape604;
+ case 605:
+ return Shape605;
+ case 606:
+ return Shape606;
+ case 607:
+ return Shape607;
+ case 608:
+ return Shape608;
+ case 609:
+ return Shape609;
+ case 610:
+ return Shape610;
+ case 611:
+ return Shape611;
+ case 612:
+ return Shape612;
+ case 613:
+ return Shape613;
+ case 614:
+ return Shape614;
+ case 615:
+ return Shape615;
+ case 616:
+ return Shape616;
+ case 617:
+ return Shape617;
+ case 618:
+ return Shape618;
+ case 619:
+ return Shape619;
+ case 620:
+ return Shape620;
+ case 621:
+ return Shape621;
+ case 622:
+ return Shape622;
+ case 623:
+ return Shape623;
+ case 624:
+ return Shape624;
+ case 625:
+ return Shape625;
+ case 626:
+ return Shape626;
+ case 627:
+ return Shape627;
+ case 628:
+ return Shape628;
+ case 629:
+ return Shape629;
+ case 630:
+ return Shape630;
+ case 631:
+ return Shape631;
+ case 632:
+ return Shape632;
+ case 633:
+ return Shape633;
+ case 634:
+ return Shape634;
+ case 635:
+ return Shape635;
+ case 636:
+ return Shape636;
+ case 637:
+ return Shape637;
+ case 638:
+ return Shape638;
+ case 639:
+ return Shape639;
+ case 640:
+ return Shape640;
+ case 641:
+ return Shape641;
+ case 642:
+ return Shape642;
+ case 643:
+ return Shape643;
+ case 644:
+ return Shape644;
+ case 645:
+ return Shape645;
+ case 646:
+ return Shape646;
+ case 647:
+ return Shape647;
+ case 648:
+ return Shape648;
+ case 649:
+ return Shape649;
+ case 650:
+ return Shape650;
+ case 651:
+ return Shape651;
+ case 652:
+ return Shape652;
+ case 653:
+ return Shape653;
+ case 654:
+ return Shape654;
+ case 655:
+ return Shape655;
+ case 656:
+ return Shape656;
+ case 657:
+ return Shape657;
+ case 658:
+ return Shape658;
+ case 659:
+ return Shape659;
+ case 660:
+ return Shape660;
+ case 661:
+ return Shape661;
+ case 662:
+ return Shape662;
+ case 663:
+ return Shape663;
+ case 664:
+ return Shape664;
+ case 665:
+ return Shape665;
+ case 666:
+ return Shape666;
+ case 667:
+ return Shape667;
+ case 668:
+ return Shape668;
+ case 669:
+ return Shape669;
+ case 670:
+ return Shape670;
+ case 671:
+ return Shape671;
+ case 672:
+ return Shape672;
+ case 673:
+ return Shape673;
+ case 674:
+ return Shape674;
+ case 675:
+ return Shape675;
+ case 676:
+ return Shape676;
+ case 677:
+ return Shape677;
+ case 678:
+ return Shape678;
+ case 679:
+ return Shape679;
+ case 680:
+ return Shape680;
+ case 681:
+ return Shape681;
+ case 682:
+ return Shape682;
+ case 683:
+ return Shape683;
+ case 684:
+ return Shape684;
+ case 685:
+ return Shape685;
+ case 686:
+ return Shape686;
+ case 687:
+ return Shape687;
+ case 688:
+ return Shape688;
+ case 689:
+ return Shape689;
+ case 690:
+ return Shape690;
+ case 691:
+ return Shape691;
+ case 692:
+ return Shape692;
+ case 693:
+ return Shape693;
+ case 694:
+ return Shape694;
+ case 695:
+ return Shape695;
+ case 696:
+ return Shape696;
+ case 697:
+ return Shape697;
+ case 698:
+ return Shape698;
+ case 699:
+ return Shape699;
+ case 700:
+ return Shape700;
+ case 701:
+ return Shape701;
+ case 702:
+ return Shape702;
+ case 703:
+ return Shape703;
+ case 704:
+ return Shape704;
+ case 705:
+ return Shape705;
+ case 706:
+ return Shape706;
+ case 707:
+ return Shape707;
+ case 708:
+ return Shape708;
+ case 709:
+ return Shape709;
+ case 710:
+ return Shape710;
+ case 711:
+ return Shape711;
+ case 712:
+ return Shape712;
+ case 713:
+ return Shape713;
+ case 714:
+ return Shape714;
+ case 715:
+ return Shape715;
+ case 716:
+ return Shape716;
+ case 717:
+ return Shape717;
+ case 718:
+ return Shape718;
+ case 719:
+ return Shape719;
+ case 720:
+ return Shape720;
+ case 721:
+ return Shape721;
+ case 722:
+ return Shape722;
+ case 723:
+ return Shape723;
+ case 724:
+ return Shape724;
+ case 725:
+ return Shape725;
+ case 726:
+ return Shape726;
+ case 727:
+ return Shape727;
+ case 728:
+ return Shape728;
+ case 729:
+ return Shape729;
+ case 730:
+ return Shape730;
+ case 731:
+ return Shape731;
+ case 732:
+ return Shape732;
+ case 733:
+ return Shape733;
+ case 734:
+ return Shape734;
+ case 735:
+ return Shape735;
+ case 736:
+ return Shape736;
+ case 737:
+ return Shape737;
+ case 738:
+ return Shape738;
+ case 739:
+ return Shape739;
+ case 740:
+ return Shape740;
+ case 741:
+ return Shape741;
+ case 742:
+ return Shape742;
+ case 743:
+ return Shape743;
+ case 744:
+ return Shape744;
+ case 745:
+ return Shape745;
+ case 746:
+ return Shape746;
+ case 747:
+ return Shape747;
+ case 748:
+ return Shape748;
+ case 749:
+ return Shape749;
+ case 750:
+ return Shape750;
+ case 751:
+ return Shape751;
+ case 752:
+ return Shape752;
+ case 753:
+ return Shape753;
+ case 754:
+ return Shape754;
+ case 755:
+ return Shape755;
+ case 756:
+ return Shape756;
+ case 757:
+ return Shape757;
+ case 758:
+ return Shape758;
+ case 759:
+ return Shape759;
+ case 760:
+ return Shape760;
+ case 761:
+ return Shape761;
+ case 762:
+ return Shape762;
+ case 763:
+ return Shape763;
+ case 764:
+ return Shape764;
+ case 765:
+ return Shape765;
+ case 766:
+ return Shape766;
+ case 767:
+ return Shape767;
+ case 768:
+ return Shape768;
+ case 769:
+ return Shape769;
+ case 770:
+ return Shape770;
+ case 771:
+ return Shape771;
+ case 772:
+ return Shape772;
+ case 773:
+ return Shape773;
+ case 774:
+ return Shape774;
+ case 775:
+ return Shape775;
+ case 776:
+ return Shape776;
+ case 777:
+ return Shape777;
+ case 778:
+ return Shape778;
+ case 779:
+ return Shape779;
+ case 780:
+ return Shape780;
+ case 781:
+ return Shape781;
+ case 782:
+ return Shape782;
+ case 783:
+ return Shape783;
+ case 784:
+ return Shape784;
+ case 785:
+ return Shape785;
+ case 786:
+ return Shape786;
+ case 787:
+ return Shape787;
+ case 788:
+ return Shape788;
+ case 789:
+ return Shape789;
+ case 790:
+ return Shape790;
+ case 791:
+ return Shape791;
+ case 792:
+ return Shape792;
+ case 793:
+ return Shape793;
+ case 794:
+ return Shape794;
+ case 795:
+ return Shape795;
+ case 796:
+ return Shape796;
+ case 797:
+ return Shape797;
+ case 798:
+ return Shape798;
+ case 799:
+ return Shape799;
+ case 800:
+ return Shape800;
+ case 801:
+ return Shape801;
+ case 802:
+ return Shape802;
+ case 803:
+ return Shape803;
+ case 804:
+ return Shape804;
+ case 805:
+ return Shape805;
+ case 806:
+ return Shape806;
+ case 807:
+ return Shape807;
+ case 808:
+ return Shape808;
+ case 809:
+ return Shape809;
+ case 810:
+ return Shape810;
+ case 811:
+ return Shape811;
+ case 812:
+ return Shape812;
+ case 813:
+ return Shape813;
+ case 814:
+ return Shape814;
+ case 815:
+ return Shape815;
+ case 816:
+ return Shape816;
+ case 817:
+ return Shape817;
+ case 818:
+ return Shape818;
+ case 819:
+ return Shape819;
+ case 820:
+ return Shape820;
+ case 821:
+ return Shape821;
+ case 822:
+ return Shape822;
+ case 823:
+ return Shape823;
+ case 824:
+ return Shape824;
+ case 825:
+ return Shape825;
+ case 826:
+ return Shape826;
+ case 827:
+ return Shape827;
+ case 828:
+ return Shape828;
+ case 829:
+ return Shape829;
+ case 830:
+ return Shape830;
+ case 831:
+ return Shape831;
+ case 832:
+ return Shape832;
+ case 833:
+ return Shape833;
+ case 834:
+ return Shape834;
+ case 835:
+ return Shape835;
+ case 836:
+ return Shape836;
+ case 837:
+ return Shape837;
+ case 838:
+ return Shape838;
+ case 839:
+ return Shape839;
+ case 840:
+ return Shape840;
+ case 841:
+ return Shape841;
+ case 842:
+ return Shape842;
+ case 843:
+ return Shape843;
+ case 844:
+ return Shape844;
+ case 845:
+ return Shape845;
+ case 846:
+ return Shape846;
+ case 847:
+ return Shape847;
+ case 848:
+ return Shape848;
+ case 849:
+ return Shape849;
+ case 850:
+ return Shape850;
+ case 851:
+ return Shape851;
+ case 852:
+ return Shape852;
+ case 853:
+ return Shape853;
+ case 854:
+ return Shape854;
+ case 855:
+ return Shape855;
+ case 856:
+ return Shape856;
+ case 857:
+ return Shape857;
+ case 858:
+ return Shape858;
+ case 859:
+ return Shape859;
+ case 860:
+ return Shape860;
+ case 861:
+ return Shape861;
+ case 862:
+ return Shape862;
+ case 863:
+ return Shape863;
+ case 864:
+ return Shape864;
+ case 865:
+ return Shape865;
+ case 866:
+ return Shape866;
+ case 867:
+ return Shape867;
+ case 868:
+ return Shape868;
+ case 869:
+ return Shape869;
+ case 870:
+ return Shape870;
+ case 871:
+ return Shape871;
+ case 872:
+ return Shape872;
+ case 873:
+ return Shape873;
+ case 874:
+ return Shape874;
+ case 875:
+ return Shape875;
+ case 876:
+ return Shape876;
+ case 877:
+ return Shape877;
+ case 878:
+ return Shape878;
+ case 879:
+ return Shape879;
+ case 880:
+ return Shape880;
+ case 881:
+ return Shape881;
+ case 882:
+ return Shape882;
+ case 883:
+ return Shape883;
+ case 884:
+ return Shape884;
+ case 885:
+ return Shape885;
+ case 886:
+ return Shape886;
+ case 887:
+ return Shape887;
+ case 888:
+ return Shape888;
+ case 889:
+ return Shape889;
+ case 890:
+ return Shape890;
+ case 891:
+ return Shape891;
+ case 892:
+ return Shape892;
+ case 893:
+ return Shape893;
+ case 894:
+ return Shape894;
+ case 895:
+ return Shape895;
+ case 896:
+ return Shape896;
+ case 897:
+ return Shape897;
+ case 898:
+ return Shape898;
+ case 899:
+ return Shape899;
+ case 900:
+ return Shape900;
+ case 901:
+ return Shape901;
+ case 902:
+ return Shape902;
+ case 903:
+ return Shape903;
+ case 904:
+ return Shape904;
+ case 905:
+ return Shape905;
+ case 906:
+ return Shape906;
+ case 907:
+ return Shape907;
+ case 908:
+ return Shape908;
+ case 909:
+ return Shape909;
+ case 910:
+ return Shape910;
+ case 911:
+ return Shape911;
+ case 912:
+ return Shape912;
+ case 913:
+ return Shape913;
+ case 914:
+ return Shape914;
+ case 915:
+ return Shape915;
+ case 916:
+ return Shape916;
+ case 917:
+ return Shape917;
+ case 918:
+ return Shape918;
+ case 919:
+ return Shape919;
+ case 920:
+ return Shape920;
+ case 921:
+ return Shape921;
+ case 922:
+ return Shape922;
+ case 923:
+ return Shape923;
+ case 924:
+ return Shape924;
+ case 925:
+ return Shape925;
+ case 926:
+ return Shape926;
+ case 927:
+ return Shape927;
+ case 928:
+ return Shape928;
+ case 929:
+ return Shape929;
+ case 930:
+ return Shape930;
+ case 931:
+ return Shape931;
+ case 932:
+ return Shape932;
+ case 933:
+ return Shape933;
+ case 934:
+ return Shape934;
+ case 935:
+ return Shape935;
+ case 936:
+ return Shape936;
+ case 937:
+ return Shape937;
+ case 938:
+ return Shape938;
+ case 939:
+ return Shape939;
+ case 940:
+ return Shape940;
+ case 941:
+ return Shape941;
+ case 942:
+ return Shape942;
+ case 943:
+ return Shape943;
+ case 944:
+ return Shape944;
+ case 945:
+ return Shape945;
+ case 946:
+ return Shape946;
+ case 947:
+ return Shape947;
+ case 948:
+ return Shape948;
+ case 949:
+ return Shape949;
+ case 950:
+ return Shape950;
+ case 951:
+ return Shape951;
+ case 952:
+ return Shape952;
+ case 953:
+ return Shape953;
+ case 954:
+ return Shape954;
+ case 955:
+ return Shape955;
+ case 956:
+ return Shape956;
+ case 957:
+ return Shape957;
+ case 958:
+ return Shape958;
+ case 959:
+ return Shape959;
+ case 960:
+ return Shape960;
+ case 961:
+ return Shape961;
+ case 962:
+ return Shape962;
+ case 963:
+ return Shape963;
+ case 964:
+ return Shape964;
+ case 965:
+ return Shape965;
+ case 966:
+ return Shape966;
+ case 967:
+ return Shape967;
+ case 968:
+ return Shape968;
+ case 969:
+ return Shape969;
+ case 970:
+ return Shape970;
+ case 971:
+ return Shape971;
+ case 972:
+ return Shape972;
+ case 973:
+ return Shape973;
+ case 974:
+ return Shape974;
+ case 975:
+ return Shape975;
+ case 976:
+ return Shape976;
+ case 977:
+ return Shape977;
+ case 978:
+ return Shape978;
+ case 979:
+ return Shape979;
+ case 980:
+ return Shape980;
+ case 981:
+ return Shape981;
+ case 982:
+ return Shape982;
+ case 983:
+ return Shape983;
+ case 984:
+ return Shape984;
+ case 985:
+ return Shape985;
+ case 986:
+ return Shape986;
+ case 987:
+ return Shape987;
+ case 988:
+ return Shape988;
+ case 989:
+ return Shape989;
+ case 990:
+ return Shape990;
+ case 991:
+ return Shape991;
+ case 992:
+ return Shape992;
+ case 993:
+ return Shape993;
+ case 994:
+ return Shape994;
+ case 995:
+ return Shape995;
+ case 996:
+ return Shape996;
+ case 997:
+ return Shape997;
+ case 998:
+ return Shape998;
+ case 999:
+ return Shape999;
+ case 1000:
+ return Shape1000;
+ case 1001:
+ return Shape1001;
+ case 1002:
+ return Shape1002;
+ case 1003:
+ return Shape1003;
+ case 1004:
+ return Shape1004;
+ case 1005:
+ return Shape1005;
+ case 1006:
+ return Shape1006;
+ case 1007:
+ return Shape1007;
+ case 1008:
+ return Shape1008;
+ case 1009:
+ return Shape1009;
+ case 1010:
+ return Shape1010;
+ case 1011:
+ return Shape1011;
+ case 1012:
+ return Shape1012;
+ case 1013:
+ return Shape1013;
+ case 1014:
+ return Shape1014;
+ case 1015:
+ return Shape1015;
+ case 1016:
+ return Shape1016;
+ case 1017:
+ return Shape1017;
+ case 1018:
+ return Shape1018;
+ case 1019:
+ return Shape1019;
+ case 1020:
+ return Shape1020;
+ case 1021:
+ return Shape1021;
+ case 1022:
+ return Shape1022;
+ case 1023:
+ return Shape1023;
+ case 1024:
+ return Shape1024;
+ case 1025:
+ return Shape1025;
+ case 1026:
+ return Shape1026;
+ case 1027:
+ return Shape1027;
+ case 1028:
+ return Shape1028;
+ case 1029:
+ return Shape1029;
+ case 1030:
+ return Shape1030;
+ case 1031:
+ return Shape1031;
+ case 1032:
+ return Shape1032;
+ case 1033:
+ return Shape1033;
+ case 1034:
+ return Shape1034;
+ case 1035:
+ return Shape1035;
+ case 1036:
+ return Shape1036;
+ case 1037:
+ return Shape1037;
+ case 1038:
+ return Shape1038;
+ case 1039:
+ return Shape1039;
+ case 1040:
+ return Shape1040;
+ case 1041:
+ return Shape1041;
+ case 1042:
+ return Shape1042;
+ case 1043:
+ return Shape1043;
+ case 1044:
+ return Shape1044;
+ case 1045:
+ return Shape1045;
+ case 1046:
+ return Shape1046;
+ case 1047:
+ return Shape1047;
+ case 1048:
+ return Shape1048;
+ case 1049:
+ return Shape1049;
+ case 1050:
+ return Shape1050;
+ case 1051:
+ return Shape1051;
+ case 1052:
+ return Shape1052;
+ case 1053:
+ return Shape1053;
+ case 1054:
+ return Shape1054;
+ case 1055:
+ return Shape1055;
+ case 1056:
+ return Shape1056;
+ case 1057:
+ return Shape1057;
+ case 1058:
+ return Shape1058;
+ case 1059:
+ return Shape1059;
+ case 1060:
+ return Shape1060;
+ case 1061:
+ return Shape1061;
+ case 1062:
+ return Shape1062;
+ case 1063:
+ return Shape1063;
+ case 1064:
+ return Shape1064;
+ case 1065:
+ return Shape1065;
+ case 1066:
+ return Shape1066;
+ case 1067:
+ return Shape1067;
+ case 1068:
+ return Shape1068;
+ case 1069:
+ return Shape1069;
+ case 1070:
+ return Shape1070;
+ case 1071:
+ return Shape1071;
+ case 1072:
+ return Shape1072;
+ case 1073:
+ return Shape1073;
+ case 1074:
+ return Shape1074;
+ case 1075:
+ return Shape1075;
+ case 1076:
+ return Shape1076;
+ case 1077:
+ return Shape1077;
+ case 1078:
+ return Shape1078;
+ case 1079:
+ return Shape1079;
+ case 1080:
+ return Shape1080;
+ case 1081:
+ return Shape1081;
+ case 1082:
+ return Shape1082;
+ case 1083:
+ return Shape1083;
+ case 1084:
+ return Shape1084;
+ case 1085:
+ return Shape1085;
+ case 1086:
+ return Shape1086;
+ case 1087:
+ return Shape1087;
+ case 1088:
+ return Shape1088;
+ case 1089:
+ return Shape1089;
+ case 1090:
+ return Shape1090;
+ case 1091:
+ return Shape1091;
+ case 1092:
+ return Shape1092;
+ case 1093:
+ return Shape1093;
+ case 1094:
+ return Shape1094;
+ case 1095:
+ return Shape1095;
+ case 1096:
+ return Shape1096;
+ case 1097:
+ return Shape1097;
+ case 1098:
+ return Shape1098;
+ case 1099:
+ return Shape1099;
+ case 1100:
+ return Shape1100;
+ case 1101:
+ return Shape1101;
+ case 1102:
+ return Shape1102;
+ case 1103:
+ return Shape1103;
+ case 1104:
+ return Shape1104;
+ case 1105:
+ return Shape1105;
+ case 1106:
+ return Shape1106;
+ case 1107:
+ return Shape1107;
+ case 1108:
+ return Shape1108;
+ case 1109:
+ return Shape1109;
+ case 1110:
+ return Shape1110;
+ case 1111:
+ return Shape1111;
+ case 1112:
+ return Shape1112;
+ case 1113:
+ return Shape1113;
+ case 1114:
+ return Shape1114;
+ case 1115:
+ return Shape1115;
+ case 1116:
+ return Shape1116;
+ case 1117:
+ return Shape1117;
+ case 1118:
+ return Shape1118;
+ case 1119:
+ return Shape1119;
+ case 1120:
+ return Shape1120;
+ case 1121:
+ return Shape1121;
+ case 1122:
+ return Shape1122;
+ case 1123:
+ return Shape1123;
+ case 1124:
+ return Shape1124;
+ case 1125:
+ return Shape1125;
+ case 1126:
+ return Shape1126;
+ case 1127:
+ return Shape1127;
+ case 1128:
+ return Shape1128;
+ case 1129:
+ return Shape1129;
+ case 1130:
+ return Shape1130;
+ case 1131:
+ return Shape1131;
+ case 1132:
+ return Shape1132;
+ case 1133:
+ return Shape1133;
+ case 1134:
+ return Shape1134;
+ case 1135:
+ return Shape1135;
+ case 1136:
+ return Shape1136;
+ case 1137:
+ return Shape1137;
+ case 1138:
+ return Shape1138;
+ case 1139:
+ return Shape1139;
+ case 1140:
+ return Shape1140;
+ case 1141:
+ return Shape1141;
+ case 1142:
+ return Shape1142;
+ case 1143:
+ return Shape1143;
+ case 1144:
+ return Shape1144;
+ case 1145:
+ return Shape1145;
+ case 1146:
+ return Shape1146;
+ case 1147:
+ return Shape1147;
+ case 1148:
+ return Shape1148;
+ case 1149:
+ return Shape1149;
+ case 1150:
+ return Shape1150;
+ case 1151:
+ return Shape1151;
+ case 1152:
+ return Shape1152;
+ case 1153:
+ return Shape1153;
+ case 1154:
+ return Shape1154;
+ case 1155:
+ return Shape1155;
+ case 1156:
+ return Shape1156;
+ case 1157:
+ return Shape1157;
+ case 1158:
+ return Shape1158;
+ case 1159:
+ return Shape1159;
+ case 1160:
+ return Shape1160;
+ case 1161:
+ return Shape1161;
+ case 1162:
+ return Shape1162;
+ case 1163:
+ return Shape1163;
+ case 1164:
+ return Shape1164;
+ case 1165:
+ return Shape1165;
+ case 1166:
+ return Shape1166;
+ case 1167:
+ return Shape1167;
+ case 1168:
+ return Shape1168;
+ case 1169:
+ return Shape1169;
+ case 1170:
+ return Shape1170;
+ case 1171:
+ return Shape1171;
+ case 1172:
+ return Shape1172;
+ case 1173:
+ return Shape1173;
+ case 1174:
+ return Shape1174;
+ case 1175:
+ return Shape1175;
+ case 1176:
+ return Shape1176;
+ case 1177:
+ return Shape1177;
+ case 1178:
+ return Shape1178;
+ case 1179:
+ return Shape1179;
+ case 1180:
+ return Shape1180;
+ case 1181:
+ return Shape1181;
+ case 1182:
+ return Shape1182;
+ case 1183:
+ return Shape1183;
+ case 1184:
+ return Shape1184;
+ case 1185:
+ return Shape1185;
+ case 1186:
+ return Shape1186;
+ case 1187:
+ return Shape1187;
+ case 1188:
+ return Shape1188;
+ case 1189:
+ return Shape1189;
+ case 1190:
+ return Shape1190;
+ case 1191:
+ return Shape1191;
+ case 1192:
+ return Shape1192;
+ case 1193:
+ return Shape1193;
+ case 1194:
+ return Shape1194;
+ case 1195:
+ return Shape1195;
+ case 1196:
+ return Shape1196;
+ case 1197:
+ return Shape1197;
+ case 1198:
+ return Shape1198;
+ case 1199:
+ return Shape1199;
+ case 1200:
+ return Shape1200;
+ case 1201:
+ return Shape1201;
+ case 1202:
+ return Shape1202;
+ case 1203:
+ return Shape1203;
+ case 1204:
+ return Shape1204;
+ case 1205:
+ return Shape1205;
+ case 1206:
+ return Shape1206;
+ case 1207:
+ return Shape1207;
+ case 1208:
+ return Shape1208;
+ case 1209:
+ return Shape1209;
+ case 1210:
+ return Shape1210;
+ case 1211:
+ return Shape1211;
+ case 1212:
+ return Shape1212;
+ case 1213:
+ return Shape1213;
+ case 1214:
+ return Shape1214;
+ case 1215:
+ return Shape1215;
+ case 1216:
+ return Shape1216;
+ case 1217:
+ return Shape1217;
+ case 1218:
+ return Shape1218;
+ case 1219:
+ return Shape1219;
+ case 1220:
+ return Shape1220;
+ case 1221:
+ return Shape1221;
+ case 1222:
+ return Shape1222;
+ case 1223:
+ return Shape1223;
+ case 1224:
+ return Shape1224;
+ case 1225:
+ return Shape1225;
+ case 1226:
+ return Shape1226;
+ case 1227:
+ return Shape1227;
+ case 1228:
+ return Shape1228;
+ case 1229:
+ return Shape1229;
+ case 1230:
+ return Shape1230;
+ case 1231:
+ return Shape1231;
+ case 1232:
+ return Shape1232;
+ case 1233:
+ return Shape1233;
+ case 1234:
+ return Shape1234;
+ case 1235:
+ return Shape1235;
+ case 1236:
+ return Shape1236;
+ case 1237:
+ return Shape1237;
+ case 1238:
+ return Shape1238;
+ case 1239:
+ return Shape1239;
+ case 1240:
+ return Shape1240;
+ case 1241:
+ return Shape1241;
+ case 1242:
+ return Shape1242;
+ case 1243:
+ return Shape1243;
+ case 1244:
+ return Shape1244;
+ case 1245:
+ return Shape1245;
+ case 1246:
+ return Shape1246;
+ case 1247:
+ return Shape1247;
+ case 1248:
+ return Shape1248;
+ case 1249:
+ return Shape1249;
+ case 1250:
+ return Shape1250;
+ case 1251:
+ return Shape1251;
+ case 1252:
+ return Shape1252;
+ case 1253:
+ return Shape1253;
+ case 1254:
+ return Shape1254;
+ case 1255:
+ return Shape1255;
+ case 1256:
+ return Shape1256;
+ case 1257:
+ return Shape1257;
+ case 1258:
+ return Shape1258;
+ case 1259:
+ return Shape1259;
+ case 1260:
+ return Shape1260;
+ case 1261:
+ return Shape1261;
+ case 1262:
+ return Shape1262;
+ case 1263:
+ return Shape1263;
+ case 1264:
+ return Shape1264;
+ case 1265:
+ return Shape1265;
+ case 1266:
+ return Shape1266;
+ case 1267:
+ return Shape1267;
+ case 1268:
+ return Shape1268;
+ case 1269:
+ return Shape1269;
+ case 1270:
+ return Shape1270;
+ case 1271:
+ return Shape1271;
+ case 1272:
+ return Shape1272;
+ case 1273:
+ return Shape1273;
+ case 1274:
+ return Shape1274;
+ case 1275:
+ return Shape1275;
+ case 1276:
+ return Shape1276;
+ case 1277:
+ return Shape1277;
+ case 1278:
+ return Shape1278;
+ case 1279:
+ return Shape1279;
+ case 1280:
+ return Shape1280;
+ case 1281:
+ return Shape1281;
+ case 1282:
+ return Shape1282;
+ case 1283:
+ return Shape1283;
+ case 1284:
+ return Shape1284;
+ case 1285:
+ return Shape1285;
+ case 1286:
+ return Shape1286;
+ case 1287:
+ return Shape1287;
+ case 1288:
+ return Shape1288;
+ case 1289:
+ return Shape1289;
+ case 1290:
+ return Shape1290;
+ case 1291:
+ return Shape1291;
+ case 1292:
+ return Shape1292;
+ case 1293:
+ return Shape1293;
+ case 1294:
+ return Shape1294;
+ case 1295:
+ return Shape1295;
+ case 1296:
+ return Shape1296;
+ case 1297:
+ return Shape1297;
+ case 1298:
+ return Shape1298;
+ case 1299:
+ return Shape1299;
+ case 1300:
+ return Shape1300;
+ case 1301:
+ return Shape1301;
+ case 1302:
+ return Shape1302;
+ case 1303:
+ return Shape1303;
+ case 1304:
+ return Shape1304;
+ case 1305:
+ return Shape1305;
+ case 1306:
+ return Shape1306;
+ case 1307:
+ return Shape1307;
+ case 1308:
+ return Shape1308;
+ case 1309:
+ return Shape1309;
+ case 1310:
+ return Shape1310;
+ case 1311:
+ return Shape1311;
+ case 1312:
+ return Shape1312;
+ case 1313:
+ return Shape1313;
+ case 1314:
+ return Shape1314;
+ case 1315:
+ return Shape1315;
+ case 1316:
+ return Shape1316;
+ case 1317:
+ return Shape1317;
+ case 1318:
+ return Shape1318;
+ case 1319:
+ return Shape1319;
+ case 1320:
+ return Shape1320;
+ case 1321:
+ return Shape1321;
+ case 1322:
+ return Shape1322;
+ case 1323:
+ return Shape1323;
+ case 1324:
+ return Shape1324;
+ case 1325:
+ return Shape1325;
+ case 1326:
+ return Shape1326;
+ case 1327:
+ return Shape1327;
+ case 1328:
+ return Shape1328;
+ case 1329:
+ return Shape1329;
+ case 1330:
+ return Shape1330;
+ case 1331:
+ return Shape1331;
+ case 1332:
+ return Shape1332;
+ case 1333:
+ return Shape1333;
+ case 1334:
+ return Shape1334;
+ case 1335:
+ return Shape1335;
+ case 1336:
+ return Shape1336;
+ case 1337:
+ return Shape1337;
+ case 1338:
+ return Shape1338;
+ case 1339:
+ return Shape1339;
+ case 1340:
+ return Shape1340;
+ case 1341:
+ return Shape1341;
+ case 1342:
+ return Shape1342;
+ case 1343:
+ return Shape1343;
+ case 1344:
+ return Shape1344;
+ case 1345:
+ return Shape1345;
+ case 1346:
+ return Shape1346;
+ case 1347:
+ return Shape1347;
+ case 1348:
+ return Shape1348;
+ case 1349:
+ return Shape1349;
+ case 1350:
+ return Shape1350;
+ case 1351:
+ return Shape1351;
+ case 1352:
+ return Shape1352;
+ case 1353:
+ return Shape1353;
+ case 1354:
+ return Shape1354;
+ case 1355:
+ return Shape1355;
+ case 1356:
+ return Shape1356;
+ case 1357:
+ return Shape1357;
+ case 1358:
+ return Shape1358;
+ case 1359:
+ return Shape1359;
+ case 1360:
+ return Shape1360;
+ case 1361:
+ return Shape1361;
+ case 1362:
+ return Shape1362;
+ case 1363:
+ return Shape1363;
+ case 1364:
+ return Shape1364;
+ case 1365:
+ return Shape1365;
+ case 1366:
+ return Shape1366;
+ case 1367:
+ return Shape1367;
+ case 1368:
+ return Shape1368;
+ case 1369:
+ return Shape1369;
+ case 1370:
+ return Shape1370;
+ case 1371:
+ return Shape1371;
+ case 1372:
+ return Shape1372;
+ case 1373:
+ return Shape1373;
+ case 1374:
+ return Shape1374;
+ case 1375:
+ return Shape1375;
+ case 1376:
+ return Shape1376;
+ case 1377:
+ return Shape1377;
+ case 1378:
+ return Shape1378;
+ case 1379:
+ return Shape1379;
+ case 1380:
+ return Shape1380;
+ case 1381:
+ return Shape1381;
+ case 1382:
+ return Shape1382;
+ case 1383:
+ return Shape1383;
+ case 1384:
+ return Shape1384;
+ case 1385:
+ return Shape1385;
+ case 1386:
+ return Shape1386;
+ case 1387:
+ return Shape1387;
+ case 1388:
+ return Shape1388;
+ case 1389:
+ return Shape1389;
+ case 1390:
+ return Shape1390;
+ case 1391:
+ return Shape1391;
+ case 1392:
+ return Shape1392;
+ case 1393:
+ return Shape1393;
+ case 1394:
+ return Shape1394;
+ case 1395:
+ return Shape1395;
+ case 1396:
+ return Shape1396;
+ case 1397:
+ return Shape1397;
+ case 1398:
+ return Shape1398;
+ case 1399:
+ return Shape1399;
+ case 1400:
+ return Shape1400;
+ case 1401:
+ return Shape1401;
+ case 1402:
+ return Shape1402;
+ case 1403:
+ return Shape1403;
+ case 1404:
+ return Shape1404;
+ case 1405:
+ return Shape1405;
+ case 1406:
+ return Shape1406;
+ case 1407:
+ return Shape1407;
+ case 1408:
+ return Shape1408;
+ case 1409:
+ return Shape1409;
+ case 1410:
+ return Shape1410;
+ case 1411:
+ return Shape1411;
+ case 1412:
+ return Shape1412;
+ case 1413:
+ return Shape1413;
+ case 1414:
+ return Shape1414;
+ case 1415:
+ return Shape1415;
+ case 1416:
+ return Shape1416;
+ case 1417:
+ return Shape1417;
+ case 1418:
+ return Shape1418;
+ case 1419:
+ return Shape1419;
+ case 1420:
+ return Shape1420;
+ case 1421:
+ return Shape1421;
+ case 1422:
+ return Shape1422;
+ case 1423:
+ return Shape1423;
+ case 1424:
+ return Shape1424;
+ case 1425:
+ return Shape1425;
+ case 1426:
+ return Shape1426;
+ case 1427:
+ return Shape1427;
+ case 1428:
+ return Shape1428;
+ case 1429:
+ return Shape1429;
+ case 1430:
+ return Shape1430;
+ case 1431:
+ return Shape1431;
+ case 1432:
+ return Shape1432;
+ case 1433:
+ return Shape1433;
+ case 1434:
+ return Shape1434;
+ case 1435:
+ return Shape1435;
+ case 1436:
+ return Shape1436;
+ case 1437:
+ return Shape1437;
+ case 1438:
+ return Shape1438;
+ case 1439:
+ return Shape1439;
+ case 1440:
+ return Shape1440;
+ case 1441:
+ return Shape1441;
+ case 1442:
+ return Shape1442;
+ case 1443:
+ return Shape1443;
+ case 1444:
+ return Shape1444;
+ case 1445:
+ return Shape1445;
+ case 1446:
+ return Shape1446;
+ case 1447:
+ return Shape1447;
+ case 1448:
+ return Shape1448;
+ case 1449:
+ return Shape1449;
+ case 1450:
+ return Shape1450;
+ case 1451:
+ return Shape1451;
+ case 1452:
+ return Shape1452;
+ case 1453:
+ return Shape1453;
+ case 1454:
+ return Shape1454;
+ case 1455:
+ return Shape1455;
+ case 1456:
+ return Shape1456;
+ case 1457:
+ return Shape1457;
+ case 1458:
+ return Shape1458;
+ case 1459:
+ return Shape1459;
+ case 1460:
+ return Shape1460;
+ case 1461:
+ return Shape1461;
+ case 1462:
+ return Shape1462;
+ case 1463:
+ return Shape1463;
+ case 1464:
+ return Shape1464;
+ case 1465:
+ return Shape1465;
+ case 1466:
+ return Shape1466;
+ case 1467:
+ return Shape1467;
+ case 1468:
+ return Shape1468;
+ case 1469:
+ return Shape1469;
+ case 1470:
+ return Shape1470;
+ case 1471:
+ return Shape1471;
+ case 1472:
+ return Shape1472;
+ case 1473:
+ return Shape1473;
+ case 1474:
+ return Shape1474;
+ case 1475:
+ return Shape1475;
+ case 1476:
+ return Shape1476;
+ case 1477:
+ return Shape1477;
+ case 1478:
+ return Shape1478;
+ case 1479:
+ return Shape1479;
+ case 1480:
+ return Shape1480;
+ case 1481:
+ return Shape1481;
+ case 1482:
+ return Shape1482;
+ case 1483:
+ return Shape1483;
+ case 1484:
+ return Shape1484;
+ case 1485:
+ return Shape1485;
+ case 1486:
+ return Shape1486;
+ case 1487:
+ return Shape1487;
+ case 1488:
+ return Shape1488;
+ case 1489:
+ return Shape1489;
+ case 1490:
+ return Shape1490;
+ case 1491:
+ return Shape1491;
+ case 1492:
+ return Shape1492;
+ case 1493:
+ return Shape1493;
+ case 1494:
+ return Shape1494;
+ case 1495:
+ return Shape1495;
+ case 1496:
+ return Shape1496;
+ case 1497:
+ return Shape1497;
+ case 1498:
+ return Shape1498;
+ case 1499:
+ return Shape1499;
+ case 1500:
+ return Shape1500;
+ case 1501:
+ return Shape1501;
+ case 1502:
+ return Shape1502;
+ case 1503:
+ return Shape1503;
+ case 1504:
+ return Shape1504;
+ case 1505:
+ return Shape1505;
+ case 1506:
+ return Shape1506;
+ case 1507:
+ return Shape1507;
+ case 1508:
+ return Shape1508;
+ case 1509:
+ return Shape1509;
+ case 1510:
+ return Shape1510;
+ case 1511:
+ return Shape1511;
+ case 1512:
+ return Shape1512;
+ case 1513:
+ return Shape1513;
+ case 1514:
+ return Shape1514;
+ case 1515:
+ return Shape1515;
+ case 1516:
+ return Shape1516;
+ case 1517:
+ return Shape1517;
+ case 1518:
+ return Shape1518;
+ case 1519:
+ return Shape1519;
+ case 1520:
+ return Shape1520;
+ case 1521:
+ return Shape1521;
+ case 1522:
+ return Shape1522;
+ case 1523:
+ return Shape1523;
+ case 1524:
+ return Shape1524;
+ case 1525:
+ return Shape1525;
+ case 1526:
+ return Shape1526;
+ case 1527:
+ return Shape1527;
+ case 1528:
+ return Shape1528;
+ case 1529:
+ return Shape1529;
+ case 1530:
+ return Shape1530;
+ case 1531:
+ return Shape1531;
+ case 1532:
+ return Shape1532;
+ case 1533:
+ return Shape1533;
+ case 1534:
+ return Shape1534;
+ case 1535:
+ return Shape1535;
+ case 1536:
+ return Shape1536;
+ case 1537:
+ return Shape1537;
+ case 1538:
+ return Shape1538;
+ case 1539:
+ return Shape1539;
+ case 1540:
+ return Shape1540;
+ case 1541:
+ return Shape1541;
+ case 1542:
+ return Shape1542;
+ case 1543:
+ return Shape1543;
+ case 1544:
+ return Shape1544;
+ case 1545:
+ return Shape1545;
+ case 1546:
+ return Shape1546;
+ case 1547:
+ return Shape1547;
+ case 1548:
+ return Shape1548;
+ case 1549:
+ return Shape1549;
+ case 1550:
+ return Shape1550;
+ case 1551:
+ return Shape1551;
+ case 1552:
+ return Shape1552;
+ case 1553:
+ return Shape1553;
+ case 1554:
+ return Shape1554;
+ case 1555:
+ return Shape1555;
+ case 1556:
+ return Shape1556;
+ case 1557:
+ return Shape1557;
+ case 1558:
+ return Shape1558;
+ case 1559:
+ return Shape1559;
+ case 1560:
+ return Shape1560;
+ case 1561:
+ return Shape1561;
+ case 1562:
+ return Shape1562;
+ case 1563:
+ return Shape1563;
+ case 1564:
+ return Shape1564;
+ case 1565:
+ return Shape1565;
+ case 1566:
+ return Shape1566;
+ case 1567:
+ return Shape1567;
+ case 1568:
+ return Shape1568;
+ case 1569:
+ return Shape1569;
+ case 1570:
+ return Shape1570;
+ case 1571:
+ return Shape1571;
+ case 1572:
+ return Shape1572;
+ case 1573:
+ return Shape1573;
+ case 1574:
+ return Shape1574;
+ case 1575:
+ return Shape1575;
+ case 1576:
+ return Shape1576;
+ case 1577:
+ return Shape1577;
+ case 1578:
+ return Shape1578;
+ case 1579:
+ return Shape1579;
+ case 1580:
+ return Shape1580;
+ case 1581:
+ return Shape1581;
+ case 1582:
+ return Shape1582;
+ case 1583:
+ return Shape1583;
+ case 1584:
+ return Shape1584;
+ case 1585:
+ return Shape1585;
+ case 1586:
+ return Shape1586;
+ case 1587:
+ return Shape1587;
+ case 1588:
+ return Shape1588;
+ case 1589:
+ return Shape1589;
+ case 1590:
+ return Shape1590;
+ case 1591:
+ return Shape1591;
+ case 1592:
+ return Shape1592;
+ case 1593:
+ return Shape1593;
+ case 1594:
+ return Shape1594;
+ case 1595:
+ return Shape1595;
+ case 1596:
+ return Shape1596;
+ case 1597:
+ return Shape1597;
+ case 1598:
+ return Shape1598;
+ case 1599:
+ return Shape1599;
+ case 1600:
+ return Shape1600;
+ case 1601:
+ return Shape1601;
+ case 1602:
+ return Shape1602;
+ case 1603:
+ return Shape1603;
+ case 1604:
+ return Shape1604;
+ case 1605:
+ return Shape1605;
+ case 1606:
+ return Shape1606;
+ case 1607:
+ return Shape1607;
+ case 1608:
+ return Shape1608;
+ case 1609:
+ return Shape1609;
+ case 1610:
+ return Shape1610;
+ case 1611:
+ return Shape1611;
+ case 1612:
+ return Shape1612;
+ case 1613:
+ return Shape1613;
+ case 1614:
+ return Shape1614;
+ case 1615:
+ return Shape1615;
+ case 1616:
+ return Shape1616;
+ case 1617:
+ return Shape1617;
+ case 1618:
+ return Shape1618;
+ case 1619:
+ return Shape1619;
+ case 1620:
+ return Shape1620;
+ case 1621:
+ return Shape1621;
+ case 1622:
+ return Shape1622;
+ case 1623:
+ return Shape1623;
+ case 1624:
+ return Shape1624;
+ case 1625:
+ return Shape1625;
+ case 1626:
+ return Shape1626;
+ case 1627:
+ return Shape1627;
+ case 1628:
+ return Shape1628;
+ case 1629:
+ return Shape1629;
+ case 1630:
+ return Shape1630;
+ case 1631:
+ return Shape1631;
+ case 1632:
+ return Shape1632;
+ case 1633:
+ return Shape1633;
+ case 1634:
+ return Shape1634;
+ case 1635:
+ return Shape1635;
+ case 1636:
+ return Shape1636;
+ case 1637:
+ return Shape1637;
+ case 1638:
+ return Shape1638;
+ case 1639:
+ return Shape1639;
+ case 1640:
+ return Shape1640;
+ case 1641:
+ return Shape1641;
+ case 1642:
+ return Shape1642;
+ case 1643:
+ return Shape1643;
+ case 1644:
+ return Shape1644;
+ case 1645:
+ return Shape1645;
+ case 1646:
+ return Shape1646;
+ case 1647:
+ return Shape1647;
+ case 1648:
+ return Shape1648;
+ case 1649:
+ return Shape1649;
+ case 1650:
+ return Shape1650;
+ case 1651:
+ return Shape1651;
+ case 1652:
+ return Shape1652;
+ case 1653:
+ return Shape1653;
+ case 1654:
+ return Shape1654;
+ case 1655:
+ return Shape1655;
+ case 1656:
+ return Shape1656;
+ case 1657:
+ return Shape1657;
+ case 1658:
+ return Shape1658;
+ case 1659:
+ return Shape1659;
+ case 1660:
+ return Shape1660;
+ case 1661:
+ return Shape1661;
+ case 1662:
+ return Shape1662;
+ case 1663:
+ return Shape1663;
+ case 1664:
+ return Shape1664;
+ case 1665:
+ return Shape1665;
+ case 1666:
+ return Shape1666;
+ case 1667:
+ return Shape1667;
+ case 1668:
+ return Shape1668;
+ case 1669:
+ return Shape1669;
+ case 1670:
+ return Shape1670;
+ case 1671:
+ return Shape1671;
+ case 1672:
+ return Shape1672;
+ case 1673:
+ return Shape1673;
+ case 1674:
+ return Shape1674;
+ case 1675:
+ return Shape1675;
+ case 1676:
+ return Shape1676;
+ case 1677:
+ return Shape1677;
+ case 1678:
+ return Shape1678;
+ case 1679:
+ return Shape1679;
+ case 1680:
+ return Shape1680;
+ case 1681:
+ return Shape1681;
+ case 1682:
+ return Shape1682;
+ case 1683:
+ return Shape1683;
+ case 1684:
+ return Shape1684;
+ case 1685:
+ return Shape1685;
+ case 1686:
+ return Shape1686;
+ case 1687:
+ return Shape1687;
+ case 1688:
+ return Shape1688;
+ case 1689:
+ return Shape1689;
+ case 1690:
+ return Shape1690;
+ case 1691:
+ return Shape1691;
+ case 1692:
+ return Shape1692;
+ case 1693:
+ return Shape1693;
+ case 1694:
+ return Shape1694;
+ case 1695:
+ return Shape1695;
+ case 1696:
+ return Shape1696;
+ case 1697:
+ return Shape1697;
+ case 1698:
+ return Shape1698;
+ case 1699:
+ return Shape1699;
+ case 1700:
+ return Shape1700;
+ case 1701:
+ return Shape1701;
+ case 1702:
+ return Shape1702;
+ case 1703:
+ return Shape1703;
+ case 1704:
+ return Shape1704;
+ case 1705:
+ return Shape1705;
+ case 1706:
+ return Shape1706;
+ case 1707:
+ return Shape1707;
+ case 1708:
+ return Shape1708;
+ case 1709:
+ return Shape1709;
+ case 1710:
+ return Shape1710;
+ case 1711:
+ return Shape1711;
+ case 1712:
+ return Shape1712;
+ case 1713:
+ return Shape1713;
+ case 1714:
+ return Shape1714;
+ case 1715:
+ return Shape1715;
+ case 1716:
+ return Shape1716;
+ case 1717:
+ return Shape1717;
+ case 1718:
+ return Shape1718;
+ case 1719:
+ return Shape1719;
+ case 1720:
+ return Shape1720;
+ case 1721:
+ return Shape1721;
+ case 1722:
+ return Shape1722;
+ case 1723:
+ return Shape1723;
+ case 1724:
+ return Shape1724;
+ case 1725:
+ return Shape1725;
+ case 1726:
+ return Shape1726;
+ case 1727:
+ return Shape1727;
+ case 1728:
+ return Shape1728;
+ case 1729:
+ return Shape1729;
+ case 1730:
+ return Shape1730;
+ case 1731:
+ return Shape1731;
+ case 1732:
+ return Shape1732;
+ case 1733:
+ return Shape1733;
+ case 1734:
+ return Shape1734;
+ case 1735:
+ return Shape1735;
+ case 1736:
+ return Shape1736;
+ case 1737:
+ return Shape1737;
+ case 1738:
+ return Shape1738;
+ case 1739:
+ return Shape1739;
+ case 1740:
+ return Shape1740;
+ case 1741:
+ return Shape1741;
+ case 1742:
+ return Shape1742;
+ case 1743:
+ return Shape1743;
+ case 1744:
+ return Shape1744;
+ case 1745:
+ return Shape1745;
+ case 1746:
+ return Shape1746;
+ case 1747:
+ return Shape1747;
+ case 1748:
+ return Shape1748;
+ case 1749:
+ return Shape1749;
+ case 1750:
+ return Shape1750;
+ case 1751:
+ return Shape1751;
+ case 1752:
+ return Shape1752;
+ case 1753:
+ return Shape1753;
+ case 1754:
+ return Shape1754;
+ case 1755:
+ return Shape1755;
+ case 1756:
+ return Shape1756;
+ case 1757:
+ return Shape1757;
+ case 1758:
+ return Shape1758;
+ case 1759:
+ return Shape1759;
+ case 1760:
+ return Shape1760;
+ case 1761:
+ return Shape1761;
+ case 1762:
+ return Shape1762;
+ case 1763:
+ return Shape1763;
+ case 1764:
+ return Shape1764;
+ case 1765:
+ return Shape1765;
+ case 1766:
+ return Shape1766;
+ case 1767:
+ return Shape1767;
+ case 1768:
+ return Shape1768;
+ case 1769:
+ return Shape1769;
+ case 1770:
+ return Shape1770;
+ case 1771:
+ return Shape1771;
+ case 1772:
+ return Shape1772;
+ case 1773:
+ return Shape1773;
+ case 1774:
+ return Shape1774;
+ case 1775:
+ return Shape1775;
+ case 1776:
+ return Shape1776;
+ case 1777:
+ return Shape1777;
+ case 1778:
+ return Shape1778;
+ case 1779:
+ return Shape1779;
+ case 1780:
+ return Shape1780;
+ case 1781:
+ return Shape1781;
+ case 1782:
+ return Shape1782;
+ case 1783:
+ return Shape1783;
+ case 1784:
+ return Shape1784;
+ case 1785:
+ return Shape1785;
+ case 1786:
+ return Shape1786;
+ case 1787:
+ return Shape1787;
+ case 1788:
+ return Shape1788;
+ case 1789:
+ return Shape1789;
+ case 1790:
+ return Shape1790;
+ case 1791:
+ return Shape1791;
+ case 1792:
+ return Shape1792;
+ case 1793:
+ return Shape1793;
+ case 1794:
+ return Shape1794;
+ case 1795:
+ return Shape1795;
+ case 1796:
+ return Shape1796;
+ case 1797:
+ return Shape1797;
+ case 1798:
+ return Shape1798;
+ case 1799:
+ return Shape1799;
+ case 1800:
+ return Shape1800;
+ case 1801:
+ return Shape1801;
+ case 1802:
+ return Shape1802;
+ case 1803:
+ return Shape1803;
+ case 1804:
+ return Shape1804;
+ case 1805:
+ return Shape1805;
+ case 1806:
+ return Shape1806;
+ case 1807:
+ return Shape1807;
+ case 1808:
+ return Shape1808;
+ case 1809:
+ return Shape1809;
+ case 1810:
+ return Shape1810;
+ case 1811:
+ return Shape1811;
+ case 1812:
+ return Shape1812;
+ case 1813:
+ return Shape1813;
+ case 1814:
+ return Shape1814;
+ case 1815:
+ return Shape1815;
+ case 1816:
+ return Shape1816;
+ case 1817:
+ return Shape1817;
+ case 1818:
+ return Shape1818;
+ case 1819:
+ return Shape1819;
+ case 1820:
+ return Shape1820;
+ case 1821:
+ return Shape1821;
+ case 1822:
+ return Shape1822;
+ case 1823:
+ return Shape1823;
+ case 1824:
+ return Shape1824;
+ case 1825:
+ return Shape1825;
+ case 1826:
+ return Shape1826;
+ case 1827:
+ return Shape1827;
+ case 1828:
+ return Shape1828;
+ case 1829:
+ return Shape1829;
+ case 1830:
+ return Shape1830;
+ case 1831:
+ return Shape1831;
+ case 1832:
+ return Shape1832;
+ case 1833:
+ return Shape1833;
+ case 1834:
+ return Shape1834;
+ case 1835:
+ return Shape1835;
+ case 1836:
+ return Shape1836;
+ case 1837:
+ return Shape1837;
+ case 1838:
+ return Shape1838;
+ case 1839:
+ return Shape1839;
+ case 1840:
+ return Shape1840;
+ case 1841:
+ return Shape1841;
+ case 1842:
+ return Shape1842;
+ case 1843:
+ return Shape1843;
+ case 1844:
+ return Shape1844;
+ case 1845:
+ return Shape1845;
+ case 1846:
+ return Shape1846;
+ case 1847:
+ return Shape1847;
+ case 1848:
+ return Shape1848;
+ case 1849:
+ return Shape1849;
+ case 1850:
+ return Shape1850;
+ case 1851:
+ return Shape1851;
+ case 1852:
+ return Shape1852;
+ case 1853:
+ return Shape1853;
+ case 1854:
+ return Shape1854;
+ case 1855:
+ return Shape1855;
+ case 1856:
+ return Shape1856;
+ case 1857:
+ return Shape1857;
+ case 1858:
+ return Shape1858;
+ case 1859:
+ return Shape1859;
+ case 1860:
+ return Shape1860;
+ case 1861:
+ return Shape1861;
+ case 1862:
+ return Shape1862;
+ case 1863:
+ return Shape1863;
+ case 1864:
+ return Shape1864;
+ case 1865:
+ return Shape1865;
+ case 1866:
+ return Shape1866;
+ case 1867:
+ return Shape1867;
+ case 1868:
+ return Shape1868;
+ case 1869:
+ return Shape1869;
+ case 1870:
+ return Shape1870;
+ case 1871:
+ return Shape1871;
+ case 1872:
+ return Shape1872;
+ case 1873:
+ return Shape1873;
+ case 1874:
+ return Shape1874;
+ case 1875:
+ return Shape1875;
+ case 1876:
+ return Shape1876;
+ case 1877:
+ return Shape1877;
+ case 1878:
+ return Shape1878;
+ case 1879:
+ return Shape1879;
+ case 1880:
+ return Shape1880;
+ case 1881:
+ return Shape1881;
+ case 1882:
+ return Shape1882;
+ case 1883:
+ return Shape1883;
+ case 1884:
+ return Shape1884;
+ case 1885:
+ return Shape1885;
+ case 1886:
+ return Shape1886;
+ case 1887:
+ return Shape1887;
+ case 1888:
+ return Shape1888;
+ case 1889:
+ return Shape1889;
+ case 1890:
+ return Shape1890;
+ case 1891:
+ return Shape1891;
+ case 1892:
+ return Shape1892;
+ case 1893:
+ return Shape1893;
+ case 1894:
+ return Shape1894;
+ case 1895:
+ return Shape1895;
+ case 1896:
+ return Shape1896;
+ case 1897:
+ return Shape1897;
+ case 1898:
+ return Shape1898;
+ case 1899:
+ return Shape1899;
+ case 1900:
+ return Shape1900;
+ case 1901:
+ return Shape1901;
+ case 1902:
+ return Shape1902;
+ case 1903:
+ return Shape1903;
+ case 1904:
+ return Shape1904;
+ case 1905:
+ return Shape1905;
+ case 1906:
+ return Shape1906;
+ case 1907:
+ return Shape1907;
+ case 1908:
+ return Shape1908;
+ case 1909:
+ return Shape1909;
+ case 1910:
+ return Shape1910;
+ case 1911:
+ return Shape1911;
+ case 1912:
+ return Shape1912;
+ case 1913:
+ return Shape1913;
+ case 1914:
+ return Shape1914;
+ case 1915:
+ return Shape1915;
+ case 1916:
+ return Shape1916;
+ case 1917:
+ return Shape1917;
+ case 1918:
+ return Shape1918;
+ case 1919:
+ return Shape1919;
+ case 1920:
+ return Shape1920;
+ case 1921:
+ return Shape1921;
+ case 1922:
+ return Shape1922;
+ case 1923:
+ return Shape1923;
+ case 1924:
+ return Shape1924;
+ case 1925:
+ return Shape1925;
+ case 1926:
+ return Shape1926;
+ case 1927:
+ return Shape1927;
+ case 1928:
+ return Shape1928;
+ case 1929:
+ return Shape1929;
+ case 1930:
+ return Shape1930;
+ case 1931:
+ return Shape1931;
+ case 1932:
+ return Shape1932;
+ case 1933:
+ return Shape1933;
+ case 1934:
+ return Shape1934;
+ case 1935:
+ return Shape1935;
+ case 1936:
+ return Shape1936;
+ case 1937:
+ return Shape1937;
+ case 1938:
+ return Shape1938;
+ case 1939:
+ return Shape1939;
+ case 1940:
+ return Shape1940;
+ case 1941:
+ return Shape1941;
+ case 1942:
+ return Shape1942;
+ case 1943:
+ return Shape1943;
+ case 1944:
+ return Shape1944;
+ case 1945:
+ return Shape1945;
+ case 1946:
+ return Shape1946;
+ case 1947:
+ return Shape1947;
+ case 1948:
+ return Shape1948;
+ case 1949:
+ return Shape1949;
+ case 1950:
+ return Shape1950;
+ case 1951:
+ return Shape1951;
+ case 1952:
+ return Shape1952;
+ case 1953:
+ return Shape1953;
+ case 1954:
+ return Shape1954;
+ case 1955:
+ return Shape1955;
+ case 1956:
+ return Shape1956;
+ case 1957:
+ return Shape1957;
+ case 1958:
+ return Shape1958;
+ case 1959:
+ return Shape1959;
+ case 1960:
+ return Shape1960;
+ case 1961:
+ return Shape1961;
+ case 1962:
+ return Shape1962;
+ case 1963:
+ return Shape1963;
+ case 1964:
+ return Shape1964;
+ case 1965:
+ return Shape1965;
+ case 1966:
+ return Shape1966;
+ case 1967:
+ return Shape1967;
+ case 1968:
+ return Shape1968;
+ case 1969:
+ return Shape1969;
+ case 1970:
+ return Shape1970;
+ case 1971:
+ return Shape1971;
+ case 1972:
+ return Shape1972;
+ case 1973:
+ return Shape1973;
+ case 1974:
+ return Shape1974;
+ case 1975:
+ return Shape1975;
+ case 1976:
+ return Shape1976;
+ case 1977:
+ return Shape1977;
+ case 1978:
+ return Shape1978;
+ case 1979:
+ return Shape1979;
+ case 1980:
+ return Shape1980;
+ case 1981:
+ return Shape1981;
+ case 1982:
+ return Shape1982;
+ case 1983:
+ return Shape1983;
+ case 1984:
+ return Shape1984;
+ case 1985:
+ return Shape1985;
+ case 1986:
+ return Shape1986;
+ case 1987:
+ return Shape1987;
+ case 1988:
+ return Shape1988;
+ case 1989:
+ return Shape1989;
+ case 1990:
+ return Shape1990;
+ case 1991:
+ return Shape1991;
+ case 1992:
+ return Shape1992;
+ case 1993:
+ return Shape1993;
+ case 1994:
+ return Shape1994;
+ case 1995:
+ return Shape1995;
+ case 1996:
+ return Shape1996;
+ case 1997:
+ return Shape1997;
+ case 1998:
+ return Shape1998;
+ case 1999:
+ return Shape1999;
+ case 2000:
+ return Shape2000;
+ case 2001:
+ return Shape2001;
+ case 2002:
+ return Shape2002;
+ case 2003:
+ return Shape2003;
+ case 2004:
+ return Shape2004;
+ case 2005:
+ return Shape2005;
+ case 2006:
+ return Shape2006;
+ case 2007:
+ return Shape2007;
+ case 2008:
+ return Shape2008;
+ case 2009:
+ return Shape2009;
+ case 2010:
+ return Shape2010;
+ case 2011:
+ return Shape2011;
+ case 2012:
+ return Shape2012;
+ case 2013:
+ return Shape2013;
+ case 2014:
+ return Shape2014;
+ case 2015:
+ return Shape2015;
+ case 2016:
+ return Shape2016;
+ case 2017:
+ return Shape2017;
+ case 2018:
+ return Shape2018;
+ case 2019:
+ return Shape2019;
+ case 2020:
+ return Shape2020;
+ case 2021:
+ return Shape2021;
+ case 2022:
+ return Shape2022;
+ case 2023:
+ return Shape2023;
+ case 2024:
+ return Shape2024;
+ case 2025:
+ return Shape2025;
+ case 2026:
+ return Shape2026;
+ case 2027:
+ return Shape2027;
+ case 2028:
+ return Shape2028;
+ case 2029:
+ return Shape2029;
+ case 2030:
+ return Shape2030;
+ case 2031:
+ return Shape2031;
+ case 2032:
+ return Shape2032;
+ case 2033:
+ return Shape2033;
+ case 2034:
+ return Shape2034;
+ case 2035:
+ return Shape2035;
+ case 2036:
+ return Shape2036;
+ case 2037:
+ return Shape2037;
+ case 2038:
+ return Shape2038;
+ case 2039:
+ return Shape2039;
+ case 2040:
+ return Shape2040;
+ case 2041:
+ return Shape2041;
+ case 2042:
+ return Shape2042;
+ case 2043:
+ return Shape2043;
+ case 2044:
+ return Shape2044;
+ case 2045:
+ return Shape2045;
+ case 2046:
+ return Shape2046;
+ case 2047:
+ return Shape2047;
+ case 2048:
+ return Shape2048;
+ }
+ throw new IndexOutOfRangeException();
+ }
+ #endregion
+
+ #region fields setter
+ public void SetBlendShapeWeight(int index, float value)
+ {
+ switch (index)
+ {
+ case 0:
+ Shape0 = value;
+ break;
+ case 1:
+ Shape1 = value;
+ break;
+ case 2:
+ Shape2 = value;
+ break;
+ case 3:
+ Shape3 = value;
+ break;
+ case 4:
+ Shape4 = value;
+ break;
+ case 5:
+ Shape5 = value;
+ break;
+ case 6:
+ Shape6 = value;
+ break;
+ case 7:
+ Shape7 = value;
+ break;
+ case 8:
+ Shape8 = value;
+ break;
+ case 9:
+ Shape9 = value;
+ break;
+ case 10:
+ Shape10 = value;
+ break;
+ case 11:
+ Shape11 = value;
+ break;
+ case 12:
+ Shape12 = value;
+ break;
+ case 13:
+ Shape13 = value;
+ break;
+ case 14:
+ Shape14 = value;
+ break;
+ case 15:
+ Shape15 = value;
+ break;
+ case 16:
+ Shape16 = value;
+ break;
+ case 17:
+ Shape17 = value;
+ break;
+ case 18:
+ Shape18 = value;
+ break;
+ case 19:
+ Shape19 = value;
+ break;
+ case 20:
+ Shape20 = value;
+ break;
+ case 21:
+ Shape21 = value;
+ break;
+ case 22:
+ Shape22 = value;
+ break;
+ case 23:
+ Shape23 = value;
+ break;
+ case 24:
+ Shape24 = value;
+ break;
+ case 25:
+ Shape25 = value;
+ break;
+ case 26:
+ Shape26 = value;
+ break;
+ case 27:
+ Shape27 = value;
+ break;
+ case 28:
+ Shape28 = value;
+ break;
+ case 29:
+ Shape29 = value;
+ break;
+ case 30:
+ Shape30 = value;
+ break;
+ case 31:
+ Shape31 = value;
+ break;
+ case 32:
+ Shape32 = value;
+ break;
+ case 33:
+ Shape33 = value;
+ break;
+ case 34:
+ Shape34 = value;
+ break;
+ case 35:
+ Shape35 = value;
+ break;
+ case 36:
+ Shape36 = value;
+ break;
+ case 37:
+ Shape37 = value;
+ break;
+ case 38:
+ Shape38 = value;
+ break;
+ case 39:
+ Shape39 = value;
+ break;
+ case 40:
+ Shape40 = value;
+ break;
+ case 41:
+ Shape41 = value;
+ break;
+ case 42:
+ Shape42 = value;
+ break;
+ case 43:
+ Shape43 = value;
+ break;
+ case 44:
+ Shape44 = value;
+ break;
+ case 45:
+ Shape45 = value;
+ break;
+ case 46:
+ Shape46 = value;
+ break;
+ case 47:
+ Shape47 = value;
+ break;
+ case 48:
+ Shape48 = value;
+ break;
+ case 49:
+ Shape49 = value;
+ break;
+ case 50:
+ Shape50 = value;
+ break;
+ case 51:
+ Shape51 = value;
+ break;
+ case 52:
+ Shape52 = value;
+ break;
+ case 53:
+ Shape53 = value;
+ break;
+ case 54:
+ Shape54 = value;
+ break;
+ case 55:
+ Shape55 = value;
+ break;
+ case 56:
+ Shape56 = value;
+ break;
+ case 57:
+ Shape57 = value;
+ break;
+ case 58:
+ Shape58 = value;
+ break;
+ case 59:
+ Shape59 = value;
+ break;
+ case 60:
+ Shape60 = value;
+ break;
+ case 61:
+ Shape61 = value;
+ break;
+ case 62:
+ Shape62 = value;
+ break;
+ case 63:
+ Shape63 = value;
+ break;
+ case 64:
+ Shape64 = value;
+ break;
+ case 65:
+ Shape65 = value;
+ break;
+ case 66:
+ Shape66 = value;
+ break;
+ case 67:
+ Shape67 = value;
+ break;
+ case 68:
+ Shape68 = value;
+ break;
+ case 69:
+ Shape69 = value;
+ break;
+ case 70:
+ Shape70 = value;
+ break;
+ case 71:
+ Shape71 = value;
+ break;
+ case 72:
+ Shape72 = value;
+ break;
+ case 73:
+ Shape73 = value;
+ break;
+ case 74:
+ Shape74 = value;
+ break;
+ case 75:
+ Shape75 = value;
+ break;
+ case 76:
+ Shape76 = value;
+ break;
+ case 77:
+ Shape77 = value;
+ break;
+ case 78:
+ Shape78 = value;
+ break;
+ case 79:
+ Shape79 = value;
+ break;
+ case 80:
+ Shape80 = value;
+ break;
+ case 81:
+ Shape81 = value;
+ break;
+ case 82:
+ Shape82 = value;
+ break;
+ case 83:
+ Shape83 = value;
+ break;
+ case 84:
+ Shape84 = value;
+ break;
+ case 85:
+ Shape85 = value;
+ break;
+ case 86:
+ Shape86 = value;
+ break;
+ case 87:
+ Shape87 = value;
+ break;
+ case 88:
+ Shape88 = value;
+ break;
+ case 89:
+ Shape89 = value;
+ break;
+ case 90:
+ Shape90 = value;
+ break;
+ case 91:
+ Shape91 = value;
+ break;
+ case 92:
+ Shape92 = value;
+ break;
+ case 93:
+ Shape93 = value;
+ break;
+ case 94:
+ Shape94 = value;
+ break;
+ case 95:
+ Shape95 = value;
+ break;
+ case 96:
+ Shape96 = value;
+ break;
+ case 97:
+ Shape97 = value;
+ break;
+ case 98:
+ Shape98 = value;
+ break;
+ case 99:
+ Shape99 = value;
+ break;
+ case 100:
+ Shape100 = value;
+ break;
+ case 101:
+ Shape101 = value;
+ break;
+ case 102:
+ Shape102 = value;
+ break;
+ case 103:
+ Shape103 = value;
+ break;
+ case 104:
+ Shape104 = value;
+ break;
+ case 105:
+ Shape105 = value;
+ break;
+ case 106:
+ Shape106 = value;
+ break;
+ case 107:
+ Shape107 = value;
+ break;
+ case 108:
+ Shape108 = value;
+ break;
+ case 109:
+ Shape109 = value;
+ break;
+ case 110:
+ Shape110 = value;
+ break;
+ case 111:
+ Shape111 = value;
+ break;
+ case 112:
+ Shape112 = value;
+ break;
+ case 113:
+ Shape113 = value;
+ break;
+ case 114:
+ Shape114 = value;
+ break;
+ case 115:
+ Shape115 = value;
+ break;
+ case 116:
+ Shape116 = value;
+ break;
+ case 117:
+ Shape117 = value;
+ break;
+ case 118:
+ Shape118 = value;
+ break;
+ case 119:
+ Shape119 = value;
+ break;
+ case 120:
+ Shape120 = value;
+ break;
+ case 121:
+ Shape121 = value;
+ break;
+ case 122:
+ Shape122 = value;
+ break;
+ case 123:
+ Shape123 = value;
+ break;
+ case 124:
+ Shape124 = value;
+ break;
+ case 125:
+ Shape125 = value;
+ break;
+ case 126:
+ Shape126 = value;
+ break;
+ case 127:
+ Shape127 = value;
+ break;
+ case 128:
+ Shape128 = value;
+ break;
+ case 129:
+ Shape129 = value;
+ break;
+ case 130:
+ Shape130 = value;
+ break;
+ case 131:
+ Shape131 = value;
+ break;
+ case 132:
+ Shape132 = value;
+ break;
+ case 133:
+ Shape133 = value;
+ break;
+ case 134:
+ Shape134 = value;
+ break;
+ case 135:
+ Shape135 = value;
+ break;
+ case 136:
+ Shape136 = value;
+ break;
+ case 137:
+ Shape137 = value;
+ break;
+ case 138:
+ Shape138 = value;
+ break;
+ case 139:
+ Shape139 = value;
+ break;
+ case 140:
+ Shape140 = value;
+ break;
+ case 141:
+ Shape141 = value;
+ break;
+ case 142:
+ Shape142 = value;
+ break;
+ case 143:
+ Shape143 = value;
+ break;
+ case 144:
+ Shape144 = value;
+ break;
+ case 145:
+ Shape145 = value;
+ break;
+ case 146:
+ Shape146 = value;
+ break;
+ case 147:
+ Shape147 = value;
+ break;
+ case 148:
+ Shape148 = value;
+ break;
+ case 149:
+ Shape149 = value;
+ break;
+ case 150:
+ Shape150 = value;
+ break;
+ case 151:
+ Shape151 = value;
+ break;
+ case 152:
+ Shape152 = value;
+ break;
+ case 153:
+ Shape153 = value;
+ break;
+ case 154:
+ Shape154 = value;
+ break;
+ case 155:
+ Shape155 = value;
+ break;
+ case 156:
+ Shape156 = value;
+ break;
+ case 157:
+ Shape157 = value;
+ break;
+ case 158:
+ Shape158 = value;
+ break;
+ case 159:
+ Shape159 = value;
+ break;
+ case 160:
+ Shape160 = value;
+ break;
+ case 161:
+ Shape161 = value;
+ break;
+ case 162:
+ Shape162 = value;
+ break;
+ case 163:
+ Shape163 = value;
+ break;
+ case 164:
+ Shape164 = value;
+ break;
+ case 165:
+ Shape165 = value;
+ break;
+ case 166:
+ Shape166 = value;
+ break;
+ case 167:
+ Shape167 = value;
+ break;
+ case 168:
+ Shape168 = value;
+ break;
+ case 169:
+ Shape169 = value;
+ break;
+ case 170:
+ Shape170 = value;
+ break;
+ case 171:
+ Shape171 = value;
+ break;
+ case 172:
+ Shape172 = value;
+ break;
+ case 173:
+ Shape173 = value;
+ break;
+ case 174:
+ Shape174 = value;
+ break;
+ case 175:
+ Shape175 = value;
+ break;
+ case 176:
+ Shape176 = value;
+ break;
+ case 177:
+ Shape177 = value;
+ break;
+ case 178:
+ Shape178 = value;
+ break;
+ case 179:
+ Shape179 = value;
+ break;
+ case 180:
+ Shape180 = value;
+ break;
+ case 181:
+ Shape181 = value;
+ break;
+ case 182:
+ Shape182 = value;
+ break;
+ case 183:
+ Shape183 = value;
+ break;
+ case 184:
+ Shape184 = value;
+ break;
+ case 185:
+ Shape185 = value;
+ break;
+ case 186:
+ Shape186 = value;
+ break;
+ case 187:
+ Shape187 = value;
+ break;
+ case 188:
+ Shape188 = value;
+ break;
+ case 189:
+ Shape189 = value;
+ break;
+ case 190:
+ Shape190 = value;
+ break;
+ case 191:
+ Shape191 = value;
+ break;
+ case 192:
+ Shape192 = value;
+ break;
+ case 193:
+ Shape193 = value;
+ break;
+ case 194:
+ Shape194 = value;
+ break;
+ case 195:
+ Shape195 = value;
+ break;
+ case 196:
+ Shape196 = value;
+ break;
+ case 197:
+ Shape197 = value;
+ break;
+ case 198:
+ Shape198 = value;
+ break;
+ case 199:
+ Shape199 = value;
+ break;
+ case 200:
+ Shape200 = value;
+ break;
+ case 201:
+ Shape201 = value;
+ break;
+ case 202:
+ Shape202 = value;
+ break;
+ case 203:
+ Shape203 = value;
+ break;
+ case 204:
+ Shape204 = value;
+ break;
+ case 205:
+ Shape205 = value;
+ break;
+ case 206:
+ Shape206 = value;
+ break;
+ case 207:
+ Shape207 = value;
+ break;
+ case 208:
+ Shape208 = value;
+ break;
+ case 209:
+ Shape209 = value;
+ break;
+ case 210:
+ Shape210 = value;
+ break;
+ case 211:
+ Shape211 = value;
+ break;
+ case 212:
+ Shape212 = value;
+ break;
+ case 213:
+ Shape213 = value;
+ break;
+ case 214:
+ Shape214 = value;
+ break;
+ case 215:
+ Shape215 = value;
+ break;
+ case 216:
+ Shape216 = value;
+ break;
+ case 217:
+ Shape217 = value;
+ break;
+ case 218:
+ Shape218 = value;
+ break;
+ case 219:
+ Shape219 = value;
+ break;
+ case 220:
+ Shape220 = value;
+ break;
+ case 221:
+ Shape221 = value;
+ break;
+ case 222:
+ Shape222 = value;
+ break;
+ case 223:
+ Shape223 = value;
+ break;
+ case 224:
+ Shape224 = value;
+ break;
+ case 225:
+ Shape225 = value;
+ break;
+ case 226:
+ Shape226 = value;
+ break;
+ case 227:
+ Shape227 = value;
+ break;
+ case 228:
+ Shape228 = value;
+ break;
+ case 229:
+ Shape229 = value;
+ break;
+ case 230:
+ Shape230 = value;
+ break;
+ case 231:
+ Shape231 = value;
+ break;
+ case 232:
+ Shape232 = value;
+ break;
+ case 233:
+ Shape233 = value;
+ break;
+ case 234:
+ Shape234 = value;
+ break;
+ case 235:
+ Shape235 = value;
+ break;
+ case 236:
+ Shape236 = value;
+ break;
+ case 237:
+ Shape237 = value;
+ break;
+ case 238:
+ Shape238 = value;
+ break;
+ case 239:
+ Shape239 = value;
+ break;
+ case 240:
+ Shape240 = value;
+ break;
+ case 241:
+ Shape241 = value;
+ break;
+ case 242:
+ Shape242 = value;
+ break;
+ case 243:
+ Shape243 = value;
+ break;
+ case 244:
+ Shape244 = value;
+ break;
+ case 245:
+ Shape245 = value;
+ break;
+ case 246:
+ Shape246 = value;
+ break;
+ case 247:
+ Shape247 = value;
+ break;
+ case 248:
+ Shape248 = value;
+ break;
+ case 249:
+ Shape249 = value;
+ break;
+ case 250:
+ Shape250 = value;
+ break;
+ case 251:
+ Shape251 = value;
+ break;
+ case 252:
+ Shape252 = value;
+ break;
+ case 253:
+ Shape253 = value;
+ break;
+ case 254:
+ Shape254 = value;
+ break;
+ case 255:
+ Shape255 = value;
+ break;
+ case 256:
+ Shape256 = value;
+ break;
+ case 257:
+ Shape257 = value;
+ break;
+ case 258:
+ Shape258 = value;
+ break;
+ case 259:
+ Shape259 = value;
+ break;
+ case 260:
+ Shape260 = value;
+ break;
+ case 261:
+ Shape261 = value;
+ break;
+ case 262:
+ Shape262 = value;
+ break;
+ case 263:
+ Shape263 = value;
+ break;
+ case 264:
+ Shape264 = value;
+ break;
+ case 265:
+ Shape265 = value;
+ break;
+ case 266:
+ Shape266 = value;
+ break;
+ case 267:
+ Shape267 = value;
+ break;
+ case 268:
+ Shape268 = value;
+ break;
+ case 269:
+ Shape269 = value;
+ break;
+ case 270:
+ Shape270 = value;
+ break;
+ case 271:
+ Shape271 = value;
+ break;
+ case 272:
+ Shape272 = value;
+ break;
+ case 273:
+ Shape273 = value;
+ break;
+ case 274:
+ Shape274 = value;
+ break;
+ case 275:
+ Shape275 = value;
+ break;
+ case 276:
+ Shape276 = value;
+ break;
+ case 277:
+ Shape277 = value;
+ break;
+ case 278:
+ Shape278 = value;
+ break;
+ case 279:
+ Shape279 = value;
+ break;
+ case 280:
+ Shape280 = value;
+ break;
+ case 281:
+ Shape281 = value;
+ break;
+ case 282:
+ Shape282 = value;
+ break;
+ case 283:
+ Shape283 = value;
+ break;
+ case 284:
+ Shape284 = value;
+ break;
+ case 285:
+ Shape285 = value;
+ break;
+ case 286:
+ Shape286 = value;
+ break;
+ case 287:
+ Shape287 = value;
+ break;
+ case 288:
+ Shape288 = value;
+ break;
+ case 289:
+ Shape289 = value;
+ break;
+ case 290:
+ Shape290 = value;
+ break;
+ case 291:
+ Shape291 = value;
+ break;
+ case 292:
+ Shape292 = value;
+ break;
+ case 293:
+ Shape293 = value;
+ break;
+ case 294:
+ Shape294 = value;
+ break;
+ case 295:
+ Shape295 = value;
+ break;
+ case 296:
+ Shape296 = value;
+ break;
+ case 297:
+ Shape297 = value;
+ break;
+ case 298:
+ Shape298 = value;
+ break;
+ case 299:
+ Shape299 = value;
+ break;
+ case 300:
+ Shape300 = value;
+ break;
+ case 301:
+ Shape301 = value;
+ break;
+ case 302:
+ Shape302 = value;
+ break;
+ case 303:
+ Shape303 = value;
+ break;
+ case 304:
+ Shape304 = value;
+ break;
+ case 305:
+ Shape305 = value;
+ break;
+ case 306:
+ Shape306 = value;
+ break;
+ case 307:
+ Shape307 = value;
+ break;
+ case 308:
+ Shape308 = value;
+ break;
+ case 309:
+ Shape309 = value;
+ break;
+ case 310:
+ Shape310 = value;
+ break;
+ case 311:
+ Shape311 = value;
+ break;
+ case 312:
+ Shape312 = value;
+ break;
+ case 313:
+ Shape313 = value;
+ break;
+ case 314:
+ Shape314 = value;
+ break;
+ case 315:
+ Shape315 = value;
+ break;
+ case 316:
+ Shape316 = value;
+ break;
+ case 317:
+ Shape317 = value;
+ break;
+ case 318:
+ Shape318 = value;
+ break;
+ case 319:
+ Shape319 = value;
+ break;
+ case 320:
+ Shape320 = value;
+ break;
+ case 321:
+ Shape321 = value;
+ break;
+ case 322:
+ Shape322 = value;
+ break;
+ case 323:
+ Shape323 = value;
+ break;
+ case 324:
+ Shape324 = value;
+ break;
+ case 325:
+ Shape325 = value;
+ break;
+ case 326:
+ Shape326 = value;
+ break;
+ case 327:
+ Shape327 = value;
+ break;
+ case 328:
+ Shape328 = value;
+ break;
+ case 329:
+ Shape329 = value;
+ break;
+ case 330:
+ Shape330 = value;
+ break;
+ case 331:
+ Shape331 = value;
+ break;
+ case 332:
+ Shape332 = value;
+ break;
+ case 333:
+ Shape333 = value;
+ break;
+ case 334:
+ Shape334 = value;
+ break;
+ case 335:
+ Shape335 = value;
+ break;
+ case 336:
+ Shape336 = value;
+ break;
+ case 337:
+ Shape337 = value;
+ break;
+ case 338:
+ Shape338 = value;
+ break;
+ case 339:
+ Shape339 = value;
+ break;
+ case 340:
+ Shape340 = value;
+ break;
+ case 341:
+ Shape341 = value;
+ break;
+ case 342:
+ Shape342 = value;
+ break;
+ case 343:
+ Shape343 = value;
+ break;
+ case 344:
+ Shape344 = value;
+ break;
+ case 345:
+ Shape345 = value;
+ break;
+ case 346:
+ Shape346 = value;
+ break;
+ case 347:
+ Shape347 = value;
+ break;
+ case 348:
+ Shape348 = value;
+ break;
+ case 349:
+ Shape349 = value;
+ break;
+ case 350:
+ Shape350 = value;
+ break;
+ case 351:
+ Shape351 = value;
+ break;
+ case 352:
+ Shape352 = value;
+ break;
+ case 353:
+ Shape353 = value;
+ break;
+ case 354:
+ Shape354 = value;
+ break;
+ case 355:
+ Shape355 = value;
+ break;
+ case 356:
+ Shape356 = value;
+ break;
+ case 357:
+ Shape357 = value;
+ break;
+ case 358:
+ Shape358 = value;
+ break;
+ case 359:
+ Shape359 = value;
+ break;
+ case 360:
+ Shape360 = value;
+ break;
+ case 361:
+ Shape361 = value;
+ break;
+ case 362:
+ Shape362 = value;
+ break;
+ case 363:
+ Shape363 = value;
+ break;
+ case 364:
+ Shape364 = value;
+ break;
+ case 365:
+ Shape365 = value;
+ break;
+ case 366:
+ Shape366 = value;
+ break;
+ case 367:
+ Shape367 = value;
+ break;
+ case 368:
+ Shape368 = value;
+ break;
+ case 369:
+ Shape369 = value;
+ break;
+ case 370:
+ Shape370 = value;
+ break;
+ case 371:
+ Shape371 = value;
+ break;
+ case 372:
+ Shape372 = value;
+ break;
+ case 373:
+ Shape373 = value;
+ break;
+ case 374:
+ Shape374 = value;
+ break;
+ case 375:
+ Shape375 = value;
+ break;
+ case 376:
+ Shape376 = value;
+ break;
+ case 377:
+ Shape377 = value;
+ break;
+ case 378:
+ Shape378 = value;
+ break;
+ case 379:
+ Shape379 = value;
+ break;
+ case 380:
+ Shape380 = value;
+ break;
+ case 381:
+ Shape381 = value;
+ break;
+ case 382:
+ Shape382 = value;
+ break;
+ case 383:
+ Shape383 = value;
+ break;
+ case 384:
+ Shape384 = value;
+ break;
+ case 385:
+ Shape385 = value;
+ break;
+ case 386:
+ Shape386 = value;
+ break;
+ case 387:
+ Shape387 = value;
+ break;
+ case 388:
+ Shape388 = value;
+ break;
+ case 389:
+ Shape389 = value;
+ break;
+ case 390:
+ Shape390 = value;
+ break;
+ case 391:
+ Shape391 = value;
+ break;
+ case 392:
+ Shape392 = value;
+ break;
+ case 393:
+ Shape393 = value;
+ break;
+ case 394:
+ Shape394 = value;
+ break;
+ case 395:
+ Shape395 = value;
+ break;
+ case 396:
+ Shape396 = value;
+ break;
+ case 397:
+ Shape397 = value;
+ break;
+ case 398:
+ Shape398 = value;
+ break;
+ case 399:
+ Shape399 = value;
+ break;
+ case 400:
+ Shape400 = value;
+ break;
+ case 401:
+ Shape401 = value;
+ break;
+ case 402:
+ Shape402 = value;
+ break;
+ case 403:
+ Shape403 = value;
+ break;
+ case 404:
+ Shape404 = value;
+ break;
+ case 405:
+ Shape405 = value;
+ break;
+ case 406:
+ Shape406 = value;
+ break;
+ case 407:
+ Shape407 = value;
+ break;
+ case 408:
+ Shape408 = value;
+ break;
+ case 409:
+ Shape409 = value;
+ break;
+ case 410:
+ Shape410 = value;
+ break;
+ case 411:
+ Shape411 = value;
+ break;
+ case 412:
+ Shape412 = value;
+ break;
+ case 413:
+ Shape413 = value;
+ break;
+ case 414:
+ Shape414 = value;
+ break;
+ case 415:
+ Shape415 = value;
+ break;
+ case 416:
+ Shape416 = value;
+ break;
+ case 417:
+ Shape417 = value;
+ break;
+ case 418:
+ Shape418 = value;
+ break;
+ case 419:
+ Shape419 = value;
+ break;
+ case 420:
+ Shape420 = value;
+ break;
+ case 421:
+ Shape421 = value;
+ break;
+ case 422:
+ Shape422 = value;
+ break;
+ case 423:
+ Shape423 = value;
+ break;
+ case 424:
+ Shape424 = value;
+ break;
+ case 425:
+ Shape425 = value;
+ break;
+ case 426:
+ Shape426 = value;
+ break;
+ case 427:
+ Shape427 = value;
+ break;
+ case 428:
+ Shape428 = value;
+ break;
+ case 429:
+ Shape429 = value;
+ break;
+ case 430:
+ Shape430 = value;
+ break;
+ case 431:
+ Shape431 = value;
+ break;
+ case 432:
+ Shape432 = value;
+ break;
+ case 433:
+ Shape433 = value;
+ break;
+ case 434:
+ Shape434 = value;
+ break;
+ case 435:
+ Shape435 = value;
+ break;
+ case 436:
+ Shape436 = value;
+ break;
+ case 437:
+ Shape437 = value;
+ break;
+ case 438:
+ Shape438 = value;
+ break;
+ case 439:
+ Shape439 = value;
+ break;
+ case 440:
+ Shape440 = value;
+ break;
+ case 441:
+ Shape441 = value;
+ break;
+ case 442:
+ Shape442 = value;
+ break;
+ case 443:
+ Shape443 = value;
+ break;
+ case 444:
+ Shape444 = value;
+ break;
+ case 445:
+ Shape445 = value;
+ break;
+ case 446:
+ Shape446 = value;
+ break;
+ case 447:
+ Shape447 = value;
+ break;
+ case 448:
+ Shape448 = value;
+ break;
+ case 449:
+ Shape449 = value;
+ break;
+ case 450:
+ Shape450 = value;
+ break;
+ case 451:
+ Shape451 = value;
+ break;
+ case 452:
+ Shape452 = value;
+ break;
+ case 453:
+ Shape453 = value;
+ break;
+ case 454:
+ Shape454 = value;
+ break;
+ case 455:
+ Shape455 = value;
+ break;
+ case 456:
+ Shape456 = value;
+ break;
+ case 457:
+ Shape457 = value;
+ break;
+ case 458:
+ Shape458 = value;
+ break;
+ case 459:
+ Shape459 = value;
+ break;
+ case 460:
+ Shape460 = value;
+ break;
+ case 461:
+ Shape461 = value;
+ break;
+ case 462:
+ Shape462 = value;
+ break;
+ case 463:
+ Shape463 = value;
+ break;
+ case 464:
+ Shape464 = value;
+ break;
+ case 465:
+ Shape465 = value;
+ break;
+ case 466:
+ Shape466 = value;
+ break;
+ case 467:
+ Shape467 = value;
+ break;
+ case 468:
+ Shape468 = value;
+ break;
+ case 469:
+ Shape469 = value;
+ break;
+ case 470:
+ Shape470 = value;
+ break;
+ case 471:
+ Shape471 = value;
+ break;
+ case 472:
+ Shape472 = value;
+ break;
+ case 473:
+ Shape473 = value;
+ break;
+ case 474:
+ Shape474 = value;
+ break;
+ case 475:
+ Shape475 = value;
+ break;
+ case 476:
+ Shape476 = value;
+ break;
+ case 477:
+ Shape477 = value;
+ break;
+ case 478:
+ Shape478 = value;
+ break;
+ case 479:
+ Shape479 = value;
+ break;
+ case 480:
+ Shape480 = value;
+ break;
+ case 481:
+ Shape481 = value;
+ break;
+ case 482:
+ Shape482 = value;
+ break;
+ case 483:
+ Shape483 = value;
+ break;
+ case 484:
+ Shape484 = value;
+ break;
+ case 485:
+ Shape485 = value;
+ break;
+ case 486:
+ Shape486 = value;
+ break;
+ case 487:
+ Shape487 = value;
+ break;
+ case 488:
+ Shape488 = value;
+ break;
+ case 489:
+ Shape489 = value;
+ break;
+ case 490:
+ Shape490 = value;
+ break;
+ case 491:
+ Shape491 = value;
+ break;
+ case 492:
+ Shape492 = value;
+ break;
+ case 493:
+ Shape493 = value;
+ break;
+ case 494:
+ Shape494 = value;
+ break;
+ case 495:
+ Shape495 = value;
+ break;
+ case 496:
+ Shape496 = value;
+ break;
+ case 497:
+ Shape497 = value;
+ break;
+ case 498:
+ Shape498 = value;
+ break;
+ case 499:
+ Shape499 = value;
+ break;
+ case 500:
+ Shape500 = value;
+ break;
+ case 501:
+ Shape501 = value;
+ break;
+ case 502:
+ Shape502 = value;
+ break;
+ case 503:
+ Shape503 = value;
+ break;
+ case 504:
+ Shape504 = value;
+ break;
+ case 505:
+ Shape505 = value;
+ break;
+ case 506:
+ Shape506 = value;
+ break;
+ case 507:
+ Shape507 = value;
+ break;
+ case 508:
+ Shape508 = value;
+ break;
+ case 509:
+ Shape509 = value;
+ break;
+ case 510:
+ Shape510 = value;
+ break;
+ case 511:
+ Shape511 = value;
+ break;
+ case 512:
+ Shape512 = value;
+ break;
+ case 513:
+ Shape513 = value;
+ break;
+ case 514:
+ Shape514 = value;
+ break;
+ case 515:
+ Shape515 = value;
+ break;
+ case 516:
+ Shape516 = value;
+ break;
+ case 517:
+ Shape517 = value;
+ break;
+ case 518:
+ Shape518 = value;
+ break;
+ case 519:
+ Shape519 = value;
+ break;
+ case 520:
+ Shape520 = value;
+ break;
+ case 521:
+ Shape521 = value;
+ break;
+ case 522:
+ Shape522 = value;
+ break;
+ case 523:
+ Shape523 = value;
+ break;
+ case 524:
+ Shape524 = value;
+ break;
+ case 525:
+ Shape525 = value;
+ break;
+ case 526:
+ Shape526 = value;
+ break;
+ case 527:
+ Shape527 = value;
+ break;
+ case 528:
+ Shape528 = value;
+ break;
+ case 529:
+ Shape529 = value;
+ break;
+ case 530:
+ Shape530 = value;
+ break;
+ case 531:
+ Shape531 = value;
+ break;
+ case 532:
+ Shape532 = value;
+ break;
+ case 533:
+ Shape533 = value;
+ break;
+ case 534:
+ Shape534 = value;
+ break;
+ case 535:
+ Shape535 = value;
+ break;
+ case 536:
+ Shape536 = value;
+ break;
+ case 537:
+ Shape537 = value;
+ break;
+ case 538:
+ Shape538 = value;
+ break;
+ case 539:
+ Shape539 = value;
+ break;
+ case 540:
+ Shape540 = value;
+ break;
+ case 541:
+ Shape541 = value;
+ break;
+ case 542:
+ Shape542 = value;
+ break;
+ case 543:
+ Shape543 = value;
+ break;
+ case 544:
+ Shape544 = value;
+ break;
+ case 545:
+ Shape545 = value;
+ break;
+ case 546:
+ Shape546 = value;
+ break;
+ case 547:
+ Shape547 = value;
+ break;
+ case 548:
+ Shape548 = value;
+ break;
+ case 549:
+ Shape549 = value;
+ break;
+ case 550:
+ Shape550 = value;
+ break;
+ case 551:
+ Shape551 = value;
+ break;
+ case 552:
+ Shape552 = value;
+ break;
+ case 553:
+ Shape553 = value;
+ break;
+ case 554:
+ Shape554 = value;
+ break;
+ case 555:
+ Shape555 = value;
+ break;
+ case 556:
+ Shape556 = value;
+ break;
+ case 557:
+ Shape557 = value;
+ break;
+ case 558:
+ Shape558 = value;
+ break;
+ case 559:
+ Shape559 = value;
+ break;
+ case 560:
+ Shape560 = value;
+ break;
+ case 561:
+ Shape561 = value;
+ break;
+ case 562:
+ Shape562 = value;
+ break;
+ case 563:
+ Shape563 = value;
+ break;
+ case 564:
+ Shape564 = value;
+ break;
+ case 565:
+ Shape565 = value;
+ break;
+ case 566:
+ Shape566 = value;
+ break;
+ case 567:
+ Shape567 = value;
+ break;
+ case 568:
+ Shape568 = value;
+ break;
+ case 569:
+ Shape569 = value;
+ break;
+ case 570:
+ Shape570 = value;
+ break;
+ case 571:
+ Shape571 = value;
+ break;
+ case 572:
+ Shape572 = value;
+ break;
+ case 573:
+ Shape573 = value;
+ break;
+ case 574:
+ Shape574 = value;
+ break;
+ case 575:
+ Shape575 = value;
+ break;
+ case 576:
+ Shape576 = value;
+ break;
+ case 577:
+ Shape577 = value;
+ break;
+ case 578:
+ Shape578 = value;
+ break;
+ case 579:
+ Shape579 = value;
+ break;
+ case 580:
+ Shape580 = value;
+ break;
+ case 581:
+ Shape581 = value;
+ break;
+ case 582:
+ Shape582 = value;
+ break;
+ case 583:
+ Shape583 = value;
+ break;
+ case 584:
+ Shape584 = value;
+ break;
+ case 585:
+ Shape585 = value;
+ break;
+ case 586:
+ Shape586 = value;
+ break;
+ case 587:
+ Shape587 = value;
+ break;
+ case 588:
+ Shape588 = value;
+ break;
+ case 589:
+ Shape589 = value;
+ break;
+ case 590:
+ Shape590 = value;
+ break;
+ case 591:
+ Shape591 = value;
+ break;
+ case 592:
+ Shape592 = value;
+ break;
+ case 593:
+ Shape593 = value;
+ break;
+ case 594:
+ Shape594 = value;
+ break;
+ case 595:
+ Shape595 = value;
+ break;
+ case 596:
+ Shape596 = value;
+ break;
+ case 597:
+ Shape597 = value;
+ break;
+ case 598:
+ Shape598 = value;
+ break;
+ case 599:
+ Shape599 = value;
+ break;
+ case 600:
+ Shape600 = value;
+ break;
+ case 601:
+ Shape601 = value;
+ break;
+ case 602:
+ Shape602 = value;
+ break;
+ case 603:
+ Shape603 = value;
+ break;
+ case 604:
+ Shape604 = value;
+ break;
+ case 605:
+ Shape605 = value;
+ break;
+ case 606:
+ Shape606 = value;
+ break;
+ case 607:
+ Shape607 = value;
+ break;
+ case 608:
+ Shape608 = value;
+ break;
+ case 609:
+ Shape609 = value;
+ break;
+ case 610:
+ Shape610 = value;
+ break;
+ case 611:
+ Shape611 = value;
+ break;
+ case 612:
+ Shape612 = value;
+ break;
+ case 613:
+ Shape613 = value;
+ break;
+ case 614:
+ Shape614 = value;
+ break;
+ case 615:
+ Shape615 = value;
+ break;
+ case 616:
+ Shape616 = value;
+ break;
+ case 617:
+ Shape617 = value;
+ break;
+ case 618:
+ Shape618 = value;
+ break;
+ case 619:
+ Shape619 = value;
+ break;
+ case 620:
+ Shape620 = value;
+ break;
+ case 621:
+ Shape621 = value;
+ break;
+ case 622:
+ Shape622 = value;
+ break;
+ case 623:
+ Shape623 = value;
+ break;
+ case 624:
+ Shape624 = value;
+ break;
+ case 625:
+ Shape625 = value;
+ break;
+ case 626:
+ Shape626 = value;
+ break;
+ case 627:
+ Shape627 = value;
+ break;
+ case 628:
+ Shape628 = value;
+ break;
+ case 629:
+ Shape629 = value;
+ break;
+ case 630:
+ Shape630 = value;
+ break;
+ case 631:
+ Shape631 = value;
+ break;
+ case 632:
+ Shape632 = value;
+ break;
+ case 633:
+ Shape633 = value;
+ break;
+ case 634:
+ Shape634 = value;
+ break;
+ case 635:
+ Shape635 = value;
+ break;
+ case 636:
+ Shape636 = value;
+ break;
+ case 637:
+ Shape637 = value;
+ break;
+ case 638:
+ Shape638 = value;
+ break;
+ case 639:
+ Shape639 = value;
+ break;
+ case 640:
+ Shape640 = value;
+ break;
+ case 641:
+ Shape641 = value;
+ break;
+ case 642:
+ Shape642 = value;
+ break;
+ case 643:
+ Shape643 = value;
+ break;
+ case 644:
+ Shape644 = value;
+ break;
+ case 645:
+ Shape645 = value;
+ break;
+ case 646:
+ Shape646 = value;
+ break;
+ case 647:
+ Shape647 = value;
+ break;
+ case 648:
+ Shape648 = value;
+ break;
+ case 649:
+ Shape649 = value;
+ break;
+ case 650:
+ Shape650 = value;
+ break;
+ case 651:
+ Shape651 = value;
+ break;
+ case 652:
+ Shape652 = value;
+ break;
+ case 653:
+ Shape653 = value;
+ break;
+ case 654:
+ Shape654 = value;
+ break;
+ case 655:
+ Shape655 = value;
+ break;
+ case 656:
+ Shape656 = value;
+ break;
+ case 657:
+ Shape657 = value;
+ break;
+ case 658:
+ Shape658 = value;
+ break;
+ case 659:
+ Shape659 = value;
+ break;
+ case 660:
+ Shape660 = value;
+ break;
+ case 661:
+ Shape661 = value;
+ break;
+ case 662:
+ Shape662 = value;
+ break;
+ case 663:
+ Shape663 = value;
+ break;
+ case 664:
+ Shape664 = value;
+ break;
+ case 665:
+ Shape665 = value;
+ break;
+ case 666:
+ Shape666 = value;
+ break;
+ case 667:
+ Shape667 = value;
+ break;
+ case 668:
+ Shape668 = value;
+ break;
+ case 669:
+ Shape669 = value;
+ break;
+ case 670:
+ Shape670 = value;
+ break;
+ case 671:
+ Shape671 = value;
+ break;
+ case 672:
+ Shape672 = value;
+ break;
+ case 673:
+ Shape673 = value;
+ break;
+ case 674:
+ Shape674 = value;
+ break;
+ case 675:
+ Shape675 = value;
+ break;
+ case 676:
+ Shape676 = value;
+ break;
+ case 677:
+ Shape677 = value;
+ break;
+ case 678:
+ Shape678 = value;
+ break;
+ case 679:
+ Shape679 = value;
+ break;
+ case 680:
+ Shape680 = value;
+ break;
+ case 681:
+ Shape681 = value;
+ break;
+ case 682:
+ Shape682 = value;
+ break;
+ case 683:
+ Shape683 = value;
+ break;
+ case 684:
+ Shape684 = value;
+ break;
+ case 685:
+ Shape685 = value;
+ break;
+ case 686:
+ Shape686 = value;
+ break;
+ case 687:
+ Shape687 = value;
+ break;
+ case 688:
+ Shape688 = value;
+ break;
+ case 689:
+ Shape689 = value;
+ break;
+ case 690:
+ Shape690 = value;
+ break;
+ case 691:
+ Shape691 = value;
+ break;
+ case 692:
+ Shape692 = value;
+ break;
+ case 693:
+ Shape693 = value;
+ break;
+ case 694:
+ Shape694 = value;
+ break;
+ case 695:
+ Shape695 = value;
+ break;
+ case 696:
+ Shape696 = value;
+ break;
+ case 697:
+ Shape697 = value;
+ break;
+ case 698:
+ Shape698 = value;
+ break;
+ case 699:
+ Shape699 = value;
+ break;
+ case 700:
+ Shape700 = value;
+ break;
+ case 701:
+ Shape701 = value;
+ break;
+ case 702:
+ Shape702 = value;
+ break;
+ case 703:
+ Shape703 = value;
+ break;
+ case 704:
+ Shape704 = value;
+ break;
+ case 705:
+ Shape705 = value;
+ break;
+ case 706:
+ Shape706 = value;
+ break;
+ case 707:
+ Shape707 = value;
+ break;
+ case 708:
+ Shape708 = value;
+ break;
+ case 709:
+ Shape709 = value;
+ break;
+ case 710:
+ Shape710 = value;
+ break;
+ case 711:
+ Shape711 = value;
+ break;
+ case 712:
+ Shape712 = value;
+ break;
+ case 713:
+ Shape713 = value;
+ break;
+ case 714:
+ Shape714 = value;
+ break;
+ case 715:
+ Shape715 = value;
+ break;
+ case 716:
+ Shape716 = value;
+ break;
+ case 717:
+ Shape717 = value;
+ break;
+ case 718:
+ Shape718 = value;
+ break;
+ case 719:
+ Shape719 = value;
+ break;
+ case 720:
+ Shape720 = value;
+ break;
+ case 721:
+ Shape721 = value;
+ break;
+ case 722:
+ Shape722 = value;
+ break;
+ case 723:
+ Shape723 = value;
+ break;
+ case 724:
+ Shape724 = value;
+ break;
+ case 725:
+ Shape725 = value;
+ break;
+ case 726:
+ Shape726 = value;
+ break;
+ case 727:
+ Shape727 = value;
+ break;
+ case 728:
+ Shape728 = value;
+ break;
+ case 729:
+ Shape729 = value;
+ break;
+ case 730:
+ Shape730 = value;
+ break;
+ case 731:
+ Shape731 = value;
+ break;
+ case 732:
+ Shape732 = value;
+ break;
+ case 733:
+ Shape733 = value;
+ break;
+ case 734:
+ Shape734 = value;
+ break;
+ case 735:
+ Shape735 = value;
+ break;
+ case 736:
+ Shape736 = value;
+ break;
+ case 737:
+ Shape737 = value;
+ break;
+ case 738:
+ Shape738 = value;
+ break;
+ case 739:
+ Shape739 = value;
+ break;
+ case 740:
+ Shape740 = value;
+ break;
+ case 741:
+ Shape741 = value;
+ break;
+ case 742:
+ Shape742 = value;
+ break;
+ case 743:
+ Shape743 = value;
+ break;
+ case 744:
+ Shape744 = value;
+ break;
+ case 745:
+ Shape745 = value;
+ break;
+ case 746:
+ Shape746 = value;
+ break;
+ case 747:
+ Shape747 = value;
+ break;
+ case 748:
+ Shape748 = value;
+ break;
+ case 749:
+ Shape749 = value;
+ break;
+ case 750:
+ Shape750 = value;
+ break;
+ case 751:
+ Shape751 = value;
+ break;
+ case 752:
+ Shape752 = value;
+ break;
+ case 753:
+ Shape753 = value;
+ break;
+ case 754:
+ Shape754 = value;
+ break;
+ case 755:
+ Shape755 = value;
+ break;
+ case 756:
+ Shape756 = value;
+ break;
+ case 757:
+ Shape757 = value;
+ break;
+ case 758:
+ Shape758 = value;
+ break;
+ case 759:
+ Shape759 = value;
+ break;
+ case 760:
+ Shape760 = value;
+ break;
+ case 761:
+ Shape761 = value;
+ break;
+ case 762:
+ Shape762 = value;
+ break;
+ case 763:
+ Shape763 = value;
+ break;
+ case 764:
+ Shape764 = value;
+ break;
+ case 765:
+ Shape765 = value;
+ break;
+ case 766:
+ Shape766 = value;
+ break;
+ case 767:
+ Shape767 = value;
+ break;
+ case 768:
+ Shape768 = value;
+ break;
+ case 769:
+ Shape769 = value;
+ break;
+ case 770:
+ Shape770 = value;
+ break;
+ case 771:
+ Shape771 = value;
+ break;
+ case 772:
+ Shape772 = value;
+ break;
+ case 773:
+ Shape773 = value;
+ break;
+ case 774:
+ Shape774 = value;
+ break;
+ case 775:
+ Shape775 = value;
+ break;
+ case 776:
+ Shape776 = value;
+ break;
+ case 777:
+ Shape777 = value;
+ break;
+ case 778:
+ Shape778 = value;
+ break;
+ case 779:
+ Shape779 = value;
+ break;
+ case 780:
+ Shape780 = value;
+ break;
+ case 781:
+ Shape781 = value;
+ break;
+ case 782:
+ Shape782 = value;
+ break;
+ case 783:
+ Shape783 = value;
+ break;
+ case 784:
+ Shape784 = value;
+ break;
+ case 785:
+ Shape785 = value;
+ break;
+ case 786:
+ Shape786 = value;
+ break;
+ case 787:
+ Shape787 = value;
+ break;
+ case 788:
+ Shape788 = value;
+ break;
+ case 789:
+ Shape789 = value;
+ break;
+ case 790:
+ Shape790 = value;
+ break;
+ case 791:
+ Shape791 = value;
+ break;
+ case 792:
+ Shape792 = value;
+ break;
+ case 793:
+ Shape793 = value;
+ break;
+ case 794:
+ Shape794 = value;
+ break;
+ case 795:
+ Shape795 = value;
+ break;
+ case 796:
+ Shape796 = value;
+ break;
+ case 797:
+ Shape797 = value;
+ break;
+ case 798:
+ Shape798 = value;
+ break;
+ case 799:
+ Shape799 = value;
+ break;
+ case 800:
+ Shape800 = value;
+ break;
+ case 801:
+ Shape801 = value;
+ break;
+ case 802:
+ Shape802 = value;
+ break;
+ case 803:
+ Shape803 = value;
+ break;
+ case 804:
+ Shape804 = value;
+ break;
+ case 805:
+ Shape805 = value;
+ break;
+ case 806:
+ Shape806 = value;
+ break;
+ case 807:
+ Shape807 = value;
+ break;
+ case 808:
+ Shape808 = value;
+ break;
+ case 809:
+ Shape809 = value;
+ break;
+ case 810:
+ Shape810 = value;
+ break;
+ case 811:
+ Shape811 = value;
+ break;
+ case 812:
+ Shape812 = value;
+ break;
+ case 813:
+ Shape813 = value;
+ break;
+ case 814:
+ Shape814 = value;
+ break;
+ case 815:
+ Shape815 = value;
+ break;
+ case 816:
+ Shape816 = value;
+ break;
+ case 817:
+ Shape817 = value;
+ break;
+ case 818:
+ Shape818 = value;
+ break;
+ case 819:
+ Shape819 = value;
+ break;
+ case 820:
+ Shape820 = value;
+ break;
+ case 821:
+ Shape821 = value;
+ break;
+ case 822:
+ Shape822 = value;
+ break;
+ case 823:
+ Shape823 = value;
+ break;
+ case 824:
+ Shape824 = value;
+ break;
+ case 825:
+ Shape825 = value;
+ break;
+ case 826:
+ Shape826 = value;
+ break;
+ case 827:
+ Shape827 = value;
+ break;
+ case 828:
+ Shape828 = value;
+ break;
+ case 829:
+ Shape829 = value;
+ break;
+ case 830:
+ Shape830 = value;
+ break;
+ case 831:
+ Shape831 = value;
+ break;
+ case 832:
+ Shape832 = value;
+ break;
+ case 833:
+ Shape833 = value;
+ break;
+ case 834:
+ Shape834 = value;
+ break;
+ case 835:
+ Shape835 = value;
+ break;
+ case 836:
+ Shape836 = value;
+ break;
+ case 837:
+ Shape837 = value;
+ break;
+ case 838:
+ Shape838 = value;
+ break;
+ case 839:
+ Shape839 = value;
+ break;
+ case 840:
+ Shape840 = value;
+ break;
+ case 841:
+ Shape841 = value;
+ break;
+ case 842:
+ Shape842 = value;
+ break;
+ case 843:
+ Shape843 = value;
+ break;
+ case 844:
+ Shape844 = value;
+ break;
+ case 845:
+ Shape845 = value;
+ break;
+ case 846:
+ Shape846 = value;
+ break;
+ case 847:
+ Shape847 = value;
+ break;
+ case 848:
+ Shape848 = value;
+ break;
+ case 849:
+ Shape849 = value;
+ break;
+ case 850:
+ Shape850 = value;
+ break;
+ case 851:
+ Shape851 = value;
+ break;
+ case 852:
+ Shape852 = value;
+ break;
+ case 853:
+ Shape853 = value;
+ break;
+ case 854:
+ Shape854 = value;
+ break;
+ case 855:
+ Shape855 = value;
+ break;
+ case 856:
+ Shape856 = value;
+ break;
+ case 857:
+ Shape857 = value;
+ break;
+ case 858:
+ Shape858 = value;
+ break;
+ case 859:
+ Shape859 = value;
+ break;
+ case 860:
+ Shape860 = value;
+ break;
+ case 861:
+ Shape861 = value;
+ break;
+ case 862:
+ Shape862 = value;
+ break;
+ case 863:
+ Shape863 = value;
+ break;
+ case 864:
+ Shape864 = value;
+ break;
+ case 865:
+ Shape865 = value;
+ break;
+ case 866:
+ Shape866 = value;
+ break;
+ case 867:
+ Shape867 = value;
+ break;
+ case 868:
+ Shape868 = value;
+ break;
+ case 869:
+ Shape869 = value;
+ break;
+ case 870:
+ Shape870 = value;
+ break;
+ case 871:
+ Shape871 = value;
+ break;
+ case 872:
+ Shape872 = value;
+ break;
+ case 873:
+ Shape873 = value;
+ break;
+ case 874:
+ Shape874 = value;
+ break;
+ case 875:
+ Shape875 = value;
+ break;
+ case 876:
+ Shape876 = value;
+ break;
+ case 877:
+ Shape877 = value;
+ break;
+ case 878:
+ Shape878 = value;
+ break;
+ case 879:
+ Shape879 = value;
+ break;
+ case 880:
+ Shape880 = value;
+ break;
+ case 881:
+ Shape881 = value;
+ break;
+ case 882:
+ Shape882 = value;
+ break;
+ case 883:
+ Shape883 = value;
+ break;
+ case 884:
+ Shape884 = value;
+ break;
+ case 885:
+ Shape885 = value;
+ break;
+ case 886:
+ Shape886 = value;
+ break;
+ case 887:
+ Shape887 = value;
+ break;
+ case 888:
+ Shape888 = value;
+ break;
+ case 889:
+ Shape889 = value;
+ break;
+ case 890:
+ Shape890 = value;
+ break;
+ case 891:
+ Shape891 = value;
+ break;
+ case 892:
+ Shape892 = value;
+ break;
+ case 893:
+ Shape893 = value;
+ break;
+ case 894:
+ Shape894 = value;
+ break;
+ case 895:
+ Shape895 = value;
+ break;
+ case 896:
+ Shape896 = value;
+ break;
+ case 897:
+ Shape897 = value;
+ break;
+ case 898:
+ Shape898 = value;
+ break;
+ case 899:
+ Shape899 = value;
+ break;
+ case 900:
+ Shape900 = value;
+ break;
+ case 901:
+ Shape901 = value;
+ break;
+ case 902:
+ Shape902 = value;
+ break;
+ case 903:
+ Shape903 = value;
+ break;
+ case 904:
+ Shape904 = value;
+ break;
+ case 905:
+ Shape905 = value;
+ break;
+ case 906:
+ Shape906 = value;
+ break;
+ case 907:
+ Shape907 = value;
+ break;
+ case 908:
+ Shape908 = value;
+ break;
+ case 909:
+ Shape909 = value;
+ break;
+ case 910:
+ Shape910 = value;
+ break;
+ case 911:
+ Shape911 = value;
+ break;
+ case 912:
+ Shape912 = value;
+ break;
+ case 913:
+ Shape913 = value;
+ break;
+ case 914:
+ Shape914 = value;
+ break;
+ case 915:
+ Shape915 = value;
+ break;
+ case 916:
+ Shape916 = value;
+ break;
+ case 917:
+ Shape917 = value;
+ break;
+ case 918:
+ Shape918 = value;
+ break;
+ case 919:
+ Shape919 = value;
+ break;
+ case 920:
+ Shape920 = value;
+ break;
+ case 921:
+ Shape921 = value;
+ break;
+ case 922:
+ Shape922 = value;
+ break;
+ case 923:
+ Shape923 = value;
+ break;
+ case 924:
+ Shape924 = value;
+ break;
+ case 925:
+ Shape925 = value;
+ break;
+ case 926:
+ Shape926 = value;
+ break;
+ case 927:
+ Shape927 = value;
+ break;
+ case 928:
+ Shape928 = value;
+ break;
+ case 929:
+ Shape929 = value;
+ break;
+ case 930:
+ Shape930 = value;
+ break;
+ case 931:
+ Shape931 = value;
+ break;
+ case 932:
+ Shape932 = value;
+ break;
+ case 933:
+ Shape933 = value;
+ break;
+ case 934:
+ Shape934 = value;
+ break;
+ case 935:
+ Shape935 = value;
+ break;
+ case 936:
+ Shape936 = value;
+ break;
+ case 937:
+ Shape937 = value;
+ break;
+ case 938:
+ Shape938 = value;
+ break;
+ case 939:
+ Shape939 = value;
+ break;
+ case 940:
+ Shape940 = value;
+ break;
+ case 941:
+ Shape941 = value;
+ break;
+ case 942:
+ Shape942 = value;
+ break;
+ case 943:
+ Shape943 = value;
+ break;
+ case 944:
+ Shape944 = value;
+ break;
+ case 945:
+ Shape945 = value;
+ break;
+ case 946:
+ Shape946 = value;
+ break;
+ case 947:
+ Shape947 = value;
+ break;
+ case 948:
+ Shape948 = value;
+ break;
+ case 949:
+ Shape949 = value;
+ break;
+ case 950:
+ Shape950 = value;
+ break;
+ case 951:
+ Shape951 = value;
+ break;
+ case 952:
+ Shape952 = value;
+ break;
+ case 953:
+ Shape953 = value;
+ break;
+ case 954:
+ Shape954 = value;
+ break;
+ case 955:
+ Shape955 = value;
+ break;
+ case 956:
+ Shape956 = value;
+ break;
+ case 957:
+ Shape957 = value;
+ break;
+ case 958:
+ Shape958 = value;
+ break;
+ case 959:
+ Shape959 = value;
+ break;
+ case 960:
+ Shape960 = value;
+ break;
+ case 961:
+ Shape961 = value;
+ break;
+ case 962:
+ Shape962 = value;
+ break;
+ case 963:
+ Shape963 = value;
+ break;
+ case 964:
+ Shape964 = value;
+ break;
+ case 965:
+ Shape965 = value;
+ break;
+ case 966:
+ Shape966 = value;
+ break;
+ case 967:
+ Shape967 = value;
+ break;
+ case 968:
+ Shape968 = value;
+ break;
+ case 969:
+ Shape969 = value;
+ break;
+ case 970:
+ Shape970 = value;
+ break;
+ case 971:
+ Shape971 = value;
+ break;
+ case 972:
+ Shape972 = value;
+ break;
+ case 973:
+ Shape973 = value;
+ break;
+ case 974:
+ Shape974 = value;
+ break;
+ case 975:
+ Shape975 = value;
+ break;
+ case 976:
+ Shape976 = value;
+ break;
+ case 977:
+ Shape977 = value;
+ break;
+ case 978:
+ Shape978 = value;
+ break;
+ case 979:
+ Shape979 = value;
+ break;
+ case 980:
+ Shape980 = value;
+ break;
+ case 981:
+ Shape981 = value;
+ break;
+ case 982:
+ Shape982 = value;
+ break;
+ case 983:
+ Shape983 = value;
+ break;
+ case 984:
+ Shape984 = value;
+ break;
+ case 985:
+ Shape985 = value;
+ break;
+ case 986:
+ Shape986 = value;
+ break;
+ case 987:
+ Shape987 = value;
+ break;
+ case 988:
+ Shape988 = value;
+ break;
+ case 989:
+ Shape989 = value;
+ break;
+ case 990:
+ Shape990 = value;
+ break;
+ case 991:
+ Shape991 = value;
+ break;
+ case 992:
+ Shape992 = value;
+ break;
+ case 993:
+ Shape993 = value;
+ break;
+ case 994:
+ Shape994 = value;
+ break;
+ case 995:
+ Shape995 = value;
+ break;
+ case 996:
+ Shape996 = value;
+ break;
+ case 997:
+ Shape997 = value;
+ break;
+ case 998:
+ Shape998 = value;
+ break;
+ case 999:
+ Shape999 = value;
+ break;
+ case 1000:
+ Shape1000 = value;
+ break;
+ case 1001:
+ Shape1001 = value;
+ break;
+ case 1002:
+ Shape1002 = value;
+ break;
+ case 1003:
+ Shape1003 = value;
+ break;
+ case 1004:
+ Shape1004 = value;
+ break;
+ case 1005:
+ Shape1005 = value;
+ break;
+ case 1006:
+ Shape1006 = value;
+ break;
+ case 1007:
+ Shape1007 = value;
+ break;
+ case 1008:
+ Shape1008 = value;
+ break;
+ case 1009:
+ Shape1009 = value;
+ break;
+ case 1010:
+ Shape1010 = value;
+ break;
+ case 1011:
+ Shape1011 = value;
+ break;
+ case 1012:
+ Shape1012 = value;
+ break;
+ case 1013:
+ Shape1013 = value;
+ break;
+ case 1014:
+ Shape1014 = value;
+ break;
+ case 1015:
+ Shape1015 = value;
+ break;
+ case 1016:
+ Shape1016 = value;
+ break;
+ case 1017:
+ Shape1017 = value;
+ break;
+ case 1018:
+ Shape1018 = value;
+ break;
+ case 1019:
+ Shape1019 = value;
+ break;
+ case 1020:
+ Shape1020 = value;
+ break;
+ case 1021:
+ Shape1021 = value;
+ break;
+ case 1022:
+ Shape1022 = value;
+ break;
+ case 1023:
+ Shape1023 = value;
+ break;
+ case 1024:
+ Shape1024 = value;
+ break;
+ case 1025:
+ Shape1025 = value;
+ break;
+ case 1026:
+ Shape1026 = value;
+ break;
+ case 1027:
+ Shape1027 = value;
+ break;
+ case 1028:
+ Shape1028 = value;
+ break;
+ case 1029:
+ Shape1029 = value;
+ break;
+ case 1030:
+ Shape1030 = value;
+ break;
+ case 1031:
+ Shape1031 = value;
+ break;
+ case 1032:
+ Shape1032 = value;
+ break;
+ case 1033:
+ Shape1033 = value;
+ break;
+ case 1034:
+ Shape1034 = value;
+ break;
+ case 1035:
+ Shape1035 = value;
+ break;
+ case 1036:
+ Shape1036 = value;
+ break;
+ case 1037:
+ Shape1037 = value;
+ break;
+ case 1038:
+ Shape1038 = value;
+ break;
+ case 1039:
+ Shape1039 = value;
+ break;
+ case 1040:
+ Shape1040 = value;
+ break;
+ case 1041:
+ Shape1041 = value;
+ break;
+ case 1042:
+ Shape1042 = value;
+ break;
+ case 1043:
+ Shape1043 = value;
+ break;
+ case 1044:
+ Shape1044 = value;
+ break;
+ case 1045:
+ Shape1045 = value;
+ break;
+ case 1046:
+ Shape1046 = value;
+ break;
+ case 1047:
+ Shape1047 = value;
+ break;
+ case 1048:
+ Shape1048 = value;
+ break;
+ case 1049:
+ Shape1049 = value;
+ break;
+ case 1050:
+ Shape1050 = value;
+ break;
+ case 1051:
+ Shape1051 = value;
+ break;
+ case 1052:
+ Shape1052 = value;
+ break;
+ case 1053:
+ Shape1053 = value;
+ break;
+ case 1054:
+ Shape1054 = value;
+ break;
+ case 1055:
+ Shape1055 = value;
+ break;
+ case 1056:
+ Shape1056 = value;
+ break;
+ case 1057:
+ Shape1057 = value;
+ break;
+ case 1058:
+ Shape1058 = value;
+ break;
+ case 1059:
+ Shape1059 = value;
+ break;
+ case 1060:
+ Shape1060 = value;
+ break;
+ case 1061:
+ Shape1061 = value;
+ break;
+ case 1062:
+ Shape1062 = value;
+ break;
+ case 1063:
+ Shape1063 = value;
+ break;
+ case 1064:
+ Shape1064 = value;
+ break;
+ case 1065:
+ Shape1065 = value;
+ break;
+ case 1066:
+ Shape1066 = value;
+ break;
+ case 1067:
+ Shape1067 = value;
+ break;
+ case 1068:
+ Shape1068 = value;
+ break;
+ case 1069:
+ Shape1069 = value;
+ break;
+ case 1070:
+ Shape1070 = value;
+ break;
+ case 1071:
+ Shape1071 = value;
+ break;
+ case 1072:
+ Shape1072 = value;
+ break;
+ case 1073:
+ Shape1073 = value;
+ break;
+ case 1074:
+ Shape1074 = value;
+ break;
+ case 1075:
+ Shape1075 = value;
+ break;
+ case 1076:
+ Shape1076 = value;
+ break;
+ case 1077:
+ Shape1077 = value;
+ break;
+ case 1078:
+ Shape1078 = value;
+ break;
+ case 1079:
+ Shape1079 = value;
+ break;
+ case 1080:
+ Shape1080 = value;
+ break;
+ case 1081:
+ Shape1081 = value;
+ break;
+ case 1082:
+ Shape1082 = value;
+ break;
+ case 1083:
+ Shape1083 = value;
+ break;
+ case 1084:
+ Shape1084 = value;
+ break;
+ case 1085:
+ Shape1085 = value;
+ break;
+ case 1086:
+ Shape1086 = value;
+ break;
+ case 1087:
+ Shape1087 = value;
+ break;
+ case 1088:
+ Shape1088 = value;
+ break;
+ case 1089:
+ Shape1089 = value;
+ break;
+ case 1090:
+ Shape1090 = value;
+ break;
+ case 1091:
+ Shape1091 = value;
+ break;
+ case 1092:
+ Shape1092 = value;
+ break;
+ case 1093:
+ Shape1093 = value;
+ break;
+ case 1094:
+ Shape1094 = value;
+ break;
+ case 1095:
+ Shape1095 = value;
+ break;
+ case 1096:
+ Shape1096 = value;
+ break;
+ case 1097:
+ Shape1097 = value;
+ break;
+ case 1098:
+ Shape1098 = value;
+ break;
+ case 1099:
+ Shape1099 = value;
+ break;
+ case 1100:
+ Shape1100 = value;
+ break;
+ case 1101:
+ Shape1101 = value;
+ break;
+ case 1102:
+ Shape1102 = value;
+ break;
+ case 1103:
+ Shape1103 = value;
+ break;
+ case 1104:
+ Shape1104 = value;
+ break;
+ case 1105:
+ Shape1105 = value;
+ break;
+ case 1106:
+ Shape1106 = value;
+ break;
+ case 1107:
+ Shape1107 = value;
+ break;
+ case 1108:
+ Shape1108 = value;
+ break;
+ case 1109:
+ Shape1109 = value;
+ break;
+ case 1110:
+ Shape1110 = value;
+ break;
+ case 1111:
+ Shape1111 = value;
+ break;
+ case 1112:
+ Shape1112 = value;
+ break;
+ case 1113:
+ Shape1113 = value;
+ break;
+ case 1114:
+ Shape1114 = value;
+ break;
+ case 1115:
+ Shape1115 = value;
+ break;
+ case 1116:
+ Shape1116 = value;
+ break;
+ case 1117:
+ Shape1117 = value;
+ break;
+ case 1118:
+ Shape1118 = value;
+ break;
+ case 1119:
+ Shape1119 = value;
+ break;
+ case 1120:
+ Shape1120 = value;
+ break;
+ case 1121:
+ Shape1121 = value;
+ break;
+ case 1122:
+ Shape1122 = value;
+ break;
+ case 1123:
+ Shape1123 = value;
+ break;
+ case 1124:
+ Shape1124 = value;
+ break;
+ case 1125:
+ Shape1125 = value;
+ break;
+ case 1126:
+ Shape1126 = value;
+ break;
+ case 1127:
+ Shape1127 = value;
+ break;
+ case 1128:
+ Shape1128 = value;
+ break;
+ case 1129:
+ Shape1129 = value;
+ break;
+ case 1130:
+ Shape1130 = value;
+ break;
+ case 1131:
+ Shape1131 = value;
+ break;
+ case 1132:
+ Shape1132 = value;
+ break;
+ case 1133:
+ Shape1133 = value;
+ break;
+ case 1134:
+ Shape1134 = value;
+ break;
+ case 1135:
+ Shape1135 = value;
+ break;
+ case 1136:
+ Shape1136 = value;
+ break;
+ case 1137:
+ Shape1137 = value;
+ break;
+ case 1138:
+ Shape1138 = value;
+ break;
+ case 1139:
+ Shape1139 = value;
+ break;
+ case 1140:
+ Shape1140 = value;
+ break;
+ case 1141:
+ Shape1141 = value;
+ break;
+ case 1142:
+ Shape1142 = value;
+ break;
+ case 1143:
+ Shape1143 = value;
+ break;
+ case 1144:
+ Shape1144 = value;
+ break;
+ case 1145:
+ Shape1145 = value;
+ break;
+ case 1146:
+ Shape1146 = value;
+ break;
+ case 1147:
+ Shape1147 = value;
+ break;
+ case 1148:
+ Shape1148 = value;
+ break;
+ case 1149:
+ Shape1149 = value;
+ break;
+ case 1150:
+ Shape1150 = value;
+ break;
+ case 1151:
+ Shape1151 = value;
+ break;
+ case 1152:
+ Shape1152 = value;
+ break;
+ case 1153:
+ Shape1153 = value;
+ break;
+ case 1154:
+ Shape1154 = value;
+ break;
+ case 1155:
+ Shape1155 = value;
+ break;
+ case 1156:
+ Shape1156 = value;
+ break;
+ case 1157:
+ Shape1157 = value;
+ break;
+ case 1158:
+ Shape1158 = value;
+ break;
+ case 1159:
+ Shape1159 = value;
+ break;
+ case 1160:
+ Shape1160 = value;
+ break;
+ case 1161:
+ Shape1161 = value;
+ break;
+ case 1162:
+ Shape1162 = value;
+ break;
+ case 1163:
+ Shape1163 = value;
+ break;
+ case 1164:
+ Shape1164 = value;
+ break;
+ case 1165:
+ Shape1165 = value;
+ break;
+ case 1166:
+ Shape1166 = value;
+ break;
+ case 1167:
+ Shape1167 = value;
+ break;
+ case 1168:
+ Shape1168 = value;
+ break;
+ case 1169:
+ Shape1169 = value;
+ break;
+ case 1170:
+ Shape1170 = value;
+ break;
+ case 1171:
+ Shape1171 = value;
+ break;
+ case 1172:
+ Shape1172 = value;
+ break;
+ case 1173:
+ Shape1173 = value;
+ break;
+ case 1174:
+ Shape1174 = value;
+ break;
+ case 1175:
+ Shape1175 = value;
+ break;
+ case 1176:
+ Shape1176 = value;
+ break;
+ case 1177:
+ Shape1177 = value;
+ break;
+ case 1178:
+ Shape1178 = value;
+ break;
+ case 1179:
+ Shape1179 = value;
+ break;
+ case 1180:
+ Shape1180 = value;
+ break;
+ case 1181:
+ Shape1181 = value;
+ break;
+ case 1182:
+ Shape1182 = value;
+ break;
+ case 1183:
+ Shape1183 = value;
+ break;
+ case 1184:
+ Shape1184 = value;
+ break;
+ case 1185:
+ Shape1185 = value;
+ break;
+ case 1186:
+ Shape1186 = value;
+ break;
+ case 1187:
+ Shape1187 = value;
+ break;
+ case 1188:
+ Shape1188 = value;
+ break;
+ case 1189:
+ Shape1189 = value;
+ break;
+ case 1190:
+ Shape1190 = value;
+ break;
+ case 1191:
+ Shape1191 = value;
+ break;
+ case 1192:
+ Shape1192 = value;
+ break;
+ case 1193:
+ Shape1193 = value;
+ break;
+ case 1194:
+ Shape1194 = value;
+ break;
+ case 1195:
+ Shape1195 = value;
+ break;
+ case 1196:
+ Shape1196 = value;
+ break;
+ case 1197:
+ Shape1197 = value;
+ break;
+ case 1198:
+ Shape1198 = value;
+ break;
+ case 1199:
+ Shape1199 = value;
+ break;
+ case 1200:
+ Shape1200 = value;
+ break;
+ case 1201:
+ Shape1201 = value;
+ break;
+ case 1202:
+ Shape1202 = value;
+ break;
+ case 1203:
+ Shape1203 = value;
+ break;
+ case 1204:
+ Shape1204 = value;
+ break;
+ case 1205:
+ Shape1205 = value;
+ break;
+ case 1206:
+ Shape1206 = value;
+ break;
+ case 1207:
+ Shape1207 = value;
+ break;
+ case 1208:
+ Shape1208 = value;
+ break;
+ case 1209:
+ Shape1209 = value;
+ break;
+ case 1210:
+ Shape1210 = value;
+ break;
+ case 1211:
+ Shape1211 = value;
+ break;
+ case 1212:
+ Shape1212 = value;
+ break;
+ case 1213:
+ Shape1213 = value;
+ break;
+ case 1214:
+ Shape1214 = value;
+ break;
+ case 1215:
+ Shape1215 = value;
+ break;
+ case 1216:
+ Shape1216 = value;
+ break;
+ case 1217:
+ Shape1217 = value;
+ break;
+ case 1218:
+ Shape1218 = value;
+ break;
+ case 1219:
+ Shape1219 = value;
+ break;
+ case 1220:
+ Shape1220 = value;
+ break;
+ case 1221:
+ Shape1221 = value;
+ break;
+ case 1222:
+ Shape1222 = value;
+ break;
+ case 1223:
+ Shape1223 = value;
+ break;
+ case 1224:
+ Shape1224 = value;
+ break;
+ case 1225:
+ Shape1225 = value;
+ break;
+ case 1226:
+ Shape1226 = value;
+ break;
+ case 1227:
+ Shape1227 = value;
+ break;
+ case 1228:
+ Shape1228 = value;
+ break;
+ case 1229:
+ Shape1229 = value;
+ break;
+ case 1230:
+ Shape1230 = value;
+ break;
+ case 1231:
+ Shape1231 = value;
+ break;
+ case 1232:
+ Shape1232 = value;
+ break;
+ case 1233:
+ Shape1233 = value;
+ break;
+ case 1234:
+ Shape1234 = value;
+ break;
+ case 1235:
+ Shape1235 = value;
+ break;
+ case 1236:
+ Shape1236 = value;
+ break;
+ case 1237:
+ Shape1237 = value;
+ break;
+ case 1238:
+ Shape1238 = value;
+ break;
+ case 1239:
+ Shape1239 = value;
+ break;
+ case 1240:
+ Shape1240 = value;
+ break;
+ case 1241:
+ Shape1241 = value;
+ break;
+ case 1242:
+ Shape1242 = value;
+ break;
+ case 1243:
+ Shape1243 = value;
+ break;
+ case 1244:
+ Shape1244 = value;
+ break;
+ case 1245:
+ Shape1245 = value;
+ break;
+ case 1246:
+ Shape1246 = value;
+ break;
+ case 1247:
+ Shape1247 = value;
+ break;
+ case 1248:
+ Shape1248 = value;
+ break;
+ case 1249:
+ Shape1249 = value;
+ break;
+ case 1250:
+ Shape1250 = value;
+ break;
+ case 1251:
+ Shape1251 = value;
+ break;
+ case 1252:
+ Shape1252 = value;
+ break;
+ case 1253:
+ Shape1253 = value;
+ break;
+ case 1254:
+ Shape1254 = value;
+ break;
+ case 1255:
+ Shape1255 = value;
+ break;
+ case 1256:
+ Shape1256 = value;
+ break;
+ case 1257:
+ Shape1257 = value;
+ break;
+ case 1258:
+ Shape1258 = value;
+ break;
+ case 1259:
+ Shape1259 = value;
+ break;
+ case 1260:
+ Shape1260 = value;
+ break;
+ case 1261:
+ Shape1261 = value;
+ break;
+ case 1262:
+ Shape1262 = value;
+ break;
+ case 1263:
+ Shape1263 = value;
+ break;
+ case 1264:
+ Shape1264 = value;
+ break;
+ case 1265:
+ Shape1265 = value;
+ break;
+ case 1266:
+ Shape1266 = value;
+ break;
+ case 1267:
+ Shape1267 = value;
+ break;
+ case 1268:
+ Shape1268 = value;
+ break;
+ case 1269:
+ Shape1269 = value;
+ break;
+ case 1270:
+ Shape1270 = value;
+ break;
+ case 1271:
+ Shape1271 = value;
+ break;
+ case 1272:
+ Shape1272 = value;
+ break;
+ case 1273:
+ Shape1273 = value;
+ break;
+ case 1274:
+ Shape1274 = value;
+ break;
+ case 1275:
+ Shape1275 = value;
+ break;
+ case 1276:
+ Shape1276 = value;
+ break;
+ case 1277:
+ Shape1277 = value;
+ break;
+ case 1278:
+ Shape1278 = value;
+ break;
+ case 1279:
+ Shape1279 = value;
+ break;
+ case 1280:
+ Shape1280 = value;
+ break;
+ case 1281:
+ Shape1281 = value;
+ break;
+ case 1282:
+ Shape1282 = value;
+ break;
+ case 1283:
+ Shape1283 = value;
+ break;
+ case 1284:
+ Shape1284 = value;
+ break;
+ case 1285:
+ Shape1285 = value;
+ break;
+ case 1286:
+ Shape1286 = value;
+ break;
+ case 1287:
+ Shape1287 = value;
+ break;
+ case 1288:
+ Shape1288 = value;
+ break;
+ case 1289:
+ Shape1289 = value;
+ break;
+ case 1290:
+ Shape1290 = value;
+ break;
+ case 1291:
+ Shape1291 = value;
+ break;
+ case 1292:
+ Shape1292 = value;
+ break;
+ case 1293:
+ Shape1293 = value;
+ break;
+ case 1294:
+ Shape1294 = value;
+ break;
+ case 1295:
+ Shape1295 = value;
+ break;
+ case 1296:
+ Shape1296 = value;
+ break;
+ case 1297:
+ Shape1297 = value;
+ break;
+ case 1298:
+ Shape1298 = value;
+ break;
+ case 1299:
+ Shape1299 = value;
+ break;
+ case 1300:
+ Shape1300 = value;
+ break;
+ case 1301:
+ Shape1301 = value;
+ break;
+ case 1302:
+ Shape1302 = value;
+ break;
+ case 1303:
+ Shape1303 = value;
+ break;
+ case 1304:
+ Shape1304 = value;
+ break;
+ case 1305:
+ Shape1305 = value;
+ break;
+ case 1306:
+ Shape1306 = value;
+ break;
+ case 1307:
+ Shape1307 = value;
+ break;
+ case 1308:
+ Shape1308 = value;
+ break;
+ case 1309:
+ Shape1309 = value;
+ break;
+ case 1310:
+ Shape1310 = value;
+ break;
+ case 1311:
+ Shape1311 = value;
+ break;
+ case 1312:
+ Shape1312 = value;
+ break;
+ case 1313:
+ Shape1313 = value;
+ break;
+ case 1314:
+ Shape1314 = value;
+ break;
+ case 1315:
+ Shape1315 = value;
+ break;
+ case 1316:
+ Shape1316 = value;
+ break;
+ case 1317:
+ Shape1317 = value;
+ break;
+ case 1318:
+ Shape1318 = value;
+ break;
+ case 1319:
+ Shape1319 = value;
+ break;
+ case 1320:
+ Shape1320 = value;
+ break;
+ case 1321:
+ Shape1321 = value;
+ break;
+ case 1322:
+ Shape1322 = value;
+ break;
+ case 1323:
+ Shape1323 = value;
+ break;
+ case 1324:
+ Shape1324 = value;
+ break;
+ case 1325:
+ Shape1325 = value;
+ break;
+ case 1326:
+ Shape1326 = value;
+ break;
+ case 1327:
+ Shape1327 = value;
+ break;
+ case 1328:
+ Shape1328 = value;
+ break;
+ case 1329:
+ Shape1329 = value;
+ break;
+ case 1330:
+ Shape1330 = value;
+ break;
+ case 1331:
+ Shape1331 = value;
+ break;
+ case 1332:
+ Shape1332 = value;
+ break;
+ case 1333:
+ Shape1333 = value;
+ break;
+ case 1334:
+ Shape1334 = value;
+ break;
+ case 1335:
+ Shape1335 = value;
+ break;
+ case 1336:
+ Shape1336 = value;
+ break;
+ case 1337:
+ Shape1337 = value;
+ break;
+ case 1338:
+ Shape1338 = value;
+ break;
+ case 1339:
+ Shape1339 = value;
+ break;
+ case 1340:
+ Shape1340 = value;
+ break;
+ case 1341:
+ Shape1341 = value;
+ break;
+ case 1342:
+ Shape1342 = value;
+ break;
+ case 1343:
+ Shape1343 = value;
+ break;
+ case 1344:
+ Shape1344 = value;
+ break;
+ case 1345:
+ Shape1345 = value;
+ break;
+ case 1346:
+ Shape1346 = value;
+ break;
+ case 1347:
+ Shape1347 = value;
+ break;
+ case 1348:
+ Shape1348 = value;
+ break;
+ case 1349:
+ Shape1349 = value;
+ break;
+ case 1350:
+ Shape1350 = value;
+ break;
+ case 1351:
+ Shape1351 = value;
+ break;
+ case 1352:
+ Shape1352 = value;
+ break;
+ case 1353:
+ Shape1353 = value;
+ break;
+ case 1354:
+ Shape1354 = value;
+ break;
+ case 1355:
+ Shape1355 = value;
+ break;
+ case 1356:
+ Shape1356 = value;
+ break;
+ case 1357:
+ Shape1357 = value;
+ break;
+ case 1358:
+ Shape1358 = value;
+ break;
+ case 1359:
+ Shape1359 = value;
+ break;
+ case 1360:
+ Shape1360 = value;
+ break;
+ case 1361:
+ Shape1361 = value;
+ break;
+ case 1362:
+ Shape1362 = value;
+ break;
+ case 1363:
+ Shape1363 = value;
+ break;
+ case 1364:
+ Shape1364 = value;
+ break;
+ case 1365:
+ Shape1365 = value;
+ break;
+ case 1366:
+ Shape1366 = value;
+ break;
+ case 1367:
+ Shape1367 = value;
+ break;
+ case 1368:
+ Shape1368 = value;
+ break;
+ case 1369:
+ Shape1369 = value;
+ break;
+ case 1370:
+ Shape1370 = value;
+ break;
+ case 1371:
+ Shape1371 = value;
+ break;
+ case 1372:
+ Shape1372 = value;
+ break;
+ case 1373:
+ Shape1373 = value;
+ break;
+ case 1374:
+ Shape1374 = value;
+ break;
+ case 1375:
+ Shape1375 = value;
+ break;
+ case 1376:
+ Shape1376 = value;
+ break;
+ case 1377:
+ Shape1377 = value;
+ break;
+ case 1378:
+ Shape1378 = value;
+ break;
+ case 1379:
+ Shape1379 = value;
+ break;
+ case 1380:
+ Shape1380 = value;
+ break;
+ case 1381:
+ Shape1381 = value;
+ break;
+ case 1382:
+ Shape1382 = value;
+ break;
+ case 1383:
+ Shape1383 = value;
+ break;
+ case 1384:
+ Shape1384 = value;
+ break;
+ case 1385:
+ Shape1385 = value;
+ break;
+ case 1386:
+ Shape1386 = value;
+ break;
+ case 1387:
+ Shape1387 = value;
+ break;
+ case 1388:
+ Shape1388 = value;
+ break;
+ case 1389:
+ Shape1389 = value;
+ break;
+ case 1390:
+ Shape1390 = value;
+ break;
+ case 1391:
+ Shape1391 = value;
+ break;
+ case 1392:
+ Shape1392 = value;
+ break;
+ case 1393:
+ Shape1393 = value;
+ break;
+ case 1394:
+ Shape1394 = value;
+ break;
+ case 1395:
+ Shape1395 = value;
+ break;
+ case 1396:
+ Shape1396 = value;
+ break;
+ case 1397:
+ Shape1397 = value;
+ break;
+ case 1398:
+ Shape1398 = value;
+ break;
+ case 1399:
+ Shape1399 = value;
+ break;
+ case 1400:
+ Shape1400 = value;
+ break;
+ case 1401:
+ Shape1401 = value;
+ break;
+ case 1402:
+ Shape1402 = value;
+ break;
+ case 1403:
+ Shape1403 = value;
+ break;
+ case 1404:
+ Shape1404 = value;
+ break;
+ case 1405:
+ Shape1405 = value;
+ break;
+ case 1406:
+ Shape1406 = value;
+ break;
+ case 1407:
+ Shape1407 = value;
+ break;
+ case 1408:
+ Shape1408 = value;
+ break;
+ case 1409:
+ Shape1409 = value;
+ break;
+ case 1410:
+ Shape1410 = value;
+ break;
+ case 1411:
+ Shape1411 = value;
+ break;
+ case 1412:
+ Shape1412 = value;
+ break;
+ case 1413:
+ Shape1413 = value;
+ break;
+ case 1414:
+ Shape1414 = value;
+ break;
+ case 1415:
+ Shape1415 = value;
+ break;
+ case 1416:
+ Shape1416 = value;
+ break;
+ case 1417:
+ Shape1417 = value;
+ break;
+ case 1418:
+ Shape1418 = value;
+ break;
+ case 1419:
+ Shape1419 = value;
+ break;
+ case 1420:
+ Shape1420 = value;
+ break;
+ case 1421:
+ Shape1421 = value;
+ break;
+ case 1422:
+ Shape1422 = value;
+ break;
+ case 1423:
+ Shape1423 = value;
+ break;
+ case 1424:
+ Shape1424 = value;
+ break;
+ case 1425:
+ Shape1425 = value;
+ break;
+ case 1426:
+ Shape1426 = value;
+ break;
+ case 1427:
+ Shape1427 = value;
+ break;
+ case 1428:
+ Shape1428 = value;
+ break;
+ case 1429:
+ Shape1429 = value;
+ break;
+ case 1430:
+ Shape1430 = value;
+ break;
+ case 1431:
+ Shape1431 = value;
+ break;
+ case 1432:
+ Shape1432 = value;
+ break;
+ case 1433:
+ Shape1433 = value;
+ break;
+ case 1434:
+ Shape1434 = value;
+ break;
+ case 1435:
+ Shape1435 = value;
+ break;
+ case 1436:
+ Shape1436 = value;
+ break;
+ case 1437:
+ Shape1437 = value;
+ break;
+ case 1438:
+ Shape1438 = value;
+ break;
+ case 1439:
+ Shape1439 = value;
+ break;
+ case 1440:
+ Shape1440 = value;
+ break;
+ case 1441:
+ Shape1441 = value;
+ break;
+ case 1442:
+ Shape1442 = value;
+ break;
+ case 1443:
+ Shape1443 = value;
+ break;
+ case 1444:
+ Shape1444 = value;
+ break;
+ case 1445:
+ Shape1445 = value;
+ break;
+ case 1446:
+ Shape1446 = value;
+ break;
+ case 1447:
+ Shape1447 = value;
+ break;
+ case 1448:
+ Shape1448 = value;
+ break;
+ case 1449:
+ Shape1449 = value;
+ break;
+ case 1450:
+ Shape1450 = value;
+ break;
+ case 1451:
+ Shape1451 = value;
+ break;
+ case 1452:
+ Shape1452 = value;
+ break;
+ case 1453:
+ Shape1453 = value;
+ break;
+ case 1454:
+ Shape1454 = value;
+ break;
+ case 1455:
+ Shape1455 = value;
+ break;
+ case 1456:
+ Shape1456 = value;
+ break;
+ case 1457:
+ Shape1457 = value;
+ break;
+ case 1458:
+ Shape1458 = value;
+ break;
+ case 1459:
+ Shape1459 = value;
+ break;
+ case 1460:
+ Shape1460 = value;
+ break;
+ case 1461:
+ Shape1461 = value;
+ break;
+ case 1462:
+ Shape1462 = value;
+ break;
+ case 1463:
+ Shape1463 = value;
+ break;
+ case 1464:
+ Shape1464 = value;
+ break;
+ case 1465:
+ Shape1465 = value;
+ break;
+ case 1466:
+ Shape1466 = value;
+ break;
+ case 1467:
+ Shape1467 = value;
+ break;
+ case 1468:
+ Shape1468 = value;
+ break;
+ case 1469:
+ Shape1469 = value;
+ break;
+ case 1470:
+ Shape1470 = value;
+ break;
+ case 1471:
+ Shape1471 = value;
+ break;
+ case 1472:
+ Shape1472 = value;
+ break;
+ case 1473:
+ Shape1473 = value;
+ break;
+ case 1474:
+ Shape1474 = value;
+ break;
+ case 1475:
+ Shape1475 = value;
+ break;
+ case 1476:
+ Shape1476 = value;
+ break;
+ case 1477:
+ Shape1477 = value;
+ break;
+ case 1478:
+ Shape1478 = value;
+ break;
+ case 1479:
+ Shape1479 = value;
+ break;
+ case 1480:
+ Shape1480 = value;
+ break;
+ case 1481:
+ Shape1481 = value;
+ break;
+ case 1482:
+ Shape1482 = value;
+ break;
+ case 1483:
+ Shape1483 = value;
+ break;
+ case 1484:
+ Shape1484 = value;
+ break;
+ case 1485:
+ Shape1485 = value;
+ break;
+ case 1486:
+ Shape1486 = value;
+ break;
+ case 1487:
+ Shape1487 = value;
+ break;
+ case 1488:
+ Shape1488 = value;
+ break;
+ case 1489:
+ Shape1489 = value;
+ break;
+ case 1490:
+ Shape1490 = value;
+ break;
+ case 1491:
+ Shape1491 = value;
+ break;
+ case 1492:
+ Shape1492 = value;
+ break;
+ case 1493:
+ Shape1493 = value;
+ break;
+ case 1494:
+ Shape1494 = value;
+ break;
+ case 1495:
+ Shape1495 = value;
+ break;
+ case 1496:
+ Shape1496 = value;
+ break;
+ case 1497:
+ Shape1497 = value;
+ break;
+ case 1498:
+ Shape1498 = value;
+ break;
+ case 1499:
+ Shape1499 = value;
+ break;
+ case 1500:
+ Shape1500 = value;
+ break;
+ case 1501:
+ Shape1501 = value;
+ break;
+ case 1502:
+ Shape1502 = value;
+ break;
+ case 1503:
+ Shape1503 = value;
+ break;
+ case 1504:
+ Shape1504 = value;
+ break;
+ case 1505:
+ Shape1505 = value;
+ break;
+ case 1506:
+ Shape1506 = value;
+ break;
+ case 1507:
+ Shape1507 = value;
+ break;
+ case 1508:
+ Shape1508 = value;
+ break;
+ case 1509:
+ Shape1509 = value;
+ break;
+ case 1510:
+ Shape1510 = value;
+ break;
+ case 1511:
+ Shape1511 = value;
+ break;
+ case 1512:
+ Shape1512 = value;
+ break;
+ case 1513:
+ Shape1513 = value;
+ break;
+ case 1514:
+ Shape1514 = value;
+ break;
+ case 1515:
+ Shape1515 = value;
+ break;
+ case 1516:
+ Shape1516 = value;
+ break;
+ case 1517:
+ Shape1517 = value;
+ break;
+ case 1518:
+ Shape1518 = value;
+ break;
+ case 1519:
+ Shape1519 = value;
+ break;
+ case 1520:
+ Shape1520 = value;
+ break;
+ case 1521:
+ Shape1521 = value;
+ break;
+ case 1522:
+ Shape1522 = value;
+ break;
+ case 1523:
+ Shape1523 = value;
+ break;
+ case 1524:
+ Shape1524 = value;
+ break;
+ case 1525:
+ Shape1525 = value;
+ break;
+ case 1526:
+ Shape1526 = value;
+ break;
+ case 1527:
+ Shape1527 = value;
+ break;
+ case 1528:
+ Shape1528 = value;
+ break;
+ case 1529:
+ Shape1529 = value;
+ break;
+ case 1530:
+ Shape1530 = value;
+ break;
+ case 1531:
+ Shape1531 = value;
+ break;
+ case 1532:
+ Shape1532 = value;
+ break;
+ case 1533:
+ Shape1533 = value;
+ break;
+ case 1534:
+ Shape1534 = value;
+ break;
+ case 1535:
+ Shape1535 = value;
+ break;
+ case 1536:
+ Shape1536 = value;
+ break;
+ case 1537:
+ Shape1537 = value;
+ break;
+ case 1538:
+ Shape1538 = value;
+ break;
+ case 1539:
+ Shape1539 = value;
+ break;
+ case 1540:
+ Shape1540 = value;
+ break;
+ case 1541:
+ Shape1541 = value;
+ break;
+ case 1542:
+ Shape1542 = value;
+ break;
+ case 1543:
+ Shape1543 = value;
+ break;
+ case 1544:
+ Shape1544 = value;
+ break;
+ case 1545:
+ Shape1545 = value;
+ break;
+ case 1546:
+ Shape1546 = value;
+ break;
+ case 1547:
+ Shape1547 = value;
+ break;
+ case 1548:
+ Shape1548 = value;
+ break;
+ case 1549:
+ Shape1549 = value;
+ break;
+ case 1550:
+ Shape1550 = value;
+ break;
+ case 1551:
+ Shape1551 = value;
+ break;
+ case 1552:
+ Shape1552 = value;
+ break;
+ case 1553:
+ Shape1553 = value;
+ break;
+ case 1554:
+ Shape1554 = value;
+ break;
+ case 1555:
+ Shape1555 = value;
+ break;
+ case 1556:
+ Shape1556 = value;
+ break;
+ case 1557:
+ Shape1557 = value;
+ break;
+ case 1558:
+ Shape1558 = value;
+ break;
+ case 1559:
+ Shape1559 = value;
+ break;
+ case 1560:
+ Shape1560 = value;
+ break;
+ case 1561:
+ Shape1561 = value;
+ break;
+ case 1562:
+ Shape1562 = value;
+ break;
+ case 1563:
+ Shape1563 = value;
+ break;
+ case 1564:
+ Shape1564 = value;
+ break;
+ case 1565:
+ Shape1565 = value;
+ break;
+ case 1566:
+ Shape1566 = value;
+ break;
+ case 1567:
+ Shape1567 = value;
+ break;
+ case 1568:
+ Shape1568 = value;
+ break;
+ case 1569:
+ Shape1569 = value;
+ break;
+ case 1570:
+ Shape1570 = value;
+ break;
+ case 1571:
+ Shape1571 = value;
+ break;
+ case 1572:
+ Shape1572 = value;
+ break;
+ case 1573:
+ Shape1573 = value;
+ break;
+ case 1574:
+ Shape1574 = value;
+ break;
+ case 1575:
+ Shape1575 = value;
+ break;
+ case 1576:
+ Shape1576 = value;
+ break;
+ case 1577:
+ Shape1577 = value;
+ break;
+ case 1578:
+ Shape1578 = value;
+ break;
+ case 1579:
+ Shape1579 = value;
+ break;
+ case 1580:
+ Shape1580 = value;
+ break;
+ case 1581:
+ Shape1581 = value;
+ break;
+ case 1582:
+ Shape1582 = value;
+ break;
+ case 1583:
+ Shape1583 = value;
+ break;
+ case 1584:
+ Shape1584 = value;
+ break;
+ case 1585:
+ Shape1585 = value;
+ break;
+ case 1586:
+ Shape1586 = value;
+ break;
+ case 1587:
+ Shape1587 = value;
+ break;
+ case 1588:
+ Shape1588 = value;
+ break;
+ case 1589:
+ Shape1589 = value;
+ break;
+ case 1590:
+ Shape1590 = value;
+ break;
+ case 1591:
+ Shape1591 = value;
+ break;
+ case 1592:
+ Shape1592 = value;
+ break;
+ case 1593:
+ Shape1593 = value;
+ break;
+ case 1594:
+ Shape1594 = value;
+ break;
+ case 1595:
+ Shape1595 = value;
+ break;
+ case 1596:
+ Shape1596 = value;
+ break;
+ case 1597:
+ Shape1597 = value;
+ break;
+ case 1598:
+ Shape1598 = value;
+ break;
+ case 1599:
+ Shape1599 = value;
+ break;
+ case 1600:
+ Shape1600 = value;
+ break;
+ case 1601:
+ Shape1601 = value;
+ break;
+ case 1602:
+ Shape1602 = value;
+ break;
+ case 1603:
+ Shape1603 = value;
+ break;
+ case 1604:
+ Shape1604 = value;
+ break;
+ case 1605:
+ Shape1605 = value;
+ break;
+ case 1606:
+ Shape1606 = value;
+ break;
+ case 1607:
+ Shape1607 = value;
+ break;
+ case 1608:
+ Shape1608 = value;
+ break;
+ case 1609:
+ Shape1609 = value;
+ break;
+ case 1610:
+ Shape1610 = value;
+ break;
+ case 1611:
+ Shape1611 = value;
+ break;
+ case 1612:
+ Shape1612 = value;
+ break;
+ case 1613:
+ Shape1613 = value;
+ break;
+ case 1614:
+ Shape1614 = value;
+ break;
+ case 1615:
+ Shape1615 = value;
+ break;
+ case 1616:
+ Shape1616 = value;
+ break;
+ case 1617:
+ Shape1617 = value;
+ break;
+ case 1618:
+ Shape1618 = value;
+ break;
+ case 1619:
+ Shape1619 = value;
+ break;
+ case 1620:
+ Shape1620 = value;
+ break;
+ case 1621:
+ Shape1621 = value;
+ break;
+ case 1622:
+ Shape1622 = value;
+ break;
+ case 1623:
+ Shape1623 = value;
+ break;
+ case 1624:
+ Shape1624 = value;
+ break;
+ case 1625:
+ Shape1625 = value;
+ break;
+ case 1626:
+ Shape1626 = value;
+ break;
+ case 1627:
+ Shape1627 = value;
+ break;
+ case 1628:
+ Shape1628 = value;
+ break;
+ case 1629:
+ Shape1629 = value;
+ break;
+ case 1630:
+ Shape1630 = value;
+ break;
+ case 1631:
+ Shape1631 = value;
+ break;
+ case 1632:
+ Shape1632 = value;
+ break;
+ case 1633:
+ Shape1633 = value;
+ break;
+ case 1634:
+ Shape1634 = value;
+ break;
+ case 1635:
+ Shape1635 = value;
+ break;
+ case 1636:
+ Shape1636 = value;
+ break;
+ case 1637:
+ Shape1637 = value;
+ break;
+ case 1638:
+ Shape1638 = value;
+ break;
+ case 1639:
+ Shape1639 = value;
+ break;
+ case 1640:
+ Shape1640 = value;
+ break;
+ case 1641:
+ Shape1641 = value;
+ break;
+ case 1642:
+ Shape1642 = value;
+ break;
+ case 1643:
+ Shape1643 = value;
+ break;
+ case 1644:
+ Shape1644 = value;
+ break;
+ case 1645:
+ Shape1645 = value;
+ break;
+ case 1646:
+ Shape1646 = value;
+ break;
+ case 1647:
+ Shape1647 = value;
+ break;
+ case 1648:
+ Shape1648 = value;
+ break;
+ case 1649:
+ Shape1649 = value;
+ break;
+ case 1650:
+ Shape1650 = value;
+ break;
+ case 1651:
+ Shape1651 = value;
+ break;
+ case 1652:
+ Shape1652 = value;
+ break;
+ case 1653:
+ Shape1653 = value;
+ break;
+ case 1654:
+ Shape1654 = value;
+ break;
+ case 1655:
+ Shape1655 = value;
+ break;
+ case 1656:
+ Shape1656 = value;
+ break;
+ case 1657:
+ Shape1657 = value;
+ break;
+ case 1658:
+ Shape1658 = value;
+ break;
+ case 1659:
+ Shape1659 = value;
+ break;
+ case 1660:
+ Shape1660 = value;
+ break;
+ case 1661:
+ Shape1661 = value;
+ break;
+ case 1662:
+ Shape1662 = value;
+ break;
+ case 1663:
+ Shape1663 = value;
+ break;
+ case 1664:
+ Shape1664 = value;
+ break;
+ case 1665:
+ Shape1665 = value;
+ break;
+ case 1666:
+ Shape1666 = value;
+ break;
+ case 1667:
+ Shape1667 = value;
+ break;
+ case 1668:
+ Shape1668 = value;
+ break;
+ case 1669:
+ Shape1669 = value;
+ break;
+ case 1670:
+ Shape1670 = value;
+ break;
+ case 1671:
+ Shape1671 = value;
+ break;
+ case 1672:
+ Shape1672 = value;
+ break;
+ case 1673:
+ Shape1673 = value;
+ break;
+ case 1674:
+ Shape1674 = value;
+ break;
+ case 1675:
+ Shape1675 = value;
+ break;
+ case 1676:
+ Shape1676 = value;
+ break;
+ case 1677:
+ Shape1677 = value;
+ break;
+ case 1678:
+ Shape1678 = value;
+ break;
+ case 1679:
+ Shape1679 = value;
+ break;
+ case 1680:
+ Shape1680 = value;
+ break;
+ case 1681:
+ Shape1681 = value;
+ break;
+ case 1682:
+ Shape1682 = value;
+ break;
+ case 1683:
+ Shape1683 = value;
+ break;
+ case 1684:
+ Shape1684 = value;
+ break;
+ case 1685:
+ Shape1685 = value;
+ break;
+ case 1686:
+ Shape1686 = value;
+ break;
+ case 1687:
+ Shape1687 = value;
+ break;
+ case 1688:
+ Shape1688 = value;
+ break;
+ case 1689:
+ Shape1689 = value;
+ break;
+ case 1690:
+ Shape1690 = value;
+ break;
+ case 1691:
+ Shape1691 = value;
+ break;
+ case 1692:
+ Shape1692 = value;
+ break;
+ case 1693:
+ Shape1693 = value;
+ break;
+ case 1694:
+ Shape1694 = value;
+ break;
+ case 1695:
+ Shape1695 = value;
+ break;
+ case 1696:
+ Shape1696 = value;
+ break;
+ case 1697:
+ Shape1697 = value;
+ break;
+ case 1698:
+ Shape1698 = value;
+ break;
+ case 1699:
+ Shape1699 = value;
+ break;
+ case 1700:
+ Shape1700 = value;
+ break;
+ case 1701:
+ Shape1701 = value;
+ break;
+ case 1702:
+ Shape1702 = value;
+ break;
+ case 1703:
+ Shape1703 = value;
+ break;
+ case 1704:
+ Shape1704 = value;
+ break;
+ case 1705:
+ Shape1705 = value;
+ break;
+ case 1706:
+ Shape1706 = value;
+ break;
+ case 1707:
+ Shape1707 = value;
+ break;
+ case 1708:
+ Shape1708 = value;
+ break;
+ case 1709:
+ Shape1709 = value;
+ break;
+ case 1710:
+ Shape1710 = value;
+ break;
+ case 1711:
+ Shape1711 = value;
+ break;
+ case 1712:
+ Shape1712 = value;
+ break;
+ case 1713:
+ Shape1713 = value;
+ break;
+ case 1714:
+ Shape1714 = value;
+ break;
+ case 1715:
+ Shape1715 = value;
+ break;
+ case 1716:
+ Shape1716 = value;
+ break;
+ case 1717:
+ Shape1717 = value;
+ break;
+ case 1718:
+ Shape1718 = value;
+ break;
+ case 1719:
+ Shape1719 = value;
+ break;
+ case 1720:
+ Shape1720 = value;
+ break;
+ case 1721:
+ Shape1721 = value;
+ break;
+ case 1722:
+ Shape1722 = value;
+ break;
+ case 1723:
+ Shape1723 = value;
+ break;
+ case 1724:
+ Shape1724 = value;
+ break;
+ case 1725:
+ Shape1725 = value;
+ break;
+ case 1726:
+ Shape1726 = value;
+ break;
+ case 1727:
+ Shape1727 = value;
+ break;
+ case 1728:
+ Shape1728 = value;
+ break;
+ case 1729:
+ Shape1729 = value;
+ break;
+ case 1730:
+ Shape1730 = value;
+ break;
+ case 1731:
+ Shape1731 = value;
+ break;
+ case 1732:
+ Shape1732 = value;
+ break;
+ case 1733:
+ Shape1733 = value;
+ break;
+ case 1734:
+ Shape1734 = value;
+ break;
+ case 1735:
+ Shape1735 = value;
+ break;
+ case 1736:
+ Shape1736 = value;
+ break;
+ case 1737:
+ Shape1737 = value;
+ break;
+ case 1738:
+ Shape1738 = value;
+ break;
+ case 1739:
+ Shape1739 = value;
+ break;
+ case 1740:
+ Shape1740 = value;
+ break;
+ case 1741:
+ Shape1741 = value;
+ break;
+ case 1742:
+ Shape1742 = value;
+ break;
+ case 1743:
+ Shape1743 = value;
+ break;
+ case 1744:
+ Shape1744 = value;
+ break;
+ case 1745:
+ Shape1745 = value;
+ break;
+ case 1746:
+ Shape1746 = value;
+ break;
+ case 1747:
+ Shape1747 = value;
+ break;
+ case 1748:
+ Shape1748 = value;
+ break;
+ case 1749:
+ Shape1749 = value;
+ break;
+ case 1750:
+ Shape1750 = value;
+ break;
+ case 1751:
+ Shape1751 = value;
+ break;
+ case 1752:
+ Shape1752 = value;
+ break;
+ case 1753:
+ Shape1753 = value;
+ break;
+ case 1754:
+ Shape1754 = value;
+ break;
+ case 1755:
+ Shape1755 = value;
+ break;
+ case 1756:
+ Shape1756 = value;
+ break;
+ case 1757:
+ Shape1757 = value;
+ break;
+ case 1758:
+ Shape1758 = value;
+ break;
+ case 1759:
+ Shape1759 = value;
+ break;
+ case 1760:
+ Shape1760 = value;
+ break;
+ case 1761:
+ Shape1761 = value;
+ break;
+ case 1762:
+ Shape1762 = value;
+ break;
+ case 1763:
+ Shape1763 = value;
+ break;
+ case 1764:
+ Shape1764 = value;
+ break;
+ case 1765:
+ Shape1765 = value;
+ break;
+ case 1766:
+ Shape1766 = value;
+ break;
+ case 1767:
+ Shape1767 = value;
+ break;
+ case 1768:
+ Shape1768 = value;
+ break;
+ case 1769:
+ Shape1769 = value;
+ break;
+ case 1770:
+ Shape1770 = value;
+ break;
+ case 1771:
+ Shape1771 = value;
+ break;
+ case 1772:
+ Shape1772 = value;
+ break;
+ case 1773:
+ Shape1773 = value;
+ break;
+ case 1774:
+ Shape1774 = value;
+ break;
+ case 1775:
+ Shape1775 = value;
+ break;
+ case 1776:
+ Shape1776 = value;
+ break;
+ case 1777:
+ Shape1777 = value;
+ break;
+ case 1778:
+ Shape1778 = value;
+ break;
+ case 1779:
+ Shape1779 = value;
+ break;
+ case 1780:
+ Shape1780 = value;
+ break;
+ case 1781:
+ Shape1781 = value;
+ break;
+ case 1782:
+ Shape1782 = value;
+ break;
+ case 1783:
+ Shape1783 = value;
+ break;
+ case 1784:
+ Shape1784 = value;
+ break;
+ case 1785:
+ Shape1785 = value;
+ break;
+ case 1786:
+ Shape1786 = value;
+ break;
+ case 1787:
+ Shape1787 = value;
+ break;
+ case 1788:
+ Shape1788 = value;
+ break;
+ case 1789:
+ Shape1789 = value;
+ break;
+ case 1790:
+ Shape1790 = value;
+ break;
+ case 1791:
+ Shape1791 = value;
+ break;
+ case 1792:
+ Shape1792 = value;
+ break;
+ case 1793:
+ Shape1793 = value;
+ break;
+ case 1794:
+ Shape1794 = value;
+ break;
+ case 1795:
+ Shape1795 = value;
+ break;
+ case 1796:
+ Shape1796 = value;
+ break;
+ case 1797:
+ Shape1797 = value;
+ break;
+ case 1798:
+ Shape1798 = value;
+ break;
+ case 1799:
+ Shape1799 = value;
+ break;
+ case 1800:
+ Shape1800 = value;
+ break;
+ case 1801:
+ Shape1801 = value;
+ break;
+ case 1802:
+ Shape1802 = value;
+ break;
+ case 1803:
+ Shape1803 = value;
+ break;
+ case 1804:
+ Shape1804 = value;
+ break;
+ case 1805:
+ Shape1805 = value;
+ break;
+ case 1806:
+ Shape1806 = value;
+ break;
+ case 1807:
+ Shape1807 = value;
+ break;
+ case 1808:
+ Shape1808 = value;
+ break;
+ case 1809:
+ Shape1809 = value;
+ break;
+ case 1810:
+ Shape1810 = value;
+ break;
+ case 1811:
+ Shape1811 = value;
+ break;
+ case 1812:
+ Shape1812 = value;
+ break;
+ case 1813:
+ Shape1813 = value;
+ break;
+ case 1814:
+ Shape1814 = value;
+ break;
+ case 1815:
+ Shape1815 = value;
+ break;
+ case 1816:
+ Shape1816 = value;
+ break;
+ case 1817:
+ Shape1817 = value;
+ break;
+ case 1818:
+ Shape1818 = value;
+ break;
+ case 1819:
+ Shape1819 = value;
+ break;
+ case 1820:
+ Shape1820 = value;
+ break;
+ case 1821:
+ Shape1821 = value;
+ break;
+ case 1822:
+ Shape1822 = value;
+ break;
+ case 1823:
+ Shape1823 = value;
+ break;
+ case 1824:
+ Shape1824 = value;
+ break;
+ case 1825:
+ Shape1825 = value;
+ break;
+ case 1826:
+ Shape1826 = value;
+ break;
+ case 1827:
+ Shape1827 = value;
+ break;
+ case 1828:
+ Shape1828 = value;
+ break;
+ case 1829:
+ Shape1829 = value;
+ break;
+ case 1830:
+ Shape1830 = value;
+ break;
+ case 1831:
+ Shape1831 = value;
+ break;
+ case 1832:
+ Shape1832 = value;
+ break;
+ case 1833:
+ Shape1833 = value;
+ break;
+ case 1834:
+ Shape1834 = value;
+ break;
+ case 1835:
+ Shape1835 = value;
+ break;
+ case 1836:
+ Shape1836 = value;
+ break;
+ case 1837:
+ Shape1837 = value;
+ break;
+ case 1838:
+ Shape1838 = value;
+ break;
+ case 1839:
+ Shape1839 = value;
+ break;
+ case 1840:
+ Shape1840 = value;
+ break;
+ case 1841:
+ Shape1841 = value;
+ break;
+ case 1842:
+ Shape1842 = value;
+ break;
+ case 1843:
+ Shape1843 = value;
+ break;
+ case 1844:
+ Shape1844 = value;
+ break;
+ case 1845:
+ Shape1845 = value;
+ break;
+ case 1846:
+ Shape1846 = value;
+ break;
+ case 1847:
+ Shape1847 = value;
+ break;
+ case 1848:
+ Shape1848 = value;
+ break;
+ case 1849:
+ Shape1849 = value;
+ break;
+ case 1850:
+ Shape1850 = value;
+ break;
+ case 1851:
+ Shape1851 = value;
+ break;
+ case 1852:
+ Shape1852 = value;
+ break;
+ case 1853:
+ Shape1853 = value;
+ break;
+ case 1854:
+ Shape1854 = value;
+ break;
+ case 1855:
+ Shape1855 = value;
+ break;
+ case 1856:
+ Shape1856 = value;
+ break;
+ case 1857:
+ Shape1857 = value;
+ break;
+ case 1858:
+ Shape1858 = value;
+ break;
+ case 1859:
+ Shape1859 = value;
+ break;
+ case 1860:
+ Shape1860 = value;
+ break;
+ case 1861:
+ Shape1861 = value;
+ break;
+ case 1862:
+ Shape1862 = value;
+ break;
+ case 1863:
+ Shape1863 = value;
+ break;
+ case 1864:
+ Shape1864 = value;
+ break;
+ case 1865:
+ Shape1865 = value;
+ break;
+ case 1866:
+ Shape1866 = value;
+ break;
+ case 1867:
+ Shape1867 = value;
+ break;
+ case 1868:
+ Shape1868 = value;
+ break;
+ case 1869:
+ Shape1869 = value;
+ break;
+ case 1870:
+ Shape1870 = value;
+ break;
+ case 1871:
+ Shape1871 = value;
+ break;
+ case 1872:
+ Shape1872 = value;
+ break;
+ case 1873:
+ Shape1873 = value;
+ break;
+ case 1874:
+ Shape1874 = value;
+ break;
+ case 1875:
+ Shape1875 = value;
+ break;
+ case 1876:
+ Shape1876 = value;
+ break;
+ case 1877:
+ Shape1877 = value;
+ break;
+ case 1878:
+ Shape1878 = value;
+ break;
+ case 1879:
+ Shape1879 = value;
+ break;
+ case 1880:
+ Shape1880 = value;
+ break;
+ case 1881:
+ Shape1881 = value;
+ break;
+ case 1882:
+ Shape1882 = value;
+ break;
+ case 1883:
+ Shape1883 = value;
+ break;
+ case 1884:
+ Shape1884 = value;
+ break;
+ case 1885:
+ Shape1885 = value;
+ break;
+ case 1886:
+ Shape1886 = value;
+ break;
+ case 1887:
+ Shape1887 = value;
+ break;
+ case 1888:
+ Shape1888 = value;
+ break;
+ case 1889:
+ Shape1889 = value;
+ break;
+ case 1890:
+ Shape1890 = value;
+ break;
+ case 1891:
+ Shape1891 = value;
+ break;
+ case 1892:
+ Shape1892 = value;
+ break;
+ case 1893:
+ Shape1893 = value;
+ break;
+ case 1894:
+ Shape1894 = value;
+ break;
+ case 1895:
+ Shape1895 = value;
+ break;
+ case 1896:
+ Shape1896 = value;
+ break;
+ case 1897:
+ Shape1897 = value;
+ break;
+ case 1898:
+ Shape1898 = value;
+ break;
+ case 1899:
+ Shape1899 = value;
+ break;
+ case 1900:
+ Shape1900 = value;
+ break;
+ case 1901:
+ Shape1901 = value;
+ break;
+ case 1902:
+ Shape1902 = value;
+ break;
+ case 1903:
+ Shape1903 = value;
+ break;
+ case 1904:
+ Shape1904 = value;
+ break;
+ case 1905:
+ Shape1905 = value;
+ break;
+ case 1906:
+ Shape1906 = value;
+ break;
+ case 1907:
+ Shape1907 = value;
+ break;
+ case 1908:
+ Shape1908 = value;
+ break;
+ case 1909:
+ Shape1909 = value;
+ break;
+ case 1910:
+ Shape1910 = value;
+ break;
+ case 1911:
+ Shape1911 = value;
+ break;
+ case 1912:
+ Shape1912 = value;
+ break;
+ case 1913:
+ Shape1913 = value;
+ break;
+ case 1914:
+ Shape1914 = value;
+ break;
+ case 1915:
+ Shape1915 = value;
+ break;
+ case 1916:
+ Shape1916 = value;
+ break;
+ case 1917:
+ Shape1917 = value;
+ break;
+ case 1918:
+ Shape1918 = value;
+ break;
+ case 1919:
+ Shape1919 = value;
+ break;
+ case 1920:
+ Shape1920 = value;
+ break;
+ case 1921:
+ Shape1921 = value;
+ break;
+ case 1922:
+ Shape1922 = value;
+ break;
+ case 1923:
+ Shape1923 = value;
+ break;
+ case 1924:
+ Shape1924 = value;
+ break;
+ case 1925:
+ Shape1925 = value;
+ break;
+ case 1926:
+ Shape1926 = value;
+ break;
+ case 1927:
+ Shape1927 = value;
+ break;
+ case 1928:
+ Shape1928 = value;
+ break;
+ case 1929:
+ Shape1929 = value;
+ break;
+ case 1930:
+ Shape1930 = value;
+ break;
+ case 1931:
+ Shape1931 = value;
+ break;
+ case 1932:
+ Shape1932 = value;
+ break;
+ case 1933:
+ Shape1933 = value;
+ break;
+ case 1934:
+ Shape1934 = value;
+ break;
+ case 1935:
+ Shape1935 = value;
+ break;
+ case 1936:
+ Shape1936 = value;
+ break;
+ case 1937:
+ Shape1937 = value;
+ break;
+ case 1938:
+ Shape1938 = value;
+ break;
+ case 1939:
+ Shape1939 = value;
+ break;
+ case 1940:
+ Shape1940 = value;
+ break;
+ case 1941:
+ Shape1941 = value;
+ break;
+ case 1942:
+ Shape1942 = value;
+ break;
+ case 1943:
+ Shape1943 = value;
+ break;
+ case 1944:
+ Shape1944 = value;
+ break;
+ case 1945:
+ Shape1945 = value;
+ break;
+ case 1946:
+ Shape1946 = value;
+ break;
+ case 1947:
+ Shape1947 = value;
+ break;
+ case 1948:
+ Shape1948 = value;
+ break;
+ case 1949:
+ Shape1949 = value;
+ break;
+ case 1950:
+ Shape1950 = value;
+ break;
+ case 1951:
+ Shape1951 = value;
+ break;
+ case 1952:
+ Shape1952 = value;
+ break;
+ case 1953:
+ Shape1953 = value;
+ break;
+ case 1954:
+ Shape1954 = value;
+ break;
+ case 1955:
+ Shape1955 = value;
+ break;
+ case 1956:
+ Shape1956 = value;
+ break;
+ case 1957:
+ Shape1957 = value;
+ break;
+ case 1958:
+ Shape1958 = value;
+ break;
+ case 1959:
+ Shape1959 = value;
+ break;
+ case 1960:
+ Shape1960 = value;
+ break;
+ case 1961:
+ Shape1961 = value;
+ break;
+ case 1962:
+ Shape1962 = value;
+ break;
+ case 1963:
+ Shape1963 = value;
+ break;
+ case 1964:
+ Shape1964 = value;
+ break;
+ case 1965:
+ Shape1965 = value;
+ break;
+ case 1966:
+ Shape1966 = value;
+ break;
+ case 1967:
+ Shape1967 = value;
+ break;
+ case 1968:
+ Shape1968 = value;
+ break;
+ case 1969:
+ Shape1969 = value;
+ break;
+ case 1970:
+ Shape1970 = value;
+ break;
+ case 1971:
+ Shape1971 = value;
+ break;
+ case 1972:
+ Shape1972 = value;
+ break;
+ case 1973:
+ Shape1973 = value;
+ break;
+ case 1974:
+ Shape1974 = value;
+ break;
+ case 1975:
+ Shape1975 = value;
+ break;
+ case 1976:
+ Shape1976 = value;
+ break;
+ case 1977:
+ Shape1977 = value;
+ break;
+ case 1978:
+ Shape1978 = value;
+ break;
+ case 1979:
+ Shape1979 = value;
+ break;
+ case 1980:
+ Shape1980 = value;
+ break;
+ case 1981:
+ Shape1981 = value;
+ break;
+ case 1982:
+ Shape1982 = value;
+ break;
+ case 1983:
+ Shape1983 = value;
+ break;
+ case 1984:
+ Shape1984 = value;
+ break;
+ case 1985:
+ Shape1985 = value;
+ break;
+ case 1986:
+ Shape1986 = value;
+ break;
+ case 1987:
+ Shape1987 = value;
+ break;
+ case 1988:
+ Shape1988 = value;
+ break;
+ case 1989:
+ Shape1989 = value;
+ break;
+ case 1990:
+ Shape1990 = value;
+ break;
+ case 1991:
+ Shape1991 = value;
+ break;
+ case 1992:
+ Shape1992 = value;
+ break;
+ case 1993:
+ Shape1993 = value;
+ break;
+ case 1994:
+ Shape1994 = value;
+ break;
+ case 1995:
+ Shape1995 = value;
+ break;
+ case 1996:
+ Shape1996 = value;
+ break;
+ case 1997:
+ Shape1997 = value;
+ break;
+ case 1998:
+ Shape1998 = value;
+ break;
+ case 1999:
+ Shape1999 = value;
+ break;
+ case 2000:
+ Shape2000 = value;
+ break;
+ case 2001:
+ Shape2001 = value;
+ break;
+ case 2002:
+ Shape2002 = value;
+ break;
+ case 2003:
+ Shape2003 = value;
+ break;
+ case 2004:
+ Shape2004 = value;
+ break;
+ case 2005:
+ Shape2005 = value;
+ break;
+ case 2006:
+ Shape2006 = value;
+ break;
+ case 2007:
+ Shape2007 = value;
+ break;
+ case 2008:
+ Shape2008 = value;
+ break;
+ case 2009:
+ Shape2009 = value;
+ break;
+ case 2010:
+ Shape2010 = value;
+ break;
+ case 2011:
+ Shape2011 = value;
+ break;
+ case 2012:
+ Shape2012 = value;
+ break;
+ case 2013:
+ Shape2013 = value;
+ break;
+ case 2014:
+ Shape2014 = value;
+ break;
+ case 2015:
+ Shape2015 = value;
+ break;
+ case 2016:
+ Shape2016 = value;
+ break;
+ case 2017:
+ Shape2017 = value;
+ break;
+ case 2018:
+ Shape2018 = value;
+ break;
+ case 2019:
+ Shape2019 = value;
+ break;
+ case 2020:
+ Shape2020 = value;
+ break;
+ case 2021:
+ Shape2021 = value;
+ break;
+ case 2022:
+ Shape2022 = value;
+ break;
+ case 2023:
+ Shape2023 = value;
+ break;
+ case 2024:
+ Shape2024 = value;
+ break;
+ case 2025:
+ Shape2025 = value;
+ break;
+ case 2026:
+ Shape2026 = value;
+ break;
+ case 2027:
+ Shape2027 = value;
+ break;
+ case 2028:
+ Shape2028 = value;
+ break;
+ case 2029:
+ Shape2029 = value;
+ break;
+ case 2030:
+ Shape2030 = value;
+ break;
+ case 2031:
+ Shape2031 = value;
+ break;
+ case 2032:
+ Shape2032 = value;
+ break;
+ case 2033:
+ Shape2033 = value;
+ break;
+ case 2034:
+ Shape2034 = value;
+ break;
+ case 2035:
+ Shape2035 = value;
+ break;
+ case 2036:
+ Shape2036 = value;
+ break;
+ case 2037:
+ Shape2037 = value;
+ break;
+ case 2038:
+ Shape2038 = value;
+ break;
+ case 2039:
+ Shape2039 = value;
+ break;
+ case 2040:
+ Shape2040 = value;
+ break;
+ case 2041:
+ Shape2041 = value;
+ break;
+ case 2042:
+ Shape2042 = value;
+ break;
+ case 2043:
+ Shape2043 = value;
+ break;
+ case 2044:
+ Shape2044 = value;
+ break;
+ case 2045:
+ Shape2045 = value;
+ break;
+ case 2046:
+ Shape2046 = value;
+ break;
+ case 2047:
+ Shape2047 = value;
+ break;
+ case 2048:
+ Shape2048 = value;
+ break;
+ }
+ }
+ #endregion
+
+ #region name getter
+ public static string GetPropertyName(int index)
+ {
+ switch (index)
+ {
+ case 0:
+ return nameof(Shape0);
+ case 1:
+ return nameof(Shape1);
+ case 2:
+ return nameof(Shape2);
+ case 3:
+ return nameof(Shape3);
+ case 4:
+ return nameof(Shape4);
+ case 5:
+ return nameof(Shape5);
+ case 6:
+ return nameof(Shape6);
+ case 7:
+ return nameof(Shape7);
+ case 8:
+ return nameof(Shape8);
+ case 9:
+ return nameof(Shape9);
+ case 10:
+ return nameof(Shape10);
+ case 11:
+ return nameof(Shape11);
+ case 12:
+ return nameof(Shape12);
+ case 13:
+ return nameof(Shape13);
+ case 14:
+ return nameof(Shape14);
+ case 15:
+ return nameof(Shape15);
+ case 16:
+ return nameof(Shape16);
+ case 17:
+ return nameof(Shape17);
+ case 18:
+ return nameof(Shape18);
+ case 19:
+ return nameof(Shape19);
+ case 20:
+ return nameof(Shape20);
+ case 21:
+ return nameof(Shape21);
+ case 22:
+ return nameof(Shape22);
+ case 23:
+ return nameof(Shape23);
+ case 24:
+ return nameof(Shape24);
+ case 25:
+ return nameof(Shape25);
+ case 26:
+ return nameof(Shape26);
+ case 27:
+ return nameof(Shape27);
+ case 28:
+ return nameof(Shape28);
+ case 29:
+ return nameof(Shape29);
+ case 30:
+ return nameof(Shape30);
+ case 31:
+ return nameof(Shape31);
+ case 32:
+ return nameof(Shape32);
+ case 33:
+ return nameof(Shape33);
+ case 34:
+ return nameof(Shape34);
+ case 35:
+ return nameof(Shape35);
+ case 36:
+ return nameof(Shape36);
+ case 37:
+ return nameof(Shape37);
+ case 38:
+ return nameof(Shape38);
+ case 39:
+ return nameof(Shape39);
+ case 40:
+ return nameof(Shape40);
+ case 41:
+ return nameof(Shape41);
+ case 42:
+ return nameof(Shape42);
+ case 43:
+ return nameof(Shape43);
+ case 44:
+ return nameof(Shape44);
+ case 45:
+ return nameof(Shape45);
+ case 46:
+ return nameof(Shape46);
+ case 47:
+ return nameof(Shape47);
+ case 48:
+ return nameof(Shape48);
+ case 49:
+ return nameof(Shape49);
+ case 50:
+ return nameof(Shape50);
+ case 51:
+ return nameof(Shape51);
+ case 52:
+ return nameof(Shape52);
+ case 53:
+ return nameof(Shape53);
+ case 54:
+ return nameof(Shape54);
+ case 55:
+ return nameof(Shape55);
+ case 56:
+ return nameof(Shape56);
+ case 57:
+ return nameof(Shape57);
+ case 58:
+ return nameof(Shape58);
+ case 59:
+ return nameof(Shape59);
+ case 60:
+ return nameof(Shape60);
+ case 61:
+ return nameof(Shape61);
+ case 62:
+ return nameof(Shape62);
+ case 63:
+ return nameof(Shape63);
+ case 64:
+ return nameof(Shape64);
+ case 65:
+ return nameof(Shape65);
+ case 66:
+ return nameof(Shape66);
+ case 67:
+ return nameof(Shape67);
+ case 68:
+ return nameof(Shape68);
+ case 69:
+ return nameof(Shape69);
+ case 70:
+ return nameof(Shape70);
+ case 71:
+ return nameof(Shape71);
+ case 72:
+ return nameof(Shape72);
+ case 73:
+ return nameof(Shape73);
+ case 74:
+ return nameof(Shape74);
+ case 75:
+ return nameof(Shape75);
+ case 76:
+ return nameof(Shape76);
+ case 77:
+ return nameof(Shape77);
+ case 78:
+ return nameof(Shape78);
+ case 79:
+ return nameof(Shape79);
+ case 80:
+ return nameof(Shape80);
+ case 81:
+ return nameof(Shape81);
+ case 82:
+ return nameof(Shape82);
+ case 83:
+ return nameof(Shape83);
+ case 84:
+ return nameof(Shape84);
+ case 85:
+ return nameof(Shape85);
+ case 86:
+ return nameof(Shape86);
+ case 87:
+ return nameof(Shape87);
+ case 88:
+ return nameof(Shape88);
+ case 89:
+ return nameof(Shape89);
+ case 90:
+ return nameof(Shape90);
+ case 91:
+ return nameof(Shape91);
+ case 92:
+ return nameof(Shape92);
+ case 93:
+ return nameof(Shape93);
+ case 94:
+ return nameof(Shape94);
+ case 95:
+ return nameof(Shape95);
+ case 96:
+ return nameof(Shape96);
+ case 97:
+ return nameof(Shape97);
+ case 98:
+ return nameof(Shape98);
+ case 99:
+ return nameof(Shape99);
+ case 100:
+ return nameof(Shape100);
+ case 101:
+ return nameof(Shape101);
+ case 102:
+ return nameof(Shape102);
+ case 103:
+ return nameof(Shape103);
+ case 104:
+ return nameof(Shape104);
+ case 105:
+ return nameof(Shape105);
+ case 106:
+ return nameof(Shape106);
+ case 107:
+ return nameof(Shape107);
+ case 108:
+ return nameof(Shape108);
+ case 109:
+ return nameof(Shape109);
+ case 110:
+ return nameof(Shape110);
+ case 111:
+ return nameof(Shape111);
+ case 112:
+ return nameof(Shape112);
+ case 113:
+ return nameof(Shape113);
+ case 114:
+ return nameof(Shape114);
+ case 115:
+ return nameof(Shape115);
+ case 116:
+ return nameof(Shape116);
+ case 117:
+ return nameof(Shape117);
+ case 118:
+ return nameof(Shape118);
+ case 119:
+ return nameof(Shape119);
+ case 120:
+ return nameof(Shape120);
+ case 121:
+ return nameof(Shape121);
+ case 122:
+ return nameof(Shape122);
+ case 123:
+ return nameof(Shape123);
+ case 124:
+ return nameof(Shape124);
+ case 125:
+ return nameof(Shape125);
+ case 126:
+ return nameof(Shape126);
+ case 127:
+ return nameof(Shape127);
+ case 128:
+ return nameof(Shape128);
+ case 129:
+ return nameof(Shape129);
+ case 130:
+ return nameof(Shape130);
+ case 131:
+ return nameof(Shape131);
+ case 132:
+ return nameof(Shape132);
+ case 133:
+ return nameof(Shape133);
+ case 134:
+ return nameof(Shape134);
+ case 135:
+ return nameof(Shape135);
+ case 136:
+ return nameof(Shape136);
+ case 137:
+ return nameof(Shape137);
+ case 138:
+ return nameof(Shape138);
+ case 139:
+ return nameof(Shape139);
+ case 140:
+ return nameof(Shape140);
+ case 141:
+ return nameof(Shape141);
+ case 142:
+ return nameof(Shape142);
+ case 143:
+ return nameof(Shape143);
+ case 144:
+ return nameof(Shape144);
+ case 145:
+ return nameof(Shape145);
+ case 146:
+ return nameof(Shape146);
+ case 147:
+ return nameof(Shape147);
+ case 148:
+ return nameof(Shape148);
+ case 149:
+ return nameof(Shape149);
+ case 150:
+ return nameof(Shape150);
+ case 151:
+ return nameof(Shape151);
+ case 152:
+ return nameof(Shape152);
+ case 153:
+ return nameof(Shape153);
+ case 154:
+ return nameof(Shape154);
+ case 155:
+ return nameof(Shape155);
+ case 156:
+ return nameof(Shape156);
+ case 157:
+ return nameof(Shape157);
+ case 158:
+ return nameof(Shape158);
+ case 159:
+ return nameof(Shape159);
+ case 160:
+ return nameof(Shape160);
+ case 161:
+ return nameof(Shape161);
+ case 162:
+ return nameof(Shape162);
+ case 163:
+ return nameof(Shape163);
+ case 164:
+ return nameof(Shape164);
+ case 165:
+ return nameof(Shape165);
+ case 166:
+ return nameof(Shape166);
+ case 167:
+ return nameof(Shape167);
+ case 168:
+ return nameof(Shape168);
+ case 169:
+ return nameof(Shape169);
+ case 170:
+ return nameof(Shape170);
+ case 171:
+ return nameof(Shape171);
+ case 172:
+ return nameof(Shape172);
+ case 173:
+ return nameof(Shape173);
+ case 174:
+ return nameof(Shape174);
+ case 175:
+ return nameof(Shape175);
+ case 176:
+ return nameof(Shape176);
+ case 177:
+ return nameof(Shape177);
+ case 178:
+ return nameof(Shape178);
+ case 179:
+ return nameof(Shape179);
+ case 180:
+ return nameof(Shape180);
+ case 181:
+ return nameof(Shape181);
+ case 182:
+ return nameof(Shape182);
+ case 183:
+ return nameof(Shape183);
+ case 184:
+ return nameof(Shape184);
+ case 185:
+ return nameof(Shape185);
+ case 186:
+ return nameof(Shape186);
+ case 187:
+ return nameof(Shape187);
+ case 188:
+ return nameof(Shape188);
+ case 189:
+ return nameof(Shape189);
+ case 190:
+ return nameof(Shape190);
+ case 191:
+ return nameof(Shape191);
+ case 192:
+ return nameof(Shape192);
+ case 193:
+ return nameof(Shape193);
+ case 194:
+ return nameof(Shape194);
+ case 195:
+ return nameof(Shape195);
+ case 196:
+ return nameof(Shape196);
+ case 197:
+ return nameof(Shape197);
+ case 198:
+ return nameof(Shape198);
+ case 199:
+ return nameof(Shape199);
+ case 200:
+ return nameof(Shape200);
+ case 201:
+ return nameof(Shape201);
+ case 202:
+ return nameof(Shape202);
+ case 203:
+ return nameof(Shape203);
+ case 204:
+ return nameof(Shape204);
+ case 205:
+ return nameof(Shape205);
+ case 206:
+ return nameof(Shape206);
+ case 207:
+ return nameof(Shape207);
+ case 208:
+ return nameof(Shape208);
+ case 209:
+ return nameof(Shape209);
+ case 210:
+ return nameof(Shape210);
+ case 211:
+ return nameof(Shape211);
+ case 212:
+ return nameof(Shape212);
+ case 213:
+ return nameof(Shape213);
+ case 214:
+ return nameof(Shape214);
+ case 215:
+ return nameof(Shape215);
+ case 216:
+ return nameof(Shape216);
+ case 217:
+ return nameof(Shape217);
+ case 218:
+ return nameof(Shape218);
+ case 219:
+ return nameof(Shape219);
+ case 220:
+ return nameof(Shape220);
+ case 221:
+ return nameof(Shape221);
+ case 222:
+ return nameof(Shape222);
+ case 223:
+ return nameof(Shape223);
+ case 224:
+ return nameof(Shape224);
+ case 225:
+ return nameof(Shape225);
+ case 226:
+ return nameof(Shape226);
+ case 227:
+ return nameof(Shape227);
+ case 228:
+ return nameof(Shape228);
+ case 229:
+ return nameof(Shape229);
+ case 230:
+ return nameof(Shape230);
+ case 231:
+ return nameof(Shape231);
+ case 232:
+ return nameof(Shape232);
+ case 233:
+ return nameof(Shape233);
+ case 234:
+ return nameof(Shape234);
+ case 235:
+ return nameof(Shape235);
+ case 236:
+ return nameof(Shape236);
+ case 237:
+ return nameof(Shape237);
+ case 238:
+ return nameof(Shape238);
+ case 239:
+ return nameof(Shape239);
+ case 240:
+ return nameof(Shape240);
+ case 241:
+ return nameof(Shape241);
+ case 242:
+ return nameof(Shape242);
+ case 243:
+ return nameof(Shape243);
+ case 244:
+ return nameof(Shape244);
+ case 245:
+ return nameof(Shape245);
+ case 246:
+ return nameof(Shape246);
+ case 247:
+ return nameof(Shape247);
+ case 248:
+ return nameof(Shape248);
+ case 249:
+ return nameof(Shape249);
+ case 250:
+ return nameof(Shape250);
+ case 251:
+ return nameof(Shape251);
+ case 252:
+ return nameof(Shape252);
+ case 253:
+ return nameof(Shape253);
+ case 254:
+ return nameof(Shape254);
+ case 255:
+ return nameof(Shape255);
+ case 256:
+ return nameof(Shape256);
+ case 257:
+ return nameof(Shape257);
+ case 258:
+ return nameof(Shape258);
+ case 259:
+ return nameof(Shape259);
+ case 260:
+ return nameof(Shape260);
+ case 261:
+ return nameof(Shape261);
+ case 262:
+ return nameof(Shape262);
+ case 263:
+ return nameof(Shape263);
+ case 264:
+ return nameof(Shape264);
+ case 265:
+ return nameof(Shape265);
+ case 266:
+ return nameof(Shape266);
+ case 267:
+ return nameof(Shape267);
+ case 268:
+ return nameof(Shape268);
+ case 269:
+ return nameof(Shape269);
+ case 270:
+ return nameof(Shape270);
+ case 271:
+ return nameof(Shape271);
+ case 272:
+ return nameof(Shape272);
+ case 273:
+ return nameof(Shape273);
+ case 274:
+ return nameof(Shape274);
+ case 275:
+ return nameof(Shape275);
+ case 276:
+ return nameof(Shape276);
+ case 277:
+ return nameof(Shape277);
+ case 278:
+ return nameof(Shape278);
+ case 279:
+ return nameof(Shape279);
+ case 280:
+ return nameof(Shape280);
+ case 281:
+ return nameof(Shape281);
+ case 282:
+ return nameof(Shape282);
+ case 283:
+ return nameof(Shape283);
+ case 284:
+ return nameof(Shape284);
+ case 285:
+ return nameof(Shape285);
+ case 286:
+ return nameof(Shape286);
+ case 287:
+ return nameof(Shape287);
+ case 288:
+ return nameof(Shape288);
+ case 289:
+ return nameof(Shape289);
+ case 290:
+ return nameof(Shape290);
+ case 291:
+ return nameof(Shape291);
+ case 292:
+ return nameof(Shape292);
+ case 293:
+ return nameof(Shape293);
+ case 294:
+ return nameof(Shape294);
+ case 295:
+ return nameof(Shape295);
+ case 296:
+ return nameof(Shape296);
+ case 297:
+ return nameof(Shape297);
+ case 298:
+ return nameof(Shape298);
+ case 299:
+ return nameof(Shape299);
+ case 300:
+ return nameof(Shape300);
+ case 301:
+ return nameof(Shape301);
+ case 302:
+ return nameof(Shape302);
+ case 303:
+ return nameof(Shape303);
+ case 304:
+ return nameof(Shape304);
+ case 305:
+ return nameof(Shape305);
+ case 306:
+ return nameof(Shape306);
+ case 307:
+ return nameof(Shape307);
+ case 308:
+ return nameof(Shape308);
+ case 309:
+ return nameof(Shape309);
+ case 310:
+ return nameof(Shape310);
+ case 311:
+ return nameof(Shape311);
+ case 312:
+ return nameof(Shape312);
+ case 313:
+ return nameof(Shape313);
+ case 314:
+ return nameof(Shape314);
+ case 315:
+ return nameof(Shape315);
+ case 316:
+ return nameof(Shape316);
+ case 317:
+ return nameof(Shape317);
+ case 318:
+ return nameof(Shape318);
+ case 319:
+ return nameof(Shape319);
+ case 320:
+ return nameof(Shape320);
+ case 321:
+ return nameof(Shape321);
+ case 322:
+ return nameof(Shape322);
+ case 323:
+ return nameof(Shape323);
+ case 324:
+ return nameof(Shape324);
+ case 325:
+ return nameof(Shape325);
+ case 326:
+ return nameof(Shape326);
+ case 327:
+ return nameof(Shape327);
+ case 328:
+ return nameof(Shape328);
+ case 329:
+ return nameof(Shape329);
+ case 330:
+ return nameof(Shape330);
+ case 331:
+ return nameof(Shape331);
+ case 332:
+ return nameof(Shape332);
+ case 333:
+ return nameof(Shape333);
+ case 334:
+ return nameof(Shape334);
+ case 335:
+ return nameof(Shape335);
+ case 336:
+ return nameof(Shape336);
+ case 337:
+ return nameof(Shape337);
+ case 338:
+ return nameof(Shape338);
+ case 339:
+ return nameof(Shape339);
+ case 340:
+ return nameof(Shape340);
+ case 341:
+ return nameof(Shape341);
+ case 342:
+ return nameof(Shape342);
+ case 343:
+ return nameof(Shape343);
+ case 344:
+ return nameof(Shape344);
+ case 345:
+ return nameof(Shape345);
+ case 346:
+ return nameof(Shape346);
+ case 347:
+ return nameof(Shape347);
+ case 348:
+ return nameof(Shape348);
+ case 349:
+ return nameof(Shape349);
+ case 350:
+ return nameof(Shape350);
+ case 351:
+ return nameof(Shape351);
+ case 352:
+ return nameof(Shape352);
+ case 353:
+ return nameof(Shape353);
+ case 354:
+ return nameof(Shape354);
+ case 355:
+ return nameof(Shape355);
+ case 356:
+ return nameof(Shape356);
+ case 357:
+ return nameof(Shape357);
+ case 358:
+ return nameof(Shape358);
+ case 359:
+ return nameof(Shape359);
+ case 360:
+ return nameof(Shape360);
+ case 361:
+ return nameof(Shape361);
+ case 362:
+ return nameof(Shape362);
+ case 363:
+ return nameof(Shape363);
+ case 364:
+ return nameof(Shape364);
+ case 365:
+ return nameof(Shape365);
+ case 366:
+ return nameof(Shape366);
+ case 367:
+ return nameof(Shape367);
+ case 368:
+ return nameof(Shape368);
+ case 369:
+ return nameof(Shape369);
+ case 370:
+ return nameof(Shape370);
+ case 371:
+ return nameof(Shape371);
+ case 372:
+ return nameof(Shape372);
+ case 373:
+ return nameof(Shape373);
+ case 374:
+ return nameof(Shape374);
+ case 375:
+ return nameof(Shape375);
+ case 376:
+ return nameof(Shape376);
+ case 377:
+ return nameof(Shape377);
+ case 378:
+ return nameof(Shape378);
+ case 379:
+ return nameof(Shape379);
+ case 380:
+ return nameof(Shape380);
+ case 381:
+ return nameof(Shape381);
+ case 382:
+ return nameof(Shape382);
+ case 383:
+ return nameof(Shape383);
+ case 384:
+ return nameof(Shape384);
+ case 385:
+ return nameof(Shape385);
+ case 386:
+ return nameof(Shape386);
+ case 387:
+ return nameof(Shape387);
+ case 388:
+ return nameof(Shape388);
+ case 389:
+ return nameof(Shape389);
+ case 390:
+ return nameof(Shape390);
+ case 391:
+ return nameof(Shape391);
+ case 392:
+ return nameof(Shape392);
+ case 393:
+ return nameof(Shape393);
+ case 394:
+ return nameof(Shape394);
+ case 395:
+ return nameof(Shape395);
+ case 396:
+ return nameof(Shape396);
+ case 397:
+ return nameof(Shape397);
+ case 398:
+ return nameof(Shape398);
+ case 399:
+ return nameof(Shape399);
+ case 400:
+ return nameof(Shape400);
+ case 401:
+ return nameof(Shape401);
+ case 402:
+ return nameof(Shape402);
+ case 403:
+ return nameof(Shape403);
+ case 404:
+ return nameof(Shape404);
+ case 405:
+ return nameof(Shape405);
+ case 406:
+ return nameof(Shape406);
+ case 407:
+ return nameof(Shape407);
+ case 408:
+ return nameof(Shape408);
+ case 409:
+ return nameof(Shape409);
+ case 410:
+ return nameof(Shape410);
+ case 411:
+ return nameof(Shape411);
+ case 412:
+ return nameof(Shape412);
+ case 413:
+ return nameof(Shape413);
+ case 414:
+ return nameof(Shape414);
+ case 415:
+ return nameof(Shape415);
+ case 416:
+ return nameof(Shape416);
+ case 417:
+ return nameof(Shape417);
+ case 418:
+ return nameof(Shape418);
+ case 419:
+ return nameof(Shape419);
+ case 420:
+ return nameof(Shape420);
+ case 421:
+ return nameof(Shape421);
+ case 422:
+ return nameof(Shape422);
+ case 423:
+ return nameof(Shape423);
+ case 424:
+ return nameof(Shape424);
+ case 425:
+ return nameof(Shape425);
+ case 426:
+ return nameof(Shape426);
+ case 427:
+ return nameof(Shape427);
+ case 428:
+ return nameof(Shape428);
+ case 429:
+ return nameof(Shape429);
+ case 430:
+ return nameof(Shape430);
+ case 431:
+ return nameof(Shape431);
+ case 432:
+ return nameof(Shape432);
+ case 433:
+ return nameof(Shape433);
+ case 434:
+ return nameof(Shape434);
+ case 435:
+ return nameof(Shape435);
+ case 436:
+ return nameof(Shape436);
+ case 437:
+ return nameof(Shape437);
+ case 438:
+ return nameof(Shape438);
+ case 439:
+ return nameof(Shape439);
+ case 440:
+ return nameof(Shape440);
+ case 441:
+ return nameof(Shape441);
+ case 442:
+ return nameof(Shape442);
+ case 443:
+ return nameof(Shape443);
+ case 444:
+ return nameof(Shape444);
+ case 445:
+ return nameof(Shape445);
+ case 446:
+ return nameof(Shape446);
+ case 447:
+ return nameof(Shape447);
+ case 448:
+ return nameof(Shape448);
+ case 449:
+ return nameof(Shape449);
+ case 450:
+ return nameof(Shape450);
+ case 451:
+ return nameof(Shape451);
+ case 452:
+ return nameof(Shape452);
+ case 453:
+ return nameof(Shape453);
+ case 454:
+ return nameof(Shape454);
+ case 455:
+ return nameof(Shape455);
+ case 456:
+ return nameof(Shape456);
+ case 457:
+ return nameof(Shape457);
+ case 458:
+ return nameof(Shape458);
+ case 459:
+ return nameof(Shape459);
+ case 460:
+ return nameof(Shape460);
+ case 461:
+ return nameof(Shape461);
+ case 462:
+ return nameof(Shape462);
+ case 463:
+ return nameof(Shape463);
+ case 464:
+ return nameof(Shape464);
+ case 465:
+ return nameof(Shape465);
+ case 466:
+ return nameof(Shape466);
+ case 467:
+ return nameof(Shape467);
+ case 468:
+ return nameof(Shape468);
+ case 469:
+ return nameof(Shape469);
+ case 470:
+ return nameof(Shape470);
+ case 471:
+ return nameof(Shape471);
+ case 472:
+ return nameof(Shape472);
+ case 473:
+ return nameof(Shape473);
+ case 474:
+ return nameof(Shape474);
+ case 475:
+ return nameof(Shape475);
+ case 476:
+ return nameof(Shape476);
+ case 477:
+ return nameof(Shape477);
+ case 478:
+ return nameof(Shape478);
+ case 479:
+ return nameof(Shape479);
+ case 480:
+ return nameof(Shape480);
+ case 481:
+ return nameof(Shape481);
+ case 482:
+ return nameof(Shape482);
+ case 483:
+ return nameof(Shape483);
+ case 484:
+ return nameof(Shape484);
+ case 485:
+ return nameof(Shape485);
+ case 486:
+ return nameof(Shape486);
+ case 487:
+ return nameof(Shape487);
+ case 488:
+ return nameof(Shape488);
+ case 489:
+ return nameof(Shape489);
+ case 490:
+ return nameof(Shape490);
+ case 491:
+ return nameof(Shape491);
+ case 492:
+ return nameof(Shape492);
+ case 493:
+ return nameof(Shape493);
+ case 494:
+ return nameof(Shape494);
+ case 495:
+ return nameof(Shape495);
+ case 496:
+ return nameof(Shape496);
+ case 497:
+ return nameof(Shape497);
+ case 498:
+ return nameof(Shape498);
+ case 499:
+ return nameof(Shape499);
+ case 500:
+ return nameof(Shape500);
+ case 501:
+ return nameof(Shape501);
+ case 502:
+ return nameof(Shape502);
+ case 503:
+ return nameof(Shape503);
+ case 504:
+ return nameof(Shape504);
+ case 505:
+ return nameof(Shape505);
+ case 506:
+ return nameof(Shape506);
+ case 507:
+ return nameof(Shape507);
+ case 508:
+ return nameof(Shape508);
+ case 509:
+ return nameof(Shape509);
+ case 510:
+ return nameof(Shape510);
+ case 511:
+ return nameof(Shape511);
+ case 512:
+ return nameof(Shape512);
+ case 513:
+ return nameof(Shape513);
+ case 514:
+ return nameof(Shape514);
+ case 515:
+ return nameof(Shape515);
+ case 516:
+ return nameof(Shape516);
+ case 517:
+ return nameof(Shape517);
+ case 518:
+ return nameof(Shape518);
+ case 519:
+ return nameof(Shape519);
+ case 520:
+ return nameof(Shape520);
+ case 521:
+ return nameof(Shape521);
+ case 522:
+ return nameof(Shape522);
+ case 523:
+ return nameof(Shape523);
+ case 524:
+ return nameof(Shape524);
+ case 525:
+ return nameof(Shape525);
+ case 526:
+ return nameof(Shape526);
+ case 527:
+ return nameof(Shape527);
+ case 528:
+ return nameof(Shape528);
+ case 529:
+ return nameof(Shape529);
+ case 530:
+ return nameof(Shape530);
+ case 531:
+ return nameof(Shape531);
+ case 532:
+ return nameof(Shape532);
+ case 533:
+ return nameof(Shape533);
+ case 534:
+ return nameof(Shape534);
+ case 535:
+ return nameof(Shape535);
+ case 536:
+ return nameof(Shape536);
+ case 537:
+ return nameof(Shape537);
+ case 538:
+ return nameof(Shape538);
+ case 539:
+ return nameof(Shape539);
+ case 540:
+ return nameof(Shape540);
+ case 541:
+ return nameof(Shape541);
+ case 542:
+ return nameof(Shape542);
+ case 543:
+ return nameof(Shape543);
+ case 544:
+ return nameof(Shape544);
+ case 545:
+ return nameof(Shape545);
+ case 546:
+ return nameof(Shape546);
+ case 547:
+ return nameof(Shape547);
+ case 548:
+ return nameof(Shape548);
+ case 549:
+ return nameof(Shape549);
+ case 550:
+ return nameof(Shape550);
+ case 551:
+ return nameof(Shape551);
+ case 552:
+ return nameof(Shape552);
+ case 553:
+ return nameof(Shape553);
+ case 554:
+ return nameof(Shape554);
+ case 555:
+ return nameof(Shape555);
+ case 556:
+ return nameof(Shape556);
+ case 557:
+ return nameof(Shape557);
+ case 558:
+ return nameof(Shape558);
+ case 559:
+ return nameof(Shape559);
+ case 560:
+ return nameof(Shape560);
+ case 561:
+ return nameof(Shape561);
+ case 562:
+ return nameof(Shape562);
+ case 563:
+ return nameof(Shape563);
+ case 564:
+ return nameof(Shape564);
+ case 565:
+ return nameof(Shape565);
+ case 566:
+ return nameof(Shape566);
+ case 567:
+ return nameof(Shape567);
+ case 568:
+ return nameof(Shape568);
+ case 569:
+ return nameof(Shape569);
+ case 570:
+ return nameof(Shape570);
+ case 571:
+ return nameof(Shape571);
+ case 572:
+ return nameof(Shape572);
+ case 573:
+ return nameof(Shape573);
+ case 574:
+ return nameof(Shape574);
+ case 575:
+ return nameof(Shape575);
+ case 576:
+ return nameof(Shape576);
+ case 577:
+ return nameof(Shape577);
+ case 578:
+ return nameof(Shape578);
+ case 579:
+ return nameof(Shape579);
+ case 580:
+ return nameof(Shape580);
+ case 581:
+ return nameof(Shape581);
+ case 582:
+ return nameof(Shape582);
+ case 583:
+ return nameof(Shape583);
+ case 584:
+ return nameof(Shape584);
+ case 585:
+ return nameof(Shape585);
+ case 586:
+ return nameof(Shape586);
+ case 587:
+ return nameof(Shape587);
+ case 588:
+ return nameof(Shape588);
+ case 589:
+ return nameof(Shape589);
+ case 590:
+ return nameof(Shape590);
+ case 591:
+ return nameof(Shape591);
+ case 592:
+ return nameof(Shape592);
+ case 593:
+ return nameof(Shape593);
+ case 594:
+ return nameof(Shape594);
+ case 595:
+ return nameof(Shape595);
+ case 596:
+ return nameof(Shape596);
+ case 597:
+ return nameof(Shape597);
+ case 598:
+ return nameof(Shape598);
+ case 599:
+ return nameof(Shape599);
+ case 600:
+ return nameof(Shape600);
+ case 601:
+ return nameof(Shape601);
+ case 602:
+ return nameof(Shape602);
+ case 603:
+ return nameof(Shape603);
+ case 604:
+ return nameof(Shape604);
+ case 605:
+ return nameof(Shape605);
+ case 606:
+ return nameof(Shape606);
+ case 607:
+ return nameof(Shape607);
+ case 608:
+ return nameof(Shape608);
+ case 609:
+ return nameof(Shape609);
+ case 610:
+ return nameof(Shape610);
+ case 611:
+ return nameof(Shape611);
+ case 612:
+ return nameof(Shape612);
+ case 613:
+ return nameof(Shape613);
+ case 614:
+ return nameof(Shape614);
+ case 615:
+ return nameof(Shape615);
+ case 616:
+ return nameof(Shape616);
+ case 617:
+ return nameof(Shape617);
+ case 618:
+ return nameof(Shape618);
+ case 619:
+ return nameof(Shape619);
+ case 620:
+ return nameof(Shape620);
+ case 621:
+ return nameof(Shape621);
+ case 622:
+ return nameof(Shape622);
+ case 623:
+ return nameof(Shape623);
+ case 624:
+ return nameof(Shape624);
+ case 625:
+ return nameof(Shape625);
+ case 626:
+ return nameof(Shape626);
+ case 627:
+ return nameof(Shape627);
+ case 628:
+ return nameof(Shape628);
+ case 629:
+ return nameof(Shape629);
+ case 630:
+ return nameof(Shape630);
+ case 631:
+ return nameof(Shape631);
+ case 632:
+ return nameof(Shape632);
+ case 633:
+ return nameof(Shape633);
+ case 634:
+ return nameof(Shape634);
+ case 635:
+ return nameof(Shape635);
+ case 636:
+ return nameof(Shape636);
+ case 637:
+ return nameof(Shape637);
+ case 638:
+ return nameof(Shape638);
+ case 639:
+ return nameof(Shape639);
+ case 640:
+ return nameof(Shape640);
+ case 641:
+ return nameof(Shape641);
+ case 642:
+ return nameof(Shape642);
+ case 643:
+ return nameof(Shape643);
+ case 644:
+ return nameof(Shape644);
+ case 645:
+ return nameof(Shape645);
+ case 646:
+ return nameof(Shape646);
+ case 647:
+ return nameof(Shape647);
+ case 648:
+ return nameof(Shape648);
+ case 649:
+ return nameof(Shape649);
+ case 650:
+ return nameof(Shape650);
+ case 651:
+ return nameof(Shape651);
+ case 652:
+ return nameof(Shape652);
+ case 653:
+ return nameof(Shape653);
+ case 654:
+ return nameof(Shape654);
+ case 655:
+ return nameof(Shape655);
+ case 656:
+ return nameof(Shape656);
+ case 657:
+ return nameof(Shape657);
+ case 658:
+ return nameof(Shape658);
+ case 659:
+ return nameof(Shape659);
+ case 660:
+ return nameof(Shape660);
+ case 661:
+ return nameof(Shape661);
+ case 662:
+ return nameof(Shape662);
+ case 663:
+ return nameof(Shape663);
+ case 664:
+ return nameof(Shape664);
+ case 665:
+ return nameof(Shape665);
+ case 666:
+ return nameof(Shape666);
+ case 667:
+ return nameof(Shape667);
+ case 668:
+ return nameof(Shape668);
+ case 669:
+ return nameof(Shape669);
+ case 670:
+ return nameof(Shape670);
+ case 671:
+ return nameof(Shape671);
+ case 672:
+ return nameof(Shape672);
+ case 673:
+ return nameof(Shape673);
+ case 674:
+ return nameof(Shape674);
+ case 675:
+ return nameof(Shape675);
+ case 676:
+ return nameof(Shape676);
+ case 677:
+ return nameof(Shape677);
+ case 678:
+ return nameof(Shape678);
+ case 679:
+ return nameof(Shape679);
+ case 680:
+ return nameof(Shape680);
+ case 681:
+ return nameof(Shape681);
+ case 682:
+ return nameof(Shape682);
+ case 683:
+ return nameof(Shape683);
+ case 684:
+ return nameof(Shape684);
+ case 685:
+ return nameof(Shape685);
+ case 686:
+ return nameof(Shape686);
+ case 687:
+ return nameof(Shape687);
+ case 688:
+ return nameof(Shape688);
+ case 689:
+ return nameof(Shape689);
+ case 690:
+ return nameof(Shape690);
+ case 691:
+ return nameof(Shape691);
+ case 692:
+ return nameof(Shape692);
+ case 693:
+ return nameof(Shape693);
+ case 694:
+ return nameof(Shape694);
+ case 695:
+ return nameof(Shape695);
+ case 696:
+ return nameof(Shape696);
+ case 697:
+ return nameof(Shape697);
+ case 698:
+ return nameof(Shape698);
+ case 699:
+ return nameof(Shape699);
+ case 700:
+ return nameof(Shape700);
+ case 701:
+ return nameof(Shape701);
+ case 702:
+ return nameof(Shape702);
+ case 703:
+ return nameof(Shape703);
+ case 704:
+ return nameof(Shape704);
+ case 705:
+ return nameof(Shape705);
+ case 706:
+ return nameof(Shape706);
+ case 707:
+ return nameof(Shape707);
+ case 708:
+ return nameof(Shape708);
+ case 709:
+ return nameof(Shape709);
+ case 710:
+ return nameof(Shape710);
+ case 711:
+ return nameof(Shape711);
+ case 712:
+ return nameof(Shape712);
+ case 713:
+ return nameof(Shape713);
+ case 714:
+ return nameof(Shape714);
+ case 715:
+ return nameof(Shape715);
+ case 716:
+ return nameof(Shape716);
+ case 717:
+ return nameof(Shape717);
+ case 718:
+ return nameof(Shape718);
+ case 719:
+ return nameof(Shape719);
+ case 720:
+ return nameof(Shape720);
+ case 721:
+ return nameof(Shape721);
+ case 722:
+ return nameof(Shape722);
+ case 723:
+ return nameof(Shape723);
+ case 724:
+ return nameof(Shape724);
+ case 725:
+ return nameof(Shape725);
+ case 726:
+ return nameof(Shape726);
+ case 727:
+ return nameof(Shape727);
+ case 728:
+ return nameof(Shape728);
+ case 729:
+ return nameof(Shape729);
+ case 730:
+ return nameof(Shape730);
+ case 731:
+ return nameof(Shape731);
+ case 732:
+ return nameof(Shape732);
+ case 733:
+ return nameof(Shape733);
+ case 734:
+ return nameof(Shape734);
+ case 735:
+ return nameof(Shape735);
+ case 736:
+ return nameof(Shape736);
+ case 737:
+ return nameof(Shape737);
+ case 738:
+ return nameof(Shape738);
+ case 739:
+ return nameof(Shape739);
+ case 740:
+ return nameof(Shape740);
+ case 741:
+ return nameof(Shape741);
+ case 742:
+ return nameof(Shape742);
+ case 743:
+ return nameof(Shape743);
+ case 744:
+ return nameof(Shape744);
+ case 745:
+ return nameof(Shape745);
+ case 746:
+ return nameof(Shape746);
+ case 747:
+ return nameof(Shape747);
+ case 748:
+ return nameof(Shape748);
+ case 749:
+ return nameof(Shape749);
+ case 750:
+ return nameof(Shape750);
+ case 751:
+ return nameof(Shape751);
+ case 752:
+ return nameof(Shape752);
+ case 753:
+ return nameof(Shape753);
+ case 754:
+ return nameof(Shape754);
+ case 755:
+ return nameof(Shape755);
+ case 756:
+ return nameof(Shape756);
+ case 757:
+ return nameof(Shape757);
+ case 758:
+ return nameof(Shape758);
+ case 759:
+ return nameof(Shape759);
+ case 760:
+ return nameof(Shape760);
+ case 761:
+ return nameof(Shape761);
+ case 762:
+ return nameof(Shape762);
+ case 763:
+ return nameof(Shape763);
+ case 764:
+ return nameof(Shape764);
+ case 765:
+ return nameof(Shape765);
+ case 766:
+ return nameof(Shape766);
+ case 767:
+ return nameof(Shape767);
+ case 768:
+ return nameof(Shape768);
+ case 769:
+ return nameof(Shape769);
+ case 770:
+ return nameof(Shape770);
+ case 771:
+ return nameof(Shape771);
+ case 772:
+ return nameof(Shape772);
+ case 773:
+ return nameof(Shape773);
+ case 774:
+ return nameof(Shape774);
+ case 775:
+ return nameof(Shape775);
+ case 776:
+ return nameof(Shape776);
+ case 777:
+ return nameof(Shape777);
+ case 778:
+ return nameof(Shape778);
+ case 779:
+ return nameof(Shape779);
+ case 780:
+ return nameof(Shape780);
+ case 781:
+ return nameof(Shape781);
+ case 782:
+ return nameof(Shape782);
+ case 783:
+ return nameof(Shape783);
+ case 784:
+ return nameof(Shape784);
+ case 785:
+ return nameof(Shape785);
+ case 786:
+ return nameof(Shape786);
+ case 787:
+ return nameof(Shape787);
+ case 788:
+ return nameof(Shape788);
+ case 789:
+ return nameof(Shape789);
+ case 790:
+ return nameof(Shape790);
+ case 791:
+ return nameof(Shape791);
+ case 792:
+ return nameof(Shape792);
+ case 793:
+ return nameof(Shape793);
+ case 794:
+ return nameof(Shape794);
+ case 795:
+ return nameof(Shape795);
+ case 796:
+ return nameof(Shape796);
+ case 797:
+ return nameof(Shape797);
+ case 798:
+ return nameof(Shape798);
+ case 799:
+ return nameof(Shape799);
+ case 800:
+ return nameof(Shape800);
+ case 801:
+ return nameof(Shape801);
+ case 802:
+ return nameof(Shape802);
+ case 803:
+ return nameof(Shape803);
+ case 804:
+ return nameof(Shape804);
+ case 805:
+ return nameof(Shape805);
+ case 806:
+ return nameof(Shape806);
+ case 807:
+ return nameof(Shape807);
+ case 808:
+ return nameof(Shape808);
+ case 809:
+ return nameof(Shape809);
+ case 810:
+ return nameof(Shape810);
+ case 811:
+ return nameof(Shape811);
+ case 812:
+ return nameof(Shape812);
+ case 813:
+ return nameof(Shape813);
+ case 814:
+ return nameof(Shape814);
+ case 815:
+ return nameof(Shape815);
+ case 816:
+ return nameof(Shape816);
+ case 817:
+ return nameof(Shape817);
+ case 818:
+ return nameof(Shape818);
+ case 819:
+ return nameof(Shape819);
+ case 820:
+ return nameof(Shape820);
+ case 821:
+ return nameof(Shape821);
+ case 822:
+ return nameof(Shape822);
+ case 823:
+ return nameof(Shape823);
+ case 824:
+ return nameof(Shape824);
+ case 825:
+ return nameof(Shape825);
+ case 826:
+ return nameof(Shape826);
+ case 827:
+ return nameof(Shape827);
+ case 828:
+ return nameof(Shape828);
+ case 829:
+ return nameof(Shape829);
+ case 830:
+ return nameof(Shape830);
+ case 831:
+ return nameof(Shape831);
+ case 832:
+ return nameof(Shape832);
+ case 833:
+ return nameof(Shape833);
+ case 834:
+ return nameof(Shape834);
+ case 835:
+ return nameof(Shape835);
+ case 836:
+ return nameof(Shape836);
+ case 837:
+ return nameof(Shape837);
+ case 838:
+ return nameof(Shape838);
+ case 839:
+ return nameof(Shape839);
+ case 840:
+ return nameof(Shape840);
+ case 841:
+ return nameof(Shape841);
+ case 842:
+ return nameof(Shape842);
+ case 843:
+ return nameof(Shape843);
+ case 844:
+ return nameof(Shape844);
+ case 845:
+ return nameof(Shape845);
+ case 846:
+ return nameof(Shape846);
+ case 847:
+ return nameof(Shape847);
+ case 848:
+ return nameof(Shape848);
+ case 849:
+ return nameof(Shape849);
+ case 850:
+ return nameof(Shape850);
+ case 851:
+ return nameof(Shape851);
+ case 852:
+ return nameof(Shape852);
+ case 853:
+ return nameof(Shape853);
+ case 854:
+ return nameof(Shape854);
+ case 855:
+ return nameof(Shape855);
+ case 856:
+ return nameof(Shape856);
+ case 857:
+ return nameof(Shape857);
+ case 858:
+ return nameof(Shape858);
+ case 859:
+ return nameof(Shape859);
+ case 860:
+ return nameof(Shape860);
+ case 861:
+ return nameof(Shape861);
+ case 862:
+ return nameof(Shape862);
+ case 863:
+ return nameof(Shape863);
+ case 864:
+ return nameof(Shape864);
+ case 865:
+ return nameof(Shape865);
+ case 866:
+ return nameof(Shape866);
+ case 867:
+ return nameof(Shape867);
+ case 868:
+ return nameof(Shape868);
+ case 869:
+ return nameof(Shape869);
+ case 870:
+ return nameof(Shape870);
+ case 871:
+ return nameof(Shape871);
+ case 872:
+ return nameof(Shape872);
+ case 873:
+ return nameof(Shape873);
+ case 874:
+ return nameof(Shape874);
+ case 875:
+ return nameof(Shape875);
+ case 876:
+ return nameof(Shape876);
+ case 877:
+ return nameof(Shape877);
+ case 878:
+ return nameof(Shape878);
+ case 879:
+ return nameof(Shape879);
+ case 880:
+ return nameof(Shape880);
+ case 881:
+ return nameof(Shape881);
+ case 882:
+ return nameof(Shape882);
+ case 883:
+ return nameof(Shape883);
+ case 884:
+ return nameof(Shape884);
+ case 885:
+ return nameof(Shape885);
+ case 886:
+ return nameof(Shape886);
+ case 887:
+ return nameof(Shape887);
+ case 888:
+ return nameof(Shape888);
+ case 889:
+ return nameof(Shape889);
+ case 890:
+ return nameof(Shape890);
+ case 891:
+ return nameof(Shape891);
+ case 892:
+ return nameof(Shape892);
+ case 893:
+ return nameof(Shape893);
+ case 894:
+ return nameof(Shape894);
+ case 895:
+ return nameof(Shape895);
+ case 896:
+ return nameof(Shape896);
+ case 897:
+ return nameof(Shape897);
+ case 898:
+ return nameof(Shape898);
+ case 899:
+ return nameof(Shape899);
+ case 900:
+ return nameof(Shape900);
+ case 901:
+ return nameof(Shape901);
+ case 902:
+ return nameof(Shape902);
+ case 903:
+ return nameof(Shape903);
+ case 904:
+ return nameof(Shape904);
+ case 905:
+ return nameof(Shape905);
+ case 906:
+ return nameof(Shape906);
+ case 907:
+ return nameof(Shape907);
+ case 908:
+ return nameof(Shape908);
+ case 909:
+ return nameof(Shape909);
+ case 910:
+ return nameof(Shape910);
+ case 911:
+ return nameof(Shape911);
+ case 912:
+ return nameof(Shape912);
+ case 913:
+ return nameof(Shape913);
+ case 914:
+ return nameof(Shape914);
+ case 915:
+ return nameof(Shape915);
+ case 916:
+ return nameof(Shape916);
+ case 917:
+ return nameof(Shape917);
+ case 918:
+ return nameof(Shape918);
+ case 919:
+ return nameof(Shape919);
+ case 920:
+ return nameof(Shape920);
+ case 921:
+ return nameof(Shape921);
+ case 922:
+ return nameof(Shape922);
+ case 923:
+ return nameof(Shape923);
+ case 924:
+ return nameof(Shape924);
+ case 925:
+ return nameof(Shape925);
+ case 926:
+ return nameof(Shape926);
+ case 927:
+ return nameof(Shape927);
+ case 928:
+ return nameof(Shape928);
+ case 929:
+ return nameof(Shape929);
+ case 930:
+ return nameof(Shape930);
+ case 931:
+ return nameof(Shape931);
+ case 932:
+ return nameof(Shape932);
+ case 933:
+ return nameof(Shape933);
+ case 934:
+ return nameof(Shape934);
+ case 935:
+ return nameof(Shape935);
+ case 936:
+ return nameof(Shape936);
+ case 937:
+ return nameof(Shape937);
+ case 938:
+ return nameof(Shape938);
+ case 939:
+ return nameof(Shape939);
+ case 940:
+ return nameof(Shape940);
+ case 941:
+ return nameof(Shape941);
+ case 942:
+ return nameof(Shape942);
+ case 943:
+ return nameof(Shape943);
+ case 944:
+ return nameof(Shape944);
+ case 945:
+ return nameof(Shape945);
+ case 946:
+ return nameof(Shape946);
+ case 947:
+ return nameof(Shape947);
+ case 948:
+ return nameof(Shape948);
+ case 949:
+ return nameof(Shape949);
+ case 950:
+ return nameof(Shape950);
+ case 951:
+ return nameof(Shape951);
+ case 952:
+ return nameof(Shape952);
+ case 953:
+ return nameof(Shape953);
+ case 954:
+ return nameof(Shape954);
+ case 955:
+ return nameof(Shape955);
+ case 956:
+ return nameof(Shape956);
+ case 957:
+ return nameof(Shape957);
+ case 958:
+ return nameof(Shape958);
+ case 959:
+ return nameof(Shape959);
+ case 960:
+ return nameof(Shape960);
+ case 961:
+ return nameof(Shape961);
+ case 962:
+ return nameof(Shape962);
+ case 963:
+ return nameof(Shape963);
+ case 964:
+ return nameof(Shape964);
+ case 965:
+ return nameof(Shape965);
+ case 966:
+ return nameof(Shape966);
+ case 967:
+ return nameof(Shape967);
+ case 968:
+ return nameof(Shape968);
+ case 969:
+ return nameof(Shape969);
+ case 970:
+ return nameof(Shape970);
+ case 971:
+ return nameof(Shape971);
+ case 972:
+ return nameof(Shape972);
+ case 973:
+ return nameof(Shape973);
+ case 974:
+ return nameof(Shape974);
+ case 975:
+ return nameof(Shape975);
+ case 976:
+ return nameof(Shape976);
+ case 977:
+ return nameof(Shape977);
+ case 978:
+ return nameof(Shape978);
+ case 979:
+ return nameof(Shape979);
+ case 980:
+ return nameof(Shape980);
+ case 981:
+ return nameof(Shape981);
+ case 982:
+ return nameof(Shape982);
+ case 983:
+ return nameof(Shape983);
+ case 984:
+ return nameof(Shape984);
+ case 985:
+ return nameof(Shape985);
+ case 986:
+ return nameof(Shape986);
+ case 987:
+ return nameof(Shape987);
+ case 988:
+ return nameof(Shape988);
+ case 989:
+ return nameof(Shape989);
+ case 990:
+ return nameof(Shape990);
+ case 991:
+ return nameof(Shape991);
+ case 992:
+ return nameof(Shape992);
+ case 993:
+ return nameof(Shape993);
+ case 994:
+ return nameof(Shape994);
+ case 995:
+ return nameof(Shape995);
+ case 996:
+ return nameof(Shape996);
+ case 997:
+ return nameof(Shape997);
+ case 998:
+ return nameof(Shape998);
+ case 999:
+ return nameof(Shape999);
+ case 1000:
+ return nameof(Shape1000);
+ case 1001:
+ return nameof(Shape1001);
+ case 1002:
+ return nameof(Shape1002);
+ case 1003:
+ return nameof(Shape1003);
+ case 1004:
+ return nameof(Shape1004);
+ case 1005:
+ return nameof(Shape1005);
+ case 1006:
+ return nameof(Shape1006);
+ case 1007:
+ return nameof(Shape1007);
+ case 1008:
+ return nameof(Shape1008);
+ case 1009:
+ return nameof(Shape1009);
+ case 1010:
+ return nameof(Shape1010);
+ case 1011:
+ return nameof(Shape1011);
+ case 1012:
+ return nameof(Shape1012);
+ case 1013:
+ return nameof(Shape1013);
+ case 1014:
+ return nameof(Shape1014);
+ case 1015:
+ return nameof(Shape1015);
+ case 1016:
+ return nameof(Shape1016);
+ case 1017:
+ return nameof(Shape1017);
+ case 1018:
+ return nameof(Shape1018);
+ case 1019:
+ return nameof(Shape1019);
+ case 1020:
+ return nameof(Shape1020);
+ case 1021:
+ return nameof(Shape1021);
+ case 1022:
+ return nameof(Shape1022);
+ case 1023:
+ return nameof(Shape1023);
+ case 1024:
+ return nameof(Shape1024);
+ case 1025:
+ return nameof(Shape1025);
+ case 1026:
+ return nameof(Shape1026);
+ case 1027:
+ return nameof(Shape1027);
+ case 1028:
+ return nameof(Shape1028);
+ case 1029:
+ return nameof(Shape1029);
+ case 1030:
+ return nameof(Shape1030);
+ case 1031:
+ return nameof(Shape1031);
+ case 1032:
+ return nameof(Shape1032);
+ case 1033:
+ return nameof(Shape1033);
+ case 1034:
+ return nameof(Shape1034);
+ case 1035:
+ return nameof(Shape1035);
+ case 1036:
+ return nameof(Shape1036);
+ case 1037:
+ return nameof(Shape1037);
+ case 1038:
+ return nameof(Shape1038);
+ case 1039:
+ return nameof(Shape1039);
+ case 1040:
+ return nameof(Shape1040);
+ case 1041:
+ return nameof(Shape1041);
+ case 1042:
+ return nameof(Shape1042);
+ case 1043:
+ return nameof(Shape1043);
+ case 1044:
+ return nameof(Shape1044);
+ case 1045:
+ return nameof(Shape1045);
+ case 1046:
+ return nameof(Shape1046);
+ case 1047:
+ return nameof(Shape1047);
+ case 1048:
+ return nameof(Shape1048);
+ case 1049:
+ return nameof(Shape1049);
+ case 1050:
+ return nameof(Shape1050);
+ case 1051:
+ return nameof(Shape1051);
+ case 1052:
+ return nameof(Shape1052);
+ case 1053:
+ return nameof(Shape1053);
+ case 1054:
+ return nameof(Shape1054);
+ case 1055:
+ return nameof(Shape1055);
+ case 1056:
+ return nameof(Shape1056);
+ case 1057:
+ return nameof(Shape1057);
+ case 1058:
+ return nameof(Shape1058);
+ case 1059:
+ return nameof(Shape1059);
+ case 1060:
+ return nameof(Shape1060);
+ case 1061:
+ return nameof(Shape1061);
+ case 1062:
+ return nameof(Shape1062);
+ case 1063:
+ return nameof(Shape1063);
+ case 1064:
+ return nameof(Shape1064);
+ case 1065:
+ return nameof(Shape1065);
+ case 1066:
+ return nameof(Shape1066);
+ case 1067:
+ return nameof(Shape1067);
+ case 1068:
+ return nameof(Shape1068);
+ case 1069:
+ return nameof(Shape1069);
+ case 1070:
+ return nameof(Shape1070);
+ case 1071:
+ return nameof(Shape1071);
+ case 1072:
+ return nameof(Shape1072);
+ case 1073:
+ return nameof(Shape1073);
+ case 1074:
+ return nameof(Shape1074);
+ case 1075:
+ return nameof(Shape1075);
+ case 1076:
+ return nameof(Shape1076);
+ case 1077:
+ return nameof(Shape1077);
+ case 1078:
+ return nameof(Shape1078);
+ case 1079:
+ return nameof(Shape1079);
+ case 1080:
+ return nameof(Shape1080);
+ case 1081:
+ return nameof(Shape1081);
+ case 1082:
+ return nameof(Shape1082);
+ case 1083:
+ return nameof(Shape1083);
+ case 1084:
+ return nameof(Shape1084);
+ case 1085:
+ return nameof(Shape1085);
+ case 1086:
+ return nameof(Shape1086);
+ case 1087:
+ return nameof(Shape1087);
+ case 1088:
+ return nameof(Shape1088);
+ case 1089:
+ return nameof(Shape1089);
+ case 1090:
+ return nameof(Shape1090);
+ case 1091:
+ return nameof(Shape1091);
+ case 1092:
+ return nameof(Shape1092);
+ case 1093:
+ return nameof(Shape1093);
+ case 1094:
+ return nameof(Shape1094);
+ case 1095:
+ return nameof(Shape1095);
+ case 1096:
+ return nameof(Shape1096);
+ case 1097:
+ return nameof(Shape1097);
+ case 1098:
+ return nameof(Shape1098);
+ case 1099:
+ return nameof(Shape1099);
+ case 1100:
+ return nameof(Shape1100);
+ case 1101:
+ return nameof(Shape1101);
+ case 1102:
+ return nameof(Shape1102);
+ case 1103:
+ return nameof(Shape1103);
+ case 1104:
+ return nameof(Shape1104);
+ case 1105:
+ return nameof(Shape1105);
+ case 1106:
+ return nameof(Shape1106);
+ case 1107:
+ return nameof(Shape1107);
+ case 1108:
+ return nameof(Shape1108);
+ case 1109:
+ return nameof(Shape1109);
+ case 1110:
+ return nameof(Shape1110);
+ case 1111:
+ return nameof(Shape1111);
+ case 1112:
+ return nameof(Shape1112);
+ case 1113:
+ return nameof(Shape1113);
+ case 1114:
+ return nameof(Shape1114);
+ case 1115:
+ return nameof(Shape1115);
+ case 1116:
+ return nameof(Shape1116);
+ case 1117:
+ return nameof(Shape1117);
+ case 1118:
+ return nameof(Shape1118);
+ case 1119:
+ return nameof(Shape1119);
+ case 1120:
+ return nameof(Shape1120);
+ case 1121:
+ return nameof(Shape1121);
+ case 1122:
+ return nameof(Shape1122);
+ case 1123:
+ return nameof(Shape1123);
+ case 1124:
+ return nameof(Shape1124);
+ case 1125:
+ return nameof(Shape1125);
+ case 1126:
+ return nameof(Shape1126);
+ case 1127:
+ return nameof(Shape1127);
+ case 1128:
+ return nameof(Shape1128);
+ case 1129:
+ return nameof(Shape1129);
+ case 1130:
+ return nameof(Shape1130);
+ case 1131:
+ return nameof(Shape1131);
+ case 1132:
+ return nameof(Shape1132);
+ case 1133:
+ return nameof(Shape1133);
+ case 1134:
+ return nameof(Shape1134);
+ case 1135:
+ return nameof(Shape1135);
+ case 1136:
+ return nameof(Shape1136);
+ case 1137:
+ return nameof(Shape1137);
+ case 1138:
+ return nameof(Shape1138);
+ case 1139:
+ return nameof(Shape1139);
+ case 1140:
+ return nameof(Shape1140);
+ case 1141:
+ return nameof(Shape1141);
+ case 1142:
+ return nameof(Shape1142);
+ case 1143:
+ return nameof(Shape1143);
+ case 1144:
+ return nameof(Shape1144);
+ case 1145:
+ return nameof(Shape1145);
+ case 1146:
+ return nameof(Shape1146);
+ case 1147:
+ return nameof(Shape1147);
+ case 1148:
+ return nameof(Shape1148);
+ case 1149:
+ return nameof(Shape1149);
+ case 1150:
+ return nameof(Shape1150);
+ case 1151:
+ return nameof(Shape1151);
+ case 1152:
+ return nameof(Shape1152);
+ case 1153:
+ return nameof(Shape1153);
+ case 1154:
+ return nameof(Shape1154);
+ case 1155:
+ return nameof(Shape1155);
+ case 1156:
+ return nameof(Shape1156);
+ case 1157:
+ return nameof(Shape1157);
+ case 1158:
+ return nameof(Shape1158);
+ case 1159:
+ return nameof(Shape1159);
+ case 1160:
+ return nameof(Shape1160);
+ case 1161:
+ return nameof(Shape1161);
+ case 1162:
+ return nameof(Shape1162);
+ case 1163:
+ return nameof(Shape1163);
+ case 1164:
+ return nameof(Shape1164);
+ case 1165:
+ return nameof(Shape1165);
+ case 1166:
+ return nameof(Shape1166);
+ case 1167:
+ return nameof(Shape1167);
+ case 1168:
+ return nameof(Shape1168);
+ case 1169:
+ return nameof(Shape1169);
+ case 1170:
+ return nameof(Shape1170);
+ case 1171:
+ return nameof(Shape1171);
+ case 1172:
+ return nameof(Shape1172);
+ case 1173:
+ return nameof(Shape1173);
+ case 1174:
+ return nameof(Shape1174);
+ case 1175:
+ return nameof(Shape1175);
+ case 1176:
+ return nameof(Shape1176);
+ case 1177:
+ return nameof(Shape1177);
+ case 1178:
+ return nameof(Shape1178);
+ case 1179:
+ return nameof(Shape1179);
+ case 1180:
+ return nameof(Shape1180);
+ case 1181:
+ return nameof(Shape1181);
+ case 1182:
+ return nameof(Shape1182);
+ case 1183:
+ return nameof(Shape1183);
+ case 1184:
+ return nameof(Shape1184);
+ case 1185:
+ return nameof(Shape1185);
+ case 1186:
+ return nameof(Shape1186);
+ case 1187:
+ return nameof(Shape1187);
+ case 1188:
+ return nameof(Shape1188);
+ case 1189:
+ return nameof(Shape1189);
+ case 1190:
+ return nameof(Shape1190);
+ case 1191:
+ return nameof(Shape1191);
+ case 1192:
+ return nameof(Shape1192);
+ case 1193:
+ return nameof(Shape1193);
+ case 1194:
+ return nameof(Shape1194);
+ case 1195:
+ return nameof(Shape1195);
+ case 1196:
+ return nameof(Shape1196);
+ case 1197:
+ return nameof(Shape1197);
+ case 1198:
+ return nameof(Shape1198);
+ case 1199:
+ return nameof(Shape1199);
+ case 1200:
+ return nameof(Shape1200);
+ case 1201:
+ return nameof(Shape1201);
+ case 1202:
+ return nameof(Shape1202);
+ case 1203:
+ return nameof(Shape1203);
+ case 1204:
+ return nameof(Shape1204);
+ case 1205:
+ return nameof(Shape1205);
+ case 1206:
+ return nameof(Shape1206);
+ case 1207:
+ return nameof(Shape1207);
+ case 1208:
+ return nameof(Shape1208);
+ case 1209:
+ return nameof(Shape1209);
+ case 1210:
+ return nameof(Shape1210);
+ case 1211:
+ return nameof(Shape1211);
+ case 1212:
+ return nameof(Shape1212);
+ case 1213:
+ return nameof(Shape1213);
+ case 1214:
+ return nameof(Shape1214);
+ case 1215:
+ return nameof(Shape1215);
+ case 1216:
+ return nameof(Shape1216);
+ case 1217:
+ return nameof(Shape1217);
+ case 1218:
+ return nameof(Shape1218);
+ case 1219:
+ return nameof(Shape1219);
+ case 1220:
+ return nameof(Shape1220);
+ case 1221:
+ return nameof(Shape1221);
+ case 1222:
+ return nameof(Shape1222);
+ case 1223:
+ return nameof(Shape1223);
+ case 1224:
+ return nameof(Shape1224);
+ case 1225:
+ return nameof(Shape1225);
+ case 1226:
+ return nameof(Shape1226);
+ case 1227:
+ return nameof(Shape1227);
+ case 1228:
+ return nameof(Shape1228);
+ case 1229:
+ return nameof(Shape1229);
+ case 1230:
+ return nameof(Shape1230);
+ case 1231:
+ return nameof(Shape1231);
+ case 1232:
+ return nameof(Shape1232);
+ case 1233:
+ return nameof(Shape1233);
+ case 1234:
+ return nameof(Shape1234);
+ case 1235:
+ return nameof(Shape1235);
+ case 1236:
+ return nameof(Shape1236);
+ case 1237:
+ return nameof(Shape1237);
+ case 1238:
+ return nameof(Shape1238);
+ case 1239:
+ return nameof(Shape1239);
+ case 1240:
+ return nameof(Shape1240);
+ case 1241:
+ return nameof(Shape1241);
+ case 1242:
+ return nameof(Shape1242);
+ case 1243:
+ return nameof(Shape1243);
+ case 1244:
+ return nameof(Shape1244);
+ case 1245:
+ return nameof(Shape1245);
+ case 1246:
+ return nameof(Shape1246);
+ case 1247:
+ return nameof(Shape1247);
+ case 1248:
+ return nameof(Shape1248);
+ case 1249:
+ return nameof(Shape1249);
+ case 1250:
+ return nameof(Shape1250);
+ case 1251:
+ return nameof(Shape1251);
+ case 1252:
+ return nameof(Shape1252);
+ case 1253:
+ return nameof(Shape1253);
+ case 1254:
+ return nameof(Shape1254);
+ case 1255:
+ return nameof(Shape1255);
+ case 1256:
+ return nameof(Shape1256);
+ case 1257:
+ return nameof(Shape1257);
+ case 1258:
+ return nameof(Shape1258);
+ case 1259:
+ return nameof(Shape1259);
+ case 1260:
+ return nameof(Shape1260);
+ case 1261:
+ return nameof(Shape1261);
+ case 1262:
+ return nameof(Shape1262);
+ case 1263:
+ return nameof(Shape1263);
+ case 1264:
+ return nameof(Shape1264);
+ case 1265:
+ return nameof(Shape1265);
+ case 1266:
+ return nameof(Shape1266);
+ case 1267:
+ return nameof(Shape1267);
+ case 1268:
+ return nameof(Shape1268);
+ case 1269:
+ return nameof(Shape1269);
+ case 1270:
+ return nameof(Shape1270);
+ case 1271:
+ return nameof(Shape1271);
+ case 1272:
+ return nameof(Shape1272);
+ case 1273:
+ return nameof(Shape1273);
+ case 1274:
+ return nameof(Shape1274);
+ case 1275:
+ return nameof(Shape1275);
+ case 1276:
+ return nameof(Shape1276);
+ case 1277:
+ return nameof(Shape1277);
+ case 1278:
+ return nameof(Shape1278);
+ case 1279:
+ return nameof(Shape1279);
+ case 1280:
+ return nameof(Shape1280);
+ case 1281:
+ return nameof(Shape1281);
+ case 1282:
+ return nameof(Shape1282);
+ case 1283:
+ return nameof(Shape1283);
+ case 1284:
+ return nameof(Shape1284);
+ case 1285:
+ return nameof(Shape1285);
+ case 1286:
+ return nameof(Shape1286);
+ case 1287:
+ return nameof(Shape1287);
+ case 1288:
+ return nameof(Shape1288);
+ case 1289:
+ return nameof(Shape1289);
+ case 1290:
+ return nameof(Shape1290);
+ case 1291:
+ return nameof(Shape1291);
+ case 1292:
+ return nameof(Shape1292);
+ case 1293:
+ return nameof(Shape1293);
+ case 1294:
+ return nameof(Shape1294);
+ case 1295:
+ return nameof(Shape1295);
+ case 1296:
+ return nameof(Shape1296);
+ case 1297:
+ return nameof(Shape1297);
+ case 1298:
+ return nameof(Shape1298);
+ case 1299:
+ return nameof(Shape1299);
+ case 1300:
+ return nameof(Shape1300);
+ case 1301:
+ return nameof(Shape1301);
+ case 1302:
+ return nameof(Shape1302);
+ case 1303:
+ return nameof(Shape1303);
+ case 1304:
+ return nameof(Shape1304);
+ case 1305:
+ return nameof(Shape1305);
+ case 1306:
+ return nameof(Shape1306);
+ case 1307:
+ return nameof(Shape1307);
+ case 1308:
+ return nameof(Shape1308);
+ case 1309:
+ return nameof(Shape1309);
+ case 1310:
+ return nameof(Shape1310);
+ case 1311:
+ return nameof(Shape1311);
+ case 1312:
+ return nameof(Shape1312);
+ case 1313:
+ return nameof(Shape1313);
+ case 1314:
+ return nameof(Shape1314);
+ case 1315:
+ return nameof(Shape1315);
+ case 1316:
+ return nameof(Shape1316);
+ case 1317:
+ return nameof(Shape1317);
+ case 1318:
+ return nameof(Shape1318);
+ case 1319:
+ return nameof(Shape1319);
+ case 1320:
+ return nameof(Shape1320);
+ case 1321:
+ return nameof(Shape1321);
+ case 1322:
+ return nameof(Shape1322);
+ case 1323:
+ return nameof(Shape1323);
+ case 1324:
+ return nameof(Shape1324);
+ case 1325:
+ return nameof(Shape1325);
+ case 1326:
+ return nameof(Shape1326);
+ case 1327:
+ return nameof(Shape1327);
+ case 1328:
+ return nameof(Shape1328);
+ case 1329:
+ return nameof(Shape1329);
+ case 1330:
+ return nameof(Shape1330);
+ case 1331:
+ return nameof(Shape1331);
+ case 1332:
+ return nameof(Shape1332);
+ case 1333:
+ return nameof(Shape1333);
+ case 1334:
+ return nameof(Shape1334);
+ case 1335:
+ return nameof(Shape1335);
+ case 1336:
+ return nameof(Shape1336);
+ case 1337:
+ return nameof(Shape1337);
+ case 1338:
+ return nameof(Shape1338);
+ case 1339:
+ return nameof(Shape1339);
+ case 1340:
+ return nameof(Shape1340);
+ case 1341:
+ return nameof(Shape1341);
+ case 1342:
+ return nameof(Shape1342);
+ case 1343:
+ return nameof(Shape1343);
+ case 1344:
+ return nameof(Shape1344);
+ case 1345:
+ return nameof(Shape1345);
+ case 1346:
+ return nameof(Shape1346);
+ case 1347:
+ return nameof(Shape1347);
+ case 1348:
+ return nameof(Shape1348);
+ case 1349:
+ return nameof(Shape1349);
+ case 1350:
+ return nameof(Shape1350);
+ case 1351:
+ return nameof(Shape1351);
+ case 1352:
+ return nameof(Shape1352);
+ case 1353:
+ return nameof(Shape1353);
+ case 1354:
+ return nameof(Shape1354);
+ case 1355:
+ return nameof(Shape1355);
+ case 1356:
+ return nameof(Shape1356);
+ case 1357:
+ return nameof(Shape1357);
+ case 1358:
+ return nameof(Shape1358);
+ case 1359:
+ return nameof(Shape1359);
+ case 1360:
+ return nameof(Shape1360);
+ case 1361:
+ return nameof(Shape1361);
+ case 1362:
+ return nameof(Shape1362);
+ case 1363:
+ return nameof(Shape1363);
+ case 1364:
+ return nameof(Shape1364);
+ case 1365:
+ return nameof(Shape1365);
+ case 1366:
+ return nameof(Shape1366);
+ case 1367:
+ return nameof(Shape1367);
+ case 1368:
+ return nameof(Shape1368);
+ case 1369:
+ return nameof(Shape1369);
+ case 1370:
+ return nameof(Shape1370);
+ case 1371:
+ return nameof(Shape1371);
+ case 1372:
+ return nameof(Shape1372);
+ case 1373:
+ return nameof(Shape1373);
+ case 1374:
+ return nameof(Shape1374);
+ case 1375:
+ return nameof(Shape1375);
+ case 1376:
+ return nameof(Shape1376);
+ case 1377:
+ return nameof(Shape1377);
+ case 1378:
+ return nameof(Shape1378);
+ case 1379:
+ return nameof(Shape1379);
+ case 1380:
+ return nameof(Shape1380);
+ case 1381:
+ return nameof(Shape1381);
+ case 1382:
+ return nameof(Shape1382);
+ case 1383:
+ return nameof(Shape1383);
+ case 1384:
+ return nameof(Shape1384);
+ case 1385:
+ return nameof(Shape1385);
+ case 1386:
+ return nameof(Shape1386);
+ case 1387:
+ return nameof(Shape1387);
+ case 1388:
+ return nameof(Shape1388);
+ case 1389:
+ return nameof(Shape1389);
+ case 1390:
+ return nameof(Shape1390);
+ case 1391:
+ return nameof(Shape1391);
+ case 1392:
+ return nameof(Shape1392);
+ case 1393:
+ return nameof(Shape1393);
+ case 1394:
+ return nameof(Shape1394);
+ case 1395:
+ return nameof(Shape1395);
+ case 1396:
+ return nameof(Shape1396);
+ case 1397:
+ return nameof(Shape1397);
+ case 1398:
+ return nameof(Shape1398);
+ case 1399:
+ return nameof(Shape1399);
+ case 1400:
+ return nameof(Shape1400);
+ case 1401:
+ return nameof(Shape1401);
+ case 1402:
+ return nameof(Shape1402);
+ case 1403:
+ return nameof(Shape1403);
+ case 1404:
+ return nameof(Shape1404);
+ case 1405:
+ return nameof(Shape1405);
+ case 1406:
+ return nameof(Shape1406);
+ case 1407:
+ return nameof(Shape1407);
+ case 1408:
+ return nameof(Shape1408);
+ case 1409:
+ return nameof(Shape1409);
+ case 1410:
+ return nameof(Shape1410);
+ case 1411:
+ return nameof(Shape1411);
+ case 1412:
+ return nameof(Shape1412);
+ case 1413:
+ return nameof(Shape1413);
+ case 1414:
+ return nameof(Shape1414);
+ case 1415:
+ return nameof(Shape1415);
+ case 1416:
+ return nameof(Shape1416);
+ case 1417:
+ return nameof(Shape1417);
+ case 1418:
+ return nameof(Shape1418);
+ case 1419:
+ return nameof(Shape1419);
+ case 1420:
+ return nameof(Shape1420);
+ case 1421:
+ return nameof(Shape1421);
+ case 1422:
+ return nameof(Shape1422);
+ case 1423:
+ return nameof(Shape1423);
+ case 1424:
+ return nameof(Shape1424);
+ case 1425:
+ return nameof(Shape1425);
+ case 1426:
+ return nameof(Shape1426);
+ case 1427:
+ return nameof(Shape1427);
+ case 1428:
+ return nameof(Shape1428);
+ case 1429:
+ return nameof(Shape1429);
+ case 1430:
+ return nameof(Shape1430);
+ case 1431:
+ return nameof(Shape1431);
+ case 1432:
+ return nameof(Shape1432);
+ case 1433:
+ return nameof(Shape1433);
+ case 1434:
+ return nameof(Shape1434);
+ case 1435:
+ return nameof(Shape1435);
+ case 1436:
+ return nameof(Shape1436);
+ case 1437:
+ return nameof(Shape1437);
+ case 1438:
+ return nameof(Shape1438);
+ case 1439:
+ return nameof(Shape1439);
+ case 1440:
+ return nameof(Shape1440);
+ case 1441:
+ return nameof(Shape1441);
+ case 1442:
+ return nameof(Shape1442);
+ case 1443:
+ return nameof(Shape1443);
+ case 1444:
+ return nameof(Shape1444);
+ case 1445:
+ return nameof(Shape1445);
+ case 1446:
+ return nameof(Shape1446);
+ case 1447:
+ return nameof(Shape1447);
+ case 1448:
+ return nameof(Shape1448);
+ case 1449:
+ return nameof(Shape1449);
+ case 1450:
+ return nameof(Shape1450);
+ case 1451:
+ return nameof(Shape1451);
+ case 1452:
+ return nameof(Shape1452);
+ case 1453:
+ return nameof(Shape1453);
+ case 1454:
+ return nameof(Shape1454);
+ case 1455:
+ return nameof(Shape1455);
+ case 1456:
+ return nameof(Shape1456);
+ case 1457:
+ return nameof(Shape1457);
+ case 1458:
+ return nameof(Shape1458);
+ case 1459:
+ return nameof(Shape1459);
+ case 1460:
+ return nameof(Shape1460);
+ case 1461:
+ return nameof(Shape1461);
+ case 1462:
+ return nameof(Shape1462);
+ case 1463:
+ return nameof(Shape1463);
+ case 1464:
+ return nameof(Shape1464);
+ case 1465:
+ return nameof(Shape1465);
+ case 1466:
+ return nameof(Shape1466);
+ case 1467:
+ return nameof(Shape1467);
+ case 1468:
+ return nameof(Shape1468);
+ case 1469:
+ return nameof(Shape1469);
+ case 1470:
+ return nameof(Shape1470);
+ case 1471:
+ return nameof(Shape1471);
+ case 1472:
+ return nameof(Shape1472);
+ case 1473:
+ return nameof(Shape1473);
+ case 1474:
+ return nameof(Shape1474);
+ case 1475:
+ return nameof(Shape1475);
+ case 1476:
+ return nameof(Shape1476);
+ case 1477:
+ return nameof(Shape1477);
+ case 1478:
+ return nameof(Shape1478);
+ case 1479:
+ return nameof(Shape1479);
+ case 1480:
+ return nameof(Shape1480);
+ case 1481:
+ return nameof(Shape1481);
+ case 1482:
+ return nameof(Shape1482);
+ case 1483:
+ return nameof(Shape1483);
+ case 1484:
+ return nameof(Shape1484);
+ case 1485:
+ return nameof(Shape1485);
+ case 1486:
+ return nameof(Shape1486);
+ case 1487:
+ return nameof(Shape1487);
+ case 1488:
+ return nameof(Shape1488);
+ case 1489:
+ return nameof(Shape1489);
+ case 1490:
+ return nameof(Shape1490);
+ case 1491:
+ return nameof(Shape1491);
+ case 1492:
+ return nameof(Shape1492);
+ case 1493:
+ return nameof(Shape1493);
+ case 1494:
+ return nameof(Shape1494);
+ case 1495:
+ return nameof(Shape1495);
+ case 1496:
+ return nameof(Shape1496);
+ case 1497:
+ return nameof(Shape1497);
+ case 1498:
+ return nameof(Shape1498);
+ case 1499:
+ return nameof(Shape1499);
+ case 1500:
+ return nameof(Shape1500);
+ case 1501:
+ return nameof(Shape1501);
+ case 1502:
+ return nameof(Shape1502);
+ case 1503:
+ return nameof(Shape1503);
+ case 1504:
+ return nameof(Shape1504);
+ case 1505:
+ return nameof(Shape1505);
+ case 1506:
+ return nameof(Shape1506);
+ case 1507:
+ return nameof(Shape1507);
+ case 1508:
+ return nameof(Shape1508);
+ case 1509:
+ return nameof(Shape1509);
+ case 1510:
+ return nameof(Shape1510);
+ case 1511:
+ return nameof(Shape1511);
+ case 1512:
+ return nameof(Shape1512);
+ case 1513:
+ return nameof(Shape1513);
+ case 1514:
+ return nameof(Shape1514);
+ case 1515:
+ return nameof(Shape1515);
+ case 1516:
+ return nameof(Shape1516);
+ case 1517:
+ return nameof(Shape1517);
+ case 1518:
+ return nameof(Shape1518);
+ case 1519:
+ return nameof(Shape1519);
+ case 1520:
+ return nameof(Shape1520);
+ case 1521:
+ return nameof(Shape1521);
+ case 1522:
+ return nameof(Shape1522);
+ case 1523:
+ return nameof(Shape1523);
+ case 1524:
+ return nameof(Shape1524);
+ case 1525:
+ return nameof(Shape1525);
+ case 1526:
+ return nameof(Shape1526);
+ case 1527:
+ return nameof(Shape1527);
+ case 1528:
+ return nameof(Shape1528);
+ case 1529:
+ return nameof(Shape1529);
+ case 1530:
+ return nameof(Shape1530);
+ case 1531:
+ return nameof(Shape1531);
+ case 1532:
+ return nameof(Shape1532);
+ case 1533:
+ return nameof(Shape1533);
+ case 1534:
+ return nameof(Shape1534);
+ case 1535:
+ return nameof(Shape1535);
+ case 1536:
+ return nameof(Shape1536);
+ case 1537:
+ return nameof(Shape1537);
+ case 1538:
+ return nameof(Shape1538);
+ case 1539:
+ return nameof(Shape1539);
+ case 1540:
+ return nameof(Shape1540);
+ case 1541:
+ return nameof(Shape1541);
+ case 1542:
+ return nameof(Shape1542);
+ case 1543:
+ return nameof(Shape1543);
+ case 1544:
+ return nameof(Shape1544);
+ case 1545:
+ return nameof(Shape1545);
+ case 1546:
+ return nameof(Shape1546);
+ case 1547:
+ return nameof(Shape1547);
+ case 1548:
+ return nameof(Shape1548);
+ case 1549:
+ return nameof(Shape1549);
+ case 1550:
+ return nameof(Shape1550);
+ case 1551:
+ return nameof(Shape1551);
+ case 1552:
+ return nameof(Shape1552);
+ case 1553:
+ return nameof(Shape1553);
+ case 1554:
+ return nameof(Shape1554);
+ case 1555:
+ return nameof(Shape1555);
+ case 1556:
+ return nameof(Shape1556);
+ case 1557:
+ return nameof(Shape1557);
+ case 1558:
+ return nameof(Shape1558);
+ case 1559:
+ return nameof(Shape1559);
+ case 1560:
+ return nameof(Shape1560);
+ case 1561:
+ return nameof(Shape1561);
+ case 1562:
+ return nameof(Shape1562);
+ case 1563:
+ return nameof(Shape1563);
+ case 1564:
+ return nameof(Shape1564);
+ case 1565:
+ return nameof(Shape1565);
+ case 1566:
+ return nameof(Shape1566);
+ case 1567:
+ return nameof(Shape1567);
+ case 1568:
+ return nameof(Shape1568);
+ case 1569:
+ return nameof(Shape1569);
+ case 1570:
+ return nameof(Shape1570);
+ case 1571:
+ return nameof(Shape1571);
+ case 1572:
+ return nameof(Shape1572);
+ case 1573:
+ return nameof(Shape1573);
+ case 1574:
+ return nameof(Shape1574);
+ case 1575:
+ return nameof(Shape1575);
+ case 1576:
+ return nameof(Shape1576);
+ case 1577:
+ return nameof(Shape1577);
+ case 1578:
+ return nameof(Shape1578);
+ case 1579:
+ return nameof(Shape1579);
+ case 1580:
+ return nameof(Shape1580);
+ case 1581:
+ return nameof(Shape1581);
+ case 1582:
+ return nameof(Shape1582);
+ case 1583:
+ return nameof(Shape1583);
+ case 1584:
+ return nameof(Shape1584);
+ case 1585:
+ return nameof(Shape1585);
+ case 1586:
+ return nameof(Shape1586);
+ case 1587:
+ return nameof(Shape1587);
+ case 1588:
+ return nameof(Shape1588);
+ case 1589:
+ return nameof(Shape1589);
+ case 1590:
+ return nameof(Shape1590);
+ case 1591:
+ return nameof(Shape1591);
+ case 1592:
+ return nameof(Shape1592);
+ case 1593:
+ return nameof(Shape1593);
+ case 1594:
+ return nameof(Shape1594);
+ case 1595:
+ return nameof(Shape1595);
+ case 1596:
+ return nameof(Shape1596);
+ case 1597:
+ return nameof(Shape1597);
+ case 1598:
+ return nameof(Shape1598);
+ case 1599:
+ return nameof(Shape1599);
+ case 1600:
+ return nameof(Shape1600);
+ case 1601:
+ return nameof(Shape1601);
+ case 1602:
+ return nameof(Shape1602);
+ case 1603:
+ return nameof(Shape1603);
+ case 1604:
+ return nameof(Shape1604);
+ case 1605:
+ return nameof(Shape1605);
+ case 1606:
+ return nameof(Shape1606);
+ case 1607:
+ return nameof(Shape1607);
+ case 1608:
+ return nameof(Shape1608);
+ case 1609:
+ return nameof(Shape1609);
+ case 1610:
+ return nameof(Shape1610);
+ case 1611:
+ return nameof(Shape1611);
+ case 1612:
+ return nameof(Shape1612);
+ case 1613:
+ return nameof(Shape1613);
+ case 1614:
+ return nameof(Shape1614);
+ case 1615:
+ return nameof(Shape1615);
+ case 1616:
+ return nameof(Shape1616);
+ case 1617:
+ return nameof(Shape1617);
+ case 1618:
+ return nameof(Shape1618);
+ case 1619:
+ return nameof(Shape1619);
+ case 1620:
+ return nameof(Shape1620);
+ case 1621:
+ return nameof(Shape1621);
+ case 1622:
+ return nameof(Shape1622);
+ case 1623:
+ return nameof(Shape1623);
+ case 1624:
+ return nameof(Shape1624);
+ case 1625:
+ return nameof(Shape1625);
+ case 1626:
+ return nameof(Shape1626);
+ case 1627:
+ return nameof(Shape1627);
+ case 1628:
+ return nameof(Shape1628);
+ case 1629:
+ return nameof(Shape1629);
+ case 1630:
+ return nameof(Shape1630);
+ case 1631:
+ return nameof(Shape1631);
+ case 1632:
+ return nameof(Shape1632);
+ case 1633:
+ return nameof(Shape1633);
+ case 1634:
+ return nameof(Shape1634);
+ case 1635:
+ return nameof(Shape1635);
+ case 1636:
+ return nameof(Shape1636);
+ case 1637:
+ return nameof(Shape1637);
+ case 1638:
+ return nameof(Shape1638);
+ case 1639:
+ return nameof(Shape1639);
+ case 1640:
+ return nameof(Shape1640);
+ case 1641:
+ return nameof(Shape1641);
+ case 1642:
+ return nameof(Shape1642);
+ case 1643:
+ return nameof(Shape1643);
+ case 1644:
+ return nameof(Shape1644);
+ case 1645:
+ return nameof(Shape1645);
+ case 1646:
+ return nameof(Shape1646);
+ case 1647:
+ return nameof(Shape1647);
+ case 1648:
+ return nameof(Shape1648);
+ case 1649:
+ return nameof(Shape1649);
+ case 1650:
+ return nameof(Shape1650);
+ case 1651:
+ return nameof(Shape1651);
+ case 1652:
+ return nameof(Shape1652);
+ case 1653:
+ return nameof(Shape1653);
+ case 1654:
+ return nameof(Shape1654);
+ case 1655:
+ return nameof(Shape1655);
+ case 1656:
+ return nameof(Shape1656);
+ case 1657:
+ return nameof(Shape1657);
+ case 1658:
+ return nameof(Shape1658);
+ case 1659:
+ return nameof(Shape1659);
+ case 1660:
+ return nameof(Shape1660);
+ case 1661:
+ return nameof(Shape1661);
+ case 1662:
+ return nameof(Shape1662);
+ case 1663:
+ return nameof(Shape1663);
+ case 1664:
+ return nameof(Shape1664);
+ case 1665:
+ return nameof(Shape1665);
+ case 1666:
+ return nameof(Shape1666);
+ case 1667:
+ return nameof(Shape1667);
+ case 1668:
+ return nameof(Shape1668);
+ case 1669:
+ return nameof(Shape1669);
+ case 1670:
+ return nameof(Shape1670);
+ case 1671:
+ return nameof(Shape1671);
+ case 1672:
+ return nameof(Shape1672);
+ case 1673:
+ return nameof(Shape1673);
+ case 1674:
+ return nameof(Shape1674);
+ case 1675:
+ return nameof(Shape1675);
+ case 1676:
+ return nameof(Shape1676);
+ case 1677:
+ return nameof(Shape1677);
+ case 1678:
+ return nameof(Shape1678);
+ case 1679:
+ return nameof(Shape1679);
+ case 1680:
+ return nameof(Shape1680);
+ case 1681:
+ return nameof(Shape1681);
+ case 1682:
+ return nameof(Shape1682);
+ case 1683:
+ return nameof(Shape1683);
+ case 1684:
+ return nameof(Shape1684);
+ case 1685:
+ return nameof(Shape1685);
+ case 1686:
+ return nameof(Shape1686);
+ case 1687:
+ return nameof(Shape1687);
+ case 1688:
+ return nameof(Shape1688);
+ case 1689:
+ return nameof(Shape1689);
+ case 1690:
+ return nameof(Shape1690);
+ case 1691:
+ return nameof(Shape1691);
+ case 1692:
+ return nameof(Shape1692);
+ case 1693:
+ return nameof(Shape1693);
+ case 1694:
+ return nameof(Shape1694);
+ case 1695:
+ return nameof(Shape1695);
+ case 1696:
+ return nameof(Shape1696);
+ case 1697:
+ return nameof(Shape1697);
+ case 1698:
+ return nameof(Shape1698);
+ case 1699:
+ return nameof(Shape1699);
+ case 1700:
+ return nameof(Shape1700);
+ case 1701:
+ return nameof(Shape1701);
+ case 1702:
+ return nameof(Shape1702);
+ case 1703:
+ return nameof(Shape1703);
+ case 1704:
+ return nameof(Shape1704);
+ case 1705:
+ return nameof(Shape1705);
+ case 1706:
+ return nameof(Shape1706);
+ case 1707:
+ return nameof(Shape1707);
+ case 1708:
+ return nameof(Shape1708);
+ case 1709:
+ return nameof(Shape1709);
+ case 1710:
+ return nameof(Shape1710);
+ case 1711:
+ return nameof(Shape1711);
+ case 1712:
+ return nameof(Shape1712);
+ case 1713:
+ return nameof(Shape1713);
+ case 1714:
+ return nameof(Shape1714);
+ case 1715:
+ return nameof(Shape1715);
+ case 1716:
+ return nameof(Shape1716);
+ case 1717:
+ return nameof(Shape1717);
+ case 1718:
+ return nameof(Shape1718);
+ case 1719:
+ return nameof(Shape1719);
+ case 1720:
+ return nameof(Shape1720);
+ case 1721:
+ return nameof(Shape1721);
+ case 1722:
+ return nameof(Shape1722);
+ case 1723:
+ return nameof(Shape1723);
+ case 1724:
+ return nameof(Shape1724);
+ case 1725:
+ return nameof(Shape1725);
+ case 1726:
+ return nameof(Shape1726);
+ case 1727:
+ return nameof(Shape1727);
+ case 1728:
+ return nameof(Shape1728);
+ case 1729:
+ return nameof(Shape1729);
+ case 1730:
+ return nameof(Shape1730);
+ case 1731:
+ return nameof(Shape1731);
+ case 1732:
+ return nameof(Shape1732);
+ case 1733:
+ return nameof(Shape1733);
+ case 1734:
+ return nameof(Shape1734);
+ case 1735:
+ return nameof(Shape1735);
+ case 1736:
+ return nameof(Shape1736);
+ case 1737:
+ return nameof(Shape1737);
+ case 1738:
+ return nameof(Shape1738);
+ case 1739:
+ return nameof(Shape1739);
+ case 1740:
+ return nameof(Shape1740);
+ case 1741:
+ return nameof(Shape1741);
+ case 1742:
+ return nameof(Shape1742);
+ case 1743:
+ return nameof(Shape1743);
+ case 1744:
+ return nameof(Shape1744);
+ case 1745:
+ return nameof(Shape1745);
+ case 1746:
+ return nameof(Shape1746);
+ case 1747:
+ return nameof(Shape1747);
+ case 1748:
+ return nameof(Shape1748);
+ case 1749:
+ return nameof(Shape1749);
+ case 1750:
+ return nameof(Shape1750);
+ case 1751:
+ return nameof(Shape1751);
+ case 1752:
+ return nameof(Shape1752);
+ case 1753:
+ return nameof(Shape1753);
+ case 1754:
+ return nameof(Shape1754);
+ case 1755:
+ return nameof(Shape1755);
+ case 1756:
+ return nameof(Shape1756);
+ case 1757:
+ return nameof(Shape1757);
+ case 1758:
+ return nameof(Shape1758);
+ case 1759:
+ return nameof(Shape1759);
+ case 1760:
+ return nameof(Shape1760);
+ case 1761:
+ return nameof(Shape1761);
+ case 1762:
+ return nameof(Shape1762);
+ case 1763:
+ return nameof(Shape1763);
+ case 1764:
+ return nameof(Shape1764);
+ case 1765:
+ return nameof(Shape1765);
+ case 1766:
+ return nameof(Shape1766);
+ case 1767:
+ return nameof(Shape1767);
+ case 1768:
+ return nameof(Shape1768);
+ case 1769:
+ return nameof(Shape1769);
+ case 1770:
+ return nameof(Shape1770);
+ case 1771:
+ return nameof(Shape1771);
+ case 1772:
+ return nameof(Shape1772);
+ case 1773:
+ return nameof(Shape1773);
+ case 1774:
+ return nameof(Shape1774);
+ case 1775:
+ return nameof(Shape1775);
+ case 1776:
+ return nameof(Shape1776);
+ case 1777:
+ return nameof(Shape1777);
+ case 1778:
+ return nameof(Shape1778);
+ case 1779:
+ return nameof(Shape1779);
+ case 1780:
+ return nameof(Shape1780);
+ case 1781:
+ return nameof(Shape1781);
+ case 1782:
+ return nameof(Shape1782);
+ case 1783:
+ return nameof(Shape1783);
+ case 1784:
+ return nameof(Shape1784);
+ case 1785:
+ return nameof(Shape1785);
+ case 1786:
+ return nameof(Shape1786);
+ case 1787:
+ return nameof(Shape1787);
+ case 1788:
+ return nameof(Shape1788);
+ case 1789:
+ return nameof(Shape1789);
+ case 1790:
+ return nameof(Shape1790);
+ case 1791:
+ return nameof(Shape1791);
+ case 1792:
+ return nameof(Shape1792);
+ case 1793:
+ return nameof(Shape1793);
+ case 1794:
+ return nameof(Shape1794);
+ case 1795:
+ return nameof(Shape1795);
+ case 1796:
+ return nameof(Shape1796);
+ case 1797:
+ return nameof(Shape1797);
+ case 1798:
+ return nameof(Shape1798);
+ case 1799:
+ return nameof(Shape1799);
+ case 1800:
+ return nameof(Shape1800);
+ case 1801:
+ return nameof(Shape1801);
+ case 1802:
+ return nameof(Shape1802);
+ case 1803:
+ return nameof(Shape1803);
+ case 1804:
+ return nameof(Shape1804);
+ case 1805:
+ return nameof(Shape1805);
+ case 1806:
+ return nameof(Shape1806);
+ case 1807:
+ return nameof(Shape1807);
+ case 1808:
+ return nameof(Shape1808);
+ case 1809:
+ return nameof(Shape1809);
+ case 1810:
+ return nameof(Shape1810);
+ case 1811:
+ return nameof(Shape1811);
+ case 1812:
+ return nameof(Shape1812);
+ case 1813:
+ return nameof(Shape1813);
+ case 1814:
+ return nameof(Shape1814);
+ case 1815:
+ return nameof(Shape1815);
+ case 1816:
+ return nameof(Shape1816);
+ case 1817:
+ return nameof(Shape1817);
+ case 1818:
+ return nameof(Shape1818);
+ case 1819:
+ return nameof(Shape1819);
+ case 1820:
+ return nameof(Shape1820);
+ case 1821:
+ return nameof(Shape1821);
+ case 1822:
+ return nameof(Shape1822);
+ case 1823:
+ return nameof(Shape1823);
+ case 1824:
+ return nameof(Shape1824);
+ case 1825:
+ return nameof(Shape1825);
+ case 1826:
+ return nameof(Shape1826);
+ case 1827:
+ return nameof(Shape1827);
+ case 1828:
+ return nameof(Shape1828);
+ case 1829:
+ return nameof(Shape1829);
+ case 1830:
+ return nameof(Shape1830);
+ case 1831:
+ return nameof(Shape1831);
+ case 1832:
+ return nameof(Shape1832);
+ case 1833:
+ return nameof(Shape1833);
+ case 1834:
+ return nameof(Shape1834);
+ case 1835:
+ return nameof(Shape1835);
+ case 1836:
+ return nameof(Shape1836);
+ case 1837:
+ return nameof(Shape1837);
+ case 1838:
+ return nameof(Shape1838);
+ case 1839:
+ return nameof(Shape1839);
+ case 1840:
+ return nameof(Shape1840);
+ case 1841:
+ return nameof(Shape1841);
+ case 1842:
+ return nameof(Shape1842);
+ case 1843:
+ return nameof(Shape1843);
+ case 1844:
+ return nameof(Shape1844);
+ case 1845:
+ return nameof(Shape1845);
+ case 1846:
+ return nameof(Shape1846);
+ case 1847:
+ return nameof(Shape1847);
+ case 1848:
+ return nameof(Shape1848);
+ case 1849:
+ return nameof(Shape1849);
+ case 1850:
+ return nameof(Shape1850);
+ case 1851:
+ return nameof(Shape1851);
+ case 1852:
+ return nameof(Shape1852);
+ case 1853:
+ return nameof(Shape1853);
+ case 1854:
+ return nameof(Shape1854);
+ case 1855:
+ return nameof(Shape1855);
+ case 1856:
+ return nameof(Shape1856);
+ case 1857:
+ return nameof(Shape1857);
+ case 1858:
+ return nameof(Shape1858);
+ case 1859:
+ return nameof(Shape1859);
+ case 1860:
+ return nameof(Shape1860);
+ case 1861:
+ return nameof(Shape1861);
+ case 1862:
+ return nameof(Shape1862);
+ case 1863:
+ return nameof(Shape1863);
+ case 1864:
+ return nameof(Shape1864);
+ case 1865:
+ return nameof(Shape1865);
+ case 1866:
+ return nameof(Shape1866);
+ case 1867:
+ return nameof(Shape1867);
+ case 1868:
+ return nameof(Shape1868);
+ case 1869:
+ return nameof(Shape1869);
+ case 1870:
+ return nameof(Shape1870);
+ case 1871:
+ return nameof(Shape1871);
+ case 1872:
+ return nameof(Shape1872);
+ case 1873:
+ return nameof(Shape1873);
+ case 1874:
+ return nameof(Shape1874);
+ case 1875:
+ return nameof(Shape1875);
+ case 1876:
+ return nameof(Shape1876);
+ case 1877:
+ return nameof(Shape1877);
+ case 1878:
+ return nameof(Shape1878);
+ case 1879:
+ return nameof(Shape1879);
+ case 1880:
+ return nameof(Shape1880);
+ case 1881:
+ return nameof(Shape1881);
+ case 1882:
+ return nameof(Shape1882);
+ case 1883:
+ return nameof(Shape1883);
+ case 1884:
+ return nameof(Shape1884);
+ case 1885:
+ return nameof(Shape1885);
+ case 1886:
+ return nameof(Shape1886);
+ case 1887:
+ return nameof(Shape1887);
+ case 1888:
+ return nameof(Shape1888);
+ case 1889:
+ return nameof(Shape1889);
+ case 1890:
+ return nameof(Shape1890);
+ case 1891:
+ return nameof(Shape1891);
+ case 1892:
+ return nameof(Shape1892);
+ case 1893:
+ return nameof(Shape1893);
+ case 1894:
+ return nameof(Shape1894);
+ case 1895:
+ return nameof(Shape1895);
+ case 1896:
+ return nameof(Shape1896);
+ case 1897:
+ return nameof(Shape1897);
+ case 1898:
+ return nameof(Shape1898);
+ case 1899:
+ return nameof(Shape1899);
+ case 1900:
+ return nameof(Shape1900);
+ case 1901:
+ return nameof(Shape1901);
+ case 1902:
+ return nameof(Shape1902);
+ case 1903:
+ return nameof(Shape1903);
+ case 1904:
+ return nameof(Shape1904);
+ case 1905:
+ return nameof(Shape1905);
+ case 1906:
+ return nameof(Shape1906);
+ case 1907:
+ return nameof(Shape1907);
+ case 1908:
+ return nameof(Shape1908);
+ case 1909:
+ return nameof(Shape1909);
+ case 1910:
+ return nameof(Shape1910);
+ case 1911:
+ return nameof(Shape1911);
+ case 1912:
+ return nameof(Shape1912);
+ case 1913:
+ return nameof(Shape1913);
+ case 1914:
+ return nameof(Shape1914);
+ case 1915:
+ return nameof(Shape1915);
+ case 1916:
+ return nameof(Shape1916);
+ case 1917:
+ return nameof(Shape1917);
+ case 1918:
+ return nameof(Shape1918);
+ case 1919:
+ return nameof(Shape1919);
+ case 1920:
+ return nameof(Shape1920);
+ case 1921:
+ return nameof(Shape1921);
+ case 1922:
+ return nameof(Shape1922);
+ case 1923:
+ return nameof(Shape1923);
+ case 1924:
+ return nameof(Shape1924);
+ case 1925:
+ return nameof(Shape1925);
+ case 1926:
+ return nameof(Shape1926);
+ case 1927:
+ return nameof(Shape1927);
+ case 1928:
+ return nameof(Shape1928);
+ case 1929:
+ return nameof(Shape1929);
+ case 1930:
+ return nameof(Shape1930);
+ case 1931:
+ return nameof(Shape1931);
+ case 1932:
+ return nameof(Shape1932);
+ case 1933:
+ return nameof(Shape1933);
+ case 1934:
+ return nameof(Shape1934);
+ case 1935:
+ return nameof(Shape1935);
+ case 1936:
+ return nameof(Shape1936);
+ case 1937:
+ return nameof(Shape1937);
+ case 1938:
+ return nameof(Shape1938);
+ case 1939:
+ return nameof(Shape1939);
+ case 1940:
+ return nameof(Shape1940);
+ case 1941:
+ return nameof(Shape1941);
+ case 1942:
+ return nameof(Shape1942);
+ case 1943:
+ return nameof(Shape1943);
+ case 1944:
+ return nameof(Shape1944);
+ case 1945:
+ return nameof(Shape1945);
+ case 1946:
+ return nameof(Shape1946);
+ case 1947:
+ return nameof(Shape1947);
+ case 1948:
+ return nameof(Shape1948);
+ case 1949:
+ return nameof(Shape1949);
+ case 1950:
+ return nameof(Shape1950);
+ case 1951:
+ return nameof(Shape1951);
+ case 1952:
+ return nameof(Shape1952);
+ case 1953:
+ return nameof(Shape1953);
+ case 1954:
+ return nameof(Shape1954);
+ case 1955:
+ return nameof(Shape1955);
+ case 1956:
+ return nameof(Shape1956);
+ case 1957:
+ return nameof(Shape1957);
+ case 1958:
+ return nameof(Shape1958);
+ case 1959:
+ return nameof(Shape1959);
+ case 1960:
+ return nameof(Shape1960);
+ case 1961:
+ return nameof(Shape1961);
+ case 1962:
+ return nameof(Shape1962);
+ case 1963:
+ return nameof(Shape1963);
+ case 1964:
+ return nameof(Shape1964);
+ case 1965:
+ return nameof(Shape1965);
+ case 1966:
+ return nameof(Shape1966);
+ case 1967:
+ return nameof(Shape1967);
+ case 1968:
+ return nameof(Shape1968);
+ case 1969:
+ return nameof(Shape1969);
+ case 1970:
+ return nameof(Shape1970);
+ case 1971:
+ return nameof(Shape1971);
+ case 1972:
+ return nameof(Shape1972);
+ case 1973:
+ return nameof(Shape1973);
+ case 1974:
+ return nameof(Shape1974);
+ case 1975:
+ return nameof(Shape1975);
+ case 1976:
+ return nameof(Shape1976);
+ case 1977:
+ return nameof(Shape1977);
+ case 1978:
+ return nameof(Shape1978);
+ case 1979:
+ return nameof(Shape1979);
+ case 1980:
+ return nameof(Shape1980);
+ case 1981:
+ return nameof(Shape1981);
+ case 1982:
+ return nameof(Shape1982);
+ case 1983:
+ return nameof(Shape1983);
+ case 1984:
+ return nameof(Shape1984);
+ case 1985:
+ return nameof(Shape1985);
+ case 1986:
+ return nameof(Shape1986);
+ case 1987:
+ return nameof(Shape1987);
+ case 1988:
+ return nameof(Shape1988);
+ case 1989:
+ return nameof(Shape1989);
+ case 1990:
+ return nameof(Shape1990);
+ case 1991:
+ return nameof(Shape1991);
+ case 1992:
+ return nameof(Shape1992);
+ case 1993:
+ return nameof(Shape1993);
+ case 1994:
+ return nameof(Shape1994);
+ case 1995:
+ return nameof(Shape1995);
+ case 1996:
+ return nameof(Shape1996);
+ case 1997:
+ return nameof(Shape1997);
+ case 1998:
+ return nameof(Shape1998);
+ case 1999:
+ return nameof(Shape1999);
+ case 2000:
+ return nameof(Shape2000);
+ case 2001:
+ return nameof(Shape2001);
+ case 2002:
+ return nameof(Shape2002);
+ case 2003:
+ return nameof(Shape2003);
+ case 2004:
+ return nameof(Shape2004);
+ case 2005:
+ return nameof(Shape2005);
+ case 2006:
+ return nameof(Shape2006);
+ case 2007:
+ return nameof(Shape2007);
+ case 2008:
+ return nameof(Shape2008);
+ case 2009:
+ return nameof(Shape2009);
+ case 2010:
+ return nameof(Shape2010);
+ case 2011:
+ return nameof(Shape2011);
+ case 2012:
+ return nameof(Shape2012);
+ case 2013:
+ return nameof(Shape2013);
+ case 2014:
+ return nameof(Shape2014);
+ case 2015:
+ return nameof(Shape2015);
+ case 2016:
+ return nameof(Shape2016);
+ case 2017:
+ return nameof(Shape2017);
+ case 2018:
+ return nameof(Shape2018);
+ case 2019:
+ return nameof(Shape2019);
+ case 2020:
+ return nameof(Shape2020);
+ case 2021:
+ return nameof(Shape2021);
+ case 2022:
+ return nameof(Shape2022);
+ case 2023:
+ return nameof(Shape2023);
+ case 2024:
+ return nameof(Shape2024);
+ case 2025:
+ return nameof(Shape2025);
+ case 2026:
+ return nameof(Shape2026);
+ case 2027:
+ return nameof(Shape2027);
+ case 2028:
+ return nameof(Shape2028);
+ case 2029:
+ return nameof(Shape2029);
+ case 2030:
+ return nameof(Shape2030);
+ case 2031:
+ return nameof(Shape2031);
+ case 2032:
+ return nameof(Shape2032);
+ case 2033:
+ return nameof(Shape2033);
+ case 2034:
+ return nameof(Shape2034);
+ case 2035:
+ return nameof(Shape2035);
+ case 2036:
+ return nameof(Shape2036);
+ case 2037:
+ return nameof(Shape2037);
+ case 2038:
+ return nameof(Shape2038);
+ case 2039:
+ return nameof(Shape2039);
+ case 2040:
+ return nameof(Shape2040);
+ case 2041:
+ return nameof(Shape2041);
+ case 2042:
+ return nameof(Shape2042);
+ case 2043:
+ return nameof(Shape2043);
+ case 2044:
+ return nameof(Shape2044);
+ case 2045:
+ return nameof(Shape2045);
+ case 2046:
+ return nameof(Shape2046);
+ case 2047:
+ return nameof(Shape2047);
+ case 2048:
+ return nameof(Shape2048);
+ }
+ throw new IndexOutOfRangeException();
+ }
+ #endregion
+
+ #region private
+ private Mesh _mesh;
+ private JobHandle _jobHandle;
+ private NativeArray _blendShapeVertices;
+ private NativeArray _originalVertices;
+ private NativeArray _modifiedVertices;
+ private NativeArray _weights;
+ private NativeArray _frameWeights;
+ #endregion
+
+ ///
+ /// Creates the internal player structures based on the given GeometryGroup and BlendShapeKeys passed in.
+ ///
+ /// The GeometryGroup containing the BlendShapeKeys.
+ /// The BlendShapeKeys.
+ public void Setup(IGeometryGroup geometryGroup, List blendShapeKeys)
+ {
+ if (blendShapeKeys.Count > MaxBlendShapes)
+ {
+ throw new IndexOutOfRangeException();
+ }
+ _mesh = geometryGroup.Mesh;
+ _weights = new NativeArray(blendShapeKeys.Count, Allocator.Persistent);
+ _frameWeights = new NativeArray(blendShapeKeys.Count, Allocator.Persistent);
+ _blendShapeVertices = new NativeArray(blendShapeKeys.Count * geometryGroup.VerticesDataCount, Allocator.Persistent);
+ var positionIndex = 0;
+ for (var i = 0; i < blendShapeKeys.Count; i++)
+ {
+ var blendShapeKey = blendShapeKeys[i];
+ foreach (var originalVertexIndex in geometryGroup.OriginalVertexIndices)
+ {
+ if (blendShapeKey.IndexMap.TryGetValue(originalVertexIndex, out var index))
+ {
+ _blendShapeVertices[positionIndex] = blendShapeKey.Vertices[index];
+ }
+ positionIndex++;
+ }
+ _frameWeights[i] = blendShapeKey.FrameWeight;
+ }
+ _originalVertices = new NativeArray(geometryGroup.VerticesDataCount, Allocator.Persistent);
+ for (var i = 0; i < geometryGroup.VerticesDataCount; i++)
+ {
+ _originalVertices[i] = geometryGroup.Positions[i];
+ }
+ _modifiedVertices = new NativeArray(geometryGroup.VerticesDataCount, Allocator.Persistent);
+ }
+
+ private void OnDestroy()
+ {
+ _weights.Dispose();
+ _frameWeights.Dispose();
+ _blendShapeVertices.Dispose();
+ _originalVertices.Dispose();
+ _modifiedVertices.Dispose();
+ }
+
+ private void Update()
+ {
+ _jobHandle = new BlendShapePlayerJob(_blendShapeVertices, _originalVertices, _modifiedVertices, _weights, _frameWeights).Schedule(_modifiedVertices.Length, 4);
+ _jobHandle.Complete();
+ for (var i = 0; i < _weights.Length; i++)
+ {
+ _weights[i] = GetFieldValue(i);
+ }
+ _mesh.SetVertices(_modifiedVertices);
+ }
+ }
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs.meta
new file mode 100644
index 00000000..3b23c364
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: f51fddb76e3c859469ed7825dd67402c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayer.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs
new file mode 100644
index 00000000..4c900e3a
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs
@@ -0,0 +1,59 @@
+using Unity.Collections;
+using Unity.Jobs;
+using UnityEngine;
+
+namespace TriLibCore.BlendShapePlayer
+{
+ ///
+ /// Represents a Job that plays BlendShapeKeys efficiently.
+ ///
+ public struct BlendShapePlayerJob : IJobParallelFor
+ {
+ [ReadOnly]
+ private NativeArray _blendShapeVertices;
+ [ReadOnly]
+ private NativeArray _originalVertices;
+ [ReadOnly]
+ private NativeArray _weights;
+ [ReadOnly]
+ private NativeArray _frameWeights;
+ private NativeArray _modifiedVertices;
+
+ ///
+ /// Creates the BlendShapePlayer job.
+ ///
+ /// The list of all BlendShapeKey vertices.
+ /// The list of the source Mesh original vertices.
+ /// The list of the source Mesh modified vertices.
+ /// The list of BlendShapeKey current weights.
+ /// The list of BlendShapeKey maximum weights.
+ public BlendShapePlayerJob(NativeArray blendShapeVertices, NativeArray originalVertices, NativeArray modifiedVertices, NativeArray weights, NativeArray frameWeights)
+ {
+ _blendShapeVertices = blendShapeVertices;
+ _originalVertices = originalVertices;
+ _modifiedVertices = modifiedVertices;
+ _weights = weights;
+ _frameWeights = frameWeights;
+ }
+
+ ///
+ /// Processes the BlendShapeKeys and applies the results to the modified vertices list.
+ ///
+ ///
+ public void Execute(int index)
+ {
+ _modifiedVertices[index] = _originalVertices[index];
+ for (var weightIndex = 0; weightIndex < _weights.Length; weightIndex++)
+ {
+ var weight = _weights[weightIndex];
+ if (weight == 0f)
+ {
+ continue;
+ }
+ var frameWeight = _frameWeights[weightIndex];
+ weight = frameWeight == 0f ? 0f : weight / frameWeight;
+ _modifiedVertices[index] += _blendShapeVertices[weightIndex * _originalVertices.Length + index] * weight;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs.meta
new file mode 100644
index 00000000..31bcc073
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: 43e0b43d9deddfe47b0adcc048fbe5c1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerJob.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs
new file mode 100644
index 00000000..2130ca49
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs
@@ -0,0 +1,46 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using TriLibCore.Interfaces;
+using TriLibCore.Mappers;
+
+namespace TriLibCore.BlendShapePlayer
+{
+ ///
+ /// A specialized that creates and configures a
+ /// component for the specified GameObject.
+ /// The assigns blend shape keys and sets up animation curve mapping
+ /// for blend shapes based on their index.
+ ///
+ [CreateAssetMenu(menuName = "TriLib/Mappers/BlendShape/BlendShape Player Mapper", fileName = "BlendShapePlayerMapper")]
+ public class BlendShapePlayerMapper : BlendShapeMapper
+ {
+ ///
+ ///
+ /// This method adds a component to the provided ,
+ /// and calls its method to initialize it with
+ /// the given and .
+ ///
+ public override void Setup(AssetLoaderContext assetLoaderContext, IGeometryGroup geometryGroup, GameObject meshGameObject, List blendShapeKeys)
+ {
+ var blendShapePlayer = meshGameObject.AddComponent();
+ blendShapePlayer.Setup(geometryGroup, blendShapeKeys);
+ }
+
+ ///
+ ///
+ /// Maps a blend shape key index to an animation curve property name by delegating the lookup
+ /// to .
+ ///
+ public override string MapAnimationCurve(AssetLoaderContext assetLoaderContext, int blendShapeIndex)
+ {
+ return BlendShapePlayer.GetPropertyName(blendShapeIndex);
+ }
+
+ ///
+ ///
+ /// Returns the of the source component used for animation curve mapping, which is .
+ ///
+ public override Type AnimationCurveSourceType => typeof(BlendShapePlayer);
+ }
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs.meta
new file mode 100644
index 00000000..552bc79d
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs.meta
@@ -0,0 +1,18 @@
+fileFormatVersion: 2
+guid: ecaea67d88087cb4f917bf27fdd0ebd3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibBlendShapePlayer/Scripts/BlendShapePlayerMapper.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt
index 8443a151..f258b5a7 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt
@@ -1,12 +1,13 @@
-- TriLib is not a Model exporter.
-- The FBX Importer does not import multiple texture layers yet.
-- The FBX Importer can't load models created before FBX SDK 2012.
-- FBX physical cameras aren't fully supported yet.
-- 3MF Beam Lattice format is not supported yet.
+- TriLib is not a model exporter.
+- TriLib cannot import generic or humanoid animations. It only supports legacy animation clips
+- The FBX importer does not support multiple texture layers yet.
+- The FBX importer cannot load models created before FBX SDK 2012.
+- The glTF2 importer does not support the EXT_meshopt_compression extension.
+- The glTF2 Draco importer does not support skinned meshes.
+- The 3MF importer does not support the Production extension.
+- The DAE importer has object transform issues.
+- FBX physical cameras are not fully supported yet.
+- The 3MF Beam Lattice format is not supported yet.
- 3MF PBR Specular materials are not supported yet.
-- Blend-shape normals and tangents are not imported yet. They are instead, calculated.
-- The AssetViewer normals debug view has issues when the model has no normal textures.
-- TriLib can't import generic or humanoid animations. It only supports legacy animation clips.
-Regression issues (working on a fix):
-- glTF2 Draco importer has issues
-- DAE importer has issues
\ No newline at end of file
+- Blend-shape normals and tangents are not imported yet; they are calculated instead.
+- The AssetViewer normals debug view has issues when the model lacks normal textures.
\ No newline at end of file
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt.meta
index 80a40cf7..9ec88bc8 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/KnownIssues.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/AndroidNativeFilePicker.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/AndroidNativeFilePicker.txt.meta
index c8df9c70..73f68ade 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/AndroidNativeFilePicker.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/AndroidNativeFilePicker.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/AndroidNativeFilePicker.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/IxMilia.ThreeMf.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/IxMilia.ThreeMf.txt.meta
index aca23aeb..143ae060 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/IxMilia.ThreeMf.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/IxMilia.ThreeMf.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/IxMilia.ThreeMf.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/LibTessDotNet.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/LibTessDotNet.txt.meta
index 253b8d4b..b7c68d24 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/LibTessDotNet.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/LibTessDotNet.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/LibTessDotNet.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/OpenSans.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/OpenSans.txt.meta
index 81e3b0d3..ba213e4e 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/OpenSans.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/OpenSans.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/OpenSans.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/PCX.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/PCX.txt.meta
index 64a4c97c..a1e2efb8 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/PCX.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/PCX.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/PCX.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/SharpZipLib.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/SharpZipLib.txt.meta
index 50712b8c..b7db279c 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/SharpZipLib.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/SharpZipLib.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/SharpZipLib.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/StandaloneFileBrowser.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/StandaloneFileBrowser.txt.meta
index e7941e85..9c610182 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/StandaloneFileBrowser.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/StandaloneFileBrowser.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/StandaloneFileBrowser.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/draco.txt.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/draco.txt.meta
index 00681c9e..bdc72c22 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/draco.txt.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/draco.txt.meta
@@ -5,3 +5,10 @@ TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Licenses/draco.txt
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/ByNameAnimatorOverrideAnimationClipMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/ByNameAnimatorOverrideAnimationClipMapper.asset.meta
index 513589b6..368edd38 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/ByNameAnimatorOverrideAnimationClipMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/ByNameAnimatorOverrideAnimationClipMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/ByNameAnimatorOverrideAnimationClipMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/SimpleAnimationPlayerAnimationClipMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/SimpleAnimationPlayerAnimationClipMapper.asset.meta
index 10e05d6e..5815d631 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/SimpleAnimationPlayerAnimationClipMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/SimpleAnimationPlayerAnimationClipMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/AnimationClip/SimpleAnimationPlayerAnimationClipMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset
index a615a96a..640b98bb 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset
@@ -65,6 +65,7 @@ MonoBehaviour:
axisLength: 0
BoneNames:
- Spine
+ - Spine_01
- HumanBone: 0
HumanLimit:
useDefaultValues: 1
@@ -87,6 +88,7 @@ MonoBehaviour:
- LeftShoulder
- L Clavicle
- L_Clavicle
+ - Clavicle_L
- HumanBone: 13
HumanLimit:
useDefaultValues: 1
@@ -98,6 +100,7 @@ MonoBehaviour:
- LeftArm
- L UpperArm
- L_UpperArm
+ - UpperArm_L
- HumanBone: 15
HumanLimit:
useDefaultValues: 1
@@ -109,6 +112,7 @@ MonoBehaviour:
- LeftForeArm
- L Forearm
- L_Forearm
+ - LowerArm_L
- HumanBone: 17
HumanLimit:
useDefaultValues: 1
@@ -121,6 +125,7 @@ MonoBehaviour:
- L Hand
- L_Hand
- LeftWrist
+ - Hand_L
- HumanBone: 12
HumanLimit:
useDefaultValues: 1
@@ -132,6 +137,7 @@ MonoBehaviour:
- RightShoulder
- R Clavicle
- R_Clavicle
+ - Clavicle_R
- HumanBone: 14
HumanLimit:
useDefaultValues: 1
@@ -143,6 +149,7 @@ MonoBehaviour:
- RightArm
- R UpperArm
- R_UpperArm
+ - UpperArm_R
- HumanBone: 16
HumanLimit:
useDefaultValues: 1
@@ -154,6 +161,7 @@ MonoBehaviour:
- RightForeArm
- R Forearm
- R_Forearm
+ - LowerArm_R
- HumanBone: 18
HumanLimit:
useDefaultValues: 1
@@ -166,6 +174,7 @@ MonoBehaviour:
- R Hand
- R_Hand
- RightWrist
+ - Hand_R
- HumanBone: 1
HumanLimit:
useDefaultValues: 1
@@ -177,6 +186,7 @@ MonoBehaviour:
- LeftUpLeg
- L Thigh
- L_Thigh
+ - Thigh_L
- HumanBone: 3
HumanLimit:
useDefaultValues: 1
@@ -188,6 +198,7 @@ MonoBehaviour:
- LeftLeg
- L Calf
- L_Calf
+ - Calf_L
- HumanBone: 5
HumanLimit:
useDefaultValues: 1
@@ -199,6 +210,7 @@ MonoBehaviour:
- LeftFoot
- L Foot
- L_Foot
+ - Foot_L
- HumanBone: 19
HumanLimit:
useDefaultValues: 1
@@ -221,6 +233,7 @@ MonoBehaviour:
- RightUpLeg
- R Thigh
- R_Thigh
+ - Thigh_R
- HumanBone: 4
HumanLimit:
useDefaultValues: 1
@@ -232,6 +245,7 @@ MonoBehaviour:
- RightLeg
- R Calf
- R_Calf
+ - Calf_R
- HumanBone: 6
HumanLimit:
useDefaultValues: 1
@@ -243,6 +257,7 @@ MonoBehaviour:
- RightFoot
- R Foot
- R_Foot
+ - Foot_R
- HumanBone: 20
HumanLimit:
useDefaultValues: 1
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset.meta
index 2b5cc7f2..caca7223 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Avatar/MixamoAndBipedByNameHumanoidAvatarMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/LipSync/PhonemeAndVisemeByNameLipSyncMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/LipSync/PhonemeAndVisemeByNameLipSyncMapper.asset.meta
index 885dfb45..69ab95b4 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/LipSync/PhonemeAndVisemeByNameLipSyncMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/LipSync/PhonemeAndVisemeByNameLipSyncMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/LipSync/PhonemeAndVisemeByNameLipSyncMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset
index fe92c761..d04c70b4 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset
@@ -13,4 +13,5 @@ MonoBehaviour:
m_Name: HDRPMaterialMapper
m_EditorClassIdentifier:
CheckingOrder: 0
- ForceStandardMaterial: 0
+ DisableAlpha: 0
+ ForceShaderVariantCollection: 0
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset.meta
index 498d03ad..ed77ee03 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: 83e5a79530cae7742884998f463e4c01
+guid: b578004a685591f468a0682a9d305877
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 0
+ mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/HDRPMaterialMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset
index 58566b6f..98748c31 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset
@@ -13,4 +13,5 @@ MonoBehaviour:
m_Name: StandardMaterialMapper
m_EditorClassIdentifier:
CheckingOrder: 0
- ForceStandardMaterial: 0
+ DisableAlpha: 0
+ ForceShaderVariantCollection: 0
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset.meta
index cca3b90d..c342a213 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/StandardMaterialMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset
index c03fc696..dcc8b747 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset
@@ -13,4 +13,4 @@ MonoBehaviour:
m_Name: UniversalRPMaterialMapper
m_EditorClassIdentifier:
CheckingOrder: 0
- ForceStandardMaterial: 0
+ DisableAlpha: 0
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset.meta
index 0d357453..f6bcf461 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset.meta
@@ -1,8 +1,15 @@
fileFormatVersion: 2
-guid: 1b753b3b79b6a1a4c978d548a1194f2c
+guid: 40b3613c1902e9948b5e9cd66a224971
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 0
+ mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/Material/UniversalRPMaterialMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByBonesRootBoneMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByBonesRootBoneMapper.asset.meta
index 56cd9d0e..1953f4b3 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByBonesRootBoneMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByBonesRootBoneMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByBonesRootBoneMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByNameRootBoneMapper.asset.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByNameRootBoneMapper.asset.meta
index a0883127..f6bb0ccf 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByNameRootBoneMapper.asset.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByNameRootBoneMapper.asset.meta
@@ -6,3 +6,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/RootBone/ByNameRootBoneMapper.asset
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/TriLibMappersPlaceholder.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/TriLibMappersPlaceholder.meta
index 8114e9f4..62198ea5 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/TriLibMappersPlaceholder.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/TriLibMappersPlaceholder.meta
@@ -5,3 +5,10 @@ DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Mappers/TriLibMappersPlaceholder
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants
new file mode 100644
index 00000000..00e980f4
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants
@@ -0,0 +1,37 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!200 &20000000
+ShaderVariantCollection:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: StandardShaderVariantCollection
+ m_Shaders:
+ - first: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+ second:
+ variants:
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING
+ _ALPHABLEND_ON _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON LIGHTMAP_ON _ALPHABLEND_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL DYNAMICLIGHTMAP_ON _ALPHABLEND_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON LIGHTMAP_SHADOW_MIXING _ALPHABLEND_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON LIGHTPROBE_SH _ALPHABLEND_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTMAP_ON _ALPHABLEND_ON _METALLICGLOSSMAP _NORMALMAP
+ _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTPROBE_SH SHADOWS_SHADOWMASK _ALPHABLEND_ON _METALLICGLOSSMAP
+ _NORMALMAP _PARALLAXMAP
+ passType: 4
+ - keywords: DIRECTIONAL LIGHTPROBE_SH _ALPHABLEND_ON _METALLICGLOSSMAP _NORMALMAP
+ _PARALLAXMAP
+ passType: 4
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants.meta
new file mode 100644
index 00000000..e7ecd56d
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: 4e605f9193fbf224aa3a74fae17b5fe9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 20000000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/StandardShaderVariantCollection.shadervariants
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat
index 81e39701..1d7005c5 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat
@@ -2,24 +2,20 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 8
+ serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TriLibStandardLoading
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
- m_Parent: {fileID: 0}
- m_ModifiedSerializedProperties: 0
- m_ValidKeywords: []
- m_InvalidKeywords: []
+ m_ShaderKeywords:
m_LightmapFlags: 4
- m_EnableInstancingVariants: 1
+ m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
- m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -59,7 +55,6 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
@@ -80,5 +75,3 @@ Material:
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- m_BuildTextureStacks: []
- m_AllowLocking: 1
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat.meta
index 7f001f41..7f545d87 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat.meta
@@ -8,3 +8,10 @@ NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Materials/Standard/TriLibStandardLoading.mat
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras.meta
new file mode 100644
index 00000000..50352109
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bdaf8d2c4217eb846a6cbef7250ed9d4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader
new file mode 100644
index 00000000..5ec9798e
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader
@@ -0,0 +1,98 @@
+Shader "Hidden/TriLib/PointRenderer"
+{
+ Properties
+ {
+ _MainTex ("Texture", 2D) = "white" {}
+ }
+ SubShader
+ {
+ Tags { "RenderType"="Opaque" }
+ LOD 100
+ Cull Off
+
+ Pass
+ {
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ struct appdata
+ {
+ float2 id : TEXCOORD0;
+ };
+
+ struct v2f
+ {
+ float4 vertex : SV_POSITION;
+ float4 color : TEXCOORD0;
+ };
+
+ Texture2D _ColorTex;
+ Texture2D _PositionTex;
+ uint _TextureResolution;
+ float _PointSize;
+ float _AspectRatio;
+
+ static float2 _Offsets[4] = {
+ {-1, -1 },
+ {-1, 1 },
+ {1, 1 },
+ {1, -1 }
+ };
+
+ v2f vert (appdata v)
+ {
+ uint vertexID = floor(v.id.x);
+
+ uint baseVertexID;
+ uint cornerVertexID;
+ if (vertexID == 0)
+ {
+ baseVertexID = 0;
+ cornerVertexID = 0;
+ }
+ else
+ {
+ baseVertexID = vertexID / 4;
+ cornerVertexID = vertexID % 4;
+ }
+
+ uint3 dataCoordinate = 0;
+ if (baseVertexID == 0)
+ {
+ dataCoordinate = 0;
+ }
+ else
+ {
+ dataCoordinate.x = baseVertexID % _TextureResolution;
+ dataCoordinate.y = baseVertexID / _TextureResolution;
+ }
+
+ float3 sourcePosition = _PositionTex.Load(dataCoordinate).xyz;
+
+ float4 clipPosition = UnityObjectToClipPos(sourcePosition);
+
+ float2 adjustedOffset = _Offsets[cornerVertexID];
+ adjustedOffset.x *= _PointSize / _AspectRatio;
+ adjustedOffset.y *= _PointSize;
+
+ clipPosition.xy += adjustedOffset;
+
+ float4 color = _ColorTex.Load(dataCoordinate);
+
+ v2f o;
+ o.vertex = clipPosition;
+ o.color = color;
+ return o;
+ }
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ return i.color;
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader.meta
new file mode 100644
index 00000000..b6c161d2
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 9333d7c29895ddf4c9a8c94b3304347b
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Extras/PointRenderer.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/StandardAlpha.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/StandardAlpha.shader.meta
index eb2e19e1..229c1b2b 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/StandardAlpha.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/StandardAlpha.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/StandardAlpha.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ApplyTransparency.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ApplyTransparency.shader.meta
index 62752177..2f2f17c2 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ApplyTransparency.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ApplyTransparency.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ApplyTransparency.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader
index eb3b9439..7bd7446c 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader
@@ -111,7 +111,8 @@
glossiness *= GetGlossiness();
}
}
- else {
+ else
+ {
glossiness = GetGlossiness();
}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader.meta
index db2e70b3..17e7cc6e 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/BuildMetallicTexture.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ExtractChannelData.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ExtractChannelData.shader.meta
index b598ea11..8a172561 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ExtractChannelData.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ExtractChannelData.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/ExtractChannelData.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/FixNormalMap.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/FixNormalMap.shader.meta
index bc58928c..389d7698 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/FixNormalMap.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/FixNormalMap.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/FixNormalMap.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannelData.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannelData.shader.meta
index 260ebfeb..6ae222e8 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannelData.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannelData.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannelData.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannels.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannels.shader.meta
index 4c49fd0b..11e92302 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannels.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannels.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/InvertChannels.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader
index 37955353..68377fd1 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader
@@ -35,47 +35,50 @@
sampler2D _DiffuseTexture;
sampler2D _SpecularTexture;
+ float4 _DiffuseColor;
+ float4 _SpecularColor;
+ float _Glossiness;
+ int _OutputBaseColor;
- float getPerceivedBrightness(float3 linearColor)
+ void specularToMetalness(float4 diffuseBase, float3 specularBase, out float4 baseColor, out float metalness)
{
- float r = linearColor.x;
- float b = linearColor.y;
- float g = linearColor.z;
- return sqrt(0.299 * r * r + 0.587 * g * g + 0.114 * b * b);
- }
-
- float solveMetallic(float diffuseBrightness, float specularBrightness, float oneMinusSpecularStrength) {
- const float3 dielectricSpecular = float3(0.04, 0.04, 0.04);
- const float epsilon = 1e-6;
- specularBrightness = max(specularBrightness, dielectricSpecular.x);
- float a = dielectricSpecular.x;
- float b = diffuseBrightness * oneMinusSpecularStrength / (1.0 - dielectricSpecular.x) + specularBrightness - 2.0 * dielectricSpecular.x;
- float c = dielectricSpecular.x - specularBrightness;
- float D = b * b - 4.0 * a * c;
- return clamp((-b + sqrt(D)) / (2.0 * a), 0.0, 1.0);
+ float3 dielectricSpecular = 0.04;
+ float epsilon = 1e-5;
+ float diffuseBrightness = dot(diffuseBase.xyz, float3(0.2126, 0.7152, 0.0722));
+ float specularBrightness = dot(specularBase, float3(0.2126, 0.7152, 0.0722));
+ float oneMinusSpecularStrength = 1.0 - max(max(specularBase.r, specularBase.g), specularBase.b);
+ if (specularBrightness < dielectricSpecular.r)
+ {
+ metalness = 0.0;
+ }
+ else
+ {
+ float a = dielectricSpecular.r;
+ float b = diffuseBrightness * oneMinusSpecularStrength / (1.0 - dielectricSpecular.r) + specularBrightness - 2.0 * dielectricSpecular.r;
+ float c = dielectricSpecular.r - specularBrightness;
+ float D = b * b - 4.0 * a * c;
+ metalness = saturate((-b + sqrt(D)) / (2.0 * a));
+ }
+ float3 baseColorFromDiffuse = diffuseBase.xyz * (oneMinusSpecularStrength / (1.0 - dielectricSpecular.r) / max(1.0 - metalness, epsilon));
+ float3 baseColorFromSpecular = (specularBase - dielectricSpecular * (1.0 - metalness)) / max(metalness, epsilon);
+ baseColor = float4(lerp(baseColorFromDiffuse, baseColorFromSpecular, metalness * metalness), diffuseBase.a);
+ baseColor = saturate(baseColor);
}
float4 frag(v2f i) : SV_Target
{
- const float3 dielectricSpecular = float3(0.04,0.04,0.04);
- const float epsilon = 1e-6;
-
- float4 diffuse = tex2D(_DiffuseTexture, i.uv);
- float3 specular = tex2D(_SpecularTexture, i.uv).xyz;
-
- float diffuseBrightness = getPerceivedBrightness(diffuse);
- float specularBrightness = getPerceivedBrightness(specular);
-
- float specularStrength = max(max(specular.x, specular.y), specular.z);
- float oneMinusSpecularStrength = 1.0 - specularStrength;
-
- float metallic = solveMetallic(diffuseBrightness, specularBrightness, oneMinusSpecularStrength);
-
- float3 baseColorFromDiffuse = diffuse * oneMinusSpecularStrength / ((1.0 - dielectricSpecular.x) * max(1.0 - metallic, epsilon));
- float3 baseColorFromSpecular = (specular - dielectricSpecular * (1.0 - metallic)) / max(metallic, epsilon);
- float3 baseColor = clamp(lerp(baseColorFromDiffuse, baseColorFromSpecular, metallic * metallic), 0.0, 1.0);
-
- return float4(baseColor, diffuse.w);
+ float4 diffuseBase = tex2D(_DiffuseTexture, i.uv) * _DiffuseColor;
+ float4 specularAndGlossiness = tex2D(_SpecularTexture, i.uv);
+ float3 specularBase = specularAndGlossiness.xyz * _SpecularColor.xyz;
+ float glossiness = max(_Glossiness, specularAndGlossiness.w);
+ float4 baseColor;
+ float metalness;
+ specularToMetalness(diffuseBase, specularBase, baseColor, metalness);
+ if (_OutputBaseColor)
+ {
+ return baseColor;
+ }
+ return float4(metalness, metalness, metalness, glossiness);
}
ENDCG
}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader.meta
index bbee0911..889954c7 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SpecularDiffuseToAlbedo.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SwapChannelData.shader.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SwapChannelData.shader.meta
index 1b9cc0ef..e8ea9240 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SwapChannelData.shader.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SwapChannelData.shader.meta
@@ -7,3 +7,10 @@ ShaderImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Shaders/Utility/SwapChannelData.shader
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBlack.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBlack.png.meta
index c3095438..d22ed61a 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBlack.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBlack.png.meta
@@ -138,3 +138,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBlack.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBump.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBump.png.meta
index e59da159..cadeb1ec 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBump.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBump.png.meta
@@ -138,3 +138,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibBump.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png
new file mode 100644
index 00000000..f83950bc
Binary files /dev/null and b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png differ
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png.meta
new file mode 100644
index 00000000..6631affb
--- /dev/null
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: c1216029cbe3c1b4cb44aacf4f5759f3
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Server
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Windows Store Apps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGreen.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGrey.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGrey.png.meta
index 1de7d739..af61577b 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGrey.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGrey.png.meta
@@ -138,3 +138,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibGrey.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparent.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparent.png.meta
index ef6a96ba..ed1d6c9b 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparent.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparent.png.meta
@@ -138,3 +138,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparent.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparentWhite.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparentWhite.png.meta
index 5255c5f8..4a64ad86 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparentWhite.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparentWhite.png.meta
@@ -106,3 +106,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibTransparentWhite.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibWhite.png.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibWhite.png.meta
index 2a2b01e1..ed993819 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibWhite.png.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibWhite.png.meta
@@ -138,3 +138,10 @@ TextureImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/Textures/TriLibWhite.png
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibMainFolderPlaceholder.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibMainFolderPlaceholder.meta
index b9e574fe..9a2911cf 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibMainFolderPlaceholder.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibMainFolderPlaceholder.meta
@@ -5,3 +5,10 @@ DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibMainFolderPlaceholder
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibSettings.asset b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibSettings.asset
index 56b5f929..ffdb3cf8 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibSettings.asset
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Resources/TriLibSettings.asset
@@ -14,6 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
_dictionaryBoolKeys:
- StandardMaterialMapper
+ - UniversalRPMaterialMapper
-
-
-
@@ -76,6 +77,5 @@ MonoBehaviour:
-
-
-
- -
- _dictionaryBoolValues: 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- _settingsCount: 1
+ _dictionaryBoolValues: 00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ _settingsCount: 2
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs
index f6c8b8ba..29d9af91 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs
@@ -4,76 +4,190 @@ using UnityEngine.Networking;
namespace TriLibCore
{
- /// Represents a class to download and load Models.
+ ///
+ /// Provides functionality for downloading 3D model data from a specified URI and loading
+ /// it into Unity. This class supports various HTTP methods (GET, POST, PUT, DELETE, HEAD)
+ /// and offers optional asynchronous behavior. The downloaded model can be placed within
+ /// a specified hierarchy, and can handle .zip archives if requested.
+ ///
public class AssetDownloader
{
- /// Represents an HTTP Request method.
+ ///
+ /// Represents the HTTP request methods supported by .
+ ///
public enum HttpRequestMethod
{
- /// The HTTP GET method.
+ ///
+ /// The HTTP GET method, used to request data from a specified resource.
+ ///
Get,
- /// The HTTP POST method.
+
+ ///
+ /// The HTTP POST method, used to submit data to be processed to a specified resource.
+ ///
Post,
- /// The HTTP PUT method.
+
+ ///
+ /// The HTTP PUT method, used to upload or replace a resource on the server.
+ ///
Put,
- /// The HTTP DELETE method.
+
+ ///
+ /// The HTTP DELETE method, used to delete the specified resource.
+ ///
Delete,
- /// The HTTP HEAD method.
+
+ ///
+ /// The HTTP HEAD method, used to request only the headers from the server for a resource.
+ ///
Head
}
- /// Creates a Unity Web Request from the given parameters.
- /// The Request URI (URL).
- /// The HTTP Request method to use.
- /// The Custom Data that was sent along the Request.
- /// The Request timeout in seconds).
- /// The created unity web request.
- public static UnityWebRequest CreateWebRequest(string uri, HttpRequestMethod httpRequestMethod = HttpRequestMethod.Get, string data = null, int timeout = 2000)
+ ///
+ /// Creates a new based on the specified parameters, allowing
+ /// you to configure the request method, data, and timeout. The returned request can be used
+ /// to download or upload data via HTTP.
+ ///
+ /// The URI (URL) to which the request is sent.
+ ///
+ /// The HTTP method to use (e.g., , , etc.).
+ /// Defaults to .
+ ///
+ ///
+ /// Optional data or parameters to include in the request. For example, in a GET request,
+ /// this data will be appended as query parameters.
+ ///
+ ///
+ /// The request timeout in seconds. Defaults to 2000 seconds.
+ ///
+ ///
+ /// A configured instance with the specified method, data,
+ /// and timeout settings.
+ ///
+ public static UnityWebRequest CreateWebRequest(
+ string uri,
+ HttpRequestMethod httpRequestMethod = HttpRequestMethod.Get,
+ string data = null,
+ int timeout = 2000)
{
UnityWebRequest unityWebRequest;
switch (httpRequestMethod)
{
case HttpRequestMethod.Post:
-#if UNITY_2023_1_OR_NEWER
- unityWebRequest = UnityWebRequest.PostWwwForm(uri, data);
-#else
+#if UNITY_2022_2_OR_NEWER
unityWebRequest = UnityWebRequest.PostWwwForm(uri, data);
+#else
+ unityWebRequest = UnityWebRequest.Post(uri, data);
#endif
break;
case HttpRequestMethod.Put:
unityWebRequest = UnityWebRequest.Put(uri, data);
break;
case HttpRequestMethod.Delete:
- unityWebRequest = UnityWebRequest.Delete(data != null ? $"{uri}?{data}" : uri);
+ unityWebRequest = UnityWebRequest.Delete(
+ data != null ? $"{uri}?{data}" : uri
+ );
break;
case HttpRequestMethod.Head:
- unityWebRequest = UnityWebRequest.Head(data != null ? $"{uri}?{data}" : uri);
+ unityWebRequest = UnityWebRequest.Head(
+ data != null ? $"{uri}?{data}" : uri
+ );
break;
default:
- unityWebRequest = UnityWebRequest.Get(data != null ? $"{uri}?{data}" : uri);
+ unityWebRequest = UnityWebRequest.Get(
+ data != null ? $"{uri}?{data}" : uri
+ );
break;
}
unityWebRequest.timeout = timeout;
return unityWebRequest;
}
- /// Loads a Model from the given URI Asynchronously (Accepts zip files).
- /// The Unity Web Request used to load the Model. You can use the CreateWebRequest method to create a new Unity Web Request or pass your instance.
- /// The Method to call on the Main Thread when the Model is loaded but resources may still pending.
- /// The Method to call on the Main Thread when the Model and resources are loaded.
- /// The Method to call when the Model loading progress changes.
- /// The Method to call on the Main Thread when any error occurs.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// The extension of the URI Model or the Model inside the Zip file.
- /// Pass true if your file is a Zip file.
- /// Turn on this field to avoid loading the model immediately and chain the Tasks.
- /// The AssetLoaderContext used to load the model.
- public static Coroutine LoadModelFromUri(UnityWebRequest unityWebRequest, Action onLoad, Action onMaterialsLoad, Action onProgress, Action onError = null, GameObject wrapperGameObject = null, AssetLoaderOptions assetLoaderOptions = null, object customContextData = null, string fileExtension = null, bool? isZipFile = null, bool haltTask = false)
+ ///
+ /// Initiates an asynchronous download of 3D model data from the specified ,
+ /// then loads the model (optionally including .zip extraction). The method returns a
+ /// which you can yield on or allow to run in the background.
+ /// Once the model is downloaded, TriLib’s will process the data
+ /// and create corresponding s, materials, and other resources.
+ ///
+ ///
+ /// The configured to download the model. You can create this request
+ /// using or provide a custom request.
+ ///
+ ///
+ /// A callback invoked on the main Unity thread once the model data has been read,
+ /// but before materials are fully loaded. This is useful for performing actions
+ /// immediately after the base model structure is available.
+ ///
+ ///
+ /// A callback invoked on the main Unity thread once all resources (textures, shaders, etc.)
+ /// have been loaded. This indicates the final stage of model loading.
+ ///
+ ///
+ /// A callback invoked whenever the loading progress updates, with a float parameter
+ /// indicating progress (0 to 1).
+ ///
+ ///
+ /// A callback invoked on the main Unity thread if any error occurs during the download
+ /// or loading process.
+ ///
+ ///
+ /// An optional parent under which the loaded model's
+ /// will be placed. If null, the model is created at the root level.
+ ///
+ ///
+ /// The controlling how the model is processed,
+ /// including material, animation, and texture loading behaviors.
+ ///
+ ///
+ /// Optional custom data passed to the for use in the loading pipeline.
+ ///
+ ///
+ /// If known, specify the model file extension (e.g., ".fbx").
+ /// If the file is within a .zip, this should be the extension of the internal file.
+ ///
+ ///
+ /// Pass true if the file is a .zip, allowing TriLib to extract and process
+ /// the contained model. If null, TriLib will try to guess based on the .
+ ///
+ ///
+ /// If true, the loading tasks are created but not started immediately.
+ /// Use this to chain multiple tasks or delay the loading process.
+ ///
+ ///
+ /// A reference that represents the ongoing download and model loading
+ /// process. You can yield on it in a Unity coroutine or let it run asynchronously.
+ ///
+ public static Coroutine LoadModelFromUri(
+ UnityWebRequest unityWebRequest,
+ Action onLoad,
+ Action onMaterialsLoad,
+ Action onProgress,
+ Action onError = null,
+ GameObject wrapperGameObject = null,
+ AssetLoaderOptions assetLoaderOptions = null,
+ object customContextData = null,
+ string fileExtension = null,
+ bool? isZipFile = null,
+ bool haltTask = false)
{
+ // Create a temporary GameObject with an attached AssetDownloaderBehaviour
+ // to manage the coroutine lifecycle.
var assetDownloader = new GameObject("Asset Downloader").AddComponent();
- return assetDownloader.StartCoroutine(assetDownloader.DownloadAsset(unityWebRequest, onLoad, onMaterialsLoad, onProgress, wrapperGameObject, onError, assetLoaderOptions, customContextData, fileExtension, isZipFile));
+ return assetDownloader.StartCoroutine(
+ assetDownloader.DownloadAsset(
+ unityWebRequest,
+ onLoad,
+ onMaterialsLoad,
+ onProgress,
+ wrapperGameObject,
+ onError,
+ assetLoaderOptions,
+ customContextData,
+ fileExtension,
+ isZipFile
+ )
+ );
}
}
-}
\ No newline at end of file
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs.meta
index 8cf7c38f..28aee3de 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: f292082f03644d86bfd09849913c6598
-timeCreated: 1574628768
\ No newline at end of file
+timeCreated: 1574628768
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloader.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs
index 0652cfa0..f7e67c27 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs
@@ -8,80 +8,185 @@ using UnityEngine.Networking;
namespace TriLibCore
{
- /// Represents a class used to download Models with Coroutines used by the Asset Downloader.
+ ///
+ /// Provides coroutines for asynchronously downloading model data from a remote source,
+ /// then passing that data to TriLib’s or
+ /// for actual model loading. This component is spawned at runtime by
+ /// and automatically destroyed once
+ /// the download and loading processes finish.
+ ///
public class AssetDownloaderBehaviour : MonoBehaviour
{
///
- /// Unity web request instance used on this script.
+ /// Stores the used to download the model data.
///
private UnityWebRequest _unityWebRequest;
///
- /// Method to call when the model downloading progress changes.
+ /// References the callback method that is invoked to report loading progress.
+ /// The callback receives an and a
+ /// representing the current download or loading progress.
///
private Action _onProgress;
///
- /// Context used to load the model.
+ /// Holds the created after the model begins loading,
+ /// allowing further tracking or modification of the load state.
///
private AssetLoaderContext _assetLoaderContext;
- /// Downloads the Model using the given Request and options.
- /// The Unity Web Request used to load the Model. You can use the CreateWebRequest method to create a new Unity Web Request or pass your instance.
- /// The Method to call on the Main Thread when the Model is loaded but resources may still pending.
- /// The Method to call on the Main Thread when the Model and resources are loaded.
- /// The Method to call when the Model loading progress changes.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The Method to call on the Main Thread when any error occurs.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// The extension of the URI Model.
- /// Pass true if your file is a Zip file.
- /// The download coroutine enumerator.
- public IEnumerator DownloadAsset(UnityWebRequest unityWebRequest, Action onLoad, Action onMaterialsLoad, Action onProgress, GameObject wrapperGameObject, Action onError, AssetLoaderOptions assetLoaderOptions, object customContextData, string fileExtension, bool? isZipFile = null)
+ ///
+ /// Downloads the model data via the given , then
+ /// hands off the data to the appropriate loading method (
+ /// or ) based on file extension or
+ /// content type. Once completed, this is destroyed.
+ ///
+ ///
+ /// The object prepared for downloading the model data.
+ ///
+ ///
+ /// A callback invoked on the main thread once the core model data has been processed
+ /// (but before materials are fully loaded).
+ ///
+ ///
+ /// A callback invoked on the main thread once the model’s materials (textures, shaders, etc.)
+ /// have finished loading.
+ ///
+ ///
+ /// A callback invoked throughout the download and loading process, indicating progress
+ /// with a float in the range [0, 1].
+ ///
+ ///
+ /// An optional parent under which the loaded model's
+ /// is placed. Can be null for a root-level object.
+ ///
+ ///
+ /// A callback invoked if any error occurs during download or loading. Called on the main thread.
+ ///
+ ///
+ /// The controlling how the model is loaded (e.g., materials, textures, animations).
+ ///
+ ///
+ /// Optional custom data that can be stored in the
+ /// for reference in the loading pipeline.
+ ///
+ ///
+ /// The file extension for the model (e.g., ".fbx"), if known. If the file is
+ /// recognized as a .zip, this may be used for the internal file within the archive.
+ ///
+ ///
+ /// A boolean (or null) indicating whether the file is a .zip archive. If null,
+ /// the method infers this based on the Content-Type header or .
+ ///
+ ///
+ /// An that can be yielded in a Unity coroutine, controlling
+ /// the download process. Once the download completes and loading is triggered, this
+ /// object destroys itself via .
+ ///
+ public IEnumerator DownloadAsset(
+ UnityWebRequest unityWebRequest,
+ Action onLoad,
+ Action onMaterialsLoad,
+ Action onProgress,
+ GameObject wrapperGameObject,
+ Action onError,
+ AssetLoaderOptions assetLoaderOptions,
+ object customContextData,
+ string fileExtension,
+ bool? isZipFile = null)
{
_unityWebRequest = unityWebRequest;
_onProgress = onProgress;
+
+ // Begin the download request and wait for it to finish
yield return unityWebRequest.SendWebRequest();
+
try
{
+ // Check if the HTTP response indicates success
if (unityWebRequest.responseCode < 400)
{
+ // Convert the downloaded data to a MemoryStream for model loading
var memoryStream = new MemoryStream(_unityWebRequest.downloadHandler.data);
- var customDataDic = (object)CustomDataHelper.CreateCustomDataDictionaryWithData(new UriLoadCustomContextData
- {
- UnityWebRequest = _unityWebRequest
- });
+
+ // Create a custom data dictionary with the UnityWebRequest context
+ var customDataDic = (object)CustomDataHelper.CreateCustomDataDictionaryWithData(
+ new UriLoadCustomContextData
+ {
+ UnityWebRequest = _unityWebRequest
+ }
+ );
+
+ // Merge any user-provided custom context data
if (customContextData != null)
{
CustomDataHelper.SetCustomData(ref customDataDic, customContextData);
}
+
+ // Attempt to infer .zip status from the Content-Type header
var contentType = unityWebRequest.GetResponseHeader("Content-Type");
if (contentType != null && isZipFile == null)
{
- isZipFile = contentType.Contains("application/zip") || contentType.Contains("application/x-zip-compressed") || contentType.Contains("multipart/x-zip");
+ isZipFile = contentType.Contains("application/zip")
+ || contentType.Contains("application/x-zip-compressed")
+ || contentType.Contains("multipart/x-zip");
}
+
+ // Infer file extension if not given
if (!isZipFile.GetValueOrDefault() && string.IsNullOrWhiteSpace(fileExtension))
{
fileExtension = FileUtils.GetFileExtension(unityWebRequest.url);
}
+
+ // Load from .zip or from a regular file stream
if (isZipFile.GetValueOrDefault())
{
- _assetLoaderContext = AssetLoaderZip.LoadModelFromZipStream(memoryStream, onLoad, onMaterialsLoad, delegate (AssetLoaderContext assetLoaderContext, float progress) { onProgress?.Invoke(assetLoaderContext, 0.5f + progress * 0.5f); }, onError, wrapperGameObject, assetLoaderOptions, customDataDic, fileExtension);
+ _assetLoaderContext = AssetLoaderZip.LoadModelFromZipStream(
+ memoryStream,
+ onLoad,
+ onMaterialsLoad,
+ delegate (AssetLoaderContext assetLoaderContext, float progressValue)
+ {
+ onProgress?.Invoke(assetLoaderContext, 0.5f + progressValue * 0.5f);
+ },
+ onError,
+ wrapperGameObject,
+ assetLoaderOptions,
+ customDataDic,
+ fileExtension
+ );
}
else
{
- _assetLoaderContext = AssetLoader.LoadModelFromStream(memoryStream, null, fileExtension, onLoad, onMaterialsLoad, delegate (AssetLoaderContext assetLoaderContext, float progress) { onProgress?.Invoke(assetLoaderContext, 0.5f + progress * 0.5f); }, onError, wrapperGameObject, assetLoaderOptions, customDataDic);
+ _assetLoaderContext = AssetLoader.LoadModelFromStream(
+ memoryStream,
+ null,
+ fileExtension,
+ onLoad,
+ onMaterialsLoad,
+ delegate (AssetLoaderContext assetLoaderContext, float progressValue)
+ {
+ onProgress?.Invoke(assetLoaderContext, 0.5f + progressValue * 0.5f);
+ },
+ onError,
+ wrapperGameObject,
+ assetLoaderOptions,
+ customDataDic
+ );
}
}
else
{
- var exception = new Exception($"UnityWebRequest error:{unityWebRequest.error}, code:{unityWebRequest.responseCode}");
+ // Construct an exception with the error message and response code
+ var exception = new Exception(
+ $"UnityWebRequest error: {unityWebRequest.error}, code: {unityWebRequest.responseCode}"
+ );
throw exception;
}
}
catch (Exception exception)
{
+ // If an error callback is provided, wrap or forward the exception
if (onError != null)
{
var contextualizedError = exception as IContextualizedError;
@@ -89,16 +194,23 @@ namespace TriLibCore
}
else
{
+ // Otherwise, rethrow the exception
throw;
}
}
+
+ // Destroy the temporary GameObject once loading is complete or has failed
Destroy(gameObject);
}
- /// Updates the download progress.
+ ///
+ /// Called once per frame by Unity. Updates the current download progress in real time.
+ /// The progress value here represents the download portion (0–50% of overall loading),
+ /// while the remaining 50% is tracked as the model is parsed and processed by TriLib.
+ ///
private void Update()
{
_onProgress?.Invoke(_assetLoaderContext, _unityWebRequest.downloadProgress * 0.5F);
}
}
-}
\ No newline at end of file
+}
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs.meta b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs.meta
index 10c7add8..514e0a8d 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs.meta
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs.meta
@@ -1,3 +1,10 @@
fileFormatVersion: 2
guid: 18056423bcc840dbafa1c54d82120b83
-timeCreated: 1574628651
\ No newline at end of file
+timeCreated: 1574628651
+AssetOrigin:
+ serializedVersion: 1
+ productId: 157548
+ packageName: TriLib 2 - Model Loading Package
+ packageVersion: 2.5.5
+ assetPath: Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetDownloaderBehaviour.cs
+ uploadId: 752923
diff --git a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetLoader.cs b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetLoader.cs
index d48be8fd..118202c7 100644
--- a/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetLoader.cs
+++ b/Assets/Scripts/ExternalAssets/TriLib/TriLibCore/Scripts/AssetLoaders/AssetLoader.cs
@@ -11,6 +11,7 @@ using FileMode = System.IO.FileMode;
using HumanDescription = UnityEngine.HumanDescription;
using Object = UnityEngine.Object;
using System.Collections;
+using System.Runtime;
using TriLibCore.Extensions;
using TriLibCore.General;
using TriLibCore.Interfaces;
@@ -26,285 +27,49 @@ using UnityEditor;
#endif
namespace TriLibCore
{
- /// Represents the main class containing methods to load the Models.
- public static partial class AssetLoader
+ ///
+ /// Provides static methods for loading 3D models and related assets into Unity. This class includes
+ /// functionality for reading various file types or streams, creating mesh and material data, setting
+ /// up animations, configuring LODs, and more.
+ ///
+ public static class AssetLoader
{
///
- /// Asset Loader Options validation message.
- ///
- private const string ValidationMessage = "You can disable these validations in the Edit->Project Settings->TriLib menu.";
-
- ///
- /// Constant that defines the namespace used by TriLib Mappers.
+ /// The namespace used internally by TriLib Mappers.
///
private const string TriLibMappersNamespace = "TriLibCore.Mappers";
- /// Loads a Model from the given path asynchronously.
- /// The Model file path.
- /// The Method to call on the Main Thread when the Model is loaded but resources may still pending.
- /// The Method to call on the Main Thread when the Model and resources are loaded.
- /// The Method to call when the Model loading progress changes.
- /// The Method to call on the Main Thread when any error occurs.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// Turn on this field to avoid loading the model immediately and chain the Tasks.
- /// The method to call on the parallel Thread before the Unity objects are created.
- /// Indicates whether to load from a Zip file.
- /// The Asset Loader Context, containing Model loading information and the output Game Object.
- public static AssetLoaderContext LoadModelFromFile(string path,
- Action onLoad = null,
- Action onMaterialsLoad = null,
- Action onProgress = null,
- Action onError = null,
- GameObject wrapperGameObject = null,
- AssetLoaderOptions assetLoaderOptions = null,
- object customContextData = null,
- bool haltTask = false,
- Action onPreLoad = null,
- bool isZipFile = false)
- {
- var assetLoaderContext = new AssetLoaderContext
- {
- Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
- Filename = path,
- BasePath = FileUtils.GetFileDirectory(path),
- WrapperGameObject = wrapperGameObject,
- OnMaterialsLoad = onMaterialsLoad,
- OnLoad = onLoad,
- OnProgress = onProgress,
- HandleError = HandleError,
- OnError = onError,
- OnPreLoad = onPreLoad,
- CustomData = customContextData,
- HaltTasks = haltTask,
-#if (UNITY_WEBGL && !TRILIB_ENABLE_WEBGL_THREADS) || (UNITY_WSA && !TRILIB_ENABLE_UWP_THREADS) || TRILIB_FORCE_SYNC
- Async = false,
-#else
- Async = true,
-#endif
- IsZipFile = isZipFile,
- PersistentDataPath = Application.persistentDataPath
- };
- assetLoaderContext.Setup();
- LoadModelInternal(assetLoaderContext);
- return assetLoaderContext;
- }
-
- /// Loads a Model from the given Stream asynchronously.
- /// The Stream containing the Model data.
- /// The Model filename.
- /// The Model file extension. (Eg.: fbx)
- /// The Method to call on the Main Thread when the Model is loaded but resources may still pending.
- /// The Method to call on the Main Thread when the Model and resources are loaded.
- /// The Method to call when the Model loading progress changes.
- /// The Method to call on the Main Thread when any error occurs.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// Turn on this field to avoid loading the model immediately and chain the Tasks.
- /// The method to call on the parallel Thread before the Unity objects are created.
- /// Indicates whether to load from a Zip file.
- /// The Asset Loader Context, containing Model loading information and the output Game Object.
- public static AssetLoaderContext LoadModelFromStream(Stream stream,
- string filename = null,
- string fileExtension = null,
- Action onLoad = null,
- Action onMaterialsLoad = null,
- Action onProgress = null,
- Action onError = null,
- GameObject wrapperGameObject = null,
- AssetLoaderOptions assetLoaderOptions = null,
- object customContextData = null,
- bool haltTask = false,
- Action onPreLoad = null,
- bool isZipFile = false)
- {
- var assetLoaderContext = new AssetLoaderContext
- {
- Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
- Stream = stream,
- Filename = filename,
- FileExtension = fileExtension ?? FileUtils.GetFileExtension(filename, false),
- BasePath = FileUtils.GetFileDirectory(filename),
- WrapperGameObject = wrapperGameObject,
- OnMaterialsLoad = onMaterialsLoad,
- OnLoad = onLoad,
- OnProgress = onProgress,
- HandleError = HandleError,
- OnError = onError,
- OnPreLoad = onPreLoad,
- CustomData = customContextData,
- HaltTasks = haltTask,
-#if (UNITY_WEBGL && !TRILIB_ENABLE_WEBGL_THREADS) || (UNITY_WSA && !TRILIB_ENABLE_UWP_THREADS) || TRILIB_FORCE_SYNC
- Async = false,
-#else
- Async = true,
-#endif
- IsZipFile = isZipFile,
- PersistentDataPath = Application.persistentDataPath
- };
- assetLoaderContext.Setup();
- LoadModelInternal(assetLoaderContext);
- return assetLoaderContext;
- }
-
- /// Loads a Model from the given path synchronously.
- /// The Model file path.
- /// The Method to call on the Main Thread when any error occurs.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// Indicates whether to load from a Zip file.
- /// The Asset Loader Context, containing Model loading information and the output Game Object.
- public static AssetLoaderContext LoadModelFromFileNoThread(string path,
- Action onError = null,
- GameObject wrapperGameObject = null,
- AssetLoaderOptions assetLoaderOptions = null,
- object customContextData = null,
- bool isZipFile = false)
- {
- var assetLoaderContext = new AssetLoaderContext
- {
- Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
- Filename = path,
- BasePath = FileUtils.GetFileDirectory(path),
- CustomData = customContextData,
- HandleError = HandleError,
- OnError = onError,
- WrapperGameObject = wrapperGameObject,
- Async = false,
- IsZipFile = isZipFile,
- PersistentDataPath = Application.persistentDataPath
- };
- assetLoaderContext.Setup();
- LoadModelInternal(assetLoaderContext);
- return assetLoaderContext;
- }
-
- /// Loads a Model from the given Stream synchronously.
- /// The Stream containing the Model data.
- /// The Model filename.
- /// The Model file extension. (Eg.: fbx)
- /// The Method to call on the Main Thread when any error occurs.
- /// The Game Object that will be the parent of the loaded Game Object. Can be null.
- /// The options to use when loading the Model.
- /// The Custom Data that will be passed along the Context.
- /// Indicates whether to load from a Zip file.
- /// The Asset Loader Context, containing Model loading information and the output Game Object.
- public static AssetLoaderContext LoadModelFromStreamNoThread(Stream stream,
- string filename = null,
- string fileExtension = null,
- Action onError = null,
- GameObject wrapperGameObject = null,
- AssetLoaderOptions assetLoaderOptions = null,
- object customContextData = null,
- bool isZipFile = false)
- {
- var assetLoaderContext = new AssetLoaderContext
- {
- Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
- Stream = stream,
- Filename = filename,
- FileExtension = fileExtension ?? FileUtils.GetFileExtension(filename, false),
- BasePath = FileUtils.GetFileDirectory(filename),
- CustomData = customContextData,
- HandleError = HandleError,
- OnError = onError,
- WrapperGameObject = wrapperGameObject,
- Async = false,
- IsZipFile = isZipFile,
- PersistentDataPath = Application.persistentDataPath
- };
- assetLoaderContext.Setup();
- LoadModelInternal(assetLoaderContext);
- return assetLoaderContext;
- }
-
- /// Begins the model loading process.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- private static void LoadModelInternal(AssetLoaderContext assetLoaderContext)
- {
-#if !TRILIB_DISABLE_VALIDATIONS
- ValidateAssetLoaderOptions(assetLoaderContext.Options);
-#endif
-#if TRILIB_USE_THREAD_NAMES && !UNITY_WSA
- var threadName = "TriLib_LoadModelFromStream";
-#else
- string threadName = null;
-#endif
- var fileExtension = assetLoaderContext.FileExtension;
- if (fileExtension == null && assetLoaderContext.Filename != null)
- {
- fileExtension = FileUtils.GetFileExtension(assetLoaderContext.Filename, false);
- }
- if (fileExtension == "zip")
- {
- AssetLoaderZip.LoadModelFromZipFile(assetLoaderContext.Filename,
- assetLoaderContext.OnLoad,
- assetLoaderContext.OnMaterialsLoad,
- assetLoaderContext.OnProgress,
- assetLoaderContext.OnError,
- assetLoaderContext.WrapperGameObject,
- assetLoaderContext.Options,
- assetLoaderContext.CustomData,
- assetLoaderContext.FileExtension,
- assetLoaderContext.HaltTasks,
- assetLoaderContext.OnPreLoad);
- }
- else
- {
- ThreadUtils.RequestNewThreadFor(
- assetLoaderContext,
- LoadModel,
- ProcessRootModel,
- HandleError,
- assetLoaderContext.Options.Timeout,
- threadName,
- !assetLoaderContext.HaltTasks,
- assetLoaderContext.OnPreLoad
- );
- }
- }
///
- /// Validates the given AssetLoaderOptions.
+ /// The default message displayed when validating Asset Loader Options.
+ /// You can disable these validations in the 'Edit -> Project Settings -> TriLib' menu.
///
- /// The options to use when loading the Model.
- private static void ValidateAssetLoaderOptions(AssetLoaderOptions assetLoaderOptions)
- {
-#if ENABLE_IL2CPP
- if (assetLoaderOptions.EnableProfiler) {
- assetLoaderOptions.EnableProfiler = false;
- Debug.LogWarning("TriLib: The built in profiler has been disabled as it does not work with IL2CPP builds.");
- Debug.LogWarning(ValidationMessage);
- }
-#endif
- if (GraphicsSettingsUtils.IsUsingUniversalPipeline && assetLoaderOptions.LoadTexturesAsSRGB)
- {
- Debug.LogWarning("TriLib: Textures must be loaded as Linear on the UniversalRP.");
- Debug.LogWarning(ValidationMessage);
- assetLoaderOptions.LoadTexturesAsSRGB = false;
- }
- if (!assetLoaderOptions.UseUnityNativeTextureLoader)
- {
- Debug.LogWarning("Please consider enabling your \"AssetLoaderOptions.UseUnityNativeTextureLoader\" field. That will narrow down the accepted image file formats to PNG and JPG, but this method is faster than the default TriLib StbImage.");
- Debug.LogWarning(ValidationMessage);
- }
- if (!assetLoaderOptions.UseUnityNativeNormalCalculator)
- {
- Debug.LogWarning("Please consider enabling your \"AssetLoaderOptions.UseUnityNativeNormalCalculator\" field. That will simplify the normal calculation algorithm but is faster than the default TriLib normal calculator.");
- Debug.LogWarning(ValidationMessage);
- }
-#if UNITY_WEBGL
- if (!assetLoaderOptions.UseCoroutines)
- {
- Debug.LogWarning("Please consider enabling your \"AssetLoaderOptions.UseCoroutines\" field. That might prevent your browser from showing \"The page is not responding\" messages.");
- Debug.LogWarning(ValidationMessage);
- }
-#endif
- }
+ private const string ValidationMessage = "You can disable these validations in the 'Edit->Project Settings->TriLib' menu.";
#if UNITY_EDITOR
+ ///
+ /// Attempts to load a asset of the specified from the Unity project.
+ /// If it cannot be found, the method creates a new instance of that and saves it
+ /// as an asset at a generated path under the TriLib mappers folder.
+ ///
+ ///
+ /// The name of the class (e.g., "ByBonesRootBoneMapper").
+ /// The file name of the asset is derived from this parameter.
+ ///
+ ///
+ /// The namespace in which the resides.
+ /// This is used to fully qualify the class when creating a new instance.
+ ///
+ ///
+ /// The subfolder name under the TriLib mappers directory where the asset should be located or created.
+ ///
+ ///
+ /// A reference to the loaded or newly created .
+ /// Returns null if the creation fails (e.g., if the type could not be found).
+ ///
+ ///
+ /// Thrown if the TriLib mappers placeholder file cannot be located, indicating
+ /// an issue with the TriLib package import.
+ ///
private static Object LoadOrCreateScriptableObject(string type, string @namespace, string subFolder)
{
string mappersFilePath;
@@ -315,16 +80,22 @@ namespace TriLibCore
}
else
{
- throw new Exception("Could not find \"TriLibMappersPlaceholder\" file. Please re-import TriLib package.");
+ throw new Exception("Could not find \"TriLibMappersPlaceholder\" file. Please re-import the TriLib package.");
}
+
var mappersDirectory = $"{FileUtils.GetFileDirectory(mappersFilePath)}";
var assetDirectory = $"{mappersDirectory}/{subFolder}";
+
+ // Ensure the target folder exists; create it if necessary.
if (!AssetDatabase.IsValidFolder(assetDirectory))
{
AssetDatabase.CreateFolder(mappersDirectory, subFolder);
}
+
var assetPath = $"{assetDirectory}/{type}.asset";
var scriptableObject = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object));
+
+ // If the asset doesn't exist, create a new ScriptableObject and save it.
if (scriptableObject == null)
{
scriptableObject = CreateScriptableObjectSafe(type, @namespace);
@@ -333,19 +104,32 @@ namespace TriLibCore
AssetDatabase.CreateAsset(scriptableObject, assetPath);
}
}
+
return scriptableObject;
}
#endif
- /// Creates an Asset Loader Options with the default settings and Mappers.
- /// Indicates whether created Scriptable Objects will be saved as assets.
- /// Pass `true `if you are caching your AssetLoaderOptions instance.
- /// The Asset Loader Options containing the default settings.
+ ///
+ /// Creates an instance with TriLib's default settings and
+ /// registers mappers such as and all valid instances.
+ ///
+ /// If is true (in the Unity Editor), the scriptable objects
+ /// will be created as assets; otherwise, they will be created in memory only.
+ ///
+ /// If true, newly created ScriptableObject instances will be saved as assets.
+ ///
+ /// If true, suppresses the warning about creating a new instance.
+ /// Pass true if you are caching the instance to avoid repeated warnings.
+ ///
+ ///
+ /// A new object initialized with default TriLib settings and
+ /// the available mappers.
+ ///
public static AssetLoaderOptions CreateDefaultLoaderOptions(bool generateAssets = false, bool supressWarning = false)
{
if (!supressWarning)
{
- Debug.LogWarning("TriLib: You are creating a new AssetLoaderOptions instance. If you are caching this instance and don't want this message to be displayed again, pass `false` to the `supressWarning` parameter of `CreateDefaultLoaderOptions` call.");
+ Debug.LogWarning("TriLib: You are creating a new AssetLoaderOptions instance. If you are caching this instance and don't want this message to be displayed again, pass `true` to the `supressWarning` parameter of `CreateDefaultLoaderOptions` call.");
}
var assetLoaderOptions = ScriptableObject.CreateInstance();
ByBonesRootBoneMapper byBonesRootBoneMapper;
@@ -359,7 +143,7 @@ namespace TriLibCore
byBonesRootBoneMapper = ScriptableObject.CreateInstance();
}
#else
- byBonesRootBoneMapper = ScriptableObject.CreateInstance();
+ byBonesRootBoneMapper = ScriptableObject.CreateInstance();
#endif
byBonesRootBoneMapper.name = "ByBonesRootBoneMapper";
assetLoaderOptions.RootBoneMapper = byBonesRootBoneMapper;
@@ -384,10 +168,10 @@ namespace TriLibCore
}
else
{
- materialMapper = CreateScriptableObjectSafe(materialMapperName, materialMapperNamespace) as MaterialMapper;
+ materialMapper = LoadOrCreateScriptableObjectSafe(materialMapperName, materialMapperNamespace, "Mappers/Material", true) as MaterialMapper;
}
#else
- materialMapper = CreateScriptableObjectSafe(materialMapperName, materialMapperNamespace) as MaterialMapper;
+ materialMapper = LoadOrCreateScriptableObjectSafe(materialMapperName, materialMapperNamespace, "Mappers/Material", true) as MaterialMapper;
#endif
}
catch
@@ -411,14 +195,15 @@ namespace TriLibCore
Object.DestroyImmediate(materialMapper);
}
#else
- Object.Destroy(materialMapper);
+ Object.Destroy(materialMapper);
#endif
}
}
}
+
if (materialMappers.Count == 0)
{
- Debug.LogWarning("TriLib could not find any suitable MaterialMapper on the project.");
+ Debug.LogWarning("TriLib could not find any suitable MaterialMapper in the project.");
}
else
{
@@ -428,443 +213,581 @@ namespace TriLibCore
}
///
- /// Tries to create a ScriptableObject with the given parameters, without throwing an internal Exception.
+ /// Determines and returns the name of a compatible implementation
+ /// based on the currently active render pipeline (HDRP, URP, or built-in/Standard).
///
- /// The ScriptableObject type name.
- /// The ScriptableObject type namespace.
- /// The created ScriptableObject, or null.
- private static ScriptableObject CreateScriptableObjectSafe(string typeName, string @namespace)
+ ///
+ /// The name of the best suited for the active render pipeline.
+ /// If HDRP is active, returns HDRPMaterialMapper. If URP is active, returns
+ /// UniversalRPMaterialMapper. Otherwise, returns StandardMaterialMapper.
+ ///
+ public static string GetCompatibleMaterialMapperName()
{
- var type = System.Type.GetType($"{@namespace}.{typeName}");
- return type != null ? ScriptableObject.CreateInstance(typeName) : null;
+ string materialMapper;
+ if (GraphicsSettingsUtils.IsUsingHDRPPipeline)
+ {
+ materialMapper = "HDRPMaterialMapper";
+ }
+ else if (GraphicsSettingsUtils.IsUsingUniversalPipeline)
+ {
+ materialMapper = "UniversalRPMaterialMapper";
+ }
+ else
+ {
+ materialMapper = "StandardMaterialMapper";
+ }
+ return materialMapper;
}
- private static IEnumerator CreateRootModel(AssetLoaderContext assetLoaderContext)
+ ///
+ /// Retrieves the project-wide selected based on TriLib settings.
+ /// If a matching mapper is found and is true, this method
+ /// will create a new instance of that mapper.
+ ///
+ ///
+ /// If true, creates a new instance of the selected .
+ /// If false, returns the prefab/reference directly.
+ ///
+ ///
+ /// The selected , or null if no mapper is selected in the TriLib settings.
+ ///
+ public static MaterialMapper GetSelectedMaterialMapper(bool instantiate)
{
- var transform = assetLoaderContext.WrapperGameObject != null ? assetLoaderContext.WrapperGameObject.transform : null;
- var rootModel = assetLoaderContext.RootModel;
- foreach (var item in CreateModel(assetLoaderContext, transform, rootModel, rootModel, true))
+ for (var i = 0; i < MaterialMapper.RegisteredMappers.Count; i++)
{
- yield return item;
- }
- PostProcessModels(assetLoaderContext);
- foreach (var item in ProcessMaterials(assetLoaderContext))
- {
- yield return item;
- }
- }
-
- private static void PostProcessModels(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.RootGameObject.transform.localScale.sqrMagnitude == 0f)
- {
- assetLoaderContext.RootGameObject.transform.localScale = Vector3.one;
- }
- SetupModelLod(assetLoaderContext, assetLoaderContext.RootModel);
- if (assetLoaderContext.Options.AnimationType != AnimationType.None || assetLoaderContext.Options.ImportBlendShapes)
- {
- SetupModelBones(assetLoaderContext, assetLoaderContext.RootModel);
- BuildGameObjectsPaths(assetLoaderContext);
- SetupRig(assetLoaderContext);
- }
- assetLoaderContext.RootGameObject.isStatic = assetLoaderContext.Options.Static;
- assetLoaderContext.OnLoad?.Invoke(assetLoaderContext);
- }
-
- /// Configures the context Model LODs (levels-of-detail) if there are any.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Model containing the LOD data.
-
- private static void SetupModelLod(AssetLoaderContext assetLoaderContext, IModel model)
- {
- if (model.Children != null && model.Children.Count > 0)
- {
- var lodModels = new Dictionary>(model.Children.Count);
- var minLod = int.MaxValue;
- var maxLod = 0;
- for (var i = 0; i < model.Children.Count; i++)
+ var materialMapperName = MaterialMapper.RegisteredMappers[i];
+ var materialMapperNamespace = MaterialMapper.RegisteredMapperNamespaces[i];
+ if (TriLibSettings.GetBool(materialMapperName))
{
- var child = model.Children[i];
- var match = Regex.Match(child.Name, "_LOD(?[0-9]+)|LOD_(?[0-9]+)");
- if (match.Success)
+ return LoadOrCreateScriptableObjectSafe(materialMapperName, materialMapperNamespace, "Mappers/Materials", instantiate) as MaterialMapper;
+ }
+ }
+ return null;
+ }
+
+ ///
+ /// Configures the specified for optimal loading performance.
+ /// This method attempts to load the Autodesk Interactive and glTF2 material helpers (if they exist),
+ /// sets default references (e.g., blend shape mapper), and tweaks various settings for faster loading.
+ ///
+ ///
+ /// A reference to the instance to configure with the fastest possible settings.
+ ///
+ public static void LoadFastestSettings(ref AssetLoaderOptions assetLoaderOptions)
+ {
+ // Looks for the GLTF and Autodesk Interactive material helpers and use them to setup additional material mappers, if found.
+ var autodeskInteractiveMaterialsHelper = Resources.Load("MaterialHelpers/AutodeskInteractiveMaterialsHelper");
+ if (autodeskInteractiveMaterialsHelper != null)
+ {
+ autodeskInteractiveMaterialsHelper.Setup(ref assetLoaderOptions);
+ }
+ else
+ {
+ Debug.LogWarning("TriLib could not find the AutodeskInteractive Material Mapper. The default TriLib Material Mappers will be deprecated soon.");
+ }
+
+ var gltfMaterialsHelper = Resources.Load("MaterialHelpers/GltfMaterialsHelper");
+ if (gltfMaterialsHelper != null)
+ {
+ gltfMaterialsHelper.Setup(ref assetLoaderOptions);
+ }
+ else
+ {
+ Debug.LogWarning("TriLib could not find the glTF2 Material Mapper. The default TriLib Material Mappers will be deprecated soon.");
+ }
+
+ // Looks for the BlendShapePlayerMapper and use it as the blend shape mapper, if found.
+ var blendShapePlayerMapper = Resources.Load("Mappers/BlendShapePlayerMapper");
+ if (blendShapePlayerMapper != null)
+ {
+ assetLoaderOptions.BlendShapeMapper = blendShapePlayerMapper;
+ }
+
+ // Enable warnings for better debugging and use faster native calculation/loading methods:
+ assetLoaderOptions.ShowLoadingWarnings = true;
+ assetLoaderOptions.UseUnityNativeNormalCalculator = true;
+ assetLoaderOptions.UseUnityNativeTextureLoader = true;
+
+ // Disable mesh optimization for faster loading:
+ assetLoaderOptions.OptimizeMeshes = false;
+
+ // Additional relevant texture settings:
+ assetLoaderOptions.GetCompatibleTextureFormat = false;
+ assetLoaderOptions.EnforceAlphaChannelTextures = false;
+ }
+
+ ///
+ /// Loads a model from the specified asynchronously, returning an
+ /// that contains information about the loading process and
+ /// the resulting hierarchy.
+ ///
+ /// This method creates or uses an existing if none is provided.
+ /// It attempts to load the model in a background thread where possible (depending on platform/thread settings),
+ /// and calls back on the Unity main thread (unless otherwise noted).
+ ///
+ /// The absolute or relative file path to the model.
+ ///
+ /// Callback invoked on the main thread once the model is loaded (but materials may still be pending).
+ /// Use this to perform any setup/initialization right after the base model data is available.
+ ///
+ ///
+ /// Callback invoked on the main thread after the model’s materials (textures, shaders, etc.) have finished loading.
+ /// This is the final stage of the loading process.
+ ///
+ ///
+ /// Callback invoked (potentially on a background thread) whenever the loading progress changes.
+ /// The float parameter represents a value from 0 to 1 indicating progress completion.
+ ///
+ ///
+ /// Callback invoked on the main thread if an error occurs at any point during the loading process.
+ ///
+ ///
+ /// An optional parent under which the newly loaded model
+ /// will be placed. If null, the model will be loaded at the root level.
+ ///
+ ///
+ /// The controlling how the model is loaded. If null,
+ /// this method will create and use a default set of loading options.
+ ///
+ ///
+ /// Any custom data you want to pass along to the for use within the loading pipeline.
+ ///
+ ///
+ /// If true, loading tasks are created but not started immediately. This can be used to queue or chain multiple tasks.
+ ///
+ ///
+ /// Callback invoked on a background thread before Unity objects are created. Use this for any setup tasks
+ /// that need to run ahead of object instantiation.
+ ///
+ /// Indicates whether the specified points to a Zip file containing model data.
+ ///
+ /// The that tracks all loading information, including references to the
+ /// loaded hierarchy and any associated data or errors.
+ ///
+ public static AssetLoaderContext LoadModelFromFile(
+ string path,
+ Action onLoad = null,
+ Action onMaterialsLoad = null,
+ Action onProgress = null,
+ Action onError = null,
+ GameObject wrapperGameObject = null,
+ AssetLoaderOptions assetLoaderOptions = null,
+ object customContextData = null,
+ bool haltTask = false,
+ Action onPreLoad = null,
+ bool isZipFile = false)
+ {
+ var assetLoaderContext = new AssetLoaderContext
+ {
+ Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
+ Filename = path,
+ BasePath = FileUtils.GetFileDirectory(path),
+ WrapperGameObject = wrapperGameObject,
+ OnMaterialsLoad = onMaterialsLoad,
+ OnLoad = onLoad,
+ OnProgress = onProgress,
+ HandleError = HandleError,
+ OnError = onError,
+ OnPreLoad = onPreLoad,
+ CustomData = customContextData,
+ HaltTasks = haltTask,
+#if (UNITY_WEBGL && !TRILIB_ENABLE_WEBGL_THREADS) || (UNITY_WSA && !TRILIB_ENABLE_UWP_THREADS) || TRILIB_FORCE_SYNC
+ Async = false,
+#else
+ Async = true,
+#endif
+ IsZipFile = isZipFile,
+ PersistentDataPath = Application.persistentDataPath
+ };
+ assetLoaderContext.Setup();
+ LoadModelInternal(assetLoaderContext);
+ return assetLoaderContext;
+ }
+
+ ///
+ /// Loads a model from the specified synchronously on the main thread,
+ /// returning an with the resulting hierarchy.
+ ///
+ /// This method does not utilize background threads, which may be required on certain platforms
+ /// or situations where multithreading is unsupported or disabled.
+ ///
+ /// The absolute or relative file path to the model.
+ ///
+ /// Callback invoked on the main thread if an error occurs at any point during loading.
+ ///
+ ///
+ /// An optional parent under which the newly loaded model
+ /// will be placed. If null, the model will be loaded at the root level.
+ ///
+ ///
+ /// The controlling how the model is loaded. If null,
+ /// this method will create and use a default set of loading options.
+ ///
+ ///
+ /// Any custom data you want to pass along to the for use within the loading pipeline.
+ ///
+ /// Indicates whether the specified points to a Zip file containing model data.
+ ///
+ /// The containing information about the load, including references to the
+ /// loaded hierarchy and any encountered errors.
+ ///
+ public static AssetLoaderContext LoadModelFromFileNoThread(
+ string path,
+ Action onError = null,
+ GameObject wrapperGameObject = null,
+ AssetLoaderOptions assetLoaderOptions = null,
+ object customContextData = null,
+ bool isZipFile = false)
+ {
+ var assetLoaderContext = new AssetLoaderContext
+ {
+ Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
+ Filename = path,
+ BasePath = FileUtils.GetFileDirectory(path),
+ CustomData = customContextData,
+ HandleError = HandleError,
+ OnError = onError,
+ WrapperGameObject = wrapperGameObject,
+ Async = false,
+ IsZipFile = isZipFile,
+ PersistentDataPath = Application.persistentDataPath
+ };
+ assetLoaderContext.Setup();
+ LoadModelInternal(assetLoaderContext);
+ return assetLoaderContext;
+ }
+
+ ///
+ /// Loads a model from the given asynchronously, returning an
+ /// with the resulting hierarchy.
+ ///
+ /// Use this overload when the model data is not located in a file but is provided via a .
+ /// For instance, loading from memory or from a custom data source.
+ ///
+ /// A containing the model data to load.
+ ///
+ /// The model’s filename (if known). This is primarily used to determine the base directory or metadata.
+ ///
+ ///
+ /// The file extension (e.g., "fbx"). If null, this will be automatically determined
+ /// using based on .
+ ///
+ ///
+ /// Callback invoked on the main thread once the model is loaded (but materials may still be pending).
+ ///
+ ///
+ /// Callback invoked on the main thread after the model’s materials have finished loading.
+ ///
+ ///
+ /// Callback invoked (potentially on a background thread) whenever the loading progress changes.
+ /// The float parameter represents a value from 0 to 1 indicating progress.
+ ///
+ ///
+ /// Callback invoked on the main thread if an error occurs at any point during the loading process.
+ ///
+ ///
+ /// An optional parent under which the newly loaded model
+ /// will be placed. If null, the model will be loaded at the root level.
+ ///
+ ///
+ /// The controlling how the model is loaded. If null,
+ /// this method will create and use a default set of loading options.
+ ///
+ ///
+ /// Any custom data you want to pass along to the for use within the loading pipeline.
+ ///
+ ///
+ /// If true, loading tasks are created but not started immediately. This can be used to queue or chain multiple tasks.
+ ///
+ ///
+ /// Callback invoked on a background thread before Unity objects are created. Useful for any pre-instantiation preparation.
+ ///
+ /// Indicates whether the provided refers to a Zip file containing model data.
+ ///
+ /// The tracking all relevant loading data, including the resulting
+ /// hierarchy and any progress or errors.
+ ///
+ public static AssetLoaderContext LoadModelFromStream(
+ Stream stream,
+ string filename = null,
+ string fileExtension = null,
+ Action onLoad = null,
+ Action onMaterialsLoad = null,
+ Action onProgress = null,
+ Action onError = null,
+ GameObject wrapperGameObject = null,
+ AssetLoaderOptions assetLoaderOptions = null,
+ object customContextData = null,
+ bool haltTask = false,
+ Action onPreLoad = null,
+ bool isZipFile = false)
+ {
+ var assetLoaderContext = new AssetLoaderContext
+ {
+ Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
+ Stream = stream,
+ Filename = filename,
+ FileExtension = fileExtension ?? FileUtils.GetFileExtension(filename, false),
+ BasePath = FileUtils.GetFileDirectory(filename),
+ WrapperGameObject = wrapperGameObject,
+ OnMaterialsLoad = onMaterialsLoad,
+ OnLoad = onLoad,
+ OnProgress = onProgress,
+ HandleError = HandleError,
+ OnError = onError,
+ OnPreLoad = onPreLoad,
+ CustomData = customContextData,
+ HaltTasks = haltTask,
+#if (UNITY_WEBGL && !TRILIB_ENABLE_WEBGL_THREADS) || (UNITY_WSA && !TRILIB_ENABLE_UWP_THREADS) || TRILIB_FORCE_SYNC
+ Async = false,
+#else
+ Async = true,
+#endif
+ IsZipFile = isZipFile,
+ PersistentDataPath = Application.persistentDataPath
+ };
+ assetLoaderContext.Setup();
+ LoadModelInternal(assetLoaderContext);
+ return assetLoaderContext;
+ }
+
+ ///
+ /// Loads a model from the given synchronously on the main thread,
+ /// returning an with the resulting hierarchy.
+ ///
+ /// This method does not utilize background threads, suitable for environments or platforms
+ /// where asynchronous/parallel loading is not available or desired.
+ ///
+ /// A containing the model data to load.
+ ///
+ /// The model’s filename (if known). Used to determine the base directory or any other relevant metadata.
+ ///
+ ///
+ /// The file extension (e.g., "fbx"). If null, this will be automatically determined
+ /// using based on .
+ ///
+ ///
+ /// Callback invoked on the main thread if an error occurs at any point during loading.
+ ///
+ ///
+ /// An optional parent under which the newly loaded model
+ /// will be placed. If null, the model will be loaded at the root level.
+ ///
+ ///
+ /// The controlling how the model is loaded. If null,
+ /// a default configuration will be created and used.
+ ///
+ ///
+ /// Any custom data you want to pass along to the for use within the loading pipeline.
+ ///
+ /// Indicates whether the provided refers to a Zip file containing model data.
+ ///
+ /// The containing information about the load, including references to
+ /// the loaded hierarchy and any encountered errors.
+ ///
+ public static AssetLoaderContext LoadModelFromStreamNoThread(
+ Stream stream,
+ string filename = null,
+ string fileExtension = null,
+ Action onError = null,
+ GameObject wrapperGameObject = null,
+ AssetLoaderOptions assetLoaderOptions = null,
+ object customContextData = null,
+ bool isZipFile = false)
+ {
+ var assetLoaderContext = new AssetLoaderContext
+ {
+ Options = assetLoaderOptions ? assetLoaderOptions : CreateDefaultLoaderOptions(),
+ Stream = stream,
+ Filename = filename,
+ FileExtension = fileExtension ?? FileUtils.GetFileExtension(filename, false),
+ BasePath = FileUtils.GetFileDirectory(filename),
+ CustomData = customContextData,
+ HandleError = HandleError,
+ OnError = onError,
+ WrapperGameObject = wrapperGameObject,
+ Async = false,
+ IsZipFile = isZipFile,
+ PersistentDataPath = Application.persistentDataPath
+ };
+ assetLoaderContext.Setup();
+ LoadModelInternal(assetLoaderContext);
+ return assetLoaderContext;
+ }
+
+ ///
+ /// Attempts to load a from the specified .
+ /// If not found, creates a new instance using and .
+ ///
+ /// The class name of the to load or create.
+ /// The namespace in which resides.
+ ///
+ /// The Resources directory path where the might be located.
+ /// For example, if you have a Resource at "Assets/Resources/Mappers/Material/CustomMaterialMapper.asset",
+ /// then could be "Mappers/Material".
+ ///
+ ///
+ /// If true, returns a cloned instance (via ).
+ /// If false, returns the original reference.
+ ///
+ ///
+ /// A reference to the loaded or newly created , or null
+ /// if the specified type or resource could not be found.
+ ///
+ public static ScriptableObject LoadOrCreateScriptableObjectSafe(
+ string typeName,
+ string typeNamespace,
+ string directory,
+ bool instantiate)
+ {
+ var scriptableObject = Resources.Load($"{directory}/{typeName}");
+ if (scriptableObject == null)
+ {
+ var type = Type.GetType($"{typeNamespace}.{typeName}");
+ return type != null ? ScriptableObject.CreateInstance(typeName) : null;
+ }
+ return instantiate ? Object.Instantiate(scriptableObject) : scriptableObject;
+ }
+
+ ///
+ /// Applies a from the specified
+ /// to all corresponding components in the scene hierarchy.
+ ///
+ ///
+ /// A that holds both the original virtual material and
+ /// the resulting Unity .
+ ///
+ private static void ApplyMaterialToRenderers(MaterialMapperContext materialMapperContext)
+ {
+ materialMapperContext.Completed = false;
+ if (materialMapperContext.Context.MaterialRenderers.TryGetValue(materialMapperContext.Material, out var materialRendererList))
+ {
+ for (var i = 0; i < materialRendererList.Count; i++)
+ {
+ var materialRendererContext = materialRendererList[i];
+ materialRendererContext.MaterialMapperContext = materialMapperContext;
+ var meshFilter = materialRendererContext.Renderer.GetComponentInChildren();
+ var skinnedMeshRenderer = materialRendererContext.Renderer.GetComponentInChildren();
+ if (meshFilter != null)
{
- var lodNumber = Convert.ToInt32(match.Groups["number"].Value);
- minLod = Mathf.Min(lodNumber, minLod);
- maxLod = Mathf.Max(lodNumber, maxLod);
- if (!lodModels.TryGetValue(lodNumber, out var renderers))
- {
- renderers = new List();
- lodModels.Add(lodNumber, renderers);
- }
- renderers.AddRange(assetLoaderContext.GameObjects[child].GetComponentsInChildren());
+ materialRendererContext.Mesh = materialMapperContext.Context.Options.UseSharedMeshes
+ ? meshFilter.sharedMesh
+ : meshFilter.mesh;
}
-
- }
- if (lodModels.Count > 1)
- {
- var newGameObject = assetLoaderContext.GameObjects[model];
- var lods = new List(lodModels.Count + 1);
- var lodGroup = newGameObject.AddComponent();
- var lastPosition = assetLoaderContext.Options.LODScreenRelativeTransitionHeightBase;
- for (var i = minLod; i <= maxLod; i++)
+ else
{
- if (lodModels.TryGetValue(i, out var renderers))
- {
- lods.Add(new LOD(lastPosition, renderers.ToArray()));
- lastPosition *= 0.5f;
- }
+ materialRendererContext.Mesh = skinnedMeshRenderer != null ? skinnedMeshRenderer.sharedMesh : null;
}
- lodGroup.SetLODs(lods.ToArray());
- }
- for (var i = 0; i < model.Children.Count; i++)
- {
- var child = model.Children[i];
- SetupModelLod(assetLoaderContext, child);
+ materialMapperContext.MaterialMapper.ApplyMaterialToRenderer(materialRendererContext);
}
}
+ materialMapperContext.Completed = true;
}
- /// Builds the Game Object Converts hierarchy paths.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
-
+ ///
+ /// Builds hierarchy paths for each within the .
+ /// These paths can be used for tracking, referencing, or debugging the loaded hierarchy.
+ ///
+ ///
+ /// The containing the loaded references.
+ ///
private static void BuildGameObjectsPaths(AssetLoaderContext assetLoaderContext)
{
foreach (var value in assetLoaderContext.GameObjects.Values)
{
assetLoaderContext.GameObjectPaths.Add(value, value.transform.BuildPath(assetLoaderContext.RootGameObject.transform));
-
- }
- }
-
- /// Configures the context Model rigging if there is any.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
-
- private static void SetupRig(AssetLoaderContext assetLoaderContext)
- {
- var animations = assetLoaderContext.RootModel.AllAnimations;
- AnimationClip[] animationClips = null;
- if (assetLoaderContext.Options.AnimationType == AnimationType.Humanoid || animations != null && animations.Count > 0)
- {
- switch (assetLoaderContext.Options.AnimationType)
- {
- case AnimationType.Legacy:
- {
- SetupAnimationComponents(assetLoaderContext, animations, out animationClips, out var animator, out var unityAnimation);
- break;
- }
- case AnimationType.Generic:
- {
- SetupAnimationComponents(assetLoaderContext, animations, out animationClips, out var animator, out var unityAnimation);
- if (assetLoaderContext.Options.AvatarDefinition == AvatarDefinitionType.CopyFromOtherAvatar)
- {
- animator.avatar = assetLoaderContext.Options.Avatar;
- }
- else
- {
- SetupGenericAvatar(assetLoaderContext, animator);
- }
- break;
- }
- case AnimationType.Humanoid:
- {
- SetupAnimationComponents(assetLoaderContext, animations, out animationClips, out var animator, out var unityAnimation);
- if (assetLoaderContext.Options.AvatarDefinition == AvatarDefinitionType.CopyFromOtherAvatar)
- {
- animator.avatar = assetLoaderContext.Options.Avatar;
- }
- else if (assetLoaderContext.Options.HumanoidAvatarMapper != null)
- {
- SetupHumanoidAvatar(assetLoaderContext, animator);
- }
- break;
- }
- }
-
- if (animationClips != null)
- {
- if (assetLoaderContext.Options.AnimationClipMappers != null)
- {
- Array.Sort(assetLoaderContext.Options.AnimationClipMappers, (a, b) => a.CheckingOrder > b.CheckingOrder ? -1 : 1);
- foreach (var animationClipMapper in assetLoaderContext.Options.AnimationClipMappers)
- {
- animationClips = animationClipMapper.MapArray(assetLoaderContext, animationClips);
-
- if (animationClips != null && animationClips.Length > 0)
- {
- break;
- }
- }
- }
- for (var i = 0; i < animationClips.Length; i++)
- {
- var animationClip = animationClips[i];
- assetLoaderContext.Allocations.Add(animationClip);
- }
- }
}
}
///
- /// Creates animation components for the given context.
+ /// Performs final cleanup after model loading. If
+ /// is enabled, this method attempts to close and dispose of the used to load the model.
+ /// Additionally, if is enabled, it forces .NET garbage collection,
+ /// which can be useful to reclaim memory after large model loads.
///
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Animations loaded for the Model.
- /// The AnimationClips that will be created for the Model.
- /// The Animator that will be created for the Model.
- /// The Animation Component that will be created for the Model.
- private static void SetupAnimationComponents(AssetLoaderContext assetLoaderContext, IList animations, out AnimationClip[] animationClips, out Animator animator, out Animation unityAnimation)
+ ///
+ /// The containing information about the loaded model,
+ /// including its and .
+ ///
+ private static void Cleanup(AssetLoaderContext assetLoaderContext)
{
- if (assetLoaderContext.Options.AnimationType == AnimationType.Legacy && assetLoaderContext.Options.EnforceAnimatorWithLegacyAnimations || assetLoaderContext.Options.AnimationType != AnimationType.Legacy)
+ if (assetLoaderContext.Stream != null && assetLoaderContext.Options.CloseStreamAutomatically)
{
- animator = assetLoaderContext.RootGameObject.AddComponent();
+ assetLoaderContext.Stream.TryToDispose();
}
- else
+ if (assetLoaderContext.Options.CollectCG)
{
- animator = null;
- }
- unityAnimation = assetLoaderContext.RootGameObject.AddComponent();
- unityAnimation.playAutomatically = assetLoaderContext.Options.AutomaticallyPlayLegacyAnimations;
- unityAnimation.wrapMode = assetLoaderContext.Options.AnimationWrapMode;
- if (animations != null)
- {
- animationClips = new AnimationClip[animations.Count];
- for (var i = 0; i < animations.Count; i++)
- {
- var triLibAnimation = animations[i];
- var animationClip = CreateAnimation(assetLoaderContext, triLibAnimation);
- unityAnimation.AddClip(animationClip, animationClip.name);
- animationClips[i] = animationClip;
- assetLoaderContext.Reader.UpdateLoadingPercentage(i, assetLoaderContext.Reader.LoadingStepsCount + (int)ReaderBase.PostLoadingSteps.PostProcessAnimationClips, animations.Count);
- }
- if (assetLoaderContext.Options.AutomaticallyPlayLegacyAnimations && animationClips.Length > 0)
- {
- unityAnimation.clip = animationClips[0];
- unityAnimation.Play(animationClips[0].name);
- }
- }
- else
- {
- animationClips = null;
+ // Forces garbage collection, which can help free memory after loading large models.
+ GC.Collect();
+ GC.WaitForPendingFinalizers();
+ GC.Collect();
}
}
- /// Creates a Skeleton Bone for the given Transform.
- /// The bone Transform to use on the Skeleton Bone.
- /// The created Skeleton Bone.
- private static SkeletonBone CreateSkeletonBone(Transform boneTransform)
+ ///
+ /// Converts the given instance into a Unity .
+ /// The method assigns animation curves to the relevant transforms
+ /// (based on the paths stored in the ), respecting any
+ /// required quaternion continuity setting.
+ ///
+ ///
+ /// The providing references to the loaded s
+ /// and paths where the animation curves will be applied.
+ ///
+ /// The source animation data to convert.
+ ///
+ /// A newly created (marked as legacy) with populated animation curves.
+ ///
+ private static AnimationClip CreateAnimation(AssetLoaderContext assetLoaderContext, IAnimation animation)
{
- var skeletonBone = new SkeletonBone
+ var animationClip = new AnimationClip { name = animation.Name, legacy = true, frameRate = animation.FrameRate };
+ var animationCurveBindings = animation.AnimationCurveBindings;
+ if (animationCurveBindings == null)
{
- name = boneTransform.name,
- position = boneTransform.localPosition,
- rotation = boneTransform.localRotation,
- scale = boneTransform.localScale
- };
- return skeletonBone;
- }
-
- /// Creates a Human Bone for the given Bone Mapping, containing the relationship between the Transform and Bone.
- /// The Bone Mapping used to create the Human Bone, containing the information used to search for bones.
- /// The bone name to use on the created Human Bone.
- /// The created Human Bone.
- private static HumanBone CreateHumanBone(BoneMapping boneMapping, string boneName)
- {
- var humanBone = new HumanBone
- {
- boneName = boneName,
- humanName = GetHumanBodyName(boneMapping.HumanBone),
- limit =
- {
- useDefaultValues = boneMapping.HumanLimit.useDefaultValues,
- axisLength = boneMapping.HumanLimit.axisLength,
- center = boneMapping.HumanLimit.center,
- max = boneMapping.HumanLimit.max,
- min = boneMapping.HumanLimit.min
- }
- };
- return humanBone;
- }
-
- /// Returns the given Human Body Bones name as String.
- /// The Human Body Bones to get the name from.
- /// The Human Body Bones name.
- private static string GetHumanBodyName(HumanBodyBones humanBodyBones)
- {
- return HumanTrait.BoneName[(int)humanBodyBones];
- }
-
- /// Creates a Generic Avatar to the given context Model.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Animator assigned to the given Context Root Game Object.
- private static void SetupGenericAvatar(AssetLoaderContext assetLoaderContext, Animator animator)
- {
- var parent = assetLoaderContext.RootGameObject.transform.parent;
- assetLoaderContext.RootGameObject.transform.SetParent(null, true);
- var bones = new List();
- assetLoaderContext.RootModel.GetBones(assetLoaderContext, bones);
- var rootBone = assetLoaderContext.Options.RootBoneMapper.Map(assetLoaderContext, bones);
- var avatar = AvatarBuilder.BuildGenericAvatar(assetLoaderContext.RootGameObject, rootBone != null ? rootBone.name : "");
- avatar.name = $"{assetLoaderContext.RootGameObject.name}Avatar";
- animator.avatar = avatar;
- assetLoaderContext.RootGameObject.transform.SetParent(parent, true);
- }
-
- /// Creates a Humanoid Avatar to the given context Model.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Animator assigned to the given Context Root Game Object.
- private static void SetupHumanoidAvatar(AssetLoaderContext assetLoaderContext, Animator animator)
- {
- var valid = false;
- var mapping = assetLoaderContext.Options.HumanoidAvatarMapper.Map(assetLoaderContext);
- if (mapping.Count > 0)
- {
- var parent = assetLoaderContext.RootGameObject.transform.parent;
- var rootGameObjectPosition = assetLoaderContext.RootGameObject.transform.position;
- assetLoaderContext.RootGameObject.transform.SetParent(null, false);
- assetLoaderContext.Options.HumanoidAvatarMapper.PostSetup(assetLoaderContext, mapping);
- Transform hipsTransform = null;
- var humanBones = new HumanBone[mapping.Count];
- var boneIndex = 0;
- foreach (var kvp in mapping)
- {
- if (kvp.Key.HumanBone == HumanBodyBones.Hips)
- {
- hipsTransform = kvp.Value;
- }
- humanBones[boneIndex++] = CreateHumanBone(kvp.Key, kvp.Value.name);
- }
- if (hipsTransform != null)
- {
- var skeletonBones = new Dictionary();
- var bounds = assetLoaderContext.RootGameObject.CalculateBounds();
- var toBottom = bounds.min.y;
- if (toBottom < 0f)
- {
- var hipsTransformPosition = hipsTransform.position;
- hipsTransformPosition.y -= toBottom;
- hipsTransform.position = hipsTransformPosition;
- }
- var toCenter = Vector3.zero - bounds.center;
- toCenter.y = 0f;
- if (toCenter.sqrMagnitude > 0.01f)
- {
- var hipsTransformPosition = hipsTransform.position;
- hipsTransformPosition += toCenter;
- hipsTransform.position = hipsTransformPosition;
- }
- foreach (var kvp in assetLoaderContext.GameObjects)
- {
- if (!skeletonBones.ContainsKey(kvp.Value.transform))
- {
- skeletonBones.Add(kvp.Value.transform, CreateSkeletonBone(kvp.Value.transform));
- }
- }
- var triLibHumanDescription = assetLoaderContext.Options.HumanDescription ?? new General.HumanDescription();
- var humanDescription = new HumanDescription
- {
- armStretch = triLibHumanDescription.armStretch,
- feetSpacing = triLibHumanDescription.feetSpacing,
- hasTranslationDoF = triLibHumanDescription.hasTranslationDof,
- legStretch = triLibHumanDescription.legStretch,
- lowerArmTwist = triLibHumanDescription.lowerArmTwist,
- lowerLegTwist = triLibHumanDescription.lowerLegTwist,
- upperArmTwist = triLibHumanDescription.upperArmTwist,
- upperLegTwist = triLibHumanDescription.upperLegTwist,
- skeleton = skeletonBones.Values.ToArray(),
- human = humanBones
- };
- var avatar = AvatarBuilder.BuildHumanAvatar(assetLoaderContext.RootGameObject, humanDescription);
- avatar.name = $"{assetLoaderContext.RootGameObject.name}Avatar";
- animator.avatar = avatar;
- }
- assetLoaderContext.RootGameObject.transform.SetParent(parent, false);
- assetLoaderContext.RootGameObject.transform.position = rootGameObjectPosition;
- valid = animator.avatar.isValid || !assetLoaderContext.Options.ShowLoadingWarnings;
+ return animationClip;
}
- if (!valid)
- {
- Debug.LogWarning($"Could not create an Avatar for the model \"{(assetLoaderContext.Filename == null ? "Unknown" : FileUtils.GetShortFilename(assetLoaderContext.Filename))}\"");
- }
- }
- /// Converts the given Model into a Game Object.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The parent Game Object Transform.
- /// The root Model.
- /// The Model to convert.
- /// Is this the first node in the Model hierarchy?
-
- private static IEnumerable CreateModel(AssetLoaderContext assetLoaderContext, Transform parentTransform, IRootModel rootModel, IModel model, bool isRootGameObject)
- {
- var newGameObject = new GameObject(model.Name);
- assetLoaderContext.GameObjects.Add(model, newGameObject);
- assetLoaderContext.Models.Add(newGameObject, model);
- newGameObject.transform.parent = parentTransform;
- newGameObject.transform.localPosition = model.LocalPosition;
- newGameObject.transform.localRotation = model.LocalRotation;
- newGameObject.transform.localScale = model.LocalScale;
- if (model.GeometryGroup != null)
+ for (var i = animationCurveBindings.Count - 1; i >= 0; i--)
{
- foreach (var item in CreateGeometry(assetLoaderContext, newGameObject, rootModel, model))
+ var animationCurveBinding = animationCurveBindings[i];
+ var animationCurves = animationCurveBinding.AnimationCurves;
+ if (!assetLoaderContext.GameObjects.ContainsKey(animationCurveBinding.Model))
{
- yield return item;
+ continue;
+ }
+
+ var gameObject = assetLoaderContext.GameObjects[animationCurveBinding.Model];
+ for (var j = 0; j < animationCurves.Count; j++)
+ {
+ var animationCurve = animationCurves[j];
+ var unityAnimationCurve = animationCurve.AnimationCurve;
+ var gameObjectPath = assetLoaderContext.GameObjectPaths[gameObject];
+ var propertyName = animationCurve.Property;
+ var propertyType = animationCurve.AnimatedType;
+ animationClip.SetCurve(gameObjectPath, propertyType, propertyName, unityAnimationCurve);
}
}
- if (assetLoaderContext.Options.ImportCameras && model is ICamera camera)
+
+ // Ensures smooth quaternion transitions if enabled in the loader options.
+ if (assetLoaderContext.Options.EnsureQuaternionContinuity)
{
- CreateCamera(assetLoaderContext, camera, newGameObject);
- }
- if (assetLoaderContext.Options.ImportLights && model is ILight light)
- {
- CreateLight(assetLoaderContext, light, newGameObject);
- }
- if (model.Children != null && model.Children.Count > 0)
- {
- for (var i = 0; i < model.Children.Count; i++)
- {
- var child = model.Children[i];
- foreach (var item in CreateModel(assetLoaderContext, newGameObject.transform, rootModel, child, false))
- {
- yield return item;
- }
- }
- }
- if (assetLoaderContext.Options.UserPropertiesMapper != null && model.UserProperties != null)
- {
- foreach (var userProperty in model.UserProperties)
- {
- assetLoaderContext.Options.UserPropertiesMapper.OnProcessUserData(assetLoaderContext, newGameObject, userProperty.Key, userProperty.Value);
- }
- }
- if (isRootGameObject)
- {
- assetLoaderContext.RootGameObject = newGameObject;
+ animationClip.EnsureQuaternionContinuity();
}
+ return animationClip;
}
- /// Converts the given model light, if present into a Light.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Model.
- /// The Model Game Object.
- private static void CreateLight(AssetLoaderContext assetLoaderContext, ILight light, GameObject newGameObject)
- {
- var unityLight = newGameObject.AddComponent();
- unityLight.color = light.Color;
- unityLight.innerSpotAngle = light.InnerSpotAngle;
- unityLight.spotAngle = light.OuterSpotAngle;
- unityLight.intensity = light.Intensity;
- unityLight.range = light.Range;
- unityLight.type = light.LightType;
- unityLight.shadows = light.CastShadows ? LightShadows.Soft : LightShadows.None;
-#if UNITY_EDITOR
- unityLight.areaSize = new Vector2(light.Width, light.Height);
-#endif
- }
-
- /// Converts the given model camera, if present into a Camera.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Model.
- /// The Model Game Object.
+ ///
+ /// Creates and configures a Unity component on the specified
+ /// based on the provided data.
+ ///
+ ///
+ /// The containing model loading data. (Not currently used for direct camera setup,
+ /// but provided for consistency if future modifications require context.)
+ ///
+ /// The TriLib definition containing camera properties.
+ ///
+ /// The on which to add and configure the component.
+ ///
private static void CreateCamera(AssetLoaderContext assetLoaderContext, ICamera camera, GameObject newGameObject)
{
var unityCamera = newGameObject.AddComponent();
@@ -882,132 +805,55 @@ namespace TriLibCore
unityCamera.enabled = true;
}
- /// Configures the given Model skinning if there is any.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Model containing the bones.
-
- private static void SetupModelBones(AssetLoaderContext assetLoaderContext, IModel model)
- {
- var loadedGameObject = assetLoaderContext.GameObjects[model];
- var skinnedMeshRenderer = loadedGameObject.GetComponent();
- if (skinnedMeshRenderer != null)
- {
- var bones = model.Bones;
- if (bones != null && bones.Count > 0)
- {
- var boneIndex = 0;
- var gameObjectBones = new Transform[bones.Count];
- for (var i = 0; i < bones.Count; i++)
- {
- var bone = bones[i];
- gameObjectBones[boneIndex++] = assetLoaderContext.GameObjects[bone].transform;
- }
- skinnedMeshRenderer.bones = gameObjectBones;
- skinnedMeshRenderer.rootBone = assetLoaderContext.Options.RootBoneMapper.Map(assetLoaderContext, gameObjectBones);
- }
- skinnedMeshRenderer.sharedMesh = model.GeometryGroup.Mesh;
- if (skinnedMeshRenderer.bounds.size.sqrMagnitude == 0f)
- {
- skinnedMeshRenderer.localBounds = loadedGameObject.CalculateBounds(true);
- }
- }
- if (model.Children != null && model.Children.Count > 0)
- {
- for (var i = 0; i < model.Children.Count; i++)
- {
- var subModel = model.Children[i];
- SetupModelBones(assetLoaderContext, subModel);
- }
- }
- }
-
- /// Converts the given Animation into an Animation Clip.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Animation to convert.
- /// The converted Animation Clip.
- private static AnimationClip CreateAnimation(AssetLoaderContext assetLoaderContext, IAnimation animation)
- {
- var animationClip = new AnimationClip { name = animation.Name, legacy = true, frameRate = animation.FrameRate };
- var animationCurveBindings = animation.AnimationCurveBindings;
- if (animationCurveBindings == null)
- {
- return animationClip;
- }
- for (var i = animationCurveBindings.Count - 1; i >= 0; i--)
- {
- var animationCurveBinding = animationCurveBindings[i];
- var animationCurves = animationCurveBinding.AnimationCurves;
- if (!assetLoaderContext.GameObjects.ContainsKey(animationCurveBinding.Model))
- {
- continue;
- }
- var gameObject = assetLoaderContext.GameObjects[animationCurveBinding.Model];
- for (var j = 0; j < animationCurves.Count; j++)
- {
- var animationCurve = animationCurves[j];
- var unityAnimationCurve = animationCurve.AnimationCurve;
- var gameObjectPath = assetLoaderContext.GameObjectPaths[gameObject];
- var propertyName = animationCurve.Property;
- var propertyType = animationCurve.AnimatedType;
- // todo: working on it for a future release
- // the simplification isn't working with rotation curves yet
- //if (assetLoaderContext.Options.SimplifyAnimations)
- //{
- // switch (propertyName)
- // {
- // case Constants.LocalRotationXProperty:
- // case Constants.LocalRotationYProperty:
- // case Constants.LocalRotationZProperty:
- // case Constants.LocalRotationWProperty:
- // unityAnimationCurve.Simplify(assetLoaderContext.Options.RotationThreshold, true);
- // break;
- // case Constants.LocalScaleXProperty:
- // case Constants.LocalScaleYProperty:
- // case Constants.LocalScaleZProperty:
- // unityAnimationCurve.Simplify(assetLoaderContext.Options.ScaleThreshold, true);
- // break;
- // default:
- // unityAnimationCurve.Simplify(assetLoaderContext.Options.PositionThreshold, true);
- // break;
- // }
- //}
- animationClip.SetCurve(gameObjectPath, propertyType, propertyName, unityAnimationCurve);
- }
- }
- //Fixed in Unity 2022.1.X
- if (assetLoaderContext.Options.EnsureQuaternionContinuity)
- {
- animationClip.EnsureQuaternionContinuity();
- }
- return animationClip;
- }
-
-
- /// Converts the given Geometry Group into a Mesh.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- /// The Game Object where the Mesh belongs.
- /// The root Model.
- /// The Model used to generate the Game Object.
- private static IEnumerable CreateGeometry(AssetLoaderContext assetLoaderContext, GameObject meshGameObject, IRootModel rootModel, IModel meshModel)
+ ///
+ /// Converts the geometry in the specified into a Unity and associates it
+ /// with either a or , depending on the
+ /// (e.g., animation or blend shape requirements).
+ ///
+ /// This method yields at various points to support incremental or coroutine-based loading.
+ /// It also applies optional lip-sync mappings, sets up colliders, and creates relevant
+ /// relationships for subsequent assignment.
+ ///
+ ///
+ /// The containing references and settings for the entire model loading process.
+ ///
+ /// The that will host the generated mesh data.
+ ///
+ /// The root of the model hierarchy, containing references to all materials, animations, etc.
+ ///
+ ///
+ /// The specific whose geometry and associated data will be converted into a Unity mesh.
+ ///
+ ///
+ /// An that yields control during the mesh creation process
+ /// (to allow asynchronous or stepwise loading). Once complete, a Unity mesh (and optionally,
+ /// colliders, lip-sync mapping, and materials) will be associated with .
+ ///
+ private static IEnumerable CreateGeometry(
+ AssetLoaderContext assetLoaderContext,
+ GameObject meshGameObject,
+ IRootModel rootModel,
+ IModel meshModel)
{
var geometryGroup = meshModel.GeometryGroup;
if (geometryGroup.GeometriesData != null)
{
+ // If the mesh has not been generated yet, do so and yield during the process.
if (geometryGroup.Mesh == null)
{
- geometryGroup.GenerateMesh(assetLoaderContext, assetLoaderContext.Options.AnimationType == AnimationType.None ? null : meshModel.BindPoses, meshModel.MaterialIndices);
- foreach (var item in assetLoaderContext.ReleaseMainThread())
+ foreach (var item in geometryGroup.GenerateMesh(assetLoaderContext, meshGameObject, meshModel))
{
yield return item;
}
}
+
+ // Store reference to the newly created mesh for cleanup or further processing.
assetLoaderContext.Allocations.Add(geometryGroup.Mesh);
- if (assetLoaderContext.Options.MarkMeshesAsDynamic)
- {
- geometryGroup.Mesh.MarkDynamic();
- }
+
+ // Apply lip-sync mapping if available and appropriate.
if (assetLoaderContext.Options.LipSyncMappers != null)
{
+ // Sort the lip sync mappers by descending checking order to prioritize certain mappers first.
Array.Sort(assetLoaderContext.Options.LipSyncMappers, (a, b) => a.CheckingOrder > b.CheckingOrder ? -1 : 1);
foreach (var lipSyncMapper in assetLoaderContext.Options.LipSyncMappers)
{
@@ -1019,36 +865,61 @@ namespace TriLibCore
}
}
}
+
+ // Optionally add a MeshCollider if requested.
if (assetLoaderContext.Options.GenerateColliders)
{
- if (assetLoaderContext.RootModel.AllAnimations != null && assetLoaderContext.RootModel.AllAnimations.Count > 0 && assetLoaderContext.Options.ShowLoadingWarnings)
+ if (assetLoaderContext.RootModel.AllAnimations != null
+ && assetLoaderContext.RootModel.AllAnimations.Count > 0
+ && assetLoaderContext.Options.ShowLoadingWarnings)
{
Debug.LogWarning("Adding a MeshCollider to an animated object.");
}
var meshCollider = meshGameObject.AddComponent();
meshCollider.convex = assetLoaderContext.Options.ConvexColliders;
meshCollider.sharedMesh = geometryGroup.Mesh;
+
+ // Yield control again to allow asynchronous progress.
foreach (var item in assetLoaderContext.ReleaseMainThread())
{
yield return item;
}
}
+
+ // Determine whether to use SkinnedMeshRenderer or MeshRenderer based on animation or blend shapes.
Renderer renderer = null;
if (assetLoaderContext.Options.AnimationType != AnimationType.None || assetLoaderContext.Options.ImportBlendShapes)
{
- var bones = assetLoaderContext.Options.AddAllBonesToSkinnedMeshRenderers ? GetAllBonesRecursive(assetLoaderContext) : meshModel.Bones;
+ var bones = assetLoaderContext.Options.AddAllBonesToSkinnedMeshRenderers
+ ? GetAllBonesRecursive(assetLoaderContext)
+ : meshModel.Bones;
+
var geometryGroupBlendShapeGeometryBindings = geometryGroup.BlendShapeKeys;
- if ((bones != null && bones.Count > 0 || geometryGroupBlendShapeGeometryBindings != null && geometryGroupBlendShapeGeometryBindings.Count > 0) && assetLoaderContext.Options.AnimationType != AnimationType.None)
+ var requiresSkinned = (bones != null && bones.Count > 0)
+ || (assetLoaderContext.Options.BlendShapeMapper == null && geometryGroupBlendShapeGeometryBindings != null && geometryGroupBlendShapeGeometryBindings.Count > 0);
+
+ if (requiresSkinned && assetLoaderContext.Options.AnimationType != AnimationType.None)
{
var skinnedMeshRenderer = meshGameObject.AddComponent();
skinnedMeshRenderer.enabled = !assetLoaderContext.Options.ImportVisibility || meshModel.Visibility;
+ skinnedMeshRenderer.updateWhenOffscreen = assetLoaderContext.Options.UpdateSkinnedMeshRendererWhenOffscreen;
renderer = skinnedMeshRenderer;
}
}
+
if (renderer == null)
{
+ // Fallback to MeshFilter + MeshRenderer.
var meshFilter = meshGameObject.AddComponent();
- meshFilter.sharedMesh = geometryGroup.Mesh;
+ if (assetLoaderContext.Options.UseSharedMeshes)
+ {
+ meshFilter.sharedMesh = geometryGroup.Mesh;
+ }
+ else
+ {
+ meshFilter.mesh = geometryGroup.Mesh;
+ }
+
if (!assetLoaderContext.Options.LoadPointClouds)
{
var meshRenderer = meshGameObject.AddComponent();
@@ -1056,6 +927,8 @@ namespace TriLibCore
renderer = meshRenderer;
}
}
+
+ // Assign temporary or "loading" materials to the renderer until real materials can be processed.
if (renderer != null)
{
Material loadingMaterial = null;
@@ -1071,6 +944,7 @@ namespace TriLibCore
}
}
}
+
var unityMaterials = new Material[geometryGroup.GeometriesData.Count];
if (loadingMaterial == null)
{
@@ -1086,7 +960,17 @@ namespace TriLibCore
unityMaterials[i] = loadingMaterial;
}
}
- renderer.sharedMaterials = unityMaterials;
+
+ if (assetLoaderContext.Options.UseSharedMaterials)
+ {
+ renderer.sharedMaterials = unityMaterials;
+ }
+ else
+ {
+ renderer.materials = unityMaterials;
+ }
+
+ // Link each sub-geometry to the corresponding material index for later assignment.
var materialIndices = meshModel.MaterialIndices;
foreach (var geometryData in geometryGroup.GeometriesData)
{
@@ -1097,23 +981,30 @@ namespace TriLibCore
}
var originalGeometryIndex = geometry.OriginalIndex;
-
- if (originalGeometryIndex < 0 || originalGeometryIndex >= renderer.sharedMaterials.Length)
+ if (originalGeometryIndex < 0 || originalGeometryIndex >= unityMaterials.Length)
{
continue;
}
var materialIndex = materialIndices[originalGeometryIndex];
+ if (rootModel.AllMaterials == null)
+ {
+ rootModel.AllMaterials = new List();
+ }
- IMaterial sourceMaterial;
+ IMaterial sourceMaterial = null;
+ var hasInvalidMaterial = false;
if (materialIndex < 0 || materialIndex >= rootModel.AllMaterials.Count)
{
if (!assetLoaderContext.Options.CreateMaterialsForAllModels)
{
- continue;
+ hasInvalidMaterial = true;
+ }
+ else
+ {
+ sourceMaterial = new DummyMaterial { Name = $"{geometryGroup.Name}_{geometry.Index}" };
+ rootModel.AllMaterials.Add(sourceMaterial);
}
- sourceMaterial = new DummyMaterial() { Name = $"{geometryGroup.Name}_{geometry.Index}" };
- rootModel.AllMaterials.Add(sourceMaterial);
}
else
{
@@ -1122,27 +1013,44 @@ namespace TriLibCore
{
if (!assetLoaderContext.Options.CreateMaterialsForAllModels)
{
- continue;
+ hasInvalidMaterial = true;
+ }
+ else
+ {
+ sourceMaterial = new DummyMaterial { Name = $"{geometryGroup.Name}_{geometry.Index}" };
+ rootModel.AllMaterials.Add(sourceMaterial);
}
- sourceMaterial = new DummyMaterial() { Name = $"{geometryGroup.Name}_{geometry.Index}" };
- rootModel.AllMaterials.Add(sourceMaterial);
}
}
- var materialRenderersContext = new MaterialRendererContext
+ if (hasInvalidMaterial)
{
- Context = assetLoaderContext,
- Renderer = renderer,
- GeometryIndex = geometry.Index,
- Material = sourceMaterial
- };
- if (assetLoaderContext.MaterialRenderers.TryGetValue(sourceMaterial, out var materialRendererContextList))
- {
- materialRendererContextList.Add(materialRenderersContext);
+ // Clean up any temporary references if material mapping is invalid.
+ var materialRendererContext = new MaterialRendererContext
+ {
+ Mesh = geometryGroup.Mesh,
+ Context = assetLoaderContext
+ };
+ MaterialMapper.Cleanup(materialRendererContext);
}
else
{
- assetLoaderContext.MaterialRenderers.Add(sourceMaterial, new List { materialRenderersContext });
+ // Register this geometry to the correct source material for post-processing.
+ var materialRenderersContext = new MaterialRendererContext
+ {
+ Context = assetLoaderContext,
+ Renderer = renderer,
+ GeometryIndex = geometry.Index,
+ Material = sourceMaterial
+ };
+ if (assetLoaderContext.MaterialRenderers.TryGetValue(sourceMaterial, out var materialRendererContextList))
+ {
+ materialRendererContextList.Add(materialRenderersContext);
+ }
+ else
+ {
+ assetLoaderContext.MaterialRenderers.Add(sourceMaterial, new List { materialRenderersContext });
+ }
}
}
}
@@ -1150,8 +1058,279 @@ namespace TriLibCore
}
///
- /// Creates a list with every bone in the loaded model.
+ /// Creates a Unity from the specified data, linking
+ /// a bone name to a human bone name and applying the configured limits for humanoid rig mapping.
///
+ ///
+ /// The containing humanoid bone information (e.g., name
+ /// and limit definitions).
+ ///
+ /// The actual bone name in the Unity skeleton that maps to the .
+ ///
+ /// A fully configured ready to be assigned to a .
+ ///
+ private static HumanBone CreateHumanBone(BoneMapping boneMapping, string boneName)
+ {
+ var humanBone = new HumanBone
+ {
+ boneName = boneName,
+ humanName = GetHumanBodyName(boneMapping.HumanBone),
+ limit =
+ {
+ useDefaultValues = boneMapping.HumanLimit.useDefaultValues,
+ axisLength = boneMapping.HumanLimit.axisLength,
+ center = boneMapping.HumanLimit.center,
+ max = boneMapping.HumanLimit.max,
+ min = boneMapping.HumanLimit.min
+ }
+ };
+ return humanBone;
+ }
+
+
+ ///
+ /// Creates a Unity component on the specified
+ /// using properties from the given TriLib .
+ ///
+ ///
+ /// The containing model loading settings and references.
+ /// (Not currently used directly in light creation, but passed for consistency or potential future use.)
+ ///
+ /// The TriLib light representation providing light color, intensity, type, etc.
+ ///
+ /// The on which to add and configure the Unity component.
+ ///
+ private static void CreateLight(AssetLoaderContext assetLoaderContext, ILight light, GameObject newGameObject)
+ {
+ var unityLight = newGameObject.AddComponent();
+ unityLight.color = light.Color;
+ unityLight.innerSpotAngle = light.InnerSpotAngle;
+ unityLight.spotAngle = light.OuterSpotAngle;
+ unityLight.intensity = light.Intensity;
+ unityLight.range = light.Range;
+ unityLight.type = light.LightType;
+ unityLight.shadows = light.CastShadows ? LightShadows.Soft : LightShadows.None;
+#if UNITY_EDITOR
+ unityLight.areaSize = new Vector2(light.Width, light.Height);
+#endif
+ }
+
+ ///
+ /// Recursively creates a hierarchy corresponding to the supplied
+ /// structure. This includes generating meshes, cameras, lights, and any user-defined properties.
+ ///
+ ///
+ /// The containing references to loaded data, options, and utility methods.
+ ///
+ ///
+ /// The under which the newly created will be parented.
+ /// Use null to create the model at the scene root level.
+ ///
+ ///
+ /// The root of the TriLib model hierarchy, containing all sub-models, materials, and animations.
+ ///
+ /// The current node to convert into a .
+ ///
+ /// Indicates whether the created is the root of the model hierarchy.
+ /// If true, this method assigns accordingly.
+ ///
+ ///
+ /// An that yields control during mesh creation and child model creation steps
+ /// (allowing for asynchronous or coroutine-based loading). When complete, the fully assembled
+ /// hierarchy is added to .
+ ///
+ private static IEnumerable CreateModel(
+ AssetLoaderContext assetLoaderContext,
+ Transform parentTransform,
+ IRootModel rootModel,
+ IModel model,
+ bool isRootGameObject)
+ {
+ var newGameObject = new GameObject(model.Name);
+ assetLoaderContext.GameObjects.Add(model, newGameObject);
+ assetLoaderContext.Models.Add(newGameObject, model);
+
+ newGameObject.transform.parent = parentTransform;
+ newGameObject.transform.localPosition = model.LocalPosition;
+ newGameObject.transform.localRotation = model.LocalRotation;
+ newGameObject.transform.localScale = model.LocalScale;
+
+ // Create mesh geometry if present
+ if (model.GeometryGroup != null)
+ {
+ foreach (var item in CreateGeometry(assetLoaderContext, newGameObject, rootModel, model))
+ {
+ yield return item;
+ }
+ }
+
+ // Optionally create camera if requested and the model node is a camera
+ if (assetLoaderContext.Options.ImportCameras && model is ICamera camera)
+ {
+ CreateCamera(assetLoaderContext, camera, newGameObject);
+ }
+
+ // Optionally create light if requested and the model node is a light
+ if (assetLoaderContext.Options.ImportLights && model is ILight light)
+ {
+ CreateLight(assetLoaderContext, light, newGameObject);
+ }
+
+ // Recursively create child GameObjects
+ if (model.Children != null && model.Children.Count > 0)
+ {
+ for (var i = 0; i < model.Children.Count; i++)
+ {
+ var child = model.Children[i];
+ foreach (var item in CreateModel(assetLoaderContext, newGameObject.transform, rootModel, child, false))
+ {
+ yield return item;
+ }
+ }
+ }
+
+ // Process any user-defined properties via a user properties mapper
+ if (assetLoaderContext.Options.UserPropertiesMapper != null && model.UserProperties != null)
+ {
+ foreach (var userProperty in model.UserProperties)
+ {
+ assetLoaderContext.Options.UserPropertiesMapper.OnProcessUserData(
+ assetLoaderContext,
+ newGameObject,
+ userProperty.Key,
+ userProperty.Value
+ );
+ }
+ }
+
+ // Set the RootGameObject if this is the top-level node
+ if (isRootGameObject)
+ {
+ assetLoaderContext.RootGameObject = newGameObject;
+ }
+ }
+
+ ///
+ /// Creates the root for the model by invoking
+ /// on the root node, then performing post-processing (e.g., assigning materials).
+ ///
+ ///
+ /// The that holds all data and settings for model loading.
+ ///
+ ///
+ /// An that yields control during the root model creation and
+ /// material processing steps. By the end, the fully loaded model hierarchy is accessible
+ /// via .
+ ///
+ private static IEnumerator CreateRootModel(AssetLoaderContext assetLoaderContext)
+ {
+ var transform = assetLoaderContext.WrapperGameObject != null
+ ? assetLoaderContext.WrapperGameObject.transform
+ : null;
+
+ var rootModel = assetLoaderContext.RootModel;
+ foreach (var item in CreateModel(assetLoaderContext, transform, rootModel, rootModel, true))
+ {
+ yield return item;
+ }
+
+ // Perform any post-processing tasks (e.g., setting up rigs, adjusting transforms)
+ PostProcessModels(assetLoaderContext);
+
+ // Perform material processing to finalize and assign materials
+ foreach (var item in ProcessMaterials(assetLoaderContext))
+ {
+ yield return item;
+ }
+ }
+
+ ///
+ /// Attempts to create a of the specified
+ /// in the specified without throwing an internal exception
+ /// if the type cannot be found.
+ ///
+ /// The class name of the to create.
+ /// The namespace in which resides.
+ ///
+ /// A newly instantiated of the specified type, or null
+ /// if the type was not found or could not be created.
+ ///
+ private static ScriptableObject CreateScriptableObjectSafe(string typeName, string typeNamespace)
+ {
+ var type = Type.GetType($"{typeNamespace}.{typeName}");
+ return type != null ? ScriptableObject.CreateInstance(typeName) : null;
+ }
+
+ ///
+ /// Creates a record from the given ,
+ /// capturing its local transform data.
+ ///
+ /// The representing a bone in a character rig.
+ ///
+ /// A new initialized with the name, position, rotation, and scale
+ /// from .
+ ///
+ private static SkeletonBone CreateSkeletonBone(Transform boneTransform)
+ {
+ var skeletonBone = new SkeletonBone
+ {
+ name = boneTransform.name,
+ position = boneTransform.localPosition,
+ rotation = boneTransform.localRotation,
+ scale = boneTransform.localScale
+ };
+ return skeletonBone;
+ }
+
+ ///
+ /// Completes the model loading process by optionally adding an component
+ /// for memory tracking, discarding unused textures, and invoking the OnMaterialsLoad callback
+ /// if present. Finally, it calls to free resources.
+ ///
+ ///
+ /// The containing the loaded model hierarchy, resource lists,
+ /// and callbacks.
+ ///
+ private static void FinishLoading(AssetLoaderContext assetLoaderContext)
+ {
+ // Optionally attach an AssetUnloader to handle allocations tracking and cleanup
+ if (assetLoaderContext.Options.AddAssetUnloader &&
+ (assetLoaderContext.RootGameObject != null || assetLoaderContext.WrapperGameObject != null))
+ {
+ var gameObject = assetLoaderContext.RootGameObject ?? assetLoaderContext.WrapperGameObject;
+ var assetUnloader = gameObject.AddComponent();
+ assetUnloader.Id = AssetUnloader.GetNextId();
+ assetUnloader.Allocations = assetLoaderContext.Allocations;
+ assetUnloader.CustomData = assetLoaderContext.CustomData;
+ }
+
+ // Discard unused textures if requested
+ if (assetLoaderContext.Options.DiscardUnusedTextures)
+ {
+ assetLoaderContext.DiscardUnusedTextures();
+ }
+
+ // Update loading progress to 100% and invoke OnMaterialsLoad callback
+ assetLoaderContext.Reader?.UpdateLoadingPercentage(
+ 1f,
+ assetLoaderContext.Reader.LoadingStepsCount + (int)ReaderBase.PostLoadingSteps.FinishedProcessing
+ );
+ assetLoaderContext.OnMaterialsLoad?.Invoke(assetLoaderContext);
+
+ // Perform final cleanup, disposing streams and possibly GC if requested
+ Cleanup(assetLoaderContext);
+ }
+
+ ///
+ /// Recursively gathers all objects in the loaded model that are flagged as bones.
+ /// This can be used, for instance, to prepare a list of all bones for a .
+ ///
+ ///
+ /// The containing references to the root and all models in the hierarchy.
+ ///
+ ///
+ /// A list of all instances that are designated as bones.
+ ///
private static IList GetAllBonesRecursive(AssetLoaderContext assetLoaderContext)
{
var bones = new List();
@@ -1165,255 +1344,23 @@ namespace TriLibCore
return bones;
}
- /// Loads the root Model.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- private static void LoadModel(AssetLoaderContext assetLoaderContext)
+ ///
+ /// Retrieves the name of the specified index from Unity’s
+ /// array.
+ ///
+ /// The humanoid bone identifier.
+ /// The corresponding bone name from .
+ private static string GetHumanBodyName(HumanBodyBones humanBodyBones)
{
- SetupModelLoading(assetLoaderContext);
- }
-
- private static void SetupModelLoading(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.Stream == null && string.IsNullOrWhiteSpace(assetLoaderContext.Filename))
- {
- throw new Exception("TriLib is unable to load the given file.");
- }
- if (assetLoaderContext.Options.MaterialMappers != null)
- {
- Array.Sort(assetLoaderContext.Options.MaterialMappers, (a, b) => a.CheckingOrder > b.CheckingOrder ? -1 : 1);
- }
- else
- {
- if (assetLoaderContext.Options.ShowLoadingWarnings)
- {
- Debug.LogWarning("Your AssetLoaderOptions instance has no MaterialMappers. TriLib can't process materials without them.");
- }
- }
-#if TRILIB_DRACO
- GltfReader.DracoDecompressorCallback = DracoMeshLoader.DracoDecompressorCallback;
-#endif
- var fileExtension = assetLoaderContext.FileExtension;
- if (fileExtension == null)
- {
- fileExtension = FileUtils.GetFileExtension(assetLoaderContext.Filename, false);
- }
- else if (fileExtension[0] == '.' && fileExtension.Length > 1)
- {
- fileExtension = fileExtension.Substring(1);
- }
- if (assetLoaderContext.Stream == null)
- {
- var fileStream = new FileStream(assetLoaderContext.Filename, FileMode.Open, FileAccess.Read, FileShare.Read);
- assetLoaderContext.Stream = fileStream;
- var reader = Readers.FindReaderForExtension(fileExtension);
- if (reader != null)
- {
- assetLoaderContext.RootModel = reader.ReadStream(fileStream, assetLoaderContext, assetLoaderContext.Filename, assetLoaderContext.OnProgress);
- }
- }
- else
- {
- var reader = Readers.FindReaderForExtension(fileExtension);
- if (reader != null)
- {
- assetLoaderContext.RootModel = reader.ReadStream(assetLoaderContext.Stream, assetLoaderContext, assetLoaderContext.Filename, assetLoaderContext.OnProgress);
- }
- else
- {
- throw new Exception("Could not find a suitable reader for the given model. Please fill the 'fileExtension' parameter when calling any model loading method.");
- }
- if (assetLoaderContext.RootModel == null)
- {
- throw new Exception("TriLib could not load the given model.");
- }
- }
- }
-
- /// Processes the root Model.
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
-
- private static void ProcessRootModel(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.RootModel != null)
- {
- var enumerator = CreateRootModel(assetLoaderContext);
- if (assetLoaderContext.Options.UseCoroutines)
- {
- CoroutineHelper.Instance.StartCoroutine(enumerator);
- }
- else
- {
- CoroutineHelper.RunMethod(enumerator);
- }
- }
- else
- {
- assetLoaderContext.OnLoad?.Invoke(assetLoaderContext);
- }
+ return HumanTrait.BoneName[(int)humanBodyBones];
}
///
- /// Processes the Model Materials, if all source Materials have been loaded.
+ /// Handles errors that occur during model loading. Depending on the context, this may involve
+ /// unloading the partially loaded model, destroying the root if
+ /// is set, and invoking the error callback.
///
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- private static IEnumerable ProcessMaterials(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.RootModel?.AllMaterials != null && assetLoaderContext.RootModel.AllMaterials.Count > 0)
- {
- if (assetLoaderContext.Options.MaterialMappers != null)
- {
- foreach (var item in ProcessMaterialRenderers(assetLoaderContext))
- {
- yield return item;
- }
- }
- else if (assetLoaderContext.Options.ShowLoadingWarnings)
- {
- Debug.LogWarning("Please specify a TriLib Material Mapper, otherwise Materials can't be created.");
- }
- }
- else
- {
- if (assetLoaderContext.Options.DiscardUnusedTextures)
- {
- FinishLoading(assetLoaderContext);
- }
- else
- {
- LoadUnusedTextures(assetLoaderContext);
- }
- }
- }
-
- ///
- /// Loads the unused Textures and adds them to the allocations list.
- ///
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- private static void LoadUnusedTextures(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.RootGameObject != null)
- {
- if (assetLoaderContext.RootModel.AllTextures != null)
- {
- foreach (var texture in assetLoaderContext.RootModel.AllTextures)
- {
- var textureLoadingContext = new TextureLoadingContext()
- {
- Texture = texture,
- Context = assetLoaderContext
- };
- if (!assetLoaderContext.TryGetLoadedTexture(textureLoadingContext, out _))
- {
- if (assetLoaderContext.Options.UseUnityNativeTextureLoader)
- {
- TextureLoaders.LoadTexture(textureLoadingContext);
- }
- else
- {
- TextureLoaders.CreateTexture(textureLoadingContext);
- TextureLoaders.LoadTexture(textureLoadingContext);
- }
- }
- }
- }
- }
- FinishLoading(assetLoaderContext);
- }
-
- ///
- /// Finishes the Model loading, calling the OnMaterialsLoad callback, if present.
- ///
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
- private static void FinishLoading(AssetLoaderContext assetLoaderContext)
- {
- if (assetLoaderContext.Options.AddAssetUnloader && (assetLoaderContext.RootGameObject != null || assetLoaderContext.WrapperGameObject != null))
- {
- var gameObject = assetLoaderContext.RootGameObject ?? assetLoaderContext.WrapperGameObject;
- var assetUnloader = gameObject.AddComponent();
- assetUnloader.Id = AssetUnloader.GetNextId();
- assetUnloader.Allocations = assetLoaderContext.Allocations;
- assetUnloader.CustomData = assetLoaderContext.CustomData;
- }
- if (assetLoaderContext.Options.DiscardUnusedTextures)
- {
- assetLoaderContext.DiscardUnusedTextures();
- }
- assetLoaderContext.Reader?.UpdateLoadingPercentage(1f, assetLoaderContext.Reader.LoadingStepsCount + (int)ReaderBase.PostLoadingSteps.FinishedProcessing);
- assetLoaderContext.OnMaterialsLoad?.Invoke(assetLoaderContext);
- Cleanup(assetLoaderContext);
- }
-
- ///
- /// Processes Model Renderers.
- ///
- /// The Asset Loader Context reference. Asset Loader Context contains the Model loading data.
-
- private static IEnumerable ProcessMaterialRenderers(AssetLoaderContext assetLoaderContext)
- {
- var materialMapperContexts = new MaterialMapperContext[assetLoaderContext.RootModel.AllMaterials.Count];
- for (var i = 0; i < assetLoaderContext.RootModel.AllMaterials.Count; i++)
- {
- var material = assetLoaderContext.RootModel.AllMaterials[i];
- var materialMapperContext = new MaterialMapperContext()
- {
- Context = assetLoaderContext,
- Material = material
- };
- materialMapperContexts[i] = materialMapperContext;
- for (var j = 0; j < assetLoaderContext.Options.MaterialMappers.Length; j++)
- {
- var materialMapper = assetLoaderContext.Options.MaterialMappers[j];
- if (materialMapper is object && materialMapper.IsCompatible(materialMapperContext))
- {
- materialMapperContext.MaterialMapper = materialMapper;
- if (materialMapper.UsesCoroutines)
- {
- foreach (var item in materialMapper.MapCoroutine(materialMapperContext))
- {
- yield return item;
- }
- }
- else
- {
- materialMapper.Map(materialMapperContext);
- }
- ApplyMaterialToRenderers(materialMapperContext);
- break;
- }
- }
- assetLoaderContext.Reader.UpdateLoadingPercentage(i, assetLoaderContext.Reader.LoadingStepsCount + (int)ReaderBase.PostLoadingSteps.PostProcessRenderers, assetLoaderContext.RootModel.AllMaterials.Count);
- }
- if (assetLoaderContext.Options.DiscardUnusedTextures)
- {
- FinishLoading(assetLoaderContext);
- }
- else
- {
- LoadUnusedTextures(assetLoaderContext);
- }
- }
-
- ///
- /// Applies the Material from the given context to its Renderers.
- ///
- /// The source Material Mapper Context, containing the Virtual Material and Unity Material.
- private static void ApplyMaterialToRenderers(MaterialMapperContext materialMapperContext)
- {
- materialMapperContext.Completed = false;
- if (materialMapperContext.Context.MaterialRenderers.TryGetValue(materialMapperContext.Material, out var materialRendererList))
- {
- for (var k = 0; k < materialRendererList.Count; k++)
- {
- var materialRendererContext = materialRendererList[k];
- materialRendererContext.MaterialMapperContext = materialMapperContext;
- materialMapperContext.MaterialMapper.ApplyMaterialToRenderer(materialRendererContext);
- }
- }
- materialMapperContext.Completed = true;
- }
-
- /// Handles all Model loading errors, unloads the partially loaded Model (if suitable), and calls the error callback (if existing).
- /// The Contextualized Error that has occurred.
+ /// The describing the error that occurred.
private static void HandleError(IContextualizedError error)
{
var exception = error.GetInnerException();
@@ -1422,6 +1369,7 @@ namespace TriLibCore
var assetLoaderContext = context.Context;
if (assetLoaderContext != null)
{
+ // Perform cleanup and optionally destroy the root GameObject
Cleanup(assetLoaderContext);
if (assetLoaderContext.Options.DestroyOnError && assetLoaderContext.RootGameObject != null)
{
@@ -1435,40 +1383,994 @@ namespace TriLibCore
}
assetLoaderContext.RootGameObject = null;
}
+
+ // Invoke custom error callback if provided
if (assetLoaderContext.OnError != null)
{
- Dispatcher.InvokeAsync(assetLoaderContext.OnError, error);
+ Dispatcher.InvokeAsync(assetLoaderContext.OnError, error, assetLoaderContext.Async);
}
}
}
else
{
+ // If the context is missing or invalid, rethrow in a generic way
var contextualizedError = new ContextualizedError