public string GetItemText(Item item, Vector3 position, float xPos)
{
StringBuilder sb = new StringBuilder();
RenderOptions options = graphicViewManager.ActiveView.ModelRenderer.RenderOptions;
if (model.HasResults && (model.Results.ActiveCase == null || model.Results.ActiveCase.AbstractCase == null))
return string.Empty;
if (item != null && !options.ShowAnimated)
{
if (!options.ShowDeformed && options.InternalForcesShown == RenderOptions.InternalForces.None && !options.ShowDesigned)
{
#region Show just model info (No Results here)
if (item is Joint)
{
Joint j = item as Joint;
sb.Append(getJointID(j));
sb.Append(" " + Culture.Get("Layer") + ": " + getJointLayer(j));
sb.Append(getJointCoord(j));
sb.Append(getJointRestraints(j));
sb.Append(getJointConstraints(j));
sb.Append(getJointMasses(j));
}
else if (item is LineElement)
{
LineElement l = item as LineElement;
sb.Append(getLineID(l, xPos));
sb.Append(getLineLength(l));
sb.Append(" " + Culture.Get("Layer") + ": " + getLineLayer(l));
sb.Append(getLineSection(l));
}
#endregion
}
else if (options.ShowStressed) { } // Don't do anything (yet)
else if (options.ShowDesigned)
{
#region Design
if (item is Joint)
{
Joint j = item as Joint;
sb.Append(getJointID(j));
sb.Append(getJointCoord(j));
// TODO: Show design results (at point)
}
else if (item is LineElement)
{
LineElement l = item as LineElement;
sb.Append(getLineID(l, xPos));
sb.Append(getLineDesignInfo(l, xPos));
}
#endregion
}
else if (options.ShowDeformed)
{
#region Deformed
if (item is Joint)
{
Joint j = item as Joint;
sb.Append(getJointID(j));
sb.Append(getJointCoord(j));
sb.Append(getJointDisplacements(j));
}
else if (item is LineElement)
{
LineElement l = item as LineElement;
sb.Append(getLineID(l, xPos));
sb.Append(getLineDeformedInfo(l, xPos));
}
#endregion
}
else if (options.InternalForcesShown != RenderOptions.InternalForces.None)
{
#region Internal Forces
if (item is Joint)
{
Joint j = item as Joint;
sb.Append(getJointID(j));
sb.Append(getJointCoord(j));
}
else if (item is LineElement)
{
LineElement l = item as LineElement;
sb.Append(getLineID(l, xPos));
sb.Append(getLineForcesInfo(l, xPos, options.InternalForcesShown));
// TODO: Show internal force value at point
}
#endregion
}
}
return sb.ToString();
}