public static Cost CalculateDoorCost(_Model m)
        {
            localModel = m;
            localModel.FillAdjacencyMatrix();           //TODO: this might not be needed at all
            localModel.FillTransparencyMatrix();
            localModel.CalculateRelatedRoomsForLines(); //not sure about the ordering
            localModel.FillDepthArray();
            C = new Cost(-1, 0, 0, 0, 0);

            C.LayoutCost = CalculateDoorCost();
            return(C);
        }
        public static Cost CalculateCostNew(_Model m)
        {
            localModel = m;
            localModel.FillAdjacencyMatrix();
            //localModel.FillDepthArray();
            localModel.CalculateRelatedRoomsForLines();
            C = new Cost(-1, 0, 0, 0, 0);

            C.AreaCost      = CalculateParameterCost();
            C.LayoutCost    = CalculateLayoutCost();
            C.ConstaintCost = CalculateConstraintCost();

            return(C);
        }