/// <summary>
    /// get the currently used trapezoid configuration to the framework
    /// </summary>
    /// <returns></returns>
    public static TrapezoidsPair GetAppliedTrapezoidsConfiguration()
    {
        TrapezoidCondition innerTrapezoid = (TrapezoidCondition)BeckonManager.BeckonInstance.PersonMonitor.GetPositionCondition(m_innerTrapezoidConditionName);
        TrapezoidCondition outerTrapezoid = (TrapezoidCondition)BeckonManager.BeckonInstance.PersonMonitor.GetPositionCondition(m_outerTrapezoidConditionName);

        if (innerTrapezoid == null || outerTrapezoid == null)
        {
            return(null);
        }

        TrapezoidsPair tp = new TrapezoidsPair();

        TrapezoidCondition.TrapezoidDimensions innerTrapezoidDim = innerTrapezoid.TrapezoidDimensionsRef;
        TrapezoidCondition.TrapezoidDimensions outerTrapezoidDim = outerTrapezoid.TrapezoidDimensionsRef;
        TrapezoidDefinition innerTrapezoidDef = tp.innerTrapezoid;
        TrapezoidDefinition outerTrapezoidDef = tp.outerTrapezoid;

        innerTrapezoidDef.nearWidth = innerTrapezoidDim.NearWidth;
        innerTrapezoidDef.farWidth  = innerTrapezoidDim.FarWidth;
        innerTrapezoidDef.nearPlane = innerTrapezoidDim.NearPlane;
        innerTrapezoidDef.farPlane  = innerTrapezoidDim.FarPlane;
        outerTrapezoidDef.nearWidth = outerTrapezoidDim.NearWidth;
        outerTrapezoidDef.farWidth  = outerTrapezoidDim.FarWidth;
        outerTrapezoidDef.nearPlane = outerTrapezoidDim.NearPlane;
        outerTrapezoidDef.farPlane  = outerTrapezoidDim.FarPlane;

        return(tp);
    }
    /// <summary>
    /// transfer the trapezoid configuration to the framework
    /// </summary>
    public void ApplyCurrentTrapezoidsConfiguration()
    {
        if (m_innerTrapezoid == null || m_outerTrapezoid == null)
        {
            return;
        }

        TrapezoidCondition.TrapezoidDimensions innerTrapezoidDim = m_innerTrapezoid.TrapezoidDimensionsRef;
        TrapezoidCondition.TrapezoidDimensions outerTrapezoidDim = m_outerTrapezoid.TrapezoidDimensionsRef;
        TrapezoidDefinition innerTrapezoidDef = CurrentTrapezoidsConfiguration.innerTrapezoid;
        TrapezoidDefinition outerTrapezoidDef = CurrentTrapezoidsConfiguration.outerTrapezoid;

        innerTrapezoidDim.NearWidth = innerTrapezoidDef.nearWidth;
        innerTrapezoidDim.FarWidth  = innerTrapezoidDef.farWidth;
        innerTrapezoidDim.NearPlane = innerTrapezoidDef.nearPlane;
        innerTrapezoidDim.FarPlane  = innerTrapezoidDef.farPlane;
        outerTrapezoidDim.NearWidth = outerTrapezoidDef.nearWidth;
        outerTrapezoidDim.FarWidth  = outerTrapezoidDef.farWidth;
        outerTrapezoidDim.NearPlane = outerTrapezoidDef.nearPlane;
        outerTrapezoidDim.FarPlane  = outerTrapezoidDef.farPlane;
    }