Example #1
0
    public static Color GetColor(GColor idx)
    {
        switch (idx)
        {
        case GColor.Green1:
            return(Green1);

        case GColor.Green2:
            return(Green2);

        case GColor.Green3:
            return(Green3);

        case GColor.Gray1:
            return(Gray1);

        case GColor.Yellow1:
            return(Yellow1);

        case GColor.Yellow2:
            return(Yellow2);

        case GColor.Yellow3:
            return(Yellow3);

        case GColor.Red1:
            return(Red1);

        case GColor.Purple1:
            return(Purple1);
        }

        return(Color.black);
    }
        public unsafe void SetRGBA(float r, float g, float b, float a)
        {
            GColor gColor = r;

            *(ref gColor + 4)  = g;
            *(ref gColor + 8)  = b;
            *(ref gColor + 12) = a;
        public unsafe void SetColor(uint color)
        {
            GColor gColor = (color >> 16 & 255) * 0.003921569f;

            *(ref gColor + 4)  = (color >> 8 & 255) * 0.003921569f;
            *(ref gColor + 8)  = (color & 255) * 0.003921569f;
            *(ref gColor + 12) = (color >> 24) * 0.003921569f;
            int hue;
            int sat;
            int val;
        public override void SetupChannels()
        {
            m_damperFactor       = dataLogger.NewChannel("Damper");
            m_damperFactor.color = GColor.Alpha(GColor.orange, 1.0f);
            m_damperFactor.SetOriginAndSpan(0.0f, 5.0f);
            m_damperFactor.valueFormat = "0.0 %";

            m_forceFactor       = dataLogger.NewChannel("Force");
            m_forceFactor.color = GColor.Alpha(GColor.accentBlue, 1.0f);
            m_forceFactor.SetOriginAndSpan(5.0f, 5.0f);
            m_forceFactor.valueFormat = "0.0 %";
        }
Example #5
0
        public void OnDrawGizmosSelected()
        {
            BoxCollider collider = GetComponent <BoxCollider>();

            Vector3 planePoint = transform.TransformPoint(collider.center + Vector3.forward * collider.size.z * -0.5f);
            Vector3 planeSize  = Vector3.Scale(collider.size, transform.lossyScale);

            Gizmos.color  = GColor.Alpha(GColor.accentGreen, 0.5f);
            Gizmos.matrix = Matrix4x4.TRS(planePoint, transform.rotation, Vector3.one);

            Gizmos.DrawCube(Vector3.zero, new Vector3(planeSize.x, planeSize.y, 0));
        }
        public void OnDrawGizmos()
        {
            if (!isActiveAndEnabled)
            {
                return;
            }

            if (m_rigidbody != null)
            {
                if (showLabel)
                {
                    UnityEditor.Handles.Label(m_drawPosition, m_rigidbody.name
                                              + "\nM: " + m_rigidbody.mass
                                              + "\nI: " + m_rigidbody.inertiaTensor + " - " + m_rigidbody.inertiaTensor.magnitude.ToString("0.0")
                                              + "\nR: " + m_rigidbody.inertiaTensorRotation.eulerAngles
                                              );
                }

                if (showInertiaTensor)
                {
                    Gizmos.matrix = Matrix4x4.TRS(
                        m_drawPosition,
                        transform.rotation * m_rigidbody.inertiaTensorRotation,
                        Vector3.one);

                    Vector3 normalizedInertia = m_rigidbody.inertiaTensor / m_rigidbody.mass;
                    float   maxDim            = Mathf.Max(normalizedInertia.x, Mathf.Max(normalizedInertia.y, normalizedInertia.z));

                    Vector3 inertiaX = new Vector3(maxDim, normalizedInertia.x, normalizedInertia.x);
                    Vector3 inertiaY = new Vector3(normalizedInertia.y, maxDim, normalizedInertia.y);
                    Vector3 inertiaZ = new Vector3(normalizedInertia.z, normalizedInertia.z, maxDim);

                    Gizmos.color = GColor.Alpha(GColor.accentRed, 0.7f);
                    Gizmos.DrawWireCube(Vector3.zero, inertiaX);

                    Gizmos.color = GColor.Alpha(GColor.accentGreen, 0.7f);
                    Gizmos.DrawWireCube(Vector3.zero, inertiaY);

                    Gizmos.color = GColor.Alpha(GColor.accentBlue, 0.7f);
                    Gizmos.DrawWireCube(Vector3.zero, inertiaZ);
                }
            }
        }
Example #7
0
        void OnDrawGizmosSelected()
        {
            if (!isActiveAndEnabled)
            {
                return;
            }

            Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);

            Gizmos.color = GColor.Alpha(GColor.accentRed, 0.5f);
            Gizmos.DrawCube(Vector3.zero, new Vector3(range.x, range.y, 0));

            Gizmos.color = GColor.Alpha(GColor.accentGreen, 0.9f);
            Gizmos.DrawWireCube(0.5f * range.z * Vector3.forward, range);

                #if UNITY_EDITOR
            // string text = string.Format("{0,0:0.0} m/s\n{1,0:0.0} km/h", targetSpeed, targetSpeed * 3.6f);
            // UnityEditor.Handles.Label(transform.position, text);
                #endif
        }
        void OnDrawGizmosSelected()
        {
            if (!isActiveAndEnabled)
            {
                return;
            }

            // Entry / exit planes

            Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);

            Vector3 planeSize = new Vector3(range.x, range.y, 0);

            // Entry plane

            Gizmos.color = GColor.Alpha(GColor.lightBlue, 0.5f);
            Gizmos.DrawWireCube(new Vector3(0, 0, range.z * fadeInZone), planeSize);
            Gizmos.DrawCube(Vector3.zero, planeSize);

            // Exit plane

            Gizmos.color = GColor.Alpha(GColor.indigo, 0.5f);
            Gizmos.DrawWireCube(new Vector3(0, 0, range.z * (1.0f - fadeOutZone)), planeSize);
            Gizmos.DrawCube(new Vector3(0, 0, range.z), planeSize);

            // Volume wire

            Gizmos.color = GColor.Alpha(GColor.blue, 0.9f);
            Gizmos.DrawWireCube(0.5f * range.z * Vector3.forward, range);

            // Texts

                #if UNITY_EDITOR
            // string text1 = string.Format("Entry: {0,0:0.0} m/s\n{1,0:0.0} km/h", entryTargetSpeed, entryTargetSpeed * 3.6f);
            // string text2 = string.Format("Exit: {0,0:0.0} m/s\n{1,0:0.0} km/h", exitTargetSpeed, exitTargetSpeed * 3.6f);
            // UnityEditor.Handles.Label(transform.position, text1);
            // UnityEditor.Handles.Label(transform.position + transform.forward*range.z, text2);
                #endif
        }
        public override void SetupChannels()
        {
            m_suspensionTravel       = dataLogger.NewChannel("Suspension travel");
            m_suspensionTravel.color = GColor.Alpha(GColor.lime, 0.7f);
            m_suspensionTravel.SetOriginAndSpan(3.0f, 1.0f, reference.maxSuspensionDistance * 1000.0f);
            m_suspensionTravel.alphaBlend       = true;
            m_suspensionTravel.valueFormat      = "0 mm";
            m_suspensionTravel.captionPositionY = 0;

            m_contactSpeed       = dataLogger.NewChannel("Contact Speed");
            m_contactSpeed.color = GColor.Alpha(GColor.lightBlue, 0.7f);
            m_contactSpeed.SetOriginAndSpan(3.0f, 0.5f, reference.maxSuspensionDistance * 1000.0f);
            m_contactSpeed.alphaBlend       = true;
            m_contactSpeed.scale            = 1.0f / (reference.maxSuspensionDistance * 1000.0f) * 0.5f;
            m_contactSpeed.valueFormat      = "0 mm/s";
            m_contactSpeed.captionPositionY = 1;

            m_contactDepth       = dataLogger.NewChannel("Contact Depth");
            m_contactDepth.color = GColor.Alpha(GColor.accentTeal, 0.7f);
            m_contactDepth.SetOriginAndSpan(3.0f, 1.0f, reference.maxSuspensionDistance * 1000.0f);
            m_contactDepth.alphaBlend       = true;
            m_contactDepth.valueFormat      = "0 mm";
            m_contactDepth.captionPositionY = 2;

            m_damperForce       = dataLogger.NewChannel("Damper force");
            m_damperForce.color = GColor.Alpha(GColor.purple, 0.7f);
            m_damperForce.SetOriginAndSpan(3.0f, 2.0f, reference.maxSuspensionDistance * reference.maxSpringRate);
            m_damperForce.alphaBlend       = true;
            m_damperForce.valueFormat      = "0 N";
            m_damperForce.captionPositionY = -2;

            m_suspensionForce       = dataLogger.NewChannel("Suspension force");
            m_suspensionForce.color = GColor.Alpha(GColor.red, 0.7f);
            m_suspensionForce.SetOriginAndSpan(3.0f, 2.0f, reference.maxSuspensionDistance * reference.maxSpringRate);
            m_suspensionForce.alphaBlend       = true;
            m_suspensionForce.valueFormat      = "0 N";
            m_suspensionForce.captionPositionY = -1;
        }
        public override void SetupChannels()
        {
            m_compressionDiff       = dataLogger.NewChannel("Compression Diff");
            m_compressionDiff.color = GColor.gray;
            m_compressionDiff.SetOriginAndSpan(4.5f, 1.0f, reference.maxSuspensionDistance * 1000.0f);
            m_compressionDiff.valueFormat      = "0 mm";
            m_compressionDiff.captionPositionY = 1;

            m_steerAngle       = dataLogger.NewChannel("Steer Angle (avg)");
            m_steerAngle.color = GColor.Alpha(Color.Lerp(GColor.teal, GColor.green, 0.75f), 0.7f);
            m_steerAngle.SetOriginAndSpan(4.5f, -1.0f, 35.0f);
            m_steerAngle.valueFormat      = "0.00 �";
            m_steerAngle.alphaBlend       = true;
            m_steerAngle.captionPositionY = 2;

            m_roll       = dataLogger.NewChannel("Roll");
            m_roll.color = GColor.Alpha(GColor.teal, 0.7f);
            m_roll.SetOriginAndSpan(4.5f, -1.0f, 10.0f);
            m_roll.valueFormat      = "0.00 �";
            m_roll.alphaBlend       = true;
            m_roll.captionPositionY = 0;

            m_yawRate       = dataLogger.NewChannel("Turn Rate");
            m_yawRate.color = GColor.Alpha(GColor.red, 0.6f);
            m_yawRate.SetOriginAndSpan(4.5f, -1.0f, 35.0f);
            m_yawRate.valueFormat = "0.0 �/s";
            // m_yawRate.alphaBlend = true;
            m_yawRate.captionPositionY = -1;

            m_yawRateVsSteer       = dataLogger.NewChannel("Turn Rate vs. Steering");
            m_yawRateVsSteer.color = GColor.gray;
            m_yawRateVsSteer.SetOriginAndSpan(2.0f, 1.0f, 15.0f);
            m_yawRateVsSteer.valueFormat = "0.00";

            // Channels will be drawn in the same order they're created

            m_leftCompression       = dataLogger.NewChannel("Left Contact Depth");
            m_leftCompression.color = GColor.Alpha(GColor.accentYellow, 0.7f);
            m_leftCompression.SetOriginAndSpan(1.0f, 1.0f, reference.maxSuspensionDistance * 1000.0f);
            m_leftCompression.alphaBlend       = true;
            m_leftCompression.valueFormat      = "0 mm";
            m_leftCompression.captionPositionY = 2;

            m_rightCompression       = dataLogger.NewChannel("Right Contact Depth");
            m_rightCompression.color = GColor.Alpha(GColor.accentLightBlue, 0.7f);
            m_rightCompression.SetOriginAndSpan(1.0f, 1.0f, reference.maxSuspensionDistance * 1000.0f);
            m_rightCompression.alphaBlend       = true;
            m_rightCompression.valueFormat      = "0 mm";
            m_rightCompression.captionPositionY = 1;

            m_leftSpring       = dataLogger.NewChannel("Effective Left Spring");
            m_leftSpring.color = GColor.Alpha(GColor.yellowA100, 0.7f);
            m_leftSpring.SetOriginAndSpan(0.0f, 0.9f, reference.maxSpringRate * 2.0f);
            m_leftSpring.alphaBlend       = true;
            m_leftSpring.valueFormat      = "0";
            m_leftSpring.captionPositionY = 2;

            m_rightSpring       = dataLogger.NewChannel("Effective Right Spring");
            m_rightSpring.color = GColor.Alpha(GColor.lightBlue200, 0.7f);
            m_rightSpring.SetOriginAndSpan(0.0f, 0.9f, reference.maxSpringRate * 2.0f);
            m_rightSpring.alphaBlend       = true;
            m_rightSpring.valueFormat      = "0";
            m_rightSpring.captionPositionY = 1;
        }
Example #11
0
        private unsafe Bitmap CalculateColorPickerBitmap(float hue)
        {
            Bitmap bitmap = new Bitmap(120, 120);
            Color  color  = Color.FromKnownColor(KnownColor.Control);
            float  num    = hue * -0.0174532924f;
            double num2   = (double)num;
            float  num3   = (float)Math.Cos(num2);
            GLine  gLine  = (float)Math.Sin(num2);
            double num4   = (double)(num + 2.09439516f);
            float  num5   = (float)Math.Cos(num4);
            float  num6   = num5;
            float  num7   = (float)Math.Sin(num4);
            GLine  gLine2 = num7;
            double num8   = (double)(num - 2.09439516f);
            float  num9   = (float)Math.Cos(num8);
            GLine  gLine3 = (float)Math.Sin(num8);
            int    num10  = 0;

            do
            {
                float num11 = (float)(num10 - 60);
                float num12 = num11 + 0.5f;
                int   num13 = -60;
                do
                {
                    float num14    = num12;
                    float num15    = (float)num13;
                    float num16    = num15 + 0.5f;
                    float num17    = num16;
                    float expr_AC  = num17;
                    float arg_B2_0 = expr_AC * expr_AC;
                    float expr_B0  = num14;
                    float num18    = arg_B2_0 + expr_B0 * expr_B0;
                    if (num18 > 3685.353f)
                    {
                        bitmap.SetPixel(num13 + 60, num10, color);
                    }
                    else if (num18 < 2236.61768f)
                    {
                        int   num19 = 0;
                        int   num20 = 0;
                        float num21 = num15 + 0.125f;
                        float num22 = num15 + 0.375f;
                        float num23 = num15 + 0.625f;
                        float num24 = num15 + 0.875f;
                        do
                        {
                            GPoint2 gPoint = num21;
                            float   num25  = ((float)num20 + 0.5f) * 0.25f + num11;
                            *(ref gPoint + 4) = num25;
                            if (*(ref gPoint + 4) * num3 + gPoint * gLine - 22.5f < 0f && gPoint * gLine2 + *(ref gPoint + 4) * num6 - 22.5f < 0f && gPoint * gLine3 + *(ref gPoint + 4) * num9 - 22.5f < 0f)
                            {
                                num19++;
                            }
                            gPoint            = num22;
                            *(ref gPoint + 4) = num25;
                            if (*(ref gPoint + 4) * num3 + gPoint * gLine - 22.5f < 0f && gPoint * gLine2 + *(ref gPoint + 4) * num6 - 22.5f < 0f && gPoint * gLine3 + *(ref gPoint + 4) * num9 - 22.5f < 0f)
                            {
                                num19++;
                            }
                            gPoint            = num23;
                            *(ref gPoint + 4) = num25;
                            if (*(ref gPoint + 4) * num3 + gPoint * gLine - 22.5f < 0f && gPoint * gLine2 + *(ref gPoint + 4) * num6 - 22.5f < 0f && gPoint * gLine3 + *(ref gPoint + 4) * num9 - 22.5f < 0f)
                            {
                                num19++;
                            }
                            gPoint            = num24;
                            *(ref gPoint + 4) = num25;
                            if (*(ref gPoint + 4) * num3 + gPoint * gLine - 22.5f < 0f && gPoint * gLine2 + *(ref gPoint + 4) * num6 - 22.5f < 0f && gPoint * gLine3 + *(ref gPoint + 4) * num9 - 22.5f < 0f)
                            {
                                num19++;
                            }
                            num20++;
                        }while (num20 < 4);
                        if (num19 != 0)
                        {
                            GPoint2 gPoint2 = num16;
                            *(ref gPoint2 + 4) = num12;
                            float num26 = num5;
                            float num27 = num7;
                            float num28 = (num27 * gPoint2 + num26 * *(ref gPoint2 + 4) + 45f) * 0.0148148146f;
                            float num29;
                            if (num28 <= 0f)
                            {
                                num29 = 0f;
                                goto IL_32A;
                            }
                            num29 = num28;
                            if (num28 < 1f)
                            {
                                goto IL_32A;
                            }
                            float num30 = 1f;
IL_337:
                            double num31 = (double)(num + 3.66519165f);
                            float num32 = (float)Math.Cos(num31);
                            float num33 = (float)Math.Sin(num31);
                            float num34 = num33 * gPoint2 + num32 * *(ref gPoint2 + 4);
                            if (num30 <= 0.001f)
                            {
                                goto IL_3A2;
                            }
                            num34 = num34 / num30 * 0.0222222228f / (float)Math.Sqrt(3.0) + 0.5f;
                            if (num34 <= 0f)
                            {
                                goto IL_3A2;
                            }
                            float num35 = num34;
                            if (num34 < 1f)
                            {
                                goto IL_3B4;
                            }
                            float num36 = 1f;
IL_3C1:
                            GColor gColor;
                            *(ref gColor + 8)  = 0f;
                            *(ref gColor + 4)  = 0f;
                            gColor             = 0f;
                            *(ref gColor + 12) = 1f;
                            < Module >.GColor.FromHSV(ref gColor, (int)((double)hue), (int)((double)(num36 * 100f)), (int)((double)(num30 * 100f)));
                            if (num19 == 16)
                            {
                                Color color2 = Color.FromArgb(255, (int)(gColor * 255f), (int)((double)(*(ref gColor + 4) * 255f)), (int)((double)(*(ref gColor + 8) * 255f)));
                                bitmap.SetPixel(num13 + 60, num10, color2);
                                goto IL_8D1;
                            }
                            float num37  = (float)num19 * 0.0625f;
                            float num38  = 1f - num37;
                            Color color3 = Color.FromArgb(255, (int)((float)color.R * num38 + num37 * gColor * 255f), (int)((double)((float)color.G * num38 + num37 * *(ref gColor + 4) * 255f)), (int)((double)((float)color.B * num38 + num37 * *(ref gColor + 8) * 255f)));
                            bitmap.SetPixel(num13 + 60, num10, color3);
                            goto IL_8D1;
IL_3B4:
                            num36 = num35;
                            goto IL_3C1;
IL_3A2:
                            num35 = 0f;
                            goto IL_3B4;
IL_32A:
                            num30 = num29;
                            goto IL_337;
                        }
                        bitmap.SetPixel(num13 + 60, num10, color);
                    }