Beispiel #1
0
        private void CalcBodyCenter(functionType function)
        {
            center.X = (xMax + xMin) / 2;
            center.Z = (zMin + zMax) / 2;
            center.Y = function(center.X, center.Z);

            //center.Y = mas[(int)Math.Round((center.X + 2) / xStep), (int)Math.Round((center.Z + 2) / zStep)];
        }
Beispiel #2
0
    private IEnumerator Chacking(functionType callback)
    {
        while (true)
        {
            yield return(new WaitForFixedUpdate());

            if (!audioSource.isPlaying)
            {
                callback();
                break;
            }
        }
    }
Beispiel #3
0
    private IEnumerator lChecking(functionType callback)
    {
        while (true)
        {
            yield return(new WaitForFixedUpdate());

            if (!last_tap.isPlaying)
            {
                callback();
                break;
            }
        }
    }
Beispiel #4
0
    private IEnumerator OnPlayFinished(functionType callback, AudioSource audio)
    {
        while (true)
        {
            yield return(new WaitForFixedUpdate());

            if (!audio.isPlaying)
            {
                callback(audio);
                break;
            }
        }
    }
Beispiel #5
0
    private IEnumerator Checking(functionType callback)
    {
        while (true)
        {
            yield return(new WaitForFixedUpdate());

            if (!sound.isPlaying)
            {
                call = true;
                break;
            }
        }
    }
Beispiel #6
0
        public void drawZ(Graphics g, functionType function)
        {
            graphics = g;
            Point2D prevPoint,
                    leftPoint  = new Point2D(NULL, NULL),
                    rigthPoint = new Point2D(NULL, NULL);

            for (double currentZ = zMax; currentZ >= zMin; currentZ -= zStep)
            {
                double y;
                y         = function(xMin, currentZ);
                prevPoint = c3Dto2D(xMin, y, currentZ);
                DrawifOK(prevPoint, ref leftPoint);
                if (!(CheckPoint(prevPoint) && CheckPoint(leftPoint)))
                {
                    continue;
                }

                Vis prevVisible = CheckVis(prevPoint);

                Point2D currentPoint = new Point2D();
                for (double currentX = xMin; currentX <= xMax; currentX += xStep)
                {
                    cur = false;
                    if (currentX > xMax - zStep / 2)
                    {
                        // cur = true;
                    }

                    y            = function(currentX, currentZ);
                    currentPoint = c3Dto2D(currentX, y, currentZ);
                    if (!CheckPoint(currentPoint))
                    {
                        continue;
                    }
                    Vis currentVisibily = CheckVis(currentPoint);
                    if (currentVisibily == prevVisible)
                    {
                        if (currentVisibily == Vis.lower || currentVisibily == Vis.upper)
                        {
                            DrawLine(prevPoint, currentPoint);
                            Smooth(prevPoint, currentPoint);
                        }
                        prevVisible = currentVisibily;
                        prevPoint   = currentPoint;
                    }
                    DrawifOK(currentPoint, ref rigthPoint);
                }
            }
        }
Beispiel #7
0
        public bool addNewSimulationUnit(string id, functionType fType, int address)
        {
            Thread         t = null;
            SimulationUnit u = new SimulationUnit();;

            foreach (var idt in threadsDict.Keys)
            {
                if (idt == id)
                {
                    return(false);
                }
            }

            u.id = id;

            switch (fType)
            {
            case functionType.Sin:
                t       = new Thread(new ParameterizedThreadStart(Sine));
                u.fType = functionType.Sin;
                break;

            case functionType.Cos:
                t       = new Thread(new ParameterizedThreadStart(Cosine));
                u.fType = functionType.Cos;
                break;

            case functionType.Ramp:
                t       = new Thread(new ParameterizedThreadStart(Ramp));
                u.fType = functionType.Ramp;
                break;

            case functionType.Triangle:
                t       = new Thread(new ParameterizedThreadStart(Triangle));
                u.fType = functionType.Triangle;
                break;

            case functionType.Rectangle:
                t       = new Thread(new ParameterizedThreadStart(Rectangle));
                u.fType = functionType.Rectangle;
                break;
            }
            u.address       = address;
            unitsDict[id]   = u;
            threadsDict[id] = t;
            t.Start(address);
            return(true);
        }
Beispiel #8
0
 public void Draw(Graphics g, functionType function)
 {
     if (!flag)
     {
         CalcFunction(function);
     }
     if (resTemp != resttt)
     {
         CalcBodyCenter(function);
         resTemp = resttt;
     }
     StartDoubleBuffering();
     ResetHor();
     drawZ(g, function);
     finishDoubleBuffering();
 }
Beispiel #9
0
        private void DrawHelperZ(Graphics imageGraphics, functionType function)
        {
            Point2D prevPoint,
                    leftPoint  = new Point2D(EMPTY_VALUE, EMPTY_VALUE),
                    rightPoint = new Point2D(EMPTY_VALUE, EMPTY_VALUE);

            for (double currentZ = zMax; currentZ >= zMin; currentZ -= zStep)
            {
                double y;
                y         = function(xMin, currentZ);
                prevPoint = TransformView(xMin, y, currentZ).ToPoint2D();
                ProcessEdge(prevPoint, ref leftPoint);
                if (!(CheckPoint(prevPoint) && CheckPoint(leftPoint)))
                {
                    continue;
                }

                VisibilityType prevVisibility = CheckVisibility(prevPoint);

                Point2D currentPoint = new Point2D();
                for (double currentX = xMin; currentX <= xMax; currentX += xStep)
                {
                    y            = function(currentX, currentZ);
                    currentPoint = TransformView(currentX, y, currentZ).ToPoint2D();
                    if (!CheckPoint(currentPoint))
                    {
                        continue;
                    }
                    VisibilityType currentVisibility = CheckVisibility(currentPoint);
                    if (currentVisibility == prevVisibility)
                    {
                        if (currentVisibility == VisibilityType.VisibleAndLower || currentVisibility == VisibilityType.VisibleAndUpper)
                        {
                            DrawLine(prevPoint, currentPoint);
                            Smooth(prevPoint, currentPoint);
                        }
                    }
                    else
                    {
                        ProcessHorizonIntersectingLine(currentVisibility, prevVisibility, prevPoint, currentPoint);
                    }
                    prevVisibility = currentVisibility;
                    prevPoint      = currentPoint;
                }
                ProcessEdge(currentPoint, ref rightPoint);
            }
        }
Beispiel #10
0
        private void CalcFunction(functionType function)
        {
            int i = 0, j = 0;

            for (double currentZ = zMin; currentZ <= zMax; currentZ += zStep)
            {
                if (i >= 67)
                {
                    i = 0;
                }
                for (double currentX = xMin; currentX <= xMax; currentX += xStep)
                {
                    if (j >= 67)
                    {
                        j = 0;
                    }
                    mas[i, j] = function(currentX, currentZ);
                    j++;
                }
                i++;
                j = 0;
            }
        }
Beispiel #11
0
        public void Draw(Graphics imageGraphics, functionType function)
        {
            #region Debug
            Debug.Assert(imageGraphics != null);
            Debug.Assert(zMin != EMPTY_VALUE && zMax != EMPTY_VALUE && xMin != EMPTY_VALUE &&
                         xMax != EMPTY_VALUE);
            Debug.Assert(xStep != 0 && zStep != 0);
            #endregion

            CalcBodyCenter(function);
            StartDoubleBuffering();
            ResetHorizons();

            isInverted      = false;
            currentFunction = function;
            functionType wrapperFunc = new functionType(functionWrapper);
//              if (!(Math.PI / 2.0 < angleY && angleY < 3 * Math.PI / 2.0))
//                  zStep *= -1;
            try
            {
                DrawHelperZ(imageGraphics, wrapperFunc);
                //ResetHorizons();
//                 angleY += Math.PI / 2.0;
//                 isInverted = true;
//                 DrawHelperZ(imageGraphics, wrapperFunc);
//                 isInverted = false;
//                 angleY -= Math.PI / 2.0;
            }
            catch (Exception)
            {
                Debug.Assert(false);
            }
            finally
            {
                FinishDoubleBuffering(imageGraphics);
            }
        }
Beispiel #12
0
 public bool addNewSimulationDriverUnit(string id, functionType fType, int address)
 {
     return(simulationDriver.addNewSimulationUnit(id, fType, address));
 }
Beispiel #13
0
 private void CalcBodyCenter(functionType function)
 {
     bodyCenter.X = (xMax + xMin) / 2;
     bodyCenter.Z = (zMin + zMax) / 2;
     bodyCenter.Y = function(bodyCenter.X, bodyCenter.Z);
 }
Beispiel #14
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = function.SelectedIndex;

            fType = (functionType)selectedIndex;
        }