"""Create mesh for near shore PMD
"""

from anuga.pmesh.mesh_interface import create_mesh_from_regions
from anuga.coordinate_transforms.geo_reference import Geo_reference

xslope = 5.0 # Distance between the boundary ande the start of the slope


def generate(mesh_filename, maximum_triangle_area=300000, thinner=False):
    """
    """
    # Basic geometry and bounding polygon
    xleft   = -100  # Beach
    xleft   = 8000  # looking at the first 2 km of wave travel
    xright  = 10000  # wave generated here
    if thinner:
        ytop    = 500
        ybottom = -500
    else:
        ytop    = 2000
        ybottom = -2000
        

    point_sw = [xleft, ybottom]
    point_se = [xright, ybottom]
    point_nw = [xleft, ytop]    
    point_ne = [xright, ytop]

    bounding_polygon = [point_se,
                        point_ne,
                        point_nw,
                        point_sw]

    # local refinement
    xleft   = -80
    xright  = 2000
    if thinner:
        ytop    = 450
        ybottom = -450
    else:
        ytop    = 1000
        ybottom = -1000

    point_sw = [xleft, ybottom]
    point_se = [xright, ybottom]
    point_nw = [xleft, ytop]    
    point_ne = [xright, ytop]
    
    polygon_2 = [point_se,
                        point_ne,
                        point_nw,
                        point_sw]

    interior_regions = [[polygon_2, maximum_triangle_area/2.]]
    
    m = create_mesh_from_regions(bounding_polygon,
                                 boundary_tags={'wall': [1, 2, 3],
                                                'wave': [0]},     
                                 maximum_triangle_area=maximum_triangle_area,
                                 #interior_regions=interior_regions,
                                 mesh_geo_reference=Geo_reference(),
                                 filename=mesh_filename,
                                 verbose=True)
    print "mesh created"

    
#-------------------------------------------------------------
if __name__ == "__main__":
    generate("aa.tsh", thinner=True)
