Example #1
0
    void RunNextTrial()
    {
        int currentFinalIndex = (currentInitialTargetId + 1) % targets.Length;

        if (currentInitialTargetId < targets.Length)
        {
            TrialMeasurements lastTrial = null;
            if (blockMeasurements.trialsData.Count > 0)
            {
                lastTrial = blockMeasurements.trialsData[blockMeasurements.trialsData.Count - 1];
            }
            if (task == ExperimentTask.ReciprocalDragging)
            {
                currentTrial = new DragTestController(currentInitialTargetId, targets[currentInitialTargetId], targets[currentFinalIndex], this, cursor, lastTrial);
            }
            else
            {
                currentTrial = new TappingTrialController(currentInitialTargetId, targets[currentInitialTargetId], targets[currentFinalIndex], this, cursor, lastTrial);
            }
            currentTrial.StartTrial();
        }
        else
        {
            FinishBlockOfTrials();
        }
    }
 public TrialController(int theTrialId, TargetBehaviour initialTarget, TargetBehaviour finalTarget, ITrialListener theListener, CursorBehaviour theCursor, TrialMeasurements lastTrial)
 {
     this.trialId       = theTrialId;
     this.initialTarget = initialTarget;
     this.finalTarget   = finalTarget;
     this.listener      = theListener;
     this.cursor        = theCursor;
     _lastTrial         = lastTrial;
     InitializeTrial();
 }
    public void UpdateOutlierState(TrialMeasurements theTrial)
    {
        Vector3 initialTargetPos  = theTrial.initialTargetPosition;
        Vector3 finalTargetPos    = theTrial.finalTargetPosition;
        float   expectedAmplitude = (initialTargetPos - finalTargetPos).magnitude;

        Vector3 initialPos    = theTrial.initialPosition;
        Vector3 finalPos      = theTrial.positionActionEnded;
        float   realAmplitude = (initialPos - finalPos).magnitude;

        theTrial.MarkAsOutlier(realAmplitude < (expectedAmplitude / 2));
    }
 public TrialMeasurements(int trialId, TargetBehaviour initialTarget, TargetBehaviour finalTarget, TrialMeasurements lastTrial)
 {
     this.lastTrial             = lastTrial;
     this.trialId               = trialId;
     this.initialTargetId       = initialTarget.targetId;
     this.finalTargetId         = finalTarget.targetId;
     this.initialTargetPosition = initialTarget.position;
     this.finalTargetPosition   = finalTarget.position;
     this.initialTime           = -1;
     this.timeActionStarted     = -1;
     this.timeActionEnded       = -1;
     this.trialDuration         = -1;
 }
Example #5
0
 public TappingTrialController(int theTrialId, TargetBehaviour initialTarget, TargetBehaviour finalTarget, ITrialListener theListener, CursorBehaviour theCursor, TrialMeasurements lastTrial)
     : base(theTrialId, initialTarget, finalTarget, theListener, theCursor, lastTrial)
 {
 }
Example #6
0
 public void OnTrialEnded(TrialMeasurements measurements)
 {
     blockMeasurements.trialsData.Add(measurements);
     currentInitialTargetId++;
     RunNextTrial();
 }
Example #7
0
    public DragTestController(int theTrialId, TargetBehaviour initialTarget, TargetBehaviour finalTarget, ITrialListener theListener, CursorBehaviour theCursor, TrialMeasurements lastTrial)
        : base(theTrialId, initialTarget, finalTarget, theListener, theCursor, lastTrial)
    {
        draggableObject = Object.Instantiate(initialTarget.gameObject);

        var targetBehaviour = draggableObject.GetComponent <TargetBehaviour>();

        targetBehaviour.UnhighlightTarget();
        targetBehaviour.SetAsDraggableTarget();
        Object.Destroy(targetBehaviour);

        draggableObject.transform.SetParent(cursor.transform);
        draggableObject.transform.localPosition = Vector3.zero;
        draggableObject.SetActive(false);
    }
 public virtual void InitializeTrial()
 {
     trialData = new TrialMeasurements(trialId, initialTarget, finalTarget, _lastTrial);
     initialTarget.SetAsNormalTarget();
     finalTarget.SetAsNextTarget();
 }