## Uses of Class
com.io7m.jregions.core.unparameterized.areas.AreaI

- Packages that use AreaI
  Package | Description
  --- | ---
  com.io7m.jregions.core.conversions | Functions to convert between parameterized and unparameterized types.
  com.io7m.jregions.core.unparameterized.areas | Area types.
  com.io7m.jregions.core.unparameterized.sizes | Area sizes.
  com.io7m.jregions.generators | Quickcheck generators.

- - ### Uses of AreaI in com.io7m.jregions.core.conversions

    Methods in com.io7m.jregions.core.conversions that return AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <S> AreaI` | AreaConversions.`toAreaI​(PAreaI<S> a)` | Convert an area.

    Methods in com.io7m.jregions.core.conversions with parameters of type AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <S> PAreaI<S>` | AreaConversions.`toPAreaI​(AreaI a)` | Convert an area.

  - ### Uses of AreaI in com.io7m.jregions.core.unparameterized.areas

    Methods in com.io7m.jregions.core.unparameterized.areas that return AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AreaI` | AreasI.`alignCenter​(AreaI outer, AreaI inner)` | Align the area `inner` such that the center of the area is equal to the center of `outer`.
    `static AreaI` | AreasI.`alignHorizontallyCenter​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXCenter(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMaxX​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXMaxX(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMaxXOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnXMaxXOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignHorizontallyMinX​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXMinX(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMinXOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnXMinXOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignMaxYMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMaxYMaxXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMaxYMaxXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMaxYMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMaxYMinXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMaxYMinXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMinYMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMinYMaxXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMinYMaxXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMinYMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMinYMinXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMinYMinXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnXCenter​(AreaI outer, AreaI inner)` | Align the area `inner` along the X axis in the center of `outer`.
    `static AreaI` | AreasI.`alignOnXMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnXMaxXOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnXMaxXOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the X axis against the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnXMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnXMinXOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnXMinXOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the X axis against the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnYCenter​(AreaI outer, AreaI inner)` | Align the area `inner` along the Y axis in the center of `outer`.
    `static AreaI` | AreasI.`alignOnYMaxY​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnYMaxYOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnYMaxYOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the Y axis against the inside maximum-y edge of `outer`.
    `static AreaI` | AreasI.`alignOnYMinY​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnYMinYOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnYMinYOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the Y axis against the inside minimum-y edge of `outer`.
    `static AreaI` | AreasI.`alignVerticallyCenter​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYCenter(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMaxY​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYMaxY(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMaxYOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnYMaxYOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignVerticallyMinY​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYMinY(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMinYOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnYMinYOffset(AreaI, AreaI, int)`
    `AreaI` | AreaI.Builder.`build​()` | Builds a new `AreaI`.
    `static AreaI` | AreasI.`containing​(AreaI a, AreaI b)` | Construct a area that will contain both `a` and `b`.
    `static AreaI` | AreasI.`create​(int x, int y, int size_x, int size_y)` | Create an area of size `size_x` on the X axis and size `size_y` on the Y axis, placing the minimum corner at `(x, y)`.
    `static AreaI` | AreasI.`fitBetweenHorizontal​(AreaI fit, AreaI a, AreaI b)` | Deprecated. Use `AreasI.fitBetweenOnX(AreaI, AreaI, AreaI)`
    `static AreaI` | AreasI.`fitBetweenOnX​(AreaI fit, AreaI a, AreaI b)` | Attempt to fit `fit` between `a` and `b`, horizontally.
    `static AreaI` | AreasI.`fitBetweenOnY​(AreaI fit, AreaI a, AreaI b)` | Attempt to fit `fit` between `a` and `b`, vertically.
    `static AreaI` | AreasI.`fitBetweenVertical​(AreaI fit, AreaI a, AreaI b)` | Deprecated. Use `AreasI.fitBetweenOnY(AreaI, AreaI, AreaI)`
    `static AreaI` | AreasI.`hollowOut​(AreaI outer, int min_x_offset, int max_x_offset, int min_y_offset, int max_y_offset)` | Construct a new area that fits inside `outer` based on the given offsets from each edge.
    `static AreaI` | AreasI.`hollowOutEvenly​(AreaI outer, int offset)` | Equivalent to calling `AreasI.hollowOut(AreaI, int, int, int, int)` with `offset` for all offset parameters.
    `static AreaI` | AreasI.`moveAbsolute​(AreaI area, int x, int y)` | Move the given area to `(x, y)`.
    `static AreaI` | AreasI.`moveRelative​(AreaI area, int x, int y)` | Move the given area by `(x, y)`.
    `static AreaI` | AreasI.`moveToOrigin​(AreaI area)` | Move the given area to `(0, 0)`.
    `static AreaI` | AreaI.`of​(int minimumX, int maximumX, int minimumY, int maximumY)` | Construct a new immutable `AreaI` instance.
    `static AreaI` | AreasI.`scaleFromCenter​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMaxYMaxX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMaxYMinX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMinYMaxX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMinYMinX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`setSizeFromCenter​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMaxYMaxX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMaxYMinX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMinYMaxX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMinYMinX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.

    Methods in com.io7m.jregions.core.unparameterized.areas that return types with arguments of type AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AreaXSplitI<AreaI>` | AreasI.`splitAlongParallelToX​(AreaI area, int y)` | Split `area` along a line parallel to the X axis placed at `y` units from its own minimum-y edge.
    `static AreaYSplitI<AreaI>` | AreasI.`splitAlongParallelToY​(AreaI area, int x)` | Split `area` along a line parallel to the Y axis placed at `x` units from its own minimum-x edge.
    `static AreaXYSplitI<AreaI>` | AreasI.`splitAlongXY​(AreaI area, int x, int y)` | Split `area` along a two axis-aligned perpendicular lines that intercept at `(x, y)`.

    Methods in com.io7m.jregions.core.unparameterized.areas with parameters of type AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AreaI` | AreasI.`alignCenter​(AreaI outer, AreaI inner)` | Align the area `inner` such that the center of the area is equal to the center of `outer`.
    `static AreaI` | AreasI.`alignHorizontallyCenter​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXCenter(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMaxX​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXMaxX(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMaxXOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnXMaxXOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignHorizontallyMinX​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnXMinX(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignHorizontallyMinXOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnXMinXOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignMaxYMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMaxYMaxXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMaxYMaxXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMaxYMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMaxYMinXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMaxYMinXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the maximum-y edge is at least `offset_y` from the inside maximum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMinYMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMinYMaxXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMinYMaxXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the maximum-x edge is at least `offset_x` from the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignMinYMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignMinYMinXOffset(AreaI, AreaI, int, int)` with zero offsets.
    `static AreaI` | AreasI.`alignMinYMinXOffset​(AreaI outer, AreaI inner, int offset_x, int offset_y)` | Align the area `inner` such that the minimum-y edge is at least `offset_y` from the inside minimum-y edge of `outer` and the minimum-x edge is at least `offset_x` from the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnXCenter​(AreaI outer, AreaI inner)` | Align the area `inner` along the X axis in the center of `outer`.
    `static AreaI` | AreasI.`alignOnXMaxX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnXMaxXOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnXMaxXOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the X axis against the inside maximum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnXMinX​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnXMinXOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnXMinXOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the X axis against the inside minimum-x edge of `outer`.
    `static AreaI` | AreasI.`alignOnYCenter​(AreaI outer, AreaI inner)` | Align the area `inner` along the Y axis in the center of `outer`.
    `static AreaI` | AreasI.`alignOnYMaxY​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnYMaxYOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnYMaxYOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the Y axis against the inside maximum-y edge of `outer`.
    `static AreaI` | AreasI.`alignOnYMinY​(AreaI outer, AreaI inner)` | Equivalent to calling `AreasI.alignOnYMinYOffset(AreaI, AreaI, int)` with a zero offset.
    `static AreaI` | AreasI.`alignOnYMinYOffset​(AreaI outer, AreaI inner, int offset)` | Align the area `inner` along the Y axis against the inside minimum-y edge of `outer`.
    `static AreaI` | AreasI.`alignVerticallyCenter​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYCenter(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMaxY​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYMaxY(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMaxYOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnYMaxYOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`alignVerticallyMinY​(AreaI outer, AreaI inner)` | Deprecated. Use `AreasI.alignOnYMinY(AreaI, AreaI)`
    `static AreaI` | AreasI.`alignVerticallyMinYOffset​(AreaI outer, AreaI inner, int offset)` | Deprecated. Use `AreasI.alignOnYMinYOffset(AreaI, AreaI, int)`
    `static AreaI` | AreasI.`containing​(AreaI a, AreaI b)` | Construct a area that will contain both `a` and `b`.
    `static boolean` | AreasI.`contains​(AreaI a, AreaI b)` | Determine whether or not one area contains another.
    `static boolean` | AreasI.`containsPoint​(AreaI a, int x, int y)` | Determine whether or not a area contains a given point.
    `static boolean` | AreasI.`couldFitInside​(AreaI a, AreaI b)` | Determine whether or not one area could fit inside another.
    `static AreaI` | AreasI.`fitBetweenHorizontal​(AreaI fit, AreaI a, AreaI b)` | Deprecated. Use `AreasI.fitBetweenOnX(AreaI, AreaI, AreaI)`
    `static AreaI` | AreasI.`fitBetweenOnX​(AreaI fit, AreaI a, AreaI b)` | Attempt to fit `fit` between `a` and `b`, horizontally.
    `static AreaI` | AreasI.`fitBetweenOnY​(AreaI fit, AreaI a, AreaI b)` | Attempt to fit `fit` between `a` and `b`, vertically.
    `static AreaI` | AreasI.`fitBetweenVertical​(AreaI fit, AreaI a, AreaI b)` | Deprecated. Use `AreasI.fitBetweenOnY(AreaI, AreaI, AreaI)`
    `static AreaI` | AreasI.`hollowOut​(AreaI outer, int min_x_offset, int max_x_offset, int min_y_offset, int max_y_offset)` | Construct a new area that fits inside `outer` based on the given offsets from each edge.
    `static AreaI` | AreasI.`hollowOutEvenly​(AreaI outer, int offset)` | Equivalent to calling `AreasI.hollowOut(AreaI, int, int, int, int)` with `offset` for all offset parameters.
    `static AreaI` | AreasI.`moveAbsolute​(AreaI area, int x, int y)` | Move the given area to `(x, y)`.
    `static AreaI` | AreasI.`moveRelative​(AreaI area, int x, int y)` | Move the given area by `(x, y)`.
    `static AreaI` | AreasI.`moveToOrigin​(AreaI area)` | Move the given area to `(0, 0)`.
    `static boolean` | AreasI.`overlaps​(AreaI a, AreaI b)` | Determine whether or not two areas overlap.
    `static AreaI` | AreasI.`scaleFromCenter​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMaxYMaxX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMaxYMinX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMinYMaxX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`scaleFromMinYMinX​(AreaI area, int x_diff, int y_diff)` | Scale `area` by adding `x_diff` to the sizeX, and `y_diff` to the sizeY.
    `static AreaI` | AreasI.`setSizeFromCenter​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMaxYMaxX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMaxYMinX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMinYMaxX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static AreaI` | AreasI.`setSizeFromMinYMinX​(AreaI area, int sizeX, int sizeY)` | Set the sizeX and sizeY of `area` to `sizeX` and `sizeY`, respectively.
    `static java.lang.String` | AreasI.`show​(AreaI area)` |
    `static java.lang.String` | AreasI.`showToBuilder​(AreaI area, java.lang.StringBuilder sb)` |
    `static AreaSizeI` | AreasI.`size​(AreaI area)` |
    `static AreaXSplitI<AreaI>` | AreasI.`splitAlongParallelToX​(AreaI area, int y)` | Split `area` along a line parallel to the X axis placed at `y` units from its own minimum-y edge.
    `static AreaYSplitI<AreaI>` | AreasI.`splitAlongParallelToY​(AreaI area, int x)` | Split `area` along a line parallel to the Y axis placed at `x` units from its own minimum-x edge.
    `static AreaXYSplitI<AreaI>` | AreasI.`splitAlongXY​(AreaI area, int x, int y)` | Split `area` along a two axis-aligned perpendicular lines that intercept at `(x, y)`.

  - ### Uses of AreaI in com.io7m.jregions.core.unparameterized.sizes

    Methods in com.io7m.jregions.core.unparameterized.sizes that return AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AreaI` | AreaSizesI.`area​(AreaSizeI size)` | Construct an area at the origin that has the same size as `size`.

  - ### Uses of AreaI in com.io7m.jregions.generators

    Methods in com.io7m.jregions.generators that return AreaI
    Modifier and Type | Method | Description
    --- | --- | ---
    `AreaI` | AreaIGenerator.`next​()` |

Copyright © 2017 <code@io7m.com> http://io7m.com