All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.nasa.worldwind.render.SurfaceSquare Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (C) 2012 United States Government as represented by the Administrator of the
 * National Aeronautics and Space Administration.
 * All Rights Reserved.
 */
package gov.nasa.worldwind.render;

import gov.nasa.worldwind.geom.*;
import gov.nasa.worldwind.util.Logging;

/**
 * @author dcollins
 * @version $Id: SurfaceSquare.java 2302 2014-09-08 20:40:47Z tgaskins $
 */
public class SurfaceSquare extends SurfaceQuad
{
    /**
     * Constructs a new surface square with the default attributes, default center location, default size, and default
     * heading.
     */
    public SurfaceSquare()
    {
    }

    /**
     * Creates a shallow copy of the specified source shape.
     *
     * @param source the shape to copy.
     */
    public SurfaceSquare(SurfaceSquare source)
    {
        super(source);
    }

    /**
     * Constructs a new surface square with the specified normal (as opposed to highlight) attributes, default center
     * location, default size, and default heading. Modifying the attribute reference after calling this constructor
     * causes this shape's appearance to change accordingly.
     *
     * @param normalAttrs the normal attributes. May be null, in which case default attributes are used.
     */
    public SurfaceSquare(ShapeAttributes normalAttrs)
    {
        super(normalAttrs);
    }

    /**
     * Constructs a new surface square with the default attributes, the specified center location and size (in meters).
     *
     * @param center the square's center location.
     * @param size   the square's width and height, in meters.
     *
     * @throws IllegalArgumentException if the center is null, or if the size is negative.
     */
    public SurfaceSquare(LatLon center, double size)
    {
        super(center, size, size);
    }

    /**
     * Constructs a new surface square with the default attributes, the specified center location, size (in meters), and
     * heading clockwise from North.
     *
     * @param center  the square's center location.
     * @param size    the square's width and height, in meters.
     * @param heading the square's heading, clockwise from North.
     *
     * @throws IllegalArgumentException if the center or heading are null, or if the size is negative.
     */
    public SurfaceSquare(LatLon center, double size, Angle heading)
    {
        super(center, size, size, heading);
    }

    /**
     * Constructs a new surface square with the specified normal (as opposed to highlight) attributes, the specified
     * center location and size (in meters). Modifying the attribute reference after calling this constructor causes
     * this shape's appearance to change accordingly.
     *
     * @param normalAttrs the normal attributes. May be null, in which case default attributes are used.
     * @param center      the square's center location.
     * @param size        the square's width and height, in meters.
     *
     * @throws IllegalArgumentException if the center is null, or if the size is negative.
     */
    public SurfaceSquare(ShapeAttributes normalAttrs, LatLon center, double size)
    {
        super(normalAttrs, center, size, size);
    }

    /**
     * Constructs a new surface square with the specified normal (as opposed to highlight) attributes, the specified
     * center location and dimensions (in meters). Modifying the attribute reference after calling this constructor
     * causes this shape's appearance to change accordingly.
     *
     * @param normalAttrs the normal attributes. May be null, in which case default attributes are used.
     * @param center      the square's center location.
     * @param size        the square's width and height, in meters.
     * @param heading     the square's heading, clockwise from North.
     *
     * @throws IllegalArgumentException if the center or heading are null, or if the size is negative.
     */
    public SurfaceSquare(ShapeAttributes normalAttrs, LatLon center, double size, Angle heading)
    {
        super(normalAttrs, center, size, size, heading);
    }

    public double getSize()
    {
        return this.getWidth();
    }

    public void setSize(double size)
    {
        if (size < 0)
        {
            String message = Logging.getMessage("Geom.SizeIsNegative", size);
            Logging.logger().severe(message);
            throw new IllegalArgumentException(message);
        }

        this.setSize(size, size);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy