public ModelDisplayObject GetDisplayObject(object objectToDisplay)
{
Type displayType;
if (!displayObjects.ContainsKey(objectToDisplay))
{
if (displayTypes.TryGetValue(objectToDisplay.GetType(), out displayType))
{
#if !WINDOWS
return (ModelDisplayObject)displayType.GetConstructor(
new Type[] { typeof(ModelDrawer), objectToDisplay.GetType() })
.Invoke(new object[] { this, objectToDisplay });
#else
return (ModelDisplayObject)Activator.CreateInstance(displayType, new[] { this, objectToDisplay });
#endif
}
Entity e;
if ((e = objectToDisplay as Entity) != null)
{
return new DisplayEntityCollidable(this, e.CollisionInformation);
}
EntityCollidable entityCollidable;
if ((entityCollidable = objectToDisplay as EntityCollidable) != null)
{
return new DisplayEntityCollidable(this, entityCollidable);
}
}
return null;
}