< Summary

Class:DCL.Skybox.TransitioningVector3
Assembly:ProceduralSkybox
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/ProceduralSkybox/ToolProceduralSkybox/Scripts/Configuration/BaseLayer.cs
Covered lines:0
Uncovered lines:5
Coverable lines:5
Total lines:336
Line coverage:0% (0 of 5)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
TransitioningVector3(...)0%2100%
GetCopy()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/ProceduralSkybox/ToolProceduralSkybox/Scripts/Configuration/BaseLayer.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using System.Collections.Generic;
 4using UnityEngine;
 5using UnityEngine.Serialization;
 6
 7namespace DCL.Skybox
 8{
 9    [System.Serializable]
 10    public class TextureLayer
 11    {
 12        public int slotID = 0;                              // Slot ID
 13        public LayerRenderType renderType;
 14        public LayerType layerType;
 15        public bool enabled;
 16        public string nameInEditor;
 17        public bool expandedInEditor;
 18        public float timeSpan_start;
 19        public float timeSpan_End;
 20        public float fadingInTime = 1;
 21        public float fadingOutTime = 1;
 22
 23        [FormerlySerializedAs("tintercentage")]
 24        public float tintPercentage;
 25        public List<TransitioningFloat> renderDistance;
 26
 27        public Texture2D texture;
 28        public Cubemap cubemap;
 29        public Gradient color;
 30        public Vector2 tiling;
 31
 32        [FormerlySerializedAs("flipBookRowsAndColumns")]
 33        public Vector2 flipbookRowsAndColumns = Vector2.one;
 34        public float flipbookAnimSpeed = 1;
 35
 36        // Offset
 37        public List<TransitioningVector2> offset;
 38
 39        // satellite
 40        public List<TransitioningVector2> satelliteWidthHeight;
 41
 42        // Rotations
 43        [FormerlySerializedAs("rotation_float")]
 44        public List<TransitioningFloat> rotations_float;
 45        [FormerlySerializedAs("cubemapRotations")]
 46        public List<TransitioningVector3> rotations_Vector3;
 47
 48        public Vector3 speed_Vector3;
 49        [FormerlySerializedAs("speed_Vec2")]
 50        public Vector2 speed_Vector2;
 51        [FormerlySerializedAs("speed")]
 52        public float speed_float;
 53
 54        // Particles
 55        public bool particleExpanded;
 56        public Vector2 particleTiling = Vector2.one;
 57        public Vector2 particlesOffset = Vector2.zero;
 58        public List<TransitioningVector3> particleRotation = new List<TransitioningVector3>();
 59        // Particle Primary Param
 60        public float particlesAmount = 1;
 61        public float particleMinSize = 1;
 62        public float particleMaxSize = 1;
 63        // Particle Secondary Param
 64        public float particlesHorizontalSpread = 1;
 65        public float particlesVerticalSpread = 1;
 66        public float particleMinFade = 1;
 67        public float particleMaxFade = 1;
 68
 69        // Distortion Values
 70        public bool distortionExpanded;
 71        public List<TransitioningFloat> distortIntensity;
 72        public List<TransitioningFloat> distortSize;
 73        public List<TransitioningVector2> distortSpeed;
 74        public List<TransitioningVector2> distortSharpness;
 75
 76        public MovementType movementTypeCubemap;
 77        public MovementType movementTypePlanar_Radial;
 78        public MovementType movementTypeSatellite;
 79
 80        public TextureLayer(string name = "noname")
 81        {
 82            enabled = true;
 83            tiling = new Vector2(1, 1);
 84            speed_Vector2 = new Vector2(0, 0);
 85            speed_Vector3 = new Vector3(0, 0, 0);
 86            nameInEditor = name;
 87            offset = new List<TransitioningVector2>();
 88            renderDistance = new List<TransitioningFloat>();
 89            rotations_float = new List<TransitioningFloat>();
 90            satelliteWidthHeight = new List<TransitioningVector2>();
 91            rotations_Vector3 = new List<TransitioningVector3>();
 92            color = new Gradient();
 93            movementTypeCubemap = MovementType.Speed;
 94
 95            distortIntensity = new List<TransitioningFloat>();
 96            distortSize = new List<TransitioningFloat>();
 97            distortSpeed = new List<TransitioningVector2>();
 98            distortSharpness = new List<TransitioningVector2>();
 99
 100            particleRotation = new List<TransitioningVector3>();
 101        }
 102
 103        // Copy details of present layer on the passed layer
 104        public TextureLayer DeepCopy()
 105        {
 106            TextureLayer layer = (TextureLayer)this.MemberwiseClone();
 107
 108            layer.color = this.color.GetCopy();
 109
 110            layer.renderDistance = new List<TransitioningFloat>();
 111            for (int i = 0; i < this.renderDistance.Count; i++)
 112            {
 113                layer.renderDistance.Add(this.renderDistance[i].GetCopy());
 114            }
 115
 116            layer.offset = new List<TransitioningVector2>();
 117            for (int i = 0; i < this.offset.Count; i++)
 118            {
 119                layer.offset.Add(this.offset[i].GetCopy());
 120            }
 121
 122            layer.satelliteWidthHeight = new List<TransitioningVector2>(this.satelliteWidthHeight);
 123            for (int i = 0; i < this.satelliteWidthHeight.Count; i++)
 124            {
 125                layer.satelliteWidthHeight.Add(this.satelliteWidthHeight[i].GetCopy());
 126            }
 127
 128            layer.rotations_float = new List<TransitioningFloat>();
 129            for (int i = 0; i < this.rotations_float.Count; i++)
 130            {
 131                layer.rotations_float.Add(this.rotations_float[i].GetCopy());
 132            }
 133
 134            layer.rotations_Vector3 = new List<TransitioningVector3>();
 135            for (int i = 0; i < this.rotations_Vector3.Count; i++)
 136            {
 137                layer.rotations_Vector3.Add(this.rotations_Vector3[i].GetCopy());
 138            }
 139
 140            layer.particleRotation = new List<TransitioningVector3>();
 141            for (int i = 0; i < this.particleRotation.Count; i++)
 142            {
 143                layer.particleRotation.Add(this.particleRotation[i].GetCopy());
 144            }
 145
 146            layer.distortIntensity = new List<TransitioningFloat>();
 147            for (int i = 0; i < this.distortIntensity.Count; i++)
 148            {
 149                layer.distortIntensity.Add(this.distortIntensity[i].GetCopy());
 150            }
 151
 152            layer.distortSize = new List<TransitioningFloat>();
 153            for (int i = 0; i < this.distortSize.Count; i++)
 154            {
 155                layer.distortSize.Add(this.distortSize[i].GetCopy());
 156            }
 157
 158            layer.distortSpeed = new List<TransitioningVector2>();
 159            for (int i = 0; i < this.distortSpeed.Count; i++)
 160            {
 161                layer.distortSpeed.Add(this.distortSpeed[i].GetCopy());
 162            }
 163
 164            layer.distortSharpness = new List<TransitioningVector2>();
 165            for (int i = 0; i < this.distortSharpness.Count; i++)
 166            {
 167                layer.distortSharpness.Add(this.distortSharpness[i].GetCopy());
 168            }
 169
 170            return layer;
 171        }
 172
 173    }
 174
 175    static class ExtensionMethods
 176    {
 177        public static Gradient GetCopy(this Gradient gradient)
 178        {
 179            Gradient obj = new Gradient();
 180
 181            GradientColorKey[] colorKeys = new GradientColorKey[gradient.colorKeys.Length];
 182            for (int i = 0; i < gradient.colorKeys.Length; i++)
 183            {
 184                colorKeys[i] = gradient.colorKeys[i];
 185            }
 186
 187            GradientAlphaKey[] alphaKeys = new GradientAlphaKey[gradient.alphaKeys.Length];
 188            for (int i = 0; i < gradient.alphaKeys.Length; i++)
 189            {
 190                alphaKeys[i] = gradient.alphaKeys[i];
 191            }
 192            obj.SetKeys(colorKeys, alphaKeys);
 193            return obj;
 194        }
 195    }
 196
 197    public enum LayerType
 198    {
 199        Planar = 0,
 200        Radial = 1,
 201        Satellite = 2,
 202        Particles = 3,
 203        Cubemap = 4,
 204    }
 205
 206    public enum LayerRenderType
 207    {
 208        Rendering,
 209        NotRendering,
 210        Conflict_Playing,
 211        Conflict_NotPlaying
 212    }
 213
 214    public enum MovementType
 215    {
 216        Speed,
 217        PointBased
 218    }
 219
 220    public enum RotationType
 221    {
 222        Fixed,
 223        Rotate,
 224        LookAtOrbit
 225    }
 226
 227    [System.Serializable]
 228    public class TimelineTagsDuration
 229    {
 230        public string tag;
 231        public float startTime = 0;
 232        public float endTime = 0;
 233        public bool isTrigger = true;              // If true, this event is trigger event
 234        [System.NonSerialized]
 235        public bool startEventExecuted;             // Also works for trigger events
 236
 237        public TimelineTagsDuration(float startTime, string tag = "", bool isTrigger = true)
 238        {
 239            this.tag = tag;
 240            this.startTime = startTime;
 241            this.isTrigger = isTrigger;
 242        }
 243    }
 244
 245    [System.Serializable]
 246    public class TransitioningFloat
 247    {
 248        public float percentage;
 249        public float value;
 250
 251        public TransitioningFloat(float percentage, float value)
 252        {
 253            this.percentage = percentage;
 254            this.value = value;
 255        }
 256
 257        internal TransitioningFloat GetCopy() { return (TransitioningFloat)this.MemberwiseClone(); }
 258    }
 259
 260    [System.Serializable]
 261    public class TransitioningVector3
 262    {
 263        public float percentage;
 264        public Vector3 value;
 265
 0266        public TransitioningVector3(float percentage, Vector3 value)
 267        {
 0268            this.percentage = percentage;
 0269            this.value = value;
 0270        }
 271
 0272        internal TransitioningVector3 GetCopy() { return (TransitioningVector3)this.MemberwiseClone(); }
 273    }
 274
 275    [System.Serializable]
 276    public class TransitioningVector2
 277    {
 278        public float percentage;
 279        public Vector2 value;
 280
 281        public TransitioningVector2(float percentage, Vector2 value)
 282        {
 283            this.percentage = percentage;
 284            this.value = value;
 285        }
 286
 287        internal TransitioningVector2 GetCopy() { return (TransitioningVector2)this.MemberwiseClone(); }
 288    }
 289
 290    [System.Serializable]
 291    public class TransitioningVector4
 292    {
 293        public float percentage;
 294        public Vector4 value;
 295
 296        public TransitioningVector4(float percentage, Vector4 value)
 297        {
 298            this.percentage = percentage;
 299            this.value = value;
 300        }
 301
 302        internal TransitioningVector4 GetCopy() { return new TransitioningVector4(this.percentage, this.value); }
 303    }
 304
 305    [System.Serializable]
 306    public class TransitioningQuaternion
 307    {
 308        public float percentage;
 309        public Quaternion value;
 310
 311        public TransitioningQuaternion(float percentage, Quaternion value)
 312        {
 313            this.percentage = percentage;
 314            this.value = value;
 315        }
 316
 317        internal TransitioningQuaternion GetCopy() { return new TransitioningQuaternion(this.percentage, this.value); }
 318    }
 319
 320    [System.Serializable]
 321    public class DirectionalLightAttributes
 322    {
 323        public Gradient lightColor;
 324        public List<TransitioningFloat> intensity;
 325        public List<TransitioningQuaternion> lightDirection;
 326        public Gradient tintColor;
 327
 328        public DirectionalLightAttributes()
 329        {
 330            lightColor = new Gradient();
 331            intensity = new List<TransitioningFloat>();
 332            lightDirection = new List<TransitioningQuaternion>();
 333            tintColor = new Gradient();
 334        }
 335    }
 336}