import {Color} from "../../../../../core/color/Color";
import {TubeMaterialType} from "./TubeMaterialType";
import {StandardMaterialDefinition} from "./StandardMaterialDefinition";
import {MatcapMaterialDefinition} from "./MatcapMaterialDefinition";
import {CapType} from "./CapType";
import Vector3 from "../../../../../core/geom/Vector3";
import {PathNormalType} from "./PathNormalType";

export class TubePathStyle {
    public color: Color
    public material_type: TubeMaterialType
    public material: StandardMaterialDefinition | MatcapMaterialDefinition
    public opacity: number
    public width: number
    public resolution: number
    /**
     * @deprecated
     */
    public radial_resolution: number
    /**
     * Profile shape of the path, such as a circle or a square
     * Defined as a sequence of 2d points: [x0,y0,x1,y1, ... xN, yN]
     */
    public shape: ArrayLike<number>
    /**
     * Optional, contains 2d normals of the profile shape, if not set - smooth normals will be automatically computed
     */
    public shape_normals: ArrayLike<number>
    public cast_shadow: boolean
    public receive_shadow: boolean
    public path_mask: number[]
    public cap_type: CapType
    public path_normal: Vector3
    public path_normal_type: PathNormalType
}
