protected SukiSchema() { name = ""; resolution = InputResolution.Trigger; data = SukiData.Instance; CalculationFunction = null; ReductionFunction = null; ConditionFunction = null; FloatBoundsFunction = null; Vector2BoundsFunction = null; Vector3BoundsFunction = null; }
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(); }