@dronedeploy/rocos-js-sdk 0.0.1 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/IRocosSDK.d.ts +55 -0
- package/IRocosSDK.js +6 -0
- package/README.md +90 -0
- package/RocosSDK.d.ts +138 -0
- package/RocosSDK.js +294 -0
- package/api/StreamRegister.d.ts +13 -0
- package/api/StreamRegister.js +58 -0
- package/api/atoms/StreamHeartbeat.d.ts +27 -0
- package/api/atoms/StreamHeartbeat.js +115 -0
- package/api/streams/caller/CallerStream.d.ts +13 -0
- package/api/streams/caller/CallerStream.js +85 -0
- package/api/streams/caller/CallerStreamAbstract.d.ts +28 -0
- package/api/streams/caller/CallerStreamAbstract.js +99 -0
- package/api/streams/caller/CallerStreamNode.d.ts +13 -0
- package/api/streams/caller/CallerStreamNode.js +128 -0
- package/api/streams/command/CommandStream.d.ts +12 -0
- package/api/streams/command/CommandStream.js +68 -0
- package/api/streams/command/CommandStreamAbstract.d.ts +24 -0
- package/api/streams/command/CommandStreamAbstract.js +72 -0
- package/api/streams/command/CommandStreamNode.d.ts +12 -0
- package/api/streams/command/CommandStreamNode.js +93 -0
- package/api/streams/control/ControlStream.d.ts +14 -0
- package/api/streams/control/ControlStream.js +81 -0
- package/api/streams/control/ControlStreamAbstract.d.ts +28 -0
- package/api/streams/control/ControlStreamAbstract.js +108 -0
- package/api/streams/control/ControlStreamNode.d.ts +14 -0
- package/api/streams/control/ControlStreamNode.js +98 -0
- package/api/streams/fileAccessor/FileAccessorStream.d.ts +10 -0
- package/api/streams/fileAccessor/FileAccessorStream.js +74 -0
- package/api/streams/fileAccessor/FileAccessorStreamAbstract.d.ts +26 -0
- package/api/streams/fileAccessor/FileAccessorStreamAbstract.js +82 -0
- package/api/streams/fileAccessor/FileAccessorStreamNode.d.ts +10 -0
- package/api/streams/fileAccessor/FileAccessorStreamNode.js +96 -0
- package/api/streams/search/SearchStream.d.ts +16 -0
- package/api/streams/search/SearchStream.js +120 -0
- package/api/streams/search/SearchStreamAbstract.d.ts +30 -0
- package/api/streams/search/SearchStreamAbstract.js +74 -0
- package/api/streams/search/SearchStreamNode.d.ts +16 -0
- package/api/streams/search/SearchStreamNode.js +143 -0
- package/api/streams/telemetry/TelemetryStream.d.ts +17 -0
- package/api/streams/telemetry/TelemetryStream.js +126 -0
- package/api/streams/telemetry/TelemetryStreamAbstract.d.ts +62 -0
- package/api/streams/telemetry/TelemetryStreamAbstract.js +421 -0
- package/api/streams/telemetry/TelemetryStreamNode.d.ts +21 -0
- package/api/streams/telemetry/TelemetryStreamNode.js +195 -0
- package/api/streams/webRTCSignalling/WebRTCSignallingStream.d.ts +44 -0
- package/api/streams/webRTCSignalling/WebRTCSignallingStream.js +67 -0
- package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.d.ts +32 -0
- package/api/streams/webRTCSignalling/WebRTCSignallingStreamAbstract.js +65 -0
- package/constants/api.d.ts +121 -0
- package/constants/api.js +126 -0
- package/constants/grpc.d.ts +5 -0
- package/constants/grpc.js +8 -0
- package/constants/identifier.d.ts +6 -0
- package/constants/identifier.js +9 -0
- package/constants/timezones.d.ts +2 -0
- package/constants/timezones.js +430 -0
- package/demo/angular/.editorconfig +16 -0
- package/demo/angular/.eslintignore +4 -0
- package/demo/angular/.eslintrc.json +50 -0
- package/demo/angular/README.md +36 -0
- package/demo/angular/angular.json +132 -0
- package/demo/angular/karma.conf.js +44 -0
- package/demo/angular/package.json +41 -0
- package/demo/angular/src/app/app.component.css +0 -0
- package/demo/angular/src/app/app.component.html +9 -0
- package/demo/angular/src/app/app.component.ts +10 -0
- package/demo/angular/src/app/app.module.ts +38 -0
- package/demo/angular/src/app/components/assets/assets.component.css +0 -0
- package/demo/angular/src/app/components/assets/assets.component.html +29 -0
- package/demo/angular/src/app/components/assets/assets.component.ts +107 -0
- package/demo/angular/src/app/components/auth/auth.component.css +0 -0
- package/demo/angular/src/app/components/auth/auth.component.html +27 -0
- package/demo/angular/src/app/components/auth/auth.component.ts +33 -0
- package/demo/angular/src/app/components/caller/caller.component.css +0 -0
- package/demo/angular/src/app/components/caller/caller.component.html +22 -0
- package/demo/angular/src/app/components/caller/caller.component.ts +61 -0
- package/demo/angular/src/app/components/command/command.component.css +0 -0
- package/demo/angular/src/app/components/command/command.component.html +22 -0
- package/demo/angular/src/app/components/command/command.component.ts +60 -0
- package/demo/angular/src/app/components/integrations/integrations.component.ts +43 -0
- package/demo/angular/src/app/components/robots/robots.component.css +0 -0
- package/demo/angular/src/app/components/robots/robots.component.html +13 -0
- package/demo/angular/src/app/components/robots/robots.component.ts +26 -0
- package/demo/angular/src/app/components/sdk/sdk.component.css +0 -0
- package/demo/angular/src/app/components/sdk/sdk.component.html +43 -0
- package/demo/angular/src/app/components/sdk/sdk.component.ts +50 -0
- package/demo/angular/src/app/components/subscription/subscription.component.css +0 -0
- package/demo/angular/src/app/components/subscription/subscription.component.html +6 -0
- package/demo/angular/src/app/components/subscription/subscription.component.ts +40 -0
- package/demo/angular/src/app/components/telemetry/telemetry.component.css +0 -0
- package/demo/angular/src/app/components/telemetry/telemetry.component.html +19 -0
- package/demo/angular/src/app/components/telemetry/telemetry.component.ts +61 -0
- package/demo/angular/src/app/components/token/token.component.css +0 -0
- package/demo/angular/src/app/components/token/token.component.html +10 -0
- package/demo/angular/src/app/components/token/token.component.ts +18 -0
- package/demo/angular/src/app/components/video/p2pvideo/index.ts +646 -0
- package/demo/angular/src/app/components/video/video-source.ts +315 -0
- package/demo/angular/src/app/components/video/video.component.css +6 -0
- package/demo/angular/src/app/components/video/video.component.html +54 -0
- package/demo/angular/src/app/components/video/video.component.ts +151 -0
- package/demo/angular/src/app/services/sdk.service.ts +193 -0
- package/demo/angular/src/assets/.gitkeep +0 -0
- package/demo/angular/src/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/angular/src/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/angular/src/assets/logo.svg +16 -0
- package/demo/angular/src/environments/environment.prod.ts +3 -0
- package/demo/angular/src/environments/environment.ts +16 -0
- package/demo/angular/src/favicon.ico +0 -0
- package/demo/angular/src/index.html +15 -0
- package/demo/angular/src/main.ts +7 -0
- package/demo/angular/src/polyfills.ts +53 -0
- package/demo/angular/src/styles.css +198 -0
- package/demo/angular/tsconfig.app.json +15 -0
- package/demo/angular/tsconfig.json +39 -0
- package/demo/html/README.md +8 -0
- package/demo/html/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/html/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/html/assets/logo.svg +16 -0
- package/demo/html/favicon.ico +0 -0
- package/demo/html/index.html +416 -0
- package/demo/html/rocos-js-sdk.js +3 -0
- package/demo/html/rocos-js-sdk.js.LICENSE.txt +8 -0
- package/demo/html/rocos-js-sdk.js.map +1 -0
- package/demo/html/styles.css +190 -0
- package/demo/node/README.md +17 -0
- package/demo/node/index.js +134 -0
- package/demo/node/package.json +8 -0
- package/demo/react/.env +1 -0
- package/demo/react/.env.dist +1 -0
- package/demo/react/.eslintrc.json +46 -0
- package/demo/react/README.md +65 -0
- package/demo/react/package.json +60 -0
- package/demo/react/public/favicon.ico +0 -0
- package/demo/react/public/index.html +43 -0
- package/demo/react/public/logo192.png +0 -0
- package/demo/react/public/logo512.png +0 -0
- package/demo/react/public/manifest.json +25 -0
- package/demo/react/public/robots.txt +3 -0
- package/demo/react/src/App.css +190 -0
- package/demo/react/src/App.tsx +31 -0
- package/demo/react/src/actions/index.ts +8 -0
- package/demo/react/src/actions/sdkActions.ts +62 -0
- package/demo/react/src/assets/HKGrotesk-Bold.otf +0 -0
- package/demo/react/src/assets/HKGrotesk-Regular.otf +0 -0
- package/demo/react/src/assets/logo.svg +16 -0
- package/demo/react/src/components/AuthForm.tsx +76 -0
- package/demo/react/src/components/CallerBox.tsx +53 -0
- package/demo/react/src/components/CallerForm.tsx +98 -0
- package/demo/react/src/components/CommandBox.tsx +47 -0
- package/demo/react/src/components/CommandForm.tsx +98 -0
- package/demo/react/src/components/RobotsForm.tsx +51 -0
- package/demo/react/src/components/SubscriptionBox.tsx +55 -0
- package/demo/react/src/components/TelemetryForm.tsx +98 -0
- package/demo/react/src/components/TokenForm.tsx +39 -0
- package/demo/react/src/config.json +14 -0
- package/demo/react/src/controllers/RocosSDKController.ts +48 -0
- package/demo/react/src/helpers/deepEqual.ts +27 -0
- package/demo/react/src/hooks/useInput.ts +29 -0
- package/demo/react/src/index.css +11 -0
- package/demo/react/src/index.tsx +26 -0
- package/demo/react/src/react-app-env.d.ts +1 -0
- package/demo/react/src/reducers/sdkReducer.ts +133 -0
- package/demo/react/src/reportWebVitals.ts +15 -0
- package/demo/react/src/selectors/sdkSelector.ts +11 -0
- package/demo/react/src/setupTests.ts +5 -0
- package/demo/react/src/store.ts +14 -0
- package/demo/react/tsconfig.json +26 -0
- package/demo/sdk-sizer/dist/sdk-sizer/3rdpartylicenses.txt +975 -0
- package/demo/sdk-sizer/dist/sdk-sizer/favicon.ico +0 -0
- package/demo/sdk-sizer/dist/sdk-sizer/index.html +12 -0
- package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js +2 -0
- package/demo/sdk-sizer/dist/sdk-sizer/main.c9183649ce1856ef.js.map +1 -0
- package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js +2 -0
- package/demo/sdk-sizer/dist/sdk-sizer/polyfills.701c8e5d007909aa.js.map +1 -0
- package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js +2 -0
- package/demo/sdk-sizer/dist/sdk-sizer/runtime.00e20e689f5284a8.js.map +1 -0
- package/demo/sdk-sizer/dist/sdk-sizer/stats.json +1 -0
- package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css +2 -0
- package/demo/sdk-sizer/dist/sdk-sizer/styles.b45f7e627ac8cbce.css.map +1 -0
- package/grpc/file-accessor/filagree_grpc_pb.d.ts +41 -0
- package/grpc/file-accessor/filagree_grpc_pb.js +121 -0
- package/grpc/file-accessor/filagree_pb.d.ts +339 -0
- package/grpc/file-accessor/filagree_pb.js +2261 -0
- package/grpc/file-accessor/filagree_pb_service.d.ts +115 -0
- package/grpc/file-accessor/filagree_pb_service.js +257 -0
- package/grpc/rambo/rambo.v1_grpc_pb.d.ts +39 -0
- package/grpc/rambo/rambo.v1_grpc_pb.js +73 -0
- package/grpc/rambo/rambo.v1_pb.d.ts +365 -0
- package/grpc/rambo/rambo.v1_pb.js +2469 -0
- package/grpc/rambo/rambo.v1_pb_service.d.ts +76 -0
- package/grpc/rambo/rambo.v1_pb_service.js +138 -0
- package/grpc/rambo/uri.v1_grpc_pb.d.ts +1 -0
- package/grpc/rambo/uri.v1_grpc_pb.js +1 -0
- package/grpc/rambo/uri.v1_pb.d.ts +80 -0
- package/grpc/rambo/uri.v1_pb.js +563 -0
- package/grpc/rambo/uri.v1_pb_service.d.ts +3 -0
- package/grpc/rambo/uri.v1_pb_service.js +3 -0
- package/grpc/robot-control/conker_grpc_pb.d.ts +46 -0
- package/grpc/robot-control/conker_grpc_pb.js +143 -0
- package/grpc/robot-control/conker_pb.d.ts +168 -0
- package/grpc/robot-control/conker_pb.js +1287 -0
- package/grpc/robot-control/conker_pb_service.d.ts +126 -0
- package/grpc/robot-control/conker_pb_service.js +301 -0
- package/grpc/serviette/common.v1_grpc_pb.d.ts +1 -0
- package/grpc/serviette/common.v1_grpc_pb.js +1 -0
- package/grpc/serviette/common.v1_pb.d.ts +8 -0
- package/grpc/serviette/common.v1_pb.js +45 -0
- package/grpc/serviette/common.v1_pb_service.d.ts +3 -0
- package/grpc/serviette/common.v1_pb_service.js +3 -0
- package/grpc/serviette/serviette.v1_grpc_pb.d.ts +137 -0
- package/grpc/serviette/serviette.v1_grpc_pb.js +331 -0
- package/grpc/serviette/serviette.v1_pb.d.ts +884 -0
- package/grpc/serviette/serviette.v1_pb.js +6363 -0
- package/grpc/serviette/serviette.v1_pb_service.d.ts +278 -0
- package/grpc/serviette/serviette.v1_pb_service.js +699 -0
- package/grpc/serviette/uri.v1_grpc_pb.d.ts +1 -0
- package/grpc/serviette/uri.v1_grpc_pb.js +1 -0
- package/grpc/serviette/uri.v1_pb.d.ts +102 -0
- package/grpc/serviette/uri.v1_pb.js +741 -0
- package/grpc/serviette/uri.v1_pb_service.d.ts +3 -0
- package/grpc/serviette/uri.v1_pb_service.js +3 -0
- package/grpc/slowlane/slowlane_grpc_pb.d.ts +38 -0
- package/grpc/slowlane/slowlane_grpc_pb.js +132 -0
- package/grpc/slowlane/slowlane_pb.d.ts +373 -0
- package/grpc/slowlane/slowlane_pb.js +2908 -0
- package/grpc/slowlane/slowlane_pb_service.d.ts +112 -0
- package/grpc/slowlane/slowlane_pb_service.js +189 -0
- package/grpc/teletubby/teletubby_grpc_pb.d.ts +73 -0
- package/grpc/teletubby/teletubby_grpc_pb.js +231 -0
- package/grpc/teletubby/teletubby_pb.d.ts +647 -0
- package/grpc/teletubby/teletubby_pb.js +4786 -0
- package/grpc/teletubby/teletubby_pb_service.d.ts +193 -0
- package/grpc/teletubby/teletubby_pb_service.js +436 -0
- package/grpc/video/pigeon_grpc_pb.d.ts +59 -0
- package/grpc/video/pigeon_grpc_pb.js +180 -0
- package/grpc/video/pigeon_pb.d.ts +237 -0
- package/grpc/video/pigeon_pb.js +1775 -0
- package/grpc/video/pigeon_pb_service.d.ts +152 -0
- package/grpc/video/pigeon_pb_service.js +292 -0
- package/helpers/arrayRemove.d.ts +1 -0
- package/helpers/arrayRemove.js +7 -0
- package/helpers/arrayUnique.d.ts +1 -0
- package/helpers/arrayUnique.js +7 -0
- package/helpers/average.d.ts +1 -0
- package/helpers/average.js +11 -0
- package/helpers/cleanObject.d.ts +1 -0
- package/helpers/cleanObject.js +20 -0
- package/helpers/enviroment.d.ts +8 -0
- package/helpers/enviroment.js +20 -0
- package/helpers/flattenCallsignsLookup.d.ts +2 -0
- package/helpers/flattenCallsignsLookup.js +10 -0
- package/helpers/flattenObject.d.ts +1 -0
- package/helpers/flattenObject.js +17 -0
- package/helpers/formatServiceUrl.d.ts +1 -0
- package/helpers/formatServiceUrl.js +11 -0
- package/helpers/generateUUID.d.ts +1 -0
- package/helpers/generateUUID.js +8 -0
- package/helpers/getSubscriptionsDifference.d.ts +10 -0
- package/helpers/getSubscriptionsDifference.js +39 -0
- package/helpers/getUniqueConfigKey.d.ts +7 -0
- package/helpers/getUniqueConfigKey.js +19 -0
- package/helpers/getUniqueId.d.ts +9 -0
- package/helpers/getUniqueId.js +15 -0
- package/helpers/getUnixTimeMs.d.ts +1 -0
- package/helpers/getUnixTimeMs.js +8 -0
- package/helpers/index.d.ts +3 -0
- package/helpers/index.js +15 -0
- package/helpers/nanosecondToMillisecond.d.ts +1 -0
- package/helpers/nanosecondToMillisecond.js +7 -0
- package/helpers/randomString.d.ts +1 -0
- package/helpers/randomString.js +7 -0
- package/helpers/standardDeviation.d.ts +1 -0
- package/helpers/standardDeviation.js +16 -0
- package/helpers/stringToUint8Array.d.ts +1 -0
- package/helpers/stringToUint8Array.js +14 -0
- package/helpers/uint8ArrayToString.d.ts +1 -0
- package/helpers/uint8ArrayToString.js +15 -0
- package/index.d.ts +7 -0
- package/index.js +19 -0
- package/logger/RocosLogger.d.ts +7 -0
- package/logger/RocosLogger.js +63 -0
- package/models/ExportDataQuery.d.ts +8 -0
- package/models/ExportDataQuery.js +17 -0
- package/models/ExternalProject.d.ts +6 -0
- package/models/ExternalProject.js +6 -0
- package/models/IBaseService.d.ts +3 -0
- package/models/IBaseService.js +2 -0
- package/models/IConfigGroup.d.ts +5 -0
- package/models/IConfigGroup.js +2 -0
- package/models/IDebugLevel.d.ts +2 -0
- package/models/IDebugLevel.js +2 -0
- package/models/IExportDataQuery.d.ts +9 -0
- package/models/IExportDataQuery.js +2 -0
- package/models/IFunctionConfig.d.ts +8 -0
- package/models/IFunctionConfig.js +2 -0
- package/models/IInvitation.d.ts +6 -0
- package/models/IInvitation.js +2 -0
- package/models/IInvitationExists.d.ts +4 -0
- package/models/IInvitationExists.js +2 -0
- package/models/IOperation.d.ts +6 -0
- package/models/IOperation.js +2 -0
- package/models/IPersonalAccessToken.d.ts +16 -0
- package/models/IPersonalAccessToken.js +2 -0
- package/models/IProject.d.ts +4 -0
- package/models/IProject.js +2 -0
- package/models/IProjectApplication.d.ts +6 -0
- package/models/IProjectApplication.js +2 -0
- package/models/IRobot.d.ts +17 -0
- package/models/IRobot.js +2 -0
- package/models/IRobotConfig.d.ts +8 -0
- package/models/IRobotConfig.js +2 -0
- package/models/IRobotPlugin.d.ts +3 -0
- package/models/IRobotPlugin.js +2 -0
- package/models/IRobotTemplate.d.ts +10 -0
- package/models/IRobotTemplate.js +2 -0
- package/models/IRocosSDKConfig.d.ts +25 -0
- package/models/IRocosSDKConfig.js +2 -0
- package/models/ISignupParams.d.ts +8 -0
- package/models/ISignupParams.js +2 -0
- package/models/ISource.d.ts +8 -0
- package/models/ISource.js +2 -0
- package/models/IStream.d.ts +9 -0
- package/models/IStream.js +2 -0
- package/models/IStreamConfig.d.ts +9 -0
- package/models/IStreamConfig.js +2 -0
- package/models/IStreamOptions.d.ts +7 -0
- package/models/IStreamOptions.js +2 -0
- package/models/IStreamSource.d.ts +8 -0
- package/models/IStreamSource.js +2 -0
- package/models/ISubscriberStatus.d.ts +5 -0
- package/models/ISubscriberStatus.js +2 -0
- package/models/ITelemetryStreamConfig.d.ts +7 -0
- package/models/ITelemetryStreamConfig.js +2 -0
- package/models/IToken.d.ts +5 -0
- package/models/IToken.js +2 -0
- package/models/IWidget.d.ts +25 -0
- package/models/IWidget.js +2 -0
- package/models/IWidgetLineGroup.d.ts +8 -0
- package/models/IWidgetLineGroup.js +2 -0
- package/models/ResponseLevelEnum.d.ts +6 -0
- package/models/ResponseLevelEnum.js +10 -0
- package/models/Robot.d.ts +19 -0
- package/models/Robot.js +12 -0
- package/models/RobotConfig.d.ts +10 -0
- package/models/RobotConfig.js +9 -0
- package/models/RobotPlugin.d.ts +5 -0
- package/models/RobotPlugin.js +9 -0
- package/models/RobotTemplate.d.ts +12 -0
- package/models/RobotTemplate.js +30 -0
- package/models/RocosError.d.ts +30 -0
- package/models/RocosError.js +43 -0
- package/models/ServiceEnum.d.ts +26 -0
- package/models/ServiceEnum.js +30 -0
- package/models/Stream.d.ts +10 -0
- package/models/Stream.js +15 -0
- package/models/StreamOptions.d.ts +9 -0
- package/models/StreamOptions.js +37 -0
- package/models/StreamSource.d.ts +10 -0
- package/models/StreamSource.js +15 -0
- package/models/SubscriberStatusEnum.d.ts +6 -0
- package/models/SubscriberStatusEnum.js +10 -0
- package/models/Token.d.ts +8 -0
- package/models/Token.js +15 -0
- package/models/Widget.d.ts +27 -0
- package/models/Widget.js +16 -0
- package/models/WidgetLineGroup.d.ts +10 -0
- package/models/WidgetLineGroup.js +9 -0
- package/models/asset-storage/AssetModelItem.d.ts +29 -0
- package/models/asset-storage/AssetModelItem.js +2 -0
- package/models/caller/IRocosCallerMessageChunk.d.ts +9 -0
- package/models/caller/IRocosCallerMessageChunk.js +2 -0
- package/models/caller/IRocosCallerMessageChunks.d.ts +5 -0
- package/models/caller/IRocosCallerMessageChunks.js +2 -0
- package/models/caller/IRocosCallerMessageHeartbeat.d.ts +2 -0
- package/models/caller/IRocosCallerMessageHeartbeat.js +2 -0
- package/models/caller/IRocosCallerMessageResponse.d.ts +9 -0
- package/models/caller/IRocosCallerMessageResponse.js +2 -0
- package/models/caller/IRocosCallerMessageResponseAck.d.ts +2 -0
- package/models/caller/IRocosCallerMessageResponseAck.js +2 -0
- package/models/caller/IRocosCallerMessageResponseResult.d.ts +2 -0
- package/models/caller/IRocosCallerMessageResponseResult.js +2 -0
- package/models/caller/IRocosCallerMessageResponseUid.d.ts +2 -0
- package/models/caller/IRocosCallerMessageResponseUid.js +2 -0
- package/models/caller/IRocosCallerMessageResponses.d.ts +5 -0
- package/models/caller/IRocosCallerMessageResponses.js +2 -0
- package/models/caller/RocosCallerResultStatus.d.ts +1 -0
- package/models/caller/RocosCallerResultStatus.js +5 -0
- package/models/callsigns/CallsignsEnums.d.ts +13 -0
- package/models/callsigns/CallsignsEnums.js +20 -0
- package/models/callsigns/CallsignsLookup.d.ts +8 -0
- package/models/callsigns/CallsignsLookup.js +33 -0
- package/models/callsigns/CallsignsQuery.d.ts +9 -0
- package/models/callsigns/CallsignsQuery.js +18 -0
- package/models/callsigns/CallsignsQueryPredicate.d.ts +9 -0
- package/models/callsigns/CallsignsQueryPredicate.js +19 -0
- package/models/command/IRocosCommandMessageHeartbeat.d.ts +2 -0
- package/models/command/IRocosCommandMessageHeartbeat.js +2 -0
- package/models/command/IRocosCommandMessageResponse.d.ts +2 -0
- package/models/command/IRocosCommandMessageResponse.js +2 -0
- package/models/command/RocosCommandResultStatus.d.ts +1 -0
- package/models/command/RocosCommandResultStatus.js +5 -0
- package/models/file/FileEnums.d.ts +30 -0
- package/models/file/FileEnums.js +36 -0
- package/models/index.d.ts +101 -0
- package/models/index.js +113 -0
- package/models/integrations/Overlay.d.ts +49 -0
- package/models/integrations/Overlay.js +2 -0
- package/models/integrations/Plan.d.ts +324 -0
- package/models/integrations/Plan.js +2 -0
- package/models/maps/Map.d.ts +12 -0
- package/models/maps/Map.js +2 -0
- package/models/message/IRocosCallerMessage.d.ts +8 -0
- package/models/message/IRocosCallerMessage.js +2 -0
- package/models/message/IRocosChangeMessage.d.ts +6 -0
- package/models/message/IRocosChangeMessage.js +2 -0
- package/models/message/IRocosCommandMessage.d.ts +6 -0
- package/models/message/IRocosCommandMessage.js +2 -0
- package/models/message/IRocosControlMessage.d.ts +7 -0
- package/models/message/IRocosControlMessage.js +2 -0
- package/models/message/IRocosOpResultMessage.d.ts +6 -0
- package/models/message/IRocosOpResultMessage.js +2 -0
- package/models/message/IRocosSearchMessage.d.ts +5 -0
- package/models/message/IRocosSearchMessage.js +2 -0
- package/models/message/IRocosSearchRowMessage.d.ts +9 -0
- package/models/message/IRocosSearchRowMessage.js +2 -0
- package/models/message/IRocosSearchStatusMessage.d.ts +4 -0
- package/models/message/IRocosSearchStatusMessage.js +2 -0
- package/models/message/IRocosTelemetryMessage.d.ts +18 -0
- package/models/message/IRocosTelemetryMessage.js +2 -0
- package/models/message/IStreamStatusMessage.d.ts +5 -0
- package/models/message/IStreamStatusMessage.js +2 -0
- package/models/message/RocosCallerMessage.d.ts +12 -0
- package/models/message/RocosCallerMessage.js +23 -0
- package/models/message/RocosCommandMessage.d.ts +10 -0
- package/models/message/RocosCommandMessage.js +16 -0
- package/models/message/RocosControlMessage.d.ts +11 -0
- package/models/message/RocosControlMessage.js +18 -0
- package/models/message/RocosOpResultMessage.d.ts +9 -0
- package/models/message/RocosOpResultMessage.js +22 -0
- package/models/message/RocosSearchMessage.d.ts +9 -0
- package/models/message/RocosSearchMessage.js +28 -0
- package/models/message/RocosSearchRowMessage.d.ts +13 -0
- package/models/message/RocosSearchRowMessage.js +20 -0
- package/models/message/RocosTelemetryMessage.d.ts +24 -0
- package/models/message/RocosTelemetryMessage.js +105 -0
- package/models/params/ICallerParams.d.ts +15 -0
- package/models/params/ICallerParams.js +2 -0
- package/models/params/ICommandParams.d.ts +9 -0
- package/models/params/ICommandParams.js +2 -0
- package/models/params/IControlParams.d.ts +8 -0
- package/models/params/IControlParams.js +2 -0
- package/models/params/IFileAccessorParams.d.ts +11 -0
- package/models/params/IFileAccessorParams.js +2 -0
- package/models/params/ISearchParams.d.ts +10 -0
- package/models/params/ISearchParams.js +2 -0
- package/models/params/ITelemetryParams.d.ts +18 -0
- package/models/params/ITelemetryParams.js +2 -0
- package/models/params/IWebRTCSignallingParams.d.ts +21 -0
- package/models/params/IWebRTCSignallingParams.js +2 -0
- package/models/projects/ProjectUser.d.ts +6 -0
- package/models/projects/ProjectUser.js +2 -0
- package/models/schedule/IScheduleAction.d.ts +13 -0
- package/models/schedule/IScheduleAction.js +9 -0
- package/models/schedule/IScheduleInfo.d.ts +11 -0
- package/models/schedule/IScheduleInfo.js +2 -0
- package/models/schedule/IScheduleJob.d.ts +12 -0
- package/models/schedule/IScheduleJob.js +2 -0
- package/models/search/SearchQueryFilter.d.ts +5 -0
- package/models/search/SearchQueryFilter.js +9 -0
- package/models/search/SearchStreamQuery.d.ts +15 -0
- package/models/search/SearchStreamQuery.js +10 -0
- package/models/stream/IBaseStream.d.ts +8 -0
- package/models/stream/IBaseStream.js +2 -0
- package/models/stream/ICallerStream.d.ts +8 -0
- package/models/stream/ICallerStream.js +2 -0
- package/models/stream/ICommandStream.d.ts +7 -0
- package/models/stream/ICommandStream.js +2 -0
- package/models/stream/IControlStream.d.ts +9 -0
- package/models/stream/IControlStream.js +2 -0
- package/models/stream/IFileAccessorStream.d.ts +10 -0
- package/models/stream/IFileAccessorStream.js +2 -0
- package/models/stream/ISearchStream.d.ts +11 -0
- package/models/stream/ISearchStream.js +2 -0
- package/models/stream/ITelemetryStream.d.ts +10 -0
- package/models/stream/ITelemetryStream.js +2 -0
- package/models/stream/IWebRTCSignallingStream.d.ts +41 -0
- package/models/stream/IWebRTCSignallingStream.js +7 -0
- package/models/types.d.ts +5 -0
- package/models/types.js +2 -0
- package/node/RocosSDKNode.d.ts +42 -0
- package/node/RocosSDKNode.js +148 -0
- package/node/index.d.ts +7 -0
- package/node/index.js +19 -0
- package/package.json +25 -6
- package/services/AssetStorageService.d.ts +92 -0
- package/services/AssetStorageService.js +153 -0
- package/services/AuthService.d.ts +61 -0
- package/services/AuthService.js +154 -0
- package/services/BaseServiceAbstract.d.ts +38 -0
- package/services/BaseServiceAbstract.js +103 -0
- package/services/CallerService.d.ts +22 -0
- package/services/CallerService.js +96 -0
- package/services/CallerServiceNode.d.ts +6 -0
- package/services/CallerServiceNode.js +11 -0
- package/services/CommandService.d.ts +21 -0
- package/services/CommandService.js +81 -0
- package/services/CommandServiceNode.d.ts +6 -0
- package/services/CommandServiceNode.js +11 -0
- package/services/ConfigGroupService.d.ts +89 -0
- package/services/ConfigGroupService.js +157 -0
- package/services/ControlService.d.ts +23 -0
- package/services/ControlService.js +100 -0
- package/services/ControlServiceNode.d.ts +6 -0
- package/services/ControlServiceNode.js +11 -0
- package/services/DashboardService.d.ts +97 -0
- package/services/DashboardService.js +146 -0
- package/services/EventService.d.ts +53 -0
- package/services/EventService.js +89 -0
- package/services/FileAccessorService.d.ts +25 -0
- package/services/FileAccessorService.js +85 -0
- package/services/FileAccessorServiceNode.d.ts +6 -0
- package/services/FileAccessorServiceNode.js +11 -0
- package/services/FunctionService.d.ts +68 -0
- package/services/FunctionService.js +103 -0
- package/services/IntegrationService.d.ts +48 -0
- package/services/IntegrationService.js +77 -0
- package/services/MapService.d.ts +96 -0
- package/services/MapService.js +119 -0
- package/services/PlatformTimeService.d.ts +35 -0
- package/services/PlatformTimeService.js +160 -0
- package/services/ProfileService.d.ts +244 -0
- package/services/ProfileService.js +366 -0
- package/services/ProjectService.d.ts +110 -0
- package/services/ProjectService.js +164 -0
- package/services/RobotService.d.ts +282 -0
- package/services/RobotService.js +467 -0
- package/services/ScheduleService.d.ts +22 -0
- package/services/ScheduleService.js +40 -0
- package/services/SearchService.d.ts +25 -0
- package/services/SearchService.js +93 -0
- package/services/SearchServiceNode.d.ts +6 -0
- package/services/SearchServiceNode.js +11 -0
- package/services/SpotProvisioningService.d.ts +14 -0
- package/services/SpotProvisioningService.js +43 -0
- package/services/SpotProvisioningServiceNode.d.ts +15 -0
- package/services/SpotProvisioningServiceNode.js +43 -0
- package/services/StreamService.d.ts +98 -0
- package/services/StreamService.js +146 -0
- package/services/TelemetryService.d.ts +43 -0
- package/services/TelemetryService.js +144 -0
- package/services/TelemetryServiceNode.d.ts +6 -0
- package/services/TelemetryServiceNode.js +11 -0
- package/services/TimeSyncerService.d.ts +13 -0
- package/services/TimeSyncerService.js +27 -0
- package/services/UserService.d.ts +200 -0
- package/services/UserService.js +319 -0
- package/services/WebRTCSignallingService.d.ts +22 -0
- package/services/WebRTCSignallingService.js +81 -0
- package/services/WorkflowService.d.ts +71 -0
- package/services/WorkflowService.js +122 -0
- package/services/index.d.ts +26 -0
- package/services/index.js +38 -0
- package/store/RocosStore.d.ts +31 -0
- package/store/RocosStore.js +53 -0
- package/utils/axisangle.d.ts +18 -0
- package/utils/axisangle.js +48 -0
- package/utils/eulerangles.d.ts +22 -0
- package/utils/eulerangles.js +133 -0
- package/utils/helperfunctions.d.ts +5 -0
- package/utils/helperfunctions.js +50 -0
- package/utils/localtransform.d.ts +17 -0
- package/utils/localtransform.js +50 -0
- package/utils/localtransformtree.d.ts +17 -0
- package/utils/localtransformtree.js +88 -0
- package/utils/misc.d.ts +17 -0
- package/utils/misc.js +23 -0
- package/utils/positionvector.d.ts +13 -0
- package/utils/positionvector.js +79 -0
- package/utils/quaternion.d.ts +20 -0
- package/utils/quaternion.js +62 -0
- package/utils/rotationmatrix.d.ts +23 -0
- package/utils/rotationmatrix.js +262 -0
- package/utils/transformationmatrix.d.ts +12 -0
- package/utils/transformationmatrix.js +123 -0
- package/utils/vector3.d.ts +11 -0
- package/utils/vector3.js +61 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalTransformTree = void 0;
|
|
4
|
+
class LocalTransformTree {
|
|
5
|
+
constructor(frames, parents, children) {
|
|
6
|
+
this.frames = frames;
|
|
7
|
+
this.parents = parents;
|
|
8
|
+
this.children = children;
|
|
9
|
+
}
|
|
10
|
+
// getFrame returns the specified frame
|
|
11
|
+
getFrame(searchID) {
|
|
12
|
+
let frame = this.frames.get(searchID);
|
|
13
|
+
if (frame == null) {
|
|
14
|
+
throw "Frame does not exist with given ID";
|
|
15
|
+
}
|
|
16
|
+
return frame;
|
|
17
|
+
}
|
|
18
|
+
// getSeqDown returns the sequence of frame IDs from start to end. If end isn't found, SeqDown returns seq to root
|
|
19
|
+
getSeqDown(start, end) {
|
|
20
|
+
if (start == end) {
|
|
21
|
+
return [start];
|
|
22
|
+
}
|
|
23
|
+
var currentFrame = this.getFrame(start);
|
|
24
|
+
var seq = [];
|
|
25
|
+
// traverse down branch from end to start and record sequence
|
|
26
|
+
while (true) {
|
|
27
|
+
seq.push(currentFrame.frameID);
|
|
28
|
+
// if end is found
|
|
29
|
+
if (this.getParent(currentFrame.ID()) == end) {
|
|
30
|
+
seq.push(end);
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
// Reached root node (frame without parent)
|
|
34
|
+
if (this.getParent(currentFrame.ID()) == "") {
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
currentFrame = this.getFrame(this.getParent(currentFrame.ID()));
|
|
38
|
+
}
|
|
39
|
+
return seq;
|
|
40
|
+
}
|
|
41
|
+
// getCommonFrameID returns the common frame ID between the specified frames
|
|
42
|
+
getCommonFrameID(frame1ID, frame2ID) {
|
|
43
|
+
var frame1 = this.getFrame(frame1ID);
|
|
44
|
+
var frame2 = this.getFrame(frame2ID);
|
|
45
|
+
var frame1Seq = this.getSeqDown(frame1.frameID, "R");
|
|
46
|
+
var frame2Seq = this.getSeqDown(frame2.frameID, "R");
|
|
47
|
+
// Return first common element (if any) --> O(n^2)
|
|
48
|
+
for (var i = 0; i < frame1Seq.length; i++) {
|
|
49
|
+
for (var j = 0; j < frame2Seq.length; j++) {
|
|
50
|
+
if (frame1Seq[i] == frame2Seq[j]) {
|
|
51
|
+
return frame1Seq[i];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw "No common node between specified frames";
|
|
56
|
+
}
|
|
57
|
+
// Parent returns the parent ID of the specified frame
|
|
58
|
+
getParent(searchID) {
|
|
59
|
+
let parents = this.parents.get(searchID);
|
|
60
|
+
if (parents == null) {
|
|
61
|
+
throw "Frame does not exist with given ID, cannot retrieve children";
|
|
62
|
+
}
|
|
63
|
+
return parents;
|
|
64
|
+
}
|
|
65
|
+
// getChildren returns the children of the specified frame
|
|
66
|
+
getChildren(searchID) {
|
|
67
|
+
let children = this.children.get(searchID);
|
|
68
|
+
if (children == null) {
|
|
69
|
+
throw "Frame does not exist with given ID, cannot retrieve children";
|
|
70
|
+
}
|
|
71
|
+
return children;
|
|
72
|
+
}
|
|
73
|
+
// isChild determines if originalFrameID is a child of resultFrameID
|
|
74
|
+
isChild(originalFrameID, resultFrameID) {
|
|
75
|
+
return this.getChildren(resultFrameID).includes(originalFrameID);
|
|
76
|
+
}
|
|
77
|
+
// isParent determines if originalFrameID is the parent of resultFrameID
|
|
78
|
+
isParent(originalFrameID, resultFrameID) {
|
|
79
|
+
return this.getParent(resultFrameID) == originalFrameID;
|
|
80
|
+
}
|
|
81
|
+
isAncestor(originalFrameID, resultFrameID) {
|
|
82
|
+
return this.getSeqDown(resultFrameID, originalFrameID).includes(originalFrameID);
|
|
83
|
+
}
|
|
84
|
+
isDescendant(originalFrameID, resultFrameID) {
|
|
85
|
+
return this.getSeqDown(originalFrameID, resultFrameID).includes(resultFrameID);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.LocalTransformTree = LocalTransformTree;
|
package/utils/misc.d.ts
ADDED
package/utils/misc.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Seq = exports.FrameID = void 0;
|
|
4
|
+
class FrameID extends String {
|
|
5
|
+
}
|
|
6
|
+
exports.FrameID = FrameID;
|
|
7
|
+
// Seq type for EulerAngles
|
|
8
|
+
var Seq;
|
|
9
|
+
(function (Seq) {
|
|
10
|
+
Seq[Seq["XZX"] = 0] = "XZX";
|
|
11
|
+
Seq[Seq["XYX"] = 1] = "XYX";
|
|
12
|
+
Seq[Seq["YXY"] = 2] = "YXY";
|
|
13
|
+
Seq[Seq["YZY"] = 3] = "YZY";
|
|
14
|
+
Seq[Seq["ZYZ"] = 4] = "ZYZ";
|
|
15
|
+
Seq[Seq["ZXZ"] = 5] = "ZXZ";
|
|
16
|
+
Seq[Seq["XZY"] = 6] = "XZY";
|
|
17
|
+
Seq[Seq["XYZ"] = 7] = "XYZ";
|
|
18
|
+
Seq[Seq["YXZ"] = 8] = "YXZ";
|
|
19
|
+
Seq[Seq["YZX"] = 9] = "YZX";
|
|
20
|
+
Seq[Seq["ZYX"] = 10] = "ZYX";
|
|
21
|
+
Seq[Seq["ZXY"] = 11] = "ZXY";
|
|
22
|
+
Seq[Seq["NUM"] = 12] = "NUM";
|
|
23
|
+
})(Seq = exports.Seq || (exports.Seq = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FrameID } from './misc';
|
|
2
|
+
import { LocalTransformTree } from './localtransformtree';
|
|
3
|
+
export declare class PositionVector {
|
|
4
|
+
elements: number[][];
|
|
5
|
+
constructor(elements: number[][]);
|
|
6
|
+
X(): number;
|
|
7
|
+
Y(): number;
|
|
8
|
+
Z(): number;
|
|
9
|
+
magnitude(): number;
|
|
10
|
+
unitVector(): PositionVector;
|
|
11
|
+
Multiply(mB: PositionVector): PositionVector;
|
|
12
|
+
ToFrame(tree: LocalTransformTree, thisID: FrameID, thatID: FrameID): PositionVector;
|
|
13
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PositionVector = void 0;
|
|
4
|
+
// PositionVector is a 3X1 matrix that contains a vector
|
|
5
|
+
class PositionVector {
|
|
6
|
+
constructor(elements) {
|
|
7
|
+
this.elements = elements;
|
|
8
|
+
}
|
|
9
|
+
X() { return this.elements[0][0]; }
|
|
10
|
+
Y() { return this.elements[1][0]; }
|
|
11
|
+
Z() { return this.elements[2][0]; }
|
|
12
|
+
// magnitude returns the magnitude of the vector
|
|
13
|
+
magnitude() {
|
|
14
|
+
var vec = this.elements;
|
|
15
|
+
var sum = 0;
|
|
16
|
+
for (var i = 0; i < vec.length; i++) {
|
|
17
|
+
sum += vec[i][0] ** 2;
|
|
18
|
+
}
|
|
19
|
+
return sum ** 0.5;
|
|
20
|
+
}
|
|
21
|
+
// unitVector returns the unit vector of the vector
|
|
22
|
+
unitVector() {
|
|
23
|
+
var mag = this.magnitude();
|
|
24
|
+
var e = this.elements;
|
|
25
|
+
return new PositionVector([[e[0][0] / mag], [e[1][0] / mag], [e[2][0] / mag]]);
|
|
26
|
+
}
|
|
27
|
+
// Multiply multipies with a given matrix
|
|
28
|
+
Multiply(mB) {
|
|
29
|
+
var matrixA = this.elements;
|
|
30
|
+
if (mB instanceof PositionVector) {
|
|
31
|
+
var e = mB.elements;
|
|
32
|
+
var matrixB = [[e[0][0]], [e[1][0]], [e[2][0]], [1]];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw "Error occurred";
|
|
36
|
+
}
|
|
37
|
+
var aNumRows = matrixA.length, aNumCols = matrixA[0].length, bNumCols = matrixB[0].length, m = new Array(aNumRows);
|
|
38
|
+
for (var r = 0; r < aNumRows; ++r) {
|
|
39
|
+
m[r] = new Array(bNumCols);
|
|
40
|
+
for (var c = 0; c < bNumCols; ++c) {
|
|
41
|
+
m[r][c] = 0;
|
|
42
|
+
for (var i = 0; i < aNumCols; ++i) {
|
|
43
|
+
m[r][c] += matrixA[r][i] * matrixB[i][c];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
var rows = m.length;
|
|
48
|
+
var cols = m[0].length;
|
|
49
|
+
if (rows == 3 && cols == 1) {
|
|
50
|
+
return new PositionVector([[m[0][0]], [m[1][0]], [m[2][0]]]);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw "Error occurred";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// ToFrame converts the position vector to the specified frame
|
|
57
|
+
ToFrame(tree, thisID, thatID) {
|
|
58
|
+
var frame1 = tree.getFrame(thisID);
|
|
59
|
+
var frame2 = tree.getFrame(thatID);
|
|
60
|
+
// Return vector if already in terms of frame
|
|
61
|
+
if (frame1.ID() == frame2.ID()) {
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
// find transformation matrix
|
|
65
|
+
var totalTransformationMatrix = frame1.ToFrame(tree, frame2.ID());
|
|
66
|
+
var e = this.elements;
|
|
67
|
+
// Find new position vector relative to frame 2
|
|
68
|
+
var newPosVec = totalTransformationMatrix.Multiply(new PositionVector([[e[0][0]], [e[1][0]], [e[2][0]]]));
|
|
69
|
+
// console.log("newPosVec")
|
|
70
|
+
// console.log(newPosVec)
|
|
71
|
+
if (newPosVec instanceof PositionVector) {
|
|
72
|
+
return new PositionVector([[newPosVec.elements[0][0]], [newPosVec.elements[1][0]], [newPosVec.elements[2][0]]]);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
throw "Error occured";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.PositionVector = PositionVector;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FrameID } from './misc';
|
|
2
|
+
import { LocalTransformTree } from './localtransformtree';
|
|
3
|
+
import { RotationMatrix } from './rotationmatrix';
|
|
4
|
+
import { EulerAngles } from './eulerangles';
|
|
5
|
+
export declare class Quaternion {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
w: number;
|
|
10
|
+
constructor(x: number, y: number, z: number, w: number);
|
|
11
|
+
X(): number;
|
|
12
|
+
Y(): number;
|
|
13
|
+
Z(): number;
|
|
14
|
+
W(): number;
|
|
15
|
+
ToRotm(): RotationMatrix;
|
|
16
|
+
ToEul(): EulerAngles;
|
|
17
|
+
ToQuat(): Quaternion;
|
|
18
|
+
ToAxAng(): import("./axisangle").AxisAngle;
|
|
19
|
+
ToFrame(tree: LocalTransformTree, thisID: FrameID, thatID: FrameID): Quaternion;
|
|
20
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Quaternion = void 0;
|
|
4
|
+
const misc_1 = require("./misc");
|
|
5
|
+
const helperfunctions_1 = require("./helperfunctions");
|
|
6
|
+
const rotationmatrix_1 = require("./rotationmatrix");
|
|
7
|
+
const eulerangles_1 = require("./eulerangles");
|
|
8
|
+
const mathjs_1 = require("mathjs");
|
|
9
|
+
// Quaternion contains the quaternion representation
|
|
10
|
+
class Quaternion {
|
|
11
|
+
constructor(x, y, z, w) {
|
|
12
|
+
this.x = x;
|
|
13
|
+
this.y = y;
|
|
14
|
+
this.z = z;
|
|
15
|
+
this.w = w;
|
|
16
|
+
}
|
|
17
|
+
X() { return this.x; }
|
|
18
|
+
Y() { return this.y; }
|
|
19
|
+
Z() { return this.z; }
|
|
20
|
+
W() { return this.w; }
|
|
21
|
+
// ToRotm returns the RotationMatrix representation of the rotation
|
|
22
|
+
ToRotm() {
|
|
23
|
+
return new rotationmatrix_1.RotationMatrix([[1 - 2 * this.y ** 2 - 2 * this.z ** 2, 2 * this.x * this.y - 2 * this.z * this.w, 2 * this.x * this.z + 2 * this.y * this.w],
|
|
24
|
+
[2 * this.x * this.y + 2 * this.z * this.w, 1 - 2 * this.x ** 2 - 2 * this.z ** 2, 2 * this.y * this.z - 2 * this.x * this.w],
|
|
25
|
+
[2 * this.x * this.z - 2 * this.y * this.w, 2 * this.y * this.z + 2 * this.x * this.w, 1 - 2 * this.x ** 2 - 2 * this.y ** 2]]);
|
|
26
|
+
}
|
|
27
|
+
// ToEul returns the EulerAngles representation of the rotation
|
|
28
|
+
ToEul() {
|
|
29
|
+
var angles = new eulerangles_1.EulerAngles(0, 0, 0, misc_1.Seq.ZYX);
|
|
30
|
+
// roll (x-axis rotation)
|
|
31
|
+
var sinr_cosp = 2 * (this.w * this.x + this.y * this.z);
|
|
32
|
+
var cosr_cosp = 1 - 2 * (this.x * this.x + this.y * this.y);
|
|
33
|
+
angles.gamma = mathjs_1.atan2(sinr_cosp, cosr_cosp);
|
|
34
|
+
// pitch (y-axis rotation)
|
|
35
|
+
var sinp = 2 * (this.w * this.y - this.z * this.x);
|
|
36
|
+
if (mathjs_1.abs(sinp) >= 1)
|
|
37
|
+
angles.beta = helperfunctions_1.copysign(mathjs_1.pi / 2, sinp); // use 90 degrees if out of range
|
|
38
|
+
else
|
|
39
|
+
angles.beta = mathjs_1.asin(sinp);
|
|
40
|
+
// yaw (z-axis rotation)
|
|
41
|
+
var siny_cosp = 2 * (this.w * this.z + this.x * this.y);
|
|
42
|
+
var cosy_cosp = 1 - 2 * (this.y * this.y + this.z * this.z);
|
|
43
|
+
angles.alpha = mathjs_1.atan2(siny_cosp, cosy_cosp);
|
|
44
|
+
return angles;
|
|
45
|
+
}
|
|
46
|
+
// ToQuat returns the Quaternion representation of the rotation
|
|
47
|
+
ToQuat() {
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
// ToAxAng returns the AxisAngle representation of the rotation
|
|
51
|
+
ToAxAng() {
|
|
52
|
+
var rotm = this.ToRotm();
|
|
53
|
+
return rotm.ToAxAng();
|
|
54
|
+
}
|
|
55
|
+
// ToFrame returns the quaternion relative to the new specified frame
|
|
56
|
+
ToFrame(tree, thisID, thatID) {
|
|
57
|
+
var rotm = this.ToRotm();
|
|
58
|
+
var newRotm = rotm.ToFrame(tree, thisID, thatID);
|
|
59
|
+
return newRotm.ToQuat();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.Quaternion = Quaternion;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FrameID } from './misc';
|
|
2
|
+
import { LocalTransformTree } from './localtransformtree';
|
|
3
|
+
import { PositionVector } from './positionvector';
|
|
4
|
+
import { Vector3 } from './vector3';
|
|
5
|
+
import { EulerAngles } from './eulerangles';
|
|
6
|
+
import { Quaternion } from './quaternion';
|
|
7
|
+
import { AxisAngle } from './axisangle';
|
|
8
|
+
export declare class RotationMatrix {
|
|
9
|
+
elements: number[][];
|
|
10
|
+
constructor(elements: number[][]);
|
|
11
|
+
Col1(): Vector3;
|
|
12
|
+
Col2(): Vector3;
|
|
13
|
+
Col3(): Vector3;
|
|
14
|
+
Row1(): Vector3;
|
|
15
|
+
Row2(): Vector3;
|
|
16
|
+
Row3(): Vector3;
|
|
17
|
+
Multiply(mB: RotationMatrix | PositionVector): RotationMatrix | PositionVector;
|
|
18
|
+
ToRotm(): RotationMatrix;
|
|
19
|
+
ToEul(): EulerAngles;
|
|
20
|
+
ToQuat(): Quaternion;
|
|
21
|
+
ToAxAng(): AxisAngle;
|
|
22
|
+
ToFrame(tree: LocalTransformTree, thisID: FrameID, thatID: FrameID): RotationMatrix;
|
|
23
|
+
}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RotationMatrix = void 0;
|
|
4
|
+
const misc_1 = require("./misc");
|
|
5
|
+
const positionvector_1 = require("./positionvector");
|
|
6
|
+
const vector3_1 = require("./vector3");
|
|
7
|
+
const eulerangles_1 = require("./eulerangles");
|
|
8
|
+
const quaternion_1 = require("./quaternion");
|
|
9
|
+
const axisangle_1 = require("./axisangle");
|
|
10
|
+
const mathjs_1 = require("mathjs");
|
|
11
|
+
// RotationMatrix is 3x3 matrix representing rotation
|
|
12
|
+
class RotationMatrix {
|
|
13
|
+
constructor(elements) {
|
|
14
|
+
this.elements = elements;
|
|
15
|
+
}
|
|
16
|
+
// Col1 returns the first column of the rotation matrix
|
|
17
|
+
Col1() {
|
|
18
|
+
let e = this.elements;
|
|
19
|
+
return new vector3_1.Vector3([[e[0][0]], [e[1][0]], [e[2][0]]]);
|
|
20
|
+
}
|
|
21
|
+
// Col2 returns the second column of the rotation matrix
|
|
22
|
+
Col2() {
|
|
23
|
+
let e = this.elements;
|
|
24
|
+
return new vector3_1.Vector3([[e[0][1]], [e[1][1]], [e[2][1]]]);
|
|
25
|
+
}
|
|
26
|
+
// Col3 returns the third column of the rotation matrix
|
|
27
|
+
Col3() {
|
|
28
|
+
let e = this.elements;
|
|
29
|
+
return new vector3_1.Vector3([[e[0][2]], [e[1][2]], [e[2][2]]]);
|
|
30
|
+
}
|
|
31
|
+
// Row1 returns the first row of the rotation matrix
|
|
32
|
+
Row1() {
|
|
33
|
+
let e = this.elements;
|
|
34
|
+
return new vector3_1.Vector3([[e[0][0]], [e[0][1]], [e[0][2]]]);
|
|
35
|
+
}
|
|
36
|
+
// Row2 returns the second row of the rotation matrix
|
|
37
|
+
Row2() {
|
|
38
|
+
let e = this.elements;
|
|
39
|
+
return new vector3_1.Vector3([[e[1][0]], [e[1][1]], [e[2][2]]]);
|
|
40
|
+
}
|
|
41
|
+
// Row3 returns the third row of the rotation matrix
|
|
42
|
+
Row3() {
|
|
43
|
+
let e = this.elements;
|
|
44
|
+
return new vector3_1.Vector3([[e[2][0]], [e[2][1]], [e[2][2]]]);
|
|
45
|
+
}
|
|
46
|
+
// Multiply multiplies the rotation matrix with given matrix
|
|
47
|
+
Multiply(mB) {
|
|
48
|
+
var matrixA = this.elements;
|
|
49
|
+
var matrixB = mB.elements;
|
|
50
|
+
// Multiply the two matrices
|
|
51
|
+
var aNumRows = matrixA.length, aNumCols = matrixA[0].length, bNumCols = matrixB[0].length, m = new Array(aNumRows);
|
|
52
|
+
for (var r = 0; r < aNumRows; ++r) {
|
|
53
|
+
m[r] = new Array(bNumCols);
|
|
54
|
+
for (var c = 0; c < bNumCols; ++c) {
|
|
55
|
+
m[r][c] = 0;
|
|
56
|
+
for (var i = 0; i < aNumCols; ++i) {
|
|
57
|
+
m[r][c] += matrixA[r][i] * matrixB[i][c];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
var rows = m.length;
|
|
62
|
+
var cols = m[0].length;
|
|
63
|
+
if (rows == 3 && cols == 3) {
|
|
64
|
+
var result = [
|
|
65
|
+
[m[0][0], m[0][1], m[0][2]],
|
|
66
|
+
[m[1][0], m[1][1], m[1][2]],
|
|
67
|
+
[m[2][0], m[2][1], m[2][2]]
|
|
68
|
+
];
|
|
69
|
+
return new RotationMatrix(result);
|
|
70
|
+
}
|
|
71
|
+
else if (rows == 3 && cols == 1) {
|
|
72
|
+
return new positionvector_1.PositionVector([[m[0][0]], [m[1][0]], [m[2][0]]]);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
throw "Error occurred";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// ToRotm returns the RotationMatrix representation of the rotation
|
|
79
|
+
ToRotm() {
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
// ToEul returns the EulerAngles representation of the rotation
|
|
83
|
+
ToEul() {
|
|
84
|
+
var rotm = this.elements;
|
|
85
|
+
var m00 = rotm[0][0];
|
|
86
|
+
var m10 = rotm[1][0];
|
|
87
|
+
var m20 = rotm[2][0];
|
|
88
|
+
var m01 = rotm[0][1];
|
|
89
|
+
//var m11 = rotm[1][1]
|
|
90
|
+
var m21 = rotm[2][1];
|
|
91
|
+
var m02 = rotm[0][2];
|
|
92
|
+
//var m12 = rotm[1][2]
|
|
93
|
+
var m22 = rotm[2][2];
|
|
94
|
+
// https://www.gregslabaugh.net/publications/euler.pdf
|
|
95
|
+
// X: PSI Y: THETA Z: PHI
|
|
96
|
+
// A B G
|
|
97
|
+
// Uncomment second variables to get second solution
|
|
98
|
+
if (m20 != 1 && m20 != -1) {
|
|
99
|
+
var theta1 = -mathjs_1.asin(m20);
|
|
100
|
+
//var theta2 = pi - theta1
|
|
101
|
+
var psi1 = mathjs_1.atan2(m21 / mathjs_1.cos(theta1), (m22 / mathjs_1.cos(theta1)));
|
|
102
|
+
//var psi2 = atan2(m12/cos(theta2), (m22/cos(theta2)))
|
|
103
|
+
var phi1 = mathjs_1.atan2(m10 / mathjs_1.cos(theta1), (m00 / mathjs_1.cos(theta1)));
|
|
104
|
+
//var phi2 = atan2(m01/cos(theta2), (m00/cos(theta2)))
|
|
105
|
+
// two possible solutions
|
|
106
|
+
var e1 = new eulerangles_1.EulerAngles(phi1, theta1, psi1, misc_1.Seq.ZYX); // convention ZYX
|
|
107
|
+
// var e2 = new EulerAngles(phi2, theta2, psi2, "ZYX")
|
|
108
|
+
return e1;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
var phi = 0; // anything
|
|
112
|
+
if (m02 == -1) {
|
|
113
|
+
var theta = mathjs_1.pi / 2;
|
|
114
|
+
var psi = phi + mathjs_1.atan2(m01, m02);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
var theta = -mathjs_1.pi / 2;
|
|
118
|
+
var psi = phi + mathjs_1.atan2(-m01, -20);
|
|
119
|
+
}
|
|
120
|
+
return new eulerangles_1.EulerAngles(phi, theta, psi, misc_1.Seq.ZYX);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ToQuat returns the Quaternion representation of the rotation
|
|
124
|
+
ToQuat() {
|
|
125
|
+
var rotm = this.elements;
|
|
126
|
+
var m00 = rotm[0][0];
|
|
127
|
+
var m10 = rotm[1][0];
|
|
128
|
+
var m20 = rotm[2][0];
|
|
129
|
+
var m01 = rotm[0][1];
|
|
130
|
+
var m11 = rotm[1][1];
|
|
131
|
+
var m21 = rotm[2][1];
|
|
132
|
+
var m02 = rotm[0][2];
|
|
133
|
+
var m12 = rotm[1][2];
|
|
134
|
+
var m22 = rotm[2][2];
|
|
135
|
+
var t;
|
|
136
|
+
var quat;
|
|
137
|
+
if (m22 < 0) {
|
|
138
|
+
if (m00 > m11) {
|
|
139
|
+
t = 1 + m00 - m11 - m22;
|
|
140
|
+
quat = [t, m10 + m01, m02 + m20, m21 - m12];
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
t = 1 - m00 + m11 - m22;
|
|
144
|
+
quat = [m10 + m01, t, m21 + m12, m02 - m20];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
if (m00 < -m11) {
|
|
149
|
+
t = 1 - m00 - m11 + m22;
|
|
150
|
+
quat = [m02 + m20, m21 + m12, t, m10 - m01];
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
t = 1 + m00 + m11 + m22;
|
|
154
|
+
quat = [m21 - m12, m02 - m20, m10 - m01, t];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
var x = quat[0];
|
|
158
|
+
var y = quat[1];
|
|
159
|
+
var z = quat[2];
|
|
160
|
+
var w = quat[3];
|
|
161
|
+
x *= 0.5 / Math.sqrt(t);
|
|
162
|
+
y *= 0.5 / Math.sqrt(t);
|
|
163
|
+
z *= 0.5 / Math.sqrt(t);
|
|
164
|
+
w *= 0.5 / Math.sqrt(t);
|
|
165
|
+
var result = new quaternion_1.Quaternion(x, y, z, w);
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
// ToAxAng returns the AxisAngle representation of the rotation
|
|
169
|
+
ToAxAng() {
|
|
170
|
+
var m = this.elements;
|
|
171
|
+
// Credit: https://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm
|
|
172
|
+
var angle, x, y, z; // variables for result
|
|
173
|
+
var epsilon = 0.01; // margin to allow for rounding errors
|
|
174
|
+
var epsilon2 = 0.1; // margin to distinguish between 0 and 180 degrees
|
|
175
|
+
if ((Math.abs(m[0][1] - m[1][0]) < epsilon)
|
|
176
|
+
&& (Math.abs(m[0][2] - m[2][0]) < epsilon)
|
|
177
|
+
&& (Math.abs(m[1][2] - m[2][1]) < epsilon)) {
|
|
178
|
+
// singularity found
|
|
179
|
+
// first check for identity matrix which must have +1 for all terms
|
|
180
|
+
// in leading diagonaland zero in other terms
|
|
181
|
+
if ((Math.abs(m[0][1] + m[1][0]) < epsilon2)
|
|
182
|
+
&& (Math.abs(m[0][2] + m[2][0]) < epsilon2)
|
|
183
|
+
&& (Math.abs(m[1][2] + m[2][1]) < epsilon2)
|
|
184
|
+
&& (Math.abs(m[0][0] + m[1][1] + m[2][2] - 3) < epsilon2)) {
|
|
185
|
+
// this singularity is identity matrix so angle = 0
|
|
186
|
+
return new axisangle_1.AxisAngle(new positionvector_1.PositionVector([[1], [0], [0]]), 0); // zero angle, arbitrary axis
|
|
187
|
+
}
|
|
188
|
+
// otherwise this singularity is angle = 180
|
|
189
|
+
angle = mathjs_1.pi;
|
|
190
|
+
var xx = (m[0][0] + 1) / 2;
|
|
191
|
+
var yy = (m[1][1] + 1) / 2;
|
|
192
|
+
var zz = (m[2][2] + 1) / 2;
|
|
193
|
+
var xy = (m[0][1] + m[1][0]) / 4;
|
|
194
|
+
var xz = (m[0][2] + m[2][0]) / 4;
|
|
195
|
+
var yz = (m[1][2] + m[2][1]) / 4;
|
|
196
|
+
if ((xx > yy) && (xx > zz)) { // m[0][0] is the largest diagonal term
|
|
197
|
+
if (xx < epsilon) {
|
|
198
|
+
x = 0;
|
|
199
|
+
y = 0.70710678118;
|
|
200
|
+
z = 0.70710678118;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
x = xx ** 0.5;
|
|
204
|
+
y = xy / x;
|
|
205
|
+
z = xz / x;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
else if (yy > zz) { // m[1][1] is the largest diagonal term
|
|
209
|
+
if (yy < epsilon) {
|
|
210
|
+
x = 0.70710678118;
|
|
211
|
+
y = 0;
|
|
212
|
+
z = 0.70710678118;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
y = yy ** 0.5;
|
|
216
|
+
x = xy / y;
|
|
217
|
+
z = yz / y;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
else { // m[2][2] is the largest diagonal term so base result on this
|
|
221
|
+
if (zz < epsilon) {
|
|
222
|
+
x = 0.70710678118;
|
|
223
|
+
y = 0.70710678118;
|
|
224
|
+
z = 0;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
z = zz ** 0.5;
|
|
228
|
+
x = xz / z;
|
|
229
|
+
y = yz / z;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return new axisangle_1.AxisAngle(new positionvector_1.PositionVector([[x], [y], [z]]), angle); // return 180 deg rotation
|
|
233
|
+
}
|
|
234
|
+
// as we have reached here there are no singularities so we can handle normally
|
|
235
|
+
var s = ((m[2][1] - m[1][2]) * (m[2][1] - m[1][2])
|
|
236
|
+
+ (m[0][2] - m[2][0]) * (m[0][2] - m[2][0])
|
|
237
|
+
+ (m[1][0] - m[0][1]) * (m[1][0] - m[0][1])) ** 0.5; // used to normalise
|
|
238
|
+
if (mathjs_1.abs(s) < 0.001)
|
|
239
|
+
s = 1;
|
|
240
|
+
// prevent divide by zero, should not happen if matrix is orthogonal and should be
|
|
241
|
+
// caught by singularity test above, but I've left it in just in case
|
|
242
|
+
angle = mathjs_1.acos((m[0][0] + m[1][1] + m[2][2] - 1) / 2);
|
|
243
|
+
x = (m[2][1] - m[1][2]) / s;
|
|
244
|
+
y = (m[0][2] - m[2][0]) / s;
|
|
245
|
+
z = (m[1][0] - m[0][1]) / s;
|
|
246
|
+
return new axisangle_1.AxisAngle(new positionvector_1.PositionVector([[x], [y], [z]]), angle); // return 180 deg rotation
|
|
247
|
+
}
|
|
248
|
+
// ToFrame returns the rotation relative to the new specified frame
|
|
249
|
+
ToFrame(tree, thisID, thatID) {
|
|
250
|
+
var frame1 = tree.getFrame(thisID);
|
|
251
|
+
var frame2 = tree.getFrame(thatID);
|
|
252
|
+
var transformationMatrix = frame1.ToFrame(tree, frame2.ID());
|
|
253
|
+
var e = transformationMatrix.getRotation().Multiply(this);
|
|
254
|
+
if (e instanceof RotationMatrix) {
|
|
255
|
+
return new RotationMatrix(e.elements);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
throw "Error occurred";
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
exports.RotationMatrix = RotationMatrix;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FrameID } from './misc';
|
|
2
|
+
import { LocalTransformTree } from './localtransformtree';
|
|
3
|
+
import { PositionVector } from './positionvector';
|
|
4
|
+
import { RotationMatrix } from './rotationmatrix';
|
|
5
|
+
export declare class TransformationMatrix {
|
|
6
|
+
elements: number[][];
|
|
7
|
+
constructor(elements: number[][]);
|
|
8
|
+
getRotation(): RotationMatrix;
|
|
9
|
+
getPosition(): PositionVector;
|
|
10
|
+
Multiply(mB: TransformationMatrix | RotationMatrix | PositionVector): TransformationMatrix | RotationMatrix | PositionVector;
|
|
11
|
+
ToFrame(tree: LocalTransformTree, originalFrameID: FrameID, resultFrameID: FrameID): TransformationMatrix;
|
|
12
|
+
}
|