terriajs
Version:
Geospatial data visualization platform.
183 lines (165 loc) • 4.9 kB
text/typescript
import { TableStyleMapModel } from "../../../Table/TableStyleMap";
import objectArrayTrait from "../../Decorators/objectArrayTrait";
import objectTrait from "../../Decorators/objectTrait";
import primitiveTrait from "../../Decorators/primitiveTrait";
import mixTraits from "../../mixTraits";
import ModelTraits from "../../ModelTraits";
import {
BinStyleTraits,
EnumStyleTraits,
TableStyleMapSymbolTraits,
TableStyleMapTraits
} from "./StyleMapTraits";
/** Supports CZML SolidColorMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/SolidColorMaterial */
export class SolidColorMaterialTraits extends ModelTraits {
color = "#ffffff";
}
/** Supports CZML PolylineGlowMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/PolylineGlowMaterial */
export class PolylineGlowMaterialTraits extends ModelTraits {
color = "#ffffff";
glowPower = 0.25;
taperPower = 1;
}
/** Supports subset of CZML PolylineMaterial https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/PolylineMaterial
*
* Unimplemented materials
* - polylineOutline
* - polylineArrow
* - polylineDash
* - image
* - grid
* - stripe
* - checkerboard
*/
export class PolylineMaterialTraits extends ModelTraits {
polylineGlow?: PolylineGlowMaterialTraits;
solidColor?: SolidColorMaterialTraits;
}
/** Supports subset of CZML Path https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Path
*
* Unimplemented properties
* - show
* - distanceDisplayCondition
*
* Note: materials is handled slightly differently
*/
export class TrailSymbolTraits extends mixTraits(
PolylineMaterialTraits,
TableStyleMapSymbolTraits
) {
leadTime = 0;
trailTime = 10;
width = 1;
resolution: number = 60;
}
export class EnumTrailSymbolTraits extends mixTraits(
TrailSymbolTraits,
EnumStyleTraits
) {
static isRemoval = EnumStyleTraits.isRemoval;
}
export class BinTrailSymbolTraits extends mixTraits(
TrailSymbolTraits,
BinStyleTraits
) {
static isRemoval = BinStyleTraits.isRemoval;
}
export default class TableTrailStyleTraits
extends mixTraits(TableStyleMapTraits)
implements TableStyleMapModel<TrailSymbolTraits>
{
// Override TableStyleMapTraits.enabled default
enabled = false;
materialType?: keyof PolylineMaterialTraits = "solidColor";
enum: EnumTrailSymbolTraits[] = [];
bin: BinTrailSymbolTraits[] = [];
null = new TrailSymbolTraits();
}