import { Color, Position } from '../Core';
import { LineDisplayMode } from './LineDisplayMode';

/**
 * Contain all updatable options of a Line.
 */
export interface LineUpdateOptions {
    /**
     * Position in WGS84 coordinates of all the points defining current line.
     * @see {@link Position}
     */
    readonly positions?: Position[];
    /**
     * Thickness, in meters, of current Line.
     */
    readonly thickness?: number;
    /**
     * If set to false, current Line won't be rendered.
     */
    readonly isVisible?: boolean;
    /**
     * Color of the active part of the Line.
     */
    readonly color?: Color;
    /**
     * Color of the inactive part of the Line.
     */
    /**
     * Change the way the current Line will be rendered.
     */
    readonly displayMode?: LineDisplayMode;
    /**
     * URL pointing on the texture to display.
     * Related to display mode. If display mode isn't "textured" this field won't have any effect.
     * Note that URL will be based on baseURL provided while loading the Venue.
     */
    readonly texture?: string;
    /**
     * Speed, in m.s-1, at which texture will be animated.
     * Related to display mode. If display mode isn't "textured" this field won't have any effect.
     */
    readonly animationSpeed?: number;
    /**
     * Density, in itération per meter, of the animated texture.
     * Related to display mode. If display mode isn't "textured" this field won't have any effect.
     */
    readonly textureRepeat?: number;
    /**
     * If set to true, current Line will always be rendered and visible, even when obscured by walls or buildings.
     */
    /**
     * When specified, updates the Line elevation offset to this value.
     * This value is expressed in meter above the ground.
     */
    readonly zOffset?: number;
}
