Skip to content

Commit

Permalink
Merge pull request #958 from papillot/ts-declarations
Browse files Browse the repository at this point in the history
Ts declarations
  • Loading branch information
fredludlow committed Jan 27, 2023
2 parents fee15d5 + 343d1ff commit 481c850
Show file tree
Hide file tree
Showing 26 changed files with 96 additions and 63 deletions.
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -3,7 +3,6 @@

build/
node_modules/
declarations/

npm-debug.log

Expand Down
4 changes: 2 additions & 2 deletions src/buffer/buffer.ts
Expand Up @@ -17,7 +17,7 @@ import {

import { Log } from '../globals'
import { createParams, getTypedArray, getUintArray } from '../utils'
import { NumberArray } from '../types'
import { GenericColor, NumberArray } from '../types'
import { getShader, ShaderDefines } from '../shader/shader-utils'
import { serialArray } from '../math/array-utils'
import { Picker } from '../utils/picker'
Expand Down Expand Up @@ -79,7 +79,7 @@ export const BufferDefaultParameters = {
sortParticles: false,
background: false
}
export type BufferParameters = typeof BufferDefaultParameters
export type BufferParameters = Omit<typeof BufferDefaultParameters, 'diffuse'|'interiorColor'> & { diffuse: GenericColor; interiorColor: GenericColor }

export const BufferParameterTypes = {
opaqueBack: { updateShader: true },
Expand Down
6 changes: 3 additions & 3 deletions src/buffer/cylinder-buffer.ts
Expand Up @@ -7,8 +7,8 @@
// @ts-ignore: unused import required for declaration only
import { Vector3, Matrix4 } from 'three'
import { BufferRegistry, ExtensionFragDepth } from '../globals'
import CylinderGeometryBuffer, { CylinderGeometryBufferDefaultParameters } from './cylindergeometry-buffer'
import CylinderImpostorBuffer, { CylinderImpostorBufferDefaultParameters } from './cylinderimpostor-buffer'
import CylinderGeometryBuffer, { CylinderGeometryBufferDefaultParameters, CylinderGeometryBufferParameters } from './cylindergeometry-buffer'
import CylinderImpostorBuffer, { CylinderImpostorBufferDefaultParameters, CylinderImpostorBufferParameters } from './cylinderimpostor-buffer'
import { BufferData } from './buffer'

export interface CylinderBufferData extends BufferData {
Expand All @@ -21,7 +21,7 @@ export interface CylinderBufferData extends BufferData {
export const CylinderBufferDefaultParameters = Object.assign({
disableImpostor: false
}, CylinderGeometryBufferDefaultParameters, CylinderImpostorBufferDefaultParameters)
export type CylinderBufferParameters = typeof CylinderBufferDefaultParameters
export type CylinderBufferParameters = (CylinderGeometryBufferParameters & {disableImpostor: boolean}) | (CylinderImpostorBufferParameters & {disableImpostor: boolean})

class CylinderBufferImpl {
constructor (data: CylinderBufferData, params: Partial<CylinderBufferParameters> = {}) {
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/cylindergeometry-buffer.ts
Expand Up @@ -10,7 +10,7 @@ import { defaults } from '../utils'
import { calculateCenterArray, serialBlockArray } from '../math/array-utils'
import GeometryBuffer from './geometry-buffer'
import { CylinderBufferData } from './cylinder-buffer'
import { BufferDefaultParameters } from './buffer'
import { BufferDefaultParameters, BufferParameters } from './buffer'

const scale = new Vector3()
const eye = new Vector3()
Expand All @@ -21,7 +21,7 @@ export const CylinderGeometryBufferDefaultParameters = Object.assign({
radialSegments: 1,
openEnded: true
}, BufferDefaultParameters)
export type CylinderGeometryBufferParameters = typeof CylinderGeometryBufferDefaultParameters
export type CylinderGeometryBufferParameters = BufferParameters & {radialSegments: number, openEnded: boolean}

function getData (data: CylinderBufferData, params: Partial<CylinderGeometryBufferParameters> = {}) {
const geo = getGeo(params)
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/cylinderimpostor-buffer.ts
Expand Up @@ -11,13 +11,13 @@ import '../shader/CylinderImpostor.vert'
import '../shader/CylinderImpostor.frag'

import MappedAlignedBoxBuffer from './mappedalignedbox-buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferTypes } from './buffer'
import { BufferDefaultParameters, BufferParameters, BufferParameterTypes, BufferTypes } from './buffer'
import { CylinderBufferData } from './cylinder-buffer'

export const CylinderImpostorBufferDefaultParameters = Object.assign({
openEnded: false
}, BufferDefaultParameters)
export type CylinderImpostorBufferParameters = typeof CylinderImpostorBufferDefaultParameters
export type CylinderImpostorBufferParameters = BufferParameters & { openEnded: boolean }

const CylinderImpostorBufferParameterTypes = Object.assign({
openEnded: { updateShader: true }
Expand Down
6 changes: 3 additions & 3 deletions src/buffer/hyperballstick-buffer.ts
Expand Up @@ -8,8 +8,8 @@
import { Vector3, Matrix4 } from 'three'
import { ExtensionFragDepth } from '../globals'
import { calculateMinArray } from '../math/array-utils'
import CylinderGeometryBuffer, { CylinderGeometryBufferDefaultParameters } from './cylindergeometry-buffer'
import HyperballStickImpostorBuffer, { HyperballStickImpostorBufferDefaultParameters } from './hyperballstickimpostor-buffer'
import CylinderGeometryBuffer, { CylinderGeometryBufferDefaultParameters, CylinderGeometryBufferParameters } from './cylindergeometry-buffer'
import HyperballStickImpostorBuffer, { HyperballStickImpostorBufferDefaultParameters, HyperballStickImpostorBufferParameters } from './hyperballstickimpostor-buffer'
import { BufferData } from './buffer'

export interface HyperballStickBufferData extends BufferData {
Expand All @@ -23,7 +23,7 @@ export interface HyperballStickBufferData extends BufferData {
export const HyperballStickBufferDefaultParameters = Object.assign({
disableImpostor: false
}, CylinderGeometryBufferDefaultParameters, HyperballStickImpostorBufferDefaultParameters)
export type HyperballStickBufferParameters = typeof HyperballStickBufferDefaultParameters
export type HyperballStickBufferParameters = HyperballStickImpostorBufferParameters & CylinderGeometryBufferParameters & { disableImpostor: boolean }

class HyperballStickBufferImpl {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/hyperballstickimpostor-buffer.ts
Expand Up @@ -11,7 +11,7 @@ import '../shader/HyperballStickImpostor.vert'
import '../shader/HyperballStickImpostor.frag'

import MappedBoxBuffer from './mappedbox-buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferData } from './buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferParameters } from './buffer'

export interface HyperballStickImpostorBufferData extends BufferData {
position1: Float32Array
Expand All @@ -24,7 +24,7 @@ export interface HyperballStickImpostorBufferData extends BufferData {
export const HyperballStickImpostorBufferDefaultParameters = Object.assign({
shrink: 0.14
}, BufferDefaultParameters)
export type HyperballStickImpostorBufferParameters = typeof HyperballStickImpostorBufferDefaultParameters
export type HyperballStickImpostorBufferParameters = BufferParameters & { shrink: number }

const HyperballStickImpostorBufferParameterTypes = Object.assign({
shrink: { uniform: true }
Expand Down
12 changes: 10 additions & 2 deletions src/buffer/point-buffer.ts
Expand Up @@ -13,7 +13,7 @@ import '../shader/Point.frag'
import { BufferRegistry } from '../globals'
import { defaults } from '../utils'
import { smoothstep } from '../math/math-utils'
import Buffer, { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferTypes } from './buffer'
import Buffer, { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferTypes, BufferParameters } from './buffer'

function distance (x0: number, y0: number, x1: number, y1: number) {
const dx = x1 - x0
Expand Down Expand Up @@ -70,7 +70,15 @@ export const PointBufferDefaultParameters = Object.assign({
forceTransparent: false,
edgeBleach: 0.0
}, BufferDefaultParameters)
export type PointBufferParameters = typeof PointBufferDefaultParameters
export type PointBufferParameters = BufferParameters & {
pointSize: number,
sizeAttenuation: boolean,
sortParticles: boolean,
alphaTest: number,
useTexture: boolean,
forceTransparent: boolean,
edgeBleach: number
}

const PointBufferParameterTypes = Object.assign({
pointSize: { uniform: 'size' },
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/sphere-buffer.ts
Expand Up @@ -7,7 +7,7 @@
// @ts-ignore: unused import Vector3, Matrix4 required for declaration only
import { Vector3, Matrix4 } from 'three'
import { BufferRegistry, ExtensionFragDepth } from '../globals'
import SphereGeometryBuffer, { SphereGeometryBufferDefaultParameters } from './spheregeometry-buffer'
import SphereGeometryBuffer, { SphereGeometryBufferDefaultParameters, SphereGeometryBufferParameters } from './spheregeometry-buffer'
import SphereImpostorBuffer from './sphereimpostor-buffer'
import { BufferData } from './buffer'

Expand All @@ -18,7 +18,7 @@ export interface SphereBufferData extends BufferData {
export const SphereBufferDefaultParameters = Object.assign({
disableImpostor: false
}, SphereGeometryBufferDefaultParameters)
export type SphereBufferParameters = typeof SphereBufferDefaultParameters
export type SphereBufferParameters = SphereGeometryBufferParameters & { disableImpostor: boolean }

class SphereBufferImpl {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/spheregeometry-buffer.ts
Expand Up @@ -8,14 +8,14 @@ import { IcosahedronBufferGeometry, Vector3, Matrix4 } from 'three'
import { defaults } from '../utils'
import GeometryBuffer from './geometry-buffer'
import { SphereBufferData } from './sphere-buffer'
import { BufferDefaultParameters } from './buffer'
import { BufferDefaultParameters, BufferParameters } from './buffer'

const scale = new Vector3()

export const SphereGeometryBufferDefaultParameters = Object.assign({
sphereDetail: 1
}, BufferDefaultParameters)
export type SphereGeometryBufferParameters = typeof SphereGeometryBufferDefaultParameters
export type SphereGeometryBufferParameters = BufferParameters & { sphereDetail: number }

/**
* Sphere geometry buffer.
Expand Down
23 changes: 21 additions & 2 deletions src/buffer/text-buffer.ts
Expand Up @@ -15,7 +15,8 @@ import { createParams } from '../utils'
import MappedQuadBuffer from './mappedquad-buffer'
import { IgnorePicker } from '../utils/picker'
import { edt } from '../utils/edt'
import { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferTypes } from './buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferTypes, BufferParameters } from './buffer'
import { GenericColor } from '../types'

const TextAtlasCache: { [k: string]: TextAtlas } = {}

Expand Down Expand Up @@ -305,7 +306,25 @@ export const TextBufferDefaultParameters = Object.assign({
forceTransparent: true,
fixedSize: false
}, BufferDefaultParameters)
export type TextBufferParameters = typeof TextBufferDefaultParameters
export type TextBufferParameters = BufferParameters & {
fontFamily: TextFonts,
fontStyle: TextStyles,
fontWeight: TextWeights,
fontSize: number,
xOffset: number,
yOffset: number,
zOffset: number,
attachment: TextAttachments,
showBorder: boolean,
borderColor: GenericColor,
borderWidth: number,
showBackground: boolean,
backgroundColor: GenericColor,
backgroundMargin: number,
backgroundOpacity: number,
forceTransparent: boolean,
fixedSize: boolean
}

const TextBufferParameterTypes = Object.assign({
fontFamily: { uniform: true },
Expand Down
8 changes: 6 additions & 2 deletions src/buffer/tubemesh-buffer.ts
Expand Up @@ -10,7 +10,7 @@ import { Vector3, Matrix4 } from 'three'
import { defaults, getUintArray } from '../utils'
import { serialArray } from '../math/array-utils'
import MeshBuffer from './mesh-buffer'
import { BufferDefaultParameters, BufferData } from './buffer'
import { BufferDefaultParameters, BufferData, BufferParameters } from './buffer'
import {Log} from "../globals";

const vTangent = new Vector3()
Expand All @@ -27,7 +27,11 @@ export const TubeMeshBufferDefaultParameters = Object.assign({
capped: false,
aspectRatio: 1.0
}, BufferDefaultParameters)
export type TubeMeshBufferParameters = typeof TubeMeshBufferDefaultParameters
export type TubeMeshBufferParameters = BufferParameters & {
radialSegments: number,
capped: boolean,
aspectRatio: number
}

function getData (data: TubeMeshBufferData, params: Partial<TubeMeshBufferParameters> = {}) {
const radialSegments = defaults(params.radialSegments, 4)
Expand Down
5 changes: 3 additions & 2 deletions src/buffer/vector-buffer.ts
Expand Up @@ -11,7 +11,8 @@ import '../shader/Line.vert'
import '../shader/Line.frag'

import { uniformArray3 } from '../math/array-utils'
import Buffer, { BufferDefaultParameters, BufferData } from './buffer'
import Buffer, { BufferDefaultParameters, BufferData, BufferParameters } from './buffer'
import { GenericColor } from '../types'

function getSize(data: BufferData){
const n = data.position!.length / 3
Expand All @@ -26,7 +27,7 @@ export const VectorBufferDefaultParameters = Object.assign({
scale: 1,
color: 'grey'
}, BufferDefaultParameters)
export type VectorBufferParameters = typeof VectorBufferDefaultParameters
export type VectorBufferParameters = BufferParameters & { scale: number, color: GenericColor }

/**
* Vector buffer. Draws vectors as lines.
Expand Down
4 changes: 2 additions & 2 deletions src/buffer/wideline-buffer.ts
Expand Up @@ -12,7 +12,7 @@ import '../shader/WideLine.frag'

import { BufferRegistry } from '../globals'
import MappedQuadBuffer from './mappedquad-buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferData } from './buffer'
import { BufferDefaultParameters, BufferParameterTypes, BufferData, BufferParameters } from './buffer'

export interface WideLineBufferData extends BufferData {
position1: Float32Array
Expand All @@ -23,7 +23,7 @@ export interface WideLineBufferData extends BufferData {
export const WideLineBufferDefaultParameters = Object.assign({
linewidth: 2
}, BufferDefaultParameters)
export type WideLineBufferParameters = typeof WideLineBufferDefaultParameters
export type WideLineBufferParameters = BufferParameters & { linewidth: number }

const WideLineBufferParameterTypes = Object.assign({
linewidth: { uniform: true }
Expand Down
2 changes: 1 addition & 1 deletion src/color/colormaker.ts
Expand Up @@ -8,7 +8,7 @@ import { Vector3, Color } from 'three'
import * as chroma from 'chroma-js'

import { createParams } from '../utils'
import { NumberArray, Partial } from '../types'
import { NumberArray } from '../types'
import Structure from '../structure/structure'
import Surface from '../surface/surface'
import Volume from '../surface/volume'
Expand Down
5 changes: 2 additions & 3 deletions src/component/representation-collection.ts
Expand Up @@ -4,10 +4,9 @@
* @private
*/

import { Color } from 'three'

import RepresentationElement from './representation-element'
import Collection from './collection'
import { GenericColor } from '../types'

class RepresentationCollection extends Collection<RepresentationElement> {
setParameters (params: any) {
Expand All @@ -22,7 +21,7 @@ class RepresentationCollection extends Collection<RepresentationElement> {
return this.forEach((repr) => repr.setSelection(string))
}

setColor (color: number|string|Color) {
setColor (color: GenericColor) {
return this.forEach((repr) => repr.setColor(color))
}

Expand Down
1 change: 0 additions & 1 deletion src/component/structure-component.ts
Expand Up @@ -328,7 +328,6 @@ class StructureComponent extends Component {
* @param {Integer} [duration] - duration of the animation, defaults to 0
* @return {undefined}
*/
autoView (duration?: number): any
autoView (sele?: string|number, duration?: number) {
if (typeof sele === 'number') {
duration = sele
Expand Down
6 changes: 3 additions & 3 deletions src/globals.ts
Expand Up @@ -105,11 +105,11 @@ export const BufferRegistry = new Registry('buffer')
export const PickerRegistry = new Registry('picker')

export let ListingDatasource: any
export function setListingDatasource (value: boolean) {
export function setListingDatasource (value: any) {
ListingDatasource = value
}

export let TrajectoryDatasource: any
export function setTrajectoryDatasource (value: boolean) {
export let TrajectoryDatasource: any // TODO should accept mdsrvDatasource
export function setTrajectoryDatasource (value: any) {
TrajectoryDatasource = value
}
5 changes: 2 additions & 3 deletions src/loader/loader-utils.ts
Expand Up @@ -7,8 +7,7 @@
import {
DatasourceRegistry, DecompressorRegistry, ParserRegistry, ScriptExtensions
} from '../globals'
import { Partial } from '../types'
import ParserLoader from './parser-loader'
import ParserLoader, { ParserParams } from './parser-loader'
import ScriptLoader from './script-loader'

export interface LoaderParameters {
Expand Down Expand Up @@ -106,7 +105,7 @@ export function getDataInfo (src: LoaderInput) {
* @param {LoaderParameters} params - loading parameters
* @return {Promise} Promise resolves to the loaded data
*/
export function autoLoad (file: LoaderInput, params: Partial<LoaderParameters> = {}) {
export function autoLoad (file: LoaderInput, params: Partial<LoaderParameters & ParserParams> = {}) {
const p = Object.assign(getDataInfo(file), params)

let loader
Expand Down
1 change: 0 additions & 1 deletion src/loader/loader.ts
Expand Up @@ -6,7 +6,6 @@

import { ParserRegistry } from '../globals'
import { createParams } from '../utils'
import { Partial } from '../types'
import FileStreamer from '../streamer/file-streamer'
import NetworkStreamer from '../streamer/network-streamer'
import { LoaderParameters, LoaderInput } from './loader-utils'
Expand Down

0 comments on commit 481c850

Please sign in to comment.