/// <summary>
        /// Constructor to initalize NaturalFeature as a River.
        /// </summary>
        /// <param name="river_start">The gridcoordinate that the river starts on</param>
        /// <param name="river_end">The gridcoordinate that the river ends on</param>
        /// <param name="deep_thick">The deep water thickness is 1 + up to this #</param>
        /// <param name="shallow_thick">Shallow water thickness is 1 + up to this #</param>
        /// <param name="bank_thick">Shoreline thickness is 1 + up to this #</param>
        public NaturalFeature(gridCoordinate river_start, gridCoordinate river_end, River_Type r_typ,
                              int deep_thick, int shallow_thick, int bank_thick)
        {
            feature_startCoord = river_start;
            feature_endCoord = river_end;
            deepwater_thickness = deep_thick;
            shallow_thickness = shallow_thick;
            banks_thickness = bank_thick;
            my_fType = Feature_Type.River;
            my_rivType = r_typ;

            calculate_crossing_points();
        }
        public NaturalFeature(FeatureDC base_feature)
        {
            my_fType = (Feature_Type)Enum.Parse(typeof(Feature_Type), base_feature.FeatureType);
            my_rivType = (River_Type)Enum.Parse(typeof(River_Type), base_feature.RiverType);

            feature_startCoord = grid_c_from_matrix_c(base_feature.Start_Coord);
            feature_endCoord = grid_c_from_matrix_c(base_feature.End_Coord);

            banks_thickness = -1;
            shallow_thickness = -1;
            deepwater_thickness = -1;
            lake_roomthickness = -1;
            lake_shorethickness = -1;
            lake_shallowsthickness = -1;

            if (my_fType == Feature_Type.Lake)
            {
                lake_roomthickness = base_feature.Lake_Room_Thickness;
                lake_shorethickness = base_feature.Lake_Shore_Thickness;
                lake_shallowsthickness = base_feature.Lake_Shallows_Thickness;
            }
            else if (my_fType == Feature_Type.River)
            {
                banks_thickness = base_feature.River_Shore_Thickness;
                shallow_thickness = base_feature.River_Shallows_Thickness;
                deepwater_thickness = base_feature.River_Depths_Thickness;

                calculate_crossing_points();
            }
        }