terriajs
Version:
Geospatial data visualization platform.
75 lines (66 loc) • 2.15 kB
text/typescript
import objectArrayTrait from "../Decorators/objectArrayTrait";
import objectTrait from "../Decorators/objectTrait";
import primitiveTrait from "../Decorators/primitiveTrait";
import mixTraits from "../mixTraits";
import ModelTraits from "../ModelTraits";
import GltfTraits from "./GltfTraits";
import UrlTraits from "./UrlTraits";
export class ColorGroupTraits extends ModelTraits {
({
name: "Color",
description: "CSS color string",
type: "string"
})
color?: string;
({
name: "Regular Expression",
description: "Regular expression to match on the specified property",
type: "string"
})
regExp?: string;
}
export class ColorModelsByPropertyTraits extends ModelTraits {
({
name: "Property",
description: "Path to the property used to choose the color",
type: "string"
})
property?: string;
({
type: ColorGroupTraits,
name: "Color Groups",
description: "",
idProperty: "index"
})
colorGroups?: ColorGroupTraits[];
}
export default class GtfsModelTraits extends mixTraits(GltfTraits, UrlTraits) {
({
name: "Maximum draw distance",
description:
"The farthest distance from the camera that the model will still be drawn",
type: "number"
})
maximumDistance?: number;
({
name: "Maximum scale",
description:
"The maximum scale size of a model. This property is used as an upper limit for scaling due to `minimumPixelSize`",
type: "number"
})
maximumScale?: number;
({
name: "Minimum pixel size",
description:
"The minimum pixel size of the model regardless of zoom. This can be used to ensure that a model is visible even when the viewer zooms out. When 0.0, no minimum size is enforced",
type: "number"
})
minimumPixelSize?: number;
({
name: "Color models by property",
description:
"Color entity models by reguler expression match of a property of an entity",
type: ColorModelsByPropertyTraits
})
colorModelsByProperty?: ColorModelsByPropertyTraits;
}