예제 #1
0
        protected SukiSchema()
        {
            name       = "";
            resolution = InputResolution.Trigger;
            data       = SukiData.Instance;

            CalculationFunction   = null;
            ReductionFunction     = null;
            ConditionFunction     = null;
            FloatBoundsFunction   = null;
            Vector2BoundsFunction = null;
            Vector3BoundsFunction = null;
        }
예제 #2
0
        protected virtual void Setup(SukiSchemaInfo info)
        {
            _id        = info._id;
            name       = info.SchemaName;
            resolution = info.SchemaResolution;
            device     = info.SchemaDevice;
            metric     = info.SchemaMetric;

            if (null != info.CalculationInfo)
            {
                SetCalculationFunction(info.CalculationInfo.calculationOperator, info.CalculationInfo.vectorOperand);
            }
            if (null != info.ReductionInfo)
            {
                SetReductionFunction(info.ReductionInfo.reductionOperator, info.ReductionInfo.vectorOperand);
            }
            if (null != info.ConditionInfo)
            {
                SetConditionFunction(info.ConditionInfo.conditionOperator, info.ConditionInfo.scalarOperand, info.ConditionInfo.extentPercentage);
            }
            if (null != info.FloatBoundsInfo)
            {
                SetFloatBoundsFunction(info.FloatBoundsInfo.lowBounds, info.FloatBoundsInfo.highBounds, info.FloatBoundsInfo.useExtents, info.FloatBoundsInfo.reverse);
            }
            if (null != info.Vector2BoundsInfo)
            {
                SetVector2BoundsFunction(info.Vector2BoundsInfo.lowBounds, info.Vector2BoundsInfo.highBounds, info.Vector2BoundsInfo.useExtents, info.Vector2BoundsInfo.reverse);
            }
            if (null != info.Vector3BoundsInfo)
            {
                SetVector3BoundsFunction(info.Vector3BoundsInfo.lowBounds, info.Vector3BoundsInfo.highBounds);
            }

            switch (info.SchemaResolution)
            {
            case InputResolution.Trigger:
                data.CreateTrigger(name, false);
                break;

            case InputResolution.Signal:
                data.CreateSignal(name, false);
                break;

            case InputResolution.Range:
                data.CreateRange(name, 0.5f);
                break;

            case InputResolution.Location2D:
                data.CreateLocation2D(name, Vector2.zero);
                break;

            case InputResolution.Location3D:
                data.CreateLocation3D(name, Vector3.zero);
                break;

            default:
                throw new System.Exception("Invalid Schema Resolution");
            }

            GetSchemaExtentsFromServer();
        }