GetQuestion() public method

Returns the question to be answered.
public GetQuestion ( ) : Question,
return Question,
    private void PopulateRichTextAreas(Problem problemToDisplay)
    {
        Question question       = problemToDisplay.GetQuestion();
        int      textAreaCount  = question.GetQuestionPartCount();
        float    ySpacePerArea  = 1f / (float)(textAreaCount - question.GetMultipleChoiceLetterCount());
        float    xSpacePerImage = (float)1 / Mathf.Clamp((float)question.GetMaximumQuestionPartRepeated(), 1, imagesPerRow);
        float    ySpacePerImage = (float)1 / Mathf.Ceil((float)question.GetMaximumQuestionPartRepeated()
                                                        / (float)imagesPerRow);

        int  row = 0;
        bool previousAreaWasMultipleChoice = false;

        if (textAreaCount == 0)
        {
            Senseix.Logger.BasicLog("I got a problem with no question atoms.");
            return;            //throw new UnityException ("I got a problem with no question atoms.");
        }
        richTextAreas = new GameObject[textAreaCount];

        for (int i = 0; i < textAreaCount; i++)
        {
            GameObject  newArea     = Instantiate(questionTextPrefab) as GameObject;
            ProblemPart problemPart = problemToDisplay.GetQuestion().GetQuestionPart(i);

            if (newArea.GetComponent <RectTransform>() == null ||
                newArea.GetComponent <Text>() == null)
            {
                throw new UnityException("richTextArea must have a rect transform and Text");
            }

            if (problemPart.HasString())
            {
                newArea.GetComponent <Text>().text += problemPart.GetString();
            }

            float indentedX = 0f;
            if (previousAreaWasMultipleChoice)
            {
                indentedX = indentMultipleChoices;
            }

            newArea.GetComponent <RectTransform>().SetParent(questionParent);
            PositionRectTransform(newArea.GetComponent <RectTransform>(),
                                  indentedX,
                                  1 - (row + 1) * ySpacePerArea,
                                  1,
                                  1 - row * ySpacePerArea);

            if (problemPart.HasSprite())
            {
                //squish this a little bit to provide space between image groups
                newArea.GetComponent <RectTransform>().anchorMin += new Vector2(0f, spaceImageAreas);
                newArea.GetComponent <RectTransform>().anchorMax -= new Vector2(0f, spaceImageAreas);


                for (int j = 0; j < problemPart.TimesRepeated(); j++)
                {
                    GameObject newImage = Instantiate(questionImagePrefab) as GameObject;
                    newImage.GetComponent <RectTransform>().SetParent(newArea.transform);
                    int imageColumn = j % imagesPerRow;
                    int imageRow    = Mathf.FloorToInt((float)j / (float)imagesPerRow);
                    PositionRectTransform(newImage.GetComponent <RectTransform>(),
                                          (imageColumn * xSpacePerImage),
                                          1 - (imageRow + 1) * ySpacePerImage,
                                          ((imageColumn + 1) * xSpacePerImage),
                                          1 - imageRow * ySpacePerImage);

                    newImage.GetComponent <Image>().sprite = problemPart.GetSprite();
                }
            }

            richTextAreas[i] = newArea;

            if (!problemPart.IsMultipleChoiceLetter())
            {
                row++;
                previousAreaWasMultipleChoice = false;
            }
            else
            {
                previousAreaWasMultipleChoice = true;
            }
        }
    }
    private void PopulateRichTextAreas(Problem problemToDisplay)
    {
        Question question = problemToDisplay.GetQuestion ();
        int textAreaCount = question.GetQuestionPartCount ();
        float ySpacePerArea = 1f / (float)(textAreaCount - question.GetMultipleChoiceLetterCount());
        float xSpacePerImage = (float)1/Mathf.Clamp((float)question.GetMaximumQuestionPartRepeated(), 1, imagesPerRow);
        float ySpacePerImage = (float)1 / Mathf.Ceil((float)question.GetMaximumQuestionPartRepeated()
                                                     / (float)imagesPerRow);

        int row = 0;
        bool previousAreaWasMultipleChoice = false;

        if (textAreaCount == 0)
        {
            Senseix.Logger.BasicLog("I got a problem with no question atoms.");
            return;//throw new UnityException ("I got a problem with no question atoms.");
        }
        richTextAreas = new GameObject[textAreaCount];

        for (int i = 0; i < textAreaCount; i++)
        {
            GameObject newArea = Instantiate(questionTextPrefab) as GameObject;
            ProblemPart problemPart = problemToDisplay.GetQuestion().GetQuestionPart(i);

            if (newArea.GetComponent<RectTransform>() == null ||
                newArea.GetComponent<Text>() == null )
                throw new UnityException("richTextArea must have a rect transform and Text");

            if (problemPart.HasString())
            {
                newArea.GetComponent<Text>().text += problemPart.GetString();
            }

            float indentedX = 0f;
            if (previousAreaWasMultipleChoice)
                indentedX = indentMultipleChoices;

            newArea.GetComponent<RectTransform>().SetParent(questionParent);
            PositionRectTransform(newArea.GetComponent<RectTransform>(),
                                  indentedX,
                                  1 - (row + 1) * ySpacePerArea,
                                  1,
                                  1 - row * ySpacePerArea);

            if (problemPart.HasSprite())
            {
                //squish this a little bit to provide space between image groups
                newArea.GetComponent<RectTransform>().anchorMin += new Vector2(0f, spaceImageAreas);
                newArea.GetComponent<RectTransform>().anchorMax -= new Vector2(0f, spaceImageAreas);

                for (int j = 0; j < problemPart.TimesRepeated(); j++)
                {
                    GameObject newImage = Instantiate(questionImagePrefab) as GameObject;
                    newImage.GetComponent<RectTransform>().SetParent(newArea.transform);
                    int imageColumn = j % imagesPerRow;
                    int imageRow = Mathf.FloorToInt((float)j / (float)imagesPerRow);
                    PositionRectTransform(newImage.GetComponent<RectTransform>(),
                                          (imageColumn * xSpacePerImage),
                                          1 - (imageRow + 1) * ySpacePerImage,
                                          ((imageColumn + 1) * xSpacePerImage),
                                          1 - imageRow * ySpacePerImage);

                    newImage.GetComponent<Image>().sprite = problemPart.GetSprite();
                }
            }

            richTextAreas[i] = newArea;

            if (!problemPart.IsMultipleChoiceLetter())
            {
                row++;
                previousAreaWasMultipleChoice = false;
            }
            else
            {
                previousAreaWasMultipleChoice = true;
            }
        }
    }