public Portal( string name, PORTAL_TYPE type )
{
mType = type;
mName = name;
mTargetZone = null;
mCurrentHomeZone = null;
mNewHomeZone = null;
mTargetPortal = null;
mNode = null;
mRadius = 0.0;
mDirection = Math.Vector3.UnitZ;
mLocalsUpToDate = false;
mDerivedSphere = new Sphere();
mDerivedPlane = new Plane();
// set prevWorldTransform to a zero'd out matrix
prevWorldTransform = Math.Matrix4.Zero;
// default to open
mOpen = true;
switch ( mType )
{
default:
case PORTAL_TYPE.PORTAL_TYPE_QUAD:
mCorners = new Vector3[ 4 ];
mDerivedCorners = new Vector3[ 4 ];
break;
case PORTAL_TYPE.PORTAL_TYPE_AABB:
mCorners = new Vector3[ 2 ];
mDerivedCorners = new Vector3[ 2 ];
break;
case PORTAL_TYPE.PORTAL_TYPE_SPHERE:
mCorners = new Vector3[ 2 ];
mDerivedCorners = new Vector3[ 2 ];
break;
}
}