diff --git a/opengeodeweb_viewer_schemas.json b/opengeodeweb_viewer_schemas.json index d8cd64a5..4ed9ba3b 100644 --- a/opengeodeweb_viewer_schemas.json +++ b/opengeodeweb_viewer_schemas.json @@ -2625,6 +2625,48 @@ ], "additionalProperties": false }, + "slice": { + "$id": "opengeodeweb_viewer.viewer.slice", + "rpc": "slice", + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string", + "minLength": 32, + "maxLength": 32 + } + }, + "slices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "axis": { + "type": "integer", + "minimum": 0, + "maximum": 2 + }, + "index": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "axis", + "index" + ], + "additionalProperties": false + } + } + }, + "required": [ + "ids", + "slices" + ], + "additionalProperties": false + }, "shrink": { "$id": "opengeodeweb_viewer.viewer.shrink", "rpc": "shrink", diff --git a/opengeodeweb_viewer_typed_schemas.d.ts b/opengeodeweb_viewer_typed_schemas.d.ts new file mode 100644 index 00000000..ddb577f1 --- /dev/null +++ b/opengeodeweb_viewer_typed_schemas.d.ts @@ -0,0 +1,953 @@ +// Generated by opengeodeweb-microservice-generate, do not edit. +import type json from "./opengeodeweb_viewer_schemas.json"; + +export interface GenericRegisterParams { + id: string; + name: string; +} + +export interface GenericDeregisterParams { + id: string; +} + +export interface MeshCellsAttributeCellAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshCellsAttributeCellAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshCellsAttributeCellAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshCellsAttributeVertexAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshCellsAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshCellsAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshCellsVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshCellsColorParams { + color: MeshCellsColorParamsColor; + id: string; +} + +export interface MeshCellsColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshEdgesAttributeEdgeAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshEdgesAttributeEdgeAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshEdgesAttributeEdgeAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshEdgesAttributeVertexAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshEdgesAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshEdgesAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshEdgesWidthParams { + id: string; + width: number; +} + +export interface MeshEdgesVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshEdgesColorParams { + color: MeshEdgesColorParamsColor; + id: string; +} + +export interface MeshEdgesColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPointsAttributeVertexAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshPointsAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshPointsAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPointsVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshPointsSizeParams { + id: string; + size: number; +} + +export interface MeshPointsColorParams { + color: MeshPointsColorParamsColor; + id: string; +} + +export interface MeshPointsColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolygonsAttributePolygonAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshPolygonsAttributePolygonAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshPolygonsAttributePolygonAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolygonsAttributeVertexAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshPolygonsAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshPolygonsAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolygonsVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshPolygonsColorParams { + color: MeshPolygonsColorParamsColor; + id: string; +} + +export interface MeshPolygonsColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolyhedraAttributePolyhedronAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshPolyhedraAttributePolyhedronAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshPolyhedraAttributePolyhedronAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolyhedraAttributeVertexAttributeParams { + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: MeshPolyhedraAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface MeshPolyhedraAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshPolyhedraVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshPolyhedraColorParams { + color: MeshPolyhedraColorParamsColor; + id: string; +} + +export interface MeshPolyhedraColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshVisibilityParams { + id: string; + visibility: boolean; +} + +export interface MeshRegisterParams { + id: string; + name: string; +} + +export interface MeshHighlightParams { + id: string; + visibility: boolean; +} + +export interface MeshDeregisterParams { + id: string; +} + +export interface MeshColorParams { + color: MeshColorParamsColor; + id: string; +} + +export interface MeshColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface MeshApplyTexturesParams { + id: string; + textures: MeshApplyTexturesParamsTexture[]; +} + +export interface MeshApplyTexturesParamsTexture { + id: string; + texture_name: string; +} + +export interface ModelBlocksAttributePolyhedronAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelBlocksAttributePolyhedronAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelBlocksAttributePolyhedronAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelBlocksAttributeVertexAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelBlocksAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelBlocksAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelBlocksVisibilityParams { + block_ids: number[]; + id: string; + visibility: boolean; +} + +export interface ModelBlocksColorParams { + block_ids: number[]; + collection_id?: string; + color?: ModelBlocksColorParamsColor; + color_mode: ColorMode; + id: string; +} + +export interface ModelBlocksColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export enum ColorMode { + Constant = "constant", + Random = "random", +} + +export interface ModelCornersAttributeVertexAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelCornersAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelCornersAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelCornersVisibilityParams { + block_ids: number[]; + id: string; + visibility: boolean; +} + +export interface ModelCornersColorParams { + block_ids: number[]; + collection_id?: string; + color?: ModelCornersColorParamsColor; + color_mode: ColorMode; + id: string; +} + +export interface ModelCornersColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelEdgesVisibilityParams { + id: string; + visibility: boolean; +} + +export interface ModelLinesAttributeEdgeAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelLinesAttributeEdgeAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelLinesAttributeEdgeAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelLinesAttributeVertexAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelLinesAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelLinesAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelLinesVisibilityParams { + block_ids: number[]; + id: string; + visibility: boolean; +} + +export interface ModelLinesColorParams { + block_ids: number[]; + collection_id?: string; + color?: ModelLinesColorParamsColor; + color_mode: ColorMode; + id: string; +} + +export interface ModelLinesColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelPointsVisibilityParams { + id: string; + visibility: boolean; +} + +export interface ModelPointsSizeParams { + id: string; + size: number; +} + +export interface ModelVisibilityParams { + id: string; + visibility: boolean; +} + +export interface ModelRegisterParams { + id: string; + name: string; +} + +export interface ModelHighlightParams { + block_ids: number[]; + id: string; + visibility: boolean; +} + +export interface ModelGetBlocksBoundsParams { + block_ids: number[]; + id: string; +} + +export interface ModelDeregisterParams { + id: string; +} + +export interface ModelSurfacesAttributePolygonAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelSurfacesAttributePolygonAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelSurfacesAttributePolygonAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelSurfacesAttributeVertexAttributeParams { + block_ids: number[]; + id: string; + item: number; + maximum: number; + minimum: number; + name: string; + no_data_color?: ModelSurfacesAttributeVertexAttributeParamsNoDataColor; + /** + * Flat array of [value, r, g, b, ...] + */ + points: number[]; +} + +export interface ModelSurfacesAttributeVertexAttributeParamsNoDataColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelSurfacesVisibilityParams { + block_ids: number[]; + id: string; + visibility: boolean; +} + +export interface ModelSurfacesColorParams { + block_ids: number[]; + collection_id?: string; + color?: ModelSurfacesColorParamsColor; + color_mode: ColorMode; + id: string; +} + +export interface ModelSurfacesColorParamsColor { + alpha: number; + blue: number; + green: number; + red: number; +} + +export interface ModelSurfacesApplyTexturesParams { + id: string; + textures: ModelSurfacesApplyTexturesParamsTexture[]; +} + +export interface ModelSurfacesApplyTexturesParamsTexture { + texture_file_name: string; + texture_name: string; +} + +export interface KillParams { +} + +export interface ImportProjectParams { +} + +export interface ViewerUpdateDataParams { + id: string; +} + +export interface ViewerUpdateCameraParams { + camera_options: CameraOptions; + [property: string]: any; +} + +export interface CameraOptions { + clipping_range: number[]; + focal_point: number[]; + position: number[]; + view_angle: number; + view_up: number[]; + [property: string]: any; +} + +export interface ViewerThresholdParams { + attribute?: Attribute; + ids: string[]; +} + +export interface Attribute { + item: number; + location: Location; + maximum: number; + minimum: number; + name: string; +} + +export enum Location { + Cell = "cell", + Point = "point", +} + +export interface ViewerTakeScreenshotParams { + filename: string; + include_background: boolean; + output_extension: OutputExtension; +} + +export enum OutputExtension { + Jpg = "jpg", + PNG = "png", +} + +export interface ViewerSliceParams { + ids: string[]; + slices: Slice[]; +} + +export interface Slice { + axis: number; + index: number; +} + +export interface ViewerShrinkParams { + ids: string[]; + shrink_factor: number; +} + +export interface ViewerSetZScalingParams { + z_scale: number; +} + +export interface ViewerSetBackgroundColorParams { + color: ViewerSetBackgroundColorParamsColor; +} + +export interface ViewerSetBackgroundColorParamsColor { + b: number; + g: number; + r: number; +} + +export interface ViewerRulerParams { + points: Array; +} + +export interface ViewerResetVisualizationParams { +} + +export interface ViewerResetRulerParams { +} + +export interface ViewerResetCameraParams { +} + +export interface ViewerRenderParams { +} + +export interface ViewerPreviewPointsParams { + closed?: boolean; + points: Point[]; + style: Style; +} + +export interface Point { + x: number; + y: number; + z: number; +} + +export enum Style { + Curve = "curve", + Points = "points", + Surface = "surface", +} + +export interface ViewerPickedIDSParams { + ids: string[]; + x: number; + y: number; +} + +export interface ViewerPickColormapParams { + x: number; + y: number; + [property: string]: any; +} + +export interface ViewerHighlightParams { + field_type: FieldType; + ids: string[]; + x: number; + y: number; +} + +export enum FieldType { + Cell = "CELL", + Point = "POINT", +} + +export interface ViewerGridScaleParams { + visibility: boolean; +} + +export interface ViewerGetPointPositionParams { + x: number; + y: number; +} + +export interface ViewerClippingPlanesParams { + ids: string[]; + planes: Plane[]; +} + +export interface Plane { + normal: number[]; + origin: number[]; +} + +export interface ViewerAxesParams { + visibility: boolean; +} + +export interface ErrorResponse { + code: number; + description: string; + name: string; +} + +// `__params` and `__response` only exist at type level, to infer request/response types from a schema. +// A type alias (not an interface) keeps the implicit index signature of the JSON type it is intersected with. +export type TypedSchema = { + readonly __params?: Params; + readonly __response?: Response; +}; + +export interface Schemas { + readonly opengeodeweb_viewer: { + readonly generic: { + readonly register: (typeof json)["opengeodeweb_viewer"]["generic"]["register"] & TypedSchema; + readonly deregister: (typeof json)["opengeodeweb_viewer"]["generic"]["deregister"] & TypedSchema; + }; + readonly mesh: { + readonly cells: { + readonly attribute: { + readonly cell: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["cells"]["attribute"]["cell"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["cells"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["cells"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["cells"]["color"] & TypedSchema; + }; + readonly edges: { + readonly attribute: { + readonly edge: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["edges"]["attribute"]["edge"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["edges"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly width: (typeof json)["opengeodeweb_viewer"]["mesh"]["edges"]["width"] & TypedSchema; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["edges"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["edges"]["color"] & TypedSchema; + }; + readonly points: { + readonly attribute: { + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["points"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["points"]["visibility"] & TypedSchema; + readonly size: (typeof json)["opengeodeweb_viewer"]["mesh"]["points"]["size"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["points"]["color"] & TypedSchema; + }; + readonly polygons: { + readonly attribute: { + readonly polygon: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["polygons"]["attribute"]["polygon"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["polygons"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["polygons"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["polygons"]["color"] & TypedSchema; + }; + readonly polyhedra: { + readonly attribute: { + readonly polyhedron: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["polyhedra"]["attribute"]["polyhedron"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["mesh"]["polyhedra"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["polyhedra"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["polyhedra"]["color"] & TypedSchema; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["mesh"]["visibility"] & TypedSchema; + readonly register: (typeof json)["opengeodeweb_viewer"]["mesh"]["register"] & TypedSchema; + readonly highlight: (typeof json)["opengeodeweb_viewer"]["mesh"]["highlight"] & TypedSchema; + readonly deregister: (typeof json)["opengeodeweb_viewer"]["mesh"]["deregister"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["mesh"]["color"] & TypedSchema; + readonly apply_textures: (typeof json)["opengeodeweb_viewer"]["mesh"]["apply_textures"] & TypedSchema; + }; + readonly model: { + readonly blocks: { + readonly attribute: { + readonly polyhedron: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["blocks"]["attribute"]["polyhedron"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["blocks"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["blocks"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["model"]["blocks"]["color"] & TypedSchema; + }; + readonly corners: { + readonly attribute: { + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["corners"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["corners"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["model"]["corners"]["color"] & TypedSchema; + }; + readonly edges: { + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["edges"]["visibility"] & TypedSchema; + }; + readonly lines: { + readonly attribute: { + readonly edge: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["lines"]["attribute"]["edge"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["lines"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["lines"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["model"]["lines"]["color"] & TypedSchema; + }; + readonly points: { + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["points"]["visibility"] & TypedSchema; + readonly size: (typeof json)["opengeodeweb_viewer"]["model"]["points"]["size"] & TypedSchema; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["visibility"] & TypedSchema; + readonly register: (typeof json)["opengeodeweb_viewer"]["model"]["register"] & TypedSchema; + readonly highlight: (typeof json)["opengeodeweb_viewer"]["model"]["highlight"] & TypedSchema; + readonly get_blocks_bounds: (typeof json)["opengeodeweb_viewer"]["model"]["get_blocks_bounds"] & TypedSchema; + readonly deregister: (typeof json)["opengeodeweb_viewer"]["model"]["deregister"] & TypedSchema; + readonly surfaces: { + readonly attribute: { + readonly polygon: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["surfaces"]["attribute"]["polygon"]["attribute"] & TypedSchema; + }; + readonly vertex: { + readonly attribute: (typeof json)["opengeodeweb_viewer"]["model"]["surfaces"]["attribute"]["vertex"]["attribute"] & TypedSchema; + }; + }; + readonly visibility: (typeof json)["opengeodeweb_viewer"]["model"]["surfaces"]["visibility"] & TypedSchema; + readonly color: (typeof json)["opengeodeweb_viewer"]["model"]["surfaces"]["color"] & TypedSchema; + readonly apply_textures: (typeof json)["opengeodeweb_viewer"]["model"]["surfaces"]["apply_textures"] & TypedSchema; + }; + }; + readonly kill: (typeof json)["opengeodeweb_viewer"]["kill"] & TypedSchema; + readonly import_project: (typeof json)["opengeodeweb_viewer"]["import_project"] & TypedSchema; + readonly viewer: { + readonly update_data: (typeof json)["opengeodeweb_viewer"]["viewer"]["update_data"] & TypedSchema; + readonly update_camera: (typeof json)["opengeodeweb_viewer"]["viewer"]["update_camera"] & TypedSchema; + readonly threshold: (typeof json)["opengeodeweb_viewer"]["viewer"]["threshold"] & TypedSchema; + readonly take_screenshot: (typeof json)["opengeodeweb_viewer"]["viewer"]["take_screenshot"] & TypedSchema; + readonly slice: (typeof json)["opengeodeweb_viewer"]["viewer"]["slice"] & TypedSchema; + readonly shrink: (typeof json)["opengeodeweb_viewer"]["viewer"]["shrink"] & TypedSchema; + readonly set_z_scaling: (typeof json)["opengeodeweb_viewer"]["viewer"]["set_z_scaling"] & TypedSchema; + readonly set_background_color: (typeof json)["opengeodeweb_viewer"]["viewer"]["set_background_color"] & TypedSchema; + readonly ruler: (typeof json)["opengeodeweb_viewer"]["viewer"]["ruler"] & TypedSchema; + readonly reset_visualization: (typeof json)["opengeodeweb_viewer"]["viewer"]["reset_visualization"] & TypedSchema; + readonly reset_ruler: (typeof json)["opengeodeweb_viewer"]["viewer"]["reset_ruler"] & TypedSchema; + readonly reset_camera: (typeof json)["opengeodeweb_viewer"]["viewer"]["reset_camera"] & TypedSchema; + readonly render: (typeof json)["opengeodeweb_viewer"]["viewer"]["render"] & TypedSchema; + readonly preview_points: (typeof json)["opengeodeweb_viewer"]["viewer"]["preview_points"] & TypedSchema; + readonly picked_ids: (typeof json)["opengeodeweb_viewer"]["viewer"]["picked_ids"] & TypedSchema; + readonly pick_colormap: (typeof json)["opengeodeweb_viewer"]["viewer"]["pick_colormap"] & TypedSchema; + readonly highlight: (typeof json)["opengeodeweb_viewer"]["viewer"]["highlight"] & TypedSchema; + readonly grid_scale: (typeof json)["opengeodeweb_viewer"]["viewer"]["grid_scale"] & TypedSchema; + readonly get_point_position: (typeof json)["opengeodeweb_viewer"]["viewer"]["get_point_position"] & TypedSchema; + readonly clipping_planes: (typeof json)["opengeodeweb_viewer"]["viewer"]["clipping_planes"] & TypedSchema; + readonly axes: (typeof json)["opengeodeweb_viewer"]["viewer"]["axes"] & TypedSchema; + }; + }; +} + +declare const schemas: Schemas; +export default schemas; diff --git a/opengeodeweb_viewer_typed_schemas.js b/opengeodeweb_viewer_typed_schemas.js new file mode 100644 index 00000000..1999210e --- /dev/null +++ b/opengeodeweb_viewer_typed_schemas.js @@ -0,0 +1,4 @@ +// Generated by opengeodeweb-microservice-generate, do not edit. +import schemas from "./opengeodeweb_viewer_schemas.json" with { type: "json" }; + +export default schemas; diff --git a/requirements.txt b/requirements.txt index 0085a2fa..fce3de17 100644 --- a/requirements.txt +++ b/requirements.txt @@ -63,4 +63,3 @@ wslink==1.12.4 yarl==1.* # via aiohttp -opengeodeweb-microservice==1.*,>=1.2.2 diff --git a/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py b/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py index 8a9e662f..68c6fbd4 100644 --- a/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py +++ b/src/opengeodeweb_viewer/rpc/generic/schemas/deregister.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Deregister(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str diff --git a/src/opengeodeweb_viewer/rpc/generic/schemas/register.py b/src/opengeodeweb_viewer/rpc/generic/schemas/register.py index 82f5f07e..7d92dbe3 100644 --- a/src/opengeodeweb_viewer/rpc/generic/schemas/register.py +++ b/src/opengeodeweb_viewer/rpc/generic/schemas/register.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Register(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str name: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/cell/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/cells/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/edge/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py index eda85e61..c86dcc5c 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py +++ b/src/opengeodeweb_viewer/rpc/mesh/edges/schemas/width.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Width(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str width: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py index eb182790..c2646da3 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/size.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Size(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str size: float diff --git a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/points/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/polygon/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polygons/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/polyhedron/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.py index df212a9c..3670ed30 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str item: int diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/polyhedra/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py index cb20d075..cd57c7d1 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/apply_textures.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Texture(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str texture_name: str @@ -15,7 +16,7 @@ def __post_init__(self) -> None: @dataclass class ApplyTextures(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str textures: List[Texture] diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py index 381f9471..00974dda 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -16,7 +17,7 @@ def __post_init__(self) -> None: @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: ColorClass id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py index 8a9e662f..68c6fbd4 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/deregister.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Deregister(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py index 23706bf3..99239df6 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/highlight.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Highlight(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py index 82f5f07e..7d92dbe3 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/register.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Register(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str name: str diff --git a/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/mesh/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/blocks/attribute/polyhedron/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/blocks/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py index 637df55b..9c62ad48 100644 --- a/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/color.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from enum import Enum from typing import List, Optional @@ -7,7 +8,7 @@ @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -23,7 +24,7 @@ class ColorMode(Enum): @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] color_mode: ColorMode diff --git a/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py index 0ea3b66d..361d67d6 100644 --- a/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/blocks/schemas/visibility.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/corners/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py b/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py index 637df55b..9c62ad48 100644 --- a/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/model/corners/schemas/color.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from enum import Enum from typing import List, Optional @@ -7,7 +8,7 @@ @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -23,7 +24,7 @@ class ColorMode(Enum): @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] color_mode: ColorMode diff --git a/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py index 0ea3b66d..361d67d6 100644 --- a/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/corners/schemas/visibility.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/edges/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/lines/attribute/edge/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/lines/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py b/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py index 637df55b..9c62ad48 100644 --- a/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/model/lines/schemas/color.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from enum import Enum from typing import List, Optional @@ -7,7 +8,7 @@ @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -23,7 +24,7 @@ class ColorMode(Enum): @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] color_mode: ColorMode diff --git a/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py index 0ea3b66d..361d67d6 100644 --- a/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/lines/schemas/visibility.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py b/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py index eb182790..c2646da3 100644 --- a/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py +++ b/src/opengeodeweb_viewer/rpc/model/points/schemas/size.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Size(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str size: float diff --git a/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/points/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py b/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py index 8a9e662f..68c6fbd4 100644 --- a/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py +++ b/src/opengeodeweb_viewer/rpc/model/schemas/deregister.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Deregister(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str diff --git a/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py b/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py index d49b215f..da394394 100644 --- a/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py +++ b/src/opengeodeweb_viewer/rpc/model/schemas/get_blocks_bounds.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class GetBlocksBounds(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py b/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py index b3287deb..3f8b63cf 100644 --- a/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py +++ b/src/opengeodeweb_viewer/rpc/model/schemas/highlight.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Highlight(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/schemas/register.py b/src/opengeodeweb_viewer/rpc/model/schemas/register.py index 82f5f07e..7d92dbe3 100644 --- a/src/opengeodeweb_viewer/rpc/model/schemas/register.py +++ b/src/opengeodeweb_viewer/rpc/model/schemas/register.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Register(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str name: str diff --git a/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py index 56a629d8..a96a5f8f 100644 --- a/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/schemas/visibility.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/polygon/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.py b/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.py index 9b0b616d..ebe38f1f 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/attribute/vertex/schemas/attribute.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List, Optional @@ -6,7 +7,7 @@ @dataclass class NoDataColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -17,7 +18,7 @@ def __post_init__(self) -> None: @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py index fb2fc218..e9e23e9f 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/apply_textures.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Texture(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) texture_file_name: str texture_name: str @@ -15,7 +16,7 @@ def __post_init__(self) -> None: @dataclass class ApplyTextures(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str textures: List[Texture] diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py index 637df55b..9c62ad48 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/color.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from enum import Enum from typing import List, Optional @@ -7,7 +8,7 @@ @dataclass class ColorClass(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) alpha: float blue: int @@ -23,7 +24,7 @@ class ColorMode(Enum): @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] color_mode: ColorMode diff --git a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py index 0ea3b66d..361d67d6 100644 --- a/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py +++ b/src/opengeodeweb_viewer/rpc/model/surfaces/schemas/visibility.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Visibility(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) block_ids: List[int] id: str diff --git a/src/opengeodeweb_viewer/rpc/schemas/import_project.py b/src/opengeodeweb_viewer/rpc/schemas/import_project.py index 5bfde5af..26d38ffc 100644 --- a/src/opengeodeweb_viewer/rpc/schemas/import_project.py +++ b/src/opengeodeweb_viewer/rpc/schemas/import_project.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ImportProject(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/schemas/kill.py b/src/opengeodeweb_viewer/rpc/schemas/kill.py index a37cb92a..891c3af1 100644 --- a/src/opengeodeweb_viewer/rpc/schemas/kill.py +++ b/src/opengeodeweb_viewer/rpc/schemas/kill.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Kill(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py index 30414916..5ff35f1d 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/__init__.py @@ -2,6 +2,7 @@ from .update_camera import * from .threshold import * from .take_screenshot import * +from .slice import * from .shrink import * from .set_z_scaling import * from .set_background_color import * diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py index 5fdf6ef9..2bcbbffb 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/axes.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Axes(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py index eb81c8e5..7044954c 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/clipping_planes.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Plane(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) normal: List[float] origin: List[float] @@ -15,7 +16,7 @@ def __post_init__(self) -> None: @dataclass class ClippingPlanes(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) ids: List[str] planes: List[Plane] diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py index 47c20614..2609f803 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/get_point_position.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class GetPointPosition(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) x: int y: int diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py index 57476712..ab46451f 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/grid_scale.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class GridScale(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) visibility: bool diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.py index ae06e173..60de2450 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/highlight.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from enum import Enum from dataclasses import dataclass from typing import List @@ -12,7 +13,7 @@ class FieldType(Enum): @dataclass class Highlight(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) field_type: FieldType ids: List[str] diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.py index 310c3d9b..0dfbf314 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/pick_colormap.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class PickColormap(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) x: float y: float diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py index b8ecdd9a..5e8f6ceb 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/picked_ids.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class PickedIDS(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) ids: List[str] x: float diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py index db24d98d..13abfc99 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/preview_points.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from enum import Enum from typing import List, Optional @@ -7,7 +8,7 @@ @dataclass class Point(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) x: float y: float @@ -23,7 +24,7 @@ class Style(Enum): @dataclass class PreviewPoints(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) points: List[Point] style: Style diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py index aeae2328..b9cea1d9 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/render.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Render(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py index f07bc00b..4b45f76e 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_camera.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ResetCamera(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_ruler.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_ruler.py index f672bbfb..085ca9db 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_ruler.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_ruler.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ResetRuler(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py index 7bd76a29..7ad19179 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/reset_visualization.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class ResetVisualization(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) pass diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/ruler.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/ruler.py index 54784b1c..355d1ab0 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/ruler.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/ruler.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,6 +7,6 @@ @dataclass class Ruler(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) points: List[List[float]] diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py index 9398a5ba..baeba64f 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_background_color.py @@ -1,11 +1,12 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class Color(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) b: int g: int @@ -15,6 +16,6 @@ def __post_init__(self) -> None: @dataclass class SetBackgroundColor(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) color: Color diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py index bc521a63..84f1c850 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/set_z_scaling.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class SetZScaling(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) z_scale: float diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/shrink.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/shrink.py index 7ce85949..3d1628e6 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/shrink.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/shrink.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class Shrink(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) ids: List[str] shrink_factor: float diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.json b/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.json new file mode 100644 index 00000000..2c40c625 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.json @@ -0,0 +1,41 @@ +{ + "rpc": "slice", + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string", + "minLength": 32, + "maxLength": 32 + } + }, + "slices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "axis": { + "type": "integer", + "minimum": 0, + "maximum": 2 + }, + "index": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "axis", + "index" + ], + "additionalProperties": false + } + } + }, + "required": [ + "ids", + "slices" + ], + "additionalProperties": false +} diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.py new file mode 100644 index 00000000..d8773f19 --- /dev/null +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/slice.py @@ -0,0 +1,22 @@ +from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass +from dataclasses import dataclass +from typing import List + + +@dataclass +class SliceElement(DataClassJsonMixin): + def __post_init__(self) -> None: + print_dataclass(self) + + axis: int + index: int + + +@dataclass +class Slice(DataClassJsonMixin): + def __post_init__(self) -> None: + print_dataclass(self) + + ids: List[str] + slices: List[SliceElement] diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py index c5d27642..4496ca57 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/take_screenshot.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from enum import Enum from dataclasses import dataclass @@ -11,7 +12,7 @@ class OutputExtension(Enum): @dataclass class TakeScreenshot(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) filename: str include_background: bool diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/threshold.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/threshold.py index 3bd0638b..6e9f2584 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/threshold.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/threshold.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from enum import Enum from dataclasses import dataclass from typing import List, Optional @@ -12,7 +13,7 @@ class Location(Enum): @dataclass class Attribute(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) item: int location: Location @@ -24,7 +25,7 @@ def __post_init__(self) -> None: @dataclass class Threshold(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) ids: List[str] attribute: Optional[Attribute] = None diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py index 58a07aa8..9b283910 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/update_camera.py @@ -1,4 +1,5 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass from typing import List @@ -6,7 +7,7 @@ @dataclass class CameraOptions(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) clipping_range: List[float] focal_point: List[float] @@ -18,6 +19,6 @@ def __post_init__(self) -> None: @dataclass class UpdateCamera(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) camera_options: CameraOptions diff --git a/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py b/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py index c44447a5..30524630 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py +++ b/src/opengeodeweb_viewer/rpc/viewer/schemas/update_data.py @@ -1,10 +1,11 @@ from dataclasses_json import DataClassJsonMixin +from opengeodeweb_microservice.schemas import print_dataclass from dataclasses import dataclass @dataclass class UpdateData(DataClassJsonMixin): def __post_init__(self) -> None: - print(self, flush=True) + print_dataclass(self) id: str diff --git a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py index 9519d64a..e6987f75 100644 --- a/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py +++ b/src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py @@ -385,6 +385,14 @@ def setShrink(self, rpc_params: RpcParams) -> None: params = schemas.Shrink.from_dict(rpc_params) self.set_shrink(params.ids, params.shrink_factor) + @exportRpc(viewer_prefix + viewer_schemas_dict["slice"]["rpc"]) + def setSlice(self, rpc_params: RpcParams) -> dict[str, list[int]]: + validate_schema( + rpc_params, self.viewer_schemas_dict["slice"], self.viewer_prefix + ) + params = schemas.Slice.from_dict(rpc_params) + return {"max_indices": self.set_slice(params.ids, params.slices)} + @exportRpc(viewer_prefix + viewer_schemas_dict["threshold"]["rpc"]) def setThreshold(self, rpc_params: RpcParams) -> None: validate_schema( diff --git a/src/opengeodeweb_viewer/vtk_pipeline.py b/src/opengeodeweb_viewer/vtk_pipeline.py index 93533a8f..d5b472fa 100644 --- a/src/opengeodeweb_viewer/vtk_pipeline.py +++ b/src/opengeodeweb_viewer/vtk_pipeline.py @@ -37,6 +37,7 @@ ) from vtkmodules.vtkFiltersCore import vtkThreshold from vtkmodules.vtkFiltersGeneral import vtkShrinkFilter +from vtkmodules.vtkFiltersCore import vtkAppendFilter from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter from vtkmodules.vtkIOXML import vtkXMLReader @@ -211,6 +212,7 @@ class VtkPipeline: mapper: vtkMapper filter: vtkGeometryFilter = field(default_factory=vtkGeometryFilter) actor: vtkActor = field(default_factory=vtkActor) + slice_filter: vtkAppendFilter | None = None clipping_filter: vtkExtractGeometry | None = None threshold_filter: vtkThreshold | None = None shrink_filter: vtkShrinkFilter | None = None diff --git a/src/opengeodeweb_viewer/vtk_protocol.py b/src/opengeodeweb_viewer/vtk_protocol.py index ba022648..3365c3ca 100644 --- a/src/opengeodeweb_viewer/vtk_protocol.py +++ b/src/opengeodeweb_viewer/vtk_protocol.py @@ -20,6 +20,7 @@ vtkDataObject, vtkDataSet, vtkImplicitBoolean, + vtkImageData, vtkPlane, vtkSelectionNode, ) @@ -27,6 +28,8 @@ from vtkmodules.vtkFiltersExtraction import vtkExtractGeometry from vtkmodules.vtkFiltersGeneral import vtkShrinkFilter from vtkmodules.vtkFiltersGeometry import vtkGeometryFilter +from vtkmodules.vtkFiltersCore import vtkAppendFilter +from vtkmodules.vtkImagingCore import vtkExtractVOI from vtkmodules.vtkCommonCore import vtkIdTypeArray, vtkStringArray from vtkmodules.vtkRenderingAnnotation import ( vtkAxesActor, @@ -38,6 +41,7 @@ from opengeodeweb_microservice.database.connection import get_session from opengeodeweb_microservice.database.data import Data from opengeodeweb_viewer.rpc.viewer.schemas.clipping_planes import Plane +from opengeodeweb_viewer.rpc.viewer.schemas.slice import SliceElement from opengeodeweb_viewer.rpc.viewer.schemas.threshold import Attribute, Location from opengeodeweb_viewer.vtk_pipeline import ( RulerPipeline, @@ -178,7 +182,11 @@ def clear_highlights(self, data_ids: list[str]) -> None: pipeline.highlight.actor.VisibilityOff() def update_pipeline_filter(self, pipeline: VtkPipeline) -> None: - current_input_port = pipeline.reader.GetOutputPort() + current_input_port = ( + pipeline.slice_filter.GetOutputPort() + if pipeline.slice_filter is not None + else pipeline.reader.GetOutputPort() + ) active_filters = [ filter_obj for filter_obj in ( @@ -200,7 +208,7 @@ def update_pipeline_filter(self, pipeline: VtkPipeline) -> None: pipeline.mapper.SetInputConnection(pipeline.filter.GetOutputPort()) target_dataset = ( cast(vtkDataSet, filtered_dataset) - if active_filters + if active_filters or pipeline.slice_filter is not None else pipeline.reader.GetOutputAsDataSet() ) pipeline.restore_active_scalars(target_dataset) @@ -260,6 +268,40 @@ def set_shrink(self, data_ids: list[str], shrink_factor: float) -> None: pipeline.shrink_filter = None self.update_pipeline_filter(pipeline) + def set_slice(self, data_ids: list[str], slices: list[SliceElement]) -> list[int]: + max_indices = [0, 0, 0] + for data_id in data_ids: + pipeline = self.get_vtk_pipeline(data_id) + image = pipeline.reader.GetOutputAsDataSet() + if not isinstance(image, vtkImageData): + continue + extent = image.GetExtent() + last_indices = [ + extent[2 * axis + 1] - extent[2 * axis] for axis in range(3) + ] + max_indices = [ + max(current, last) for current, last in zip(max_indices, last_indices) + ] + if not slices: + if pipeline.slice_filter is None: + continue + pipeline.slice_filter = None + else: + slice_filter = vtkAppendFilter() + for slice_item in slices: + voi = list(extent) + voi[2 * slice_item.axis] += min( + slice_item.index, last_indices[slice_item.axis] + ) + voi[2 * slice_item.axis + 1] = voi[2 * slice_item.axis] + extract_voi = vtkExtractVOI() + extract_voi.SetInputConnection(pipeline.reader.GetOutputPort()) + extract_voi.SetVOI(voi) + slice_filter.AddInputConnection(extract_voi.GetOutputPort()) + pipeline.slice_filter = slice_filter + self.update_pipeline_filter(pipeline) + return max_indices + def swap_pick_mappers(self, data_ids: list[str], use_pick_mapper: bool) -> None: # Swap actor mappers between the default and the pick_mapper (where hidden blocks are pruned). for data_id in data_ids: diff --git a/tests/data/images/mesh/cells/slice_grid_2d.jpeg b/tests/data/images/mesh/cells/slice_grid_2d.jpeg new file mode 100644 index 00000000..9a2fa2f8 Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_2d.jpeg differ diff --git a/tests/data/images/mesh/cells/slice_grid_2d_last.jpeg b/tests/data/images/mesh/cells/slice_grid_2d_last.jpeg new file mode 100644 index 00000000..a9eb1c7c Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_2d_last.jpeg differ diff --git a/tests/data/images/mesh/cells/slice_grid_2d_multiple.jpeg b/tests/data/images/mesh/cells/slice_grid_2d_multiple.jpeg new file mode 100644 index 00000000..0708f2cd Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_2d_multiple.jpeg differ diff --git a/tests/data/images/mesh/cells/slice_grid_3d.jpeg b/tests/data/images/mesh/cells/slice_grid_3d.jpeg new file mode 100644 index 00000000..b14c99cb Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_3d.jpeg differ diff --git a/tests/data/images/mesh/cells/slice_grid_3d_clipping.jpeg b/tests/data/images/mesh/cells/slice_grid_3d_clipping.jpeg new file mode 100644 index 00000000..4c7a1294 Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_3d_clipping.jpeg differ diff --git a/tests/data/images/mesh/cells/slice_grid_3d_register.jpeg b/tests/data/images/mesh/cells/slice_grid_3d_register.jpeg new file mode 100644 index 00000000..4727b853 Binary files /dev/null and b/tests/data/images/mesh/cells/slice_grid_3d_register.jpeg differ diff --git a/tests/data/regular_grid_3d.vti b/tests/data/regular_grid_3d.vti new file mode 100644 index 00000000..1b7f94f1 --- /dev/null +++ b/tests/data/regular_grid_3d.vti @@ -0,0 +1,15 @@ + + + + + + + + + + + + + _AQAAAACAAAAADwAAhwIAAA==eJxNzTeuIEUUBdAXEk5AQEDQQgghhFDjPVPA4F3jPRR28DTejvSW0EuoJfQSagm9hFpCL4Hgn4BKTl1dXb2I/7/zsk+54Dpe4vW8gTdy4k28mbfwVt7G23kHZ97Ju3g37+G9vI/38wE+yIf4MB/ho3yMl1kuTMbjMuMJmfGkzLgiM56SGU/LjGdkxrMy4zmZ8bzMeEFmvCgzXpIZL8uMV2TGcmFhsjNe1TPZGa/pmeyM1/VMdsYbeiY74009k53xlp7Jznhbz2RnvKNnsjPe1TPZGe/pmeyM9/VMdsYHeiY740M9k53xkZ7JzvhYz2Rn1AsnFlYmGzsH4xN7FlYmGzsH41N7FlYmGzsH4zN7FlYmGzsH43N7FlYmGzsH4wt7FlYmGzsH40t7FlYmGzsH46o9CyuTjZ2D8ZU9CyuTjZ2D8bU9CyuTjZ2D8Y09CyuTjZ2D8a09CyuTjZ2D8Z09CyuTjZ2D8b09CyuTjZ2D8YM9CyuTjZ2D8aM9CyuTjZ2DsV54iRNnFi6sXJnc2Liz8+DgyfjJfU6cWbiwcmVyY+POzoODJ+Nn9zlxZuHCypXJjY07Ow8Onoxf3OfEmYULK1cmNzbu7Dw4eDJ+dZ8TZxYurFyZ3Ni4s/Pg4Mn4zX1OnFm4sHJlcmPjzs6Dgyfjd/c5cWbhwsqVyY2NOzsPDp6MP9znxJmFCytXJjc27uw8OHgy/nSfE2cWLqxcmdzYuLPz4ODJ+Mt9TpxZuLByZXJj487Og4Mn42/3OXFm4cLKlcmNjTs7Dw6ejH/c58SZhQsrVyY3Nu7sPDh4Mv51nxNnFi6sXJnc2Liz8+DgybjmPifOLFxYuTK5sXFn58HB81r5DzOj+Q8= + + diff --git a/tests/mesh/cells/test_mesh_cells_protocols.py b/tests/mesh/cells/test_mesh_cells_protocols.py index 6e925ea7..d8deaae1 100644 --- a/tests/mesh/cells/test_mesh_cells_protocols.py +++ b/tests/mesh/cells/test_mesh_cells_protocols.py @@ -98,6 +98,149 @@ def test_cells_shrink( assert server.compare_image("mesh/cells/shrink.jpeg") == True +grid_3d_id = "22345678901234567890123456789012" +other_mesh_id = "32345678901234567890123456789012" +slice_rpc = ( + VtkViewerView.viewer_prefix + VtkViewerView.viewer_schemas_dict["slice"]["rpc"] +) + + +def register_grid_3d( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + dataset_factory( + id=grid_3d_id, + viewable_file="regular_grid_3d.vti", + viewer_elements_type="cells", + ) + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": grid_3d_id, "name": "regular_grid_3d.vti"}], + ) + assert server.compare_image("mesh/cells/slice_grid_3d_register.jpeg") == True + + +def call_slice( + server: ServerMonitor, ids: list[str], slices: list[dict[str, int]] +) -> object: + server.call(slice_rpc, [{"ids": ids, "slices": slices}]) + response = server.get_response() + assert isinstance(response, dict), f"Unexpected response: {response!r}" + return response["result"] + + +def test_slice(server: ServerMonitor, dataset_factory: Callable[..., str]) -> None: + register_grid_3d(server, dataset_factory) + + result = call_slice(server, [grid_3d_id], [{"axis": 2, "index": 3}]) + assert result == {"max_indices": [10, 8, 6]} + assert server.compare_image("mesh/cells/slice_grid_3d.jpeg") == True + + +def test_slice_clamped( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + test_register(server, dataset_factory) + + result = call_slice(server, [mesh_id], [{"axis": 0, "index": 10000}]) + assert result == {"max_indices": [524, 774, 0]} + assert server.compare_image("mesh/cells/slice_grid_2d_last.jpeg") == True + + call_slice(server, [mesh_id], [{"axis": 0, "index": 524}]) + assert server.compare_image("mesh/cells/slice_grid_2d_last.jpeg") == True + + +def test_slice_removed( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + register_grid_3d(server, dataset_factory) + call_slice(server, [grid_3d_id], [{"axis": 2, "index": 3}]) + + result = call_slice(server, [grid_3d_id], []) + assert result == {"max_indices": [10, 8, 6]} + assert server.compare_image("mesh/cells/slice_grid_3d_register.jpeg") == True + + +def test_slice_then_clipping( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + register_grid_3d(server, dataset_factory) + call_slice(server, [grid_3d_id], [{"axis": 2, "index": 3}]) + + server.call( + VtkViewerView.viewer_prefix + + VtkViewerView.viewer_schemas_dict["clipping_planes"]["rpc"], + [ + { + "ids": [grid_3d_id], + "planes": [{"origin": [50.0, 40.0, 30.0], "normal": [1.0, 0.0, 0.0]}], + } + ], + ) + assert server.compare_image("mesh/cells/slice_grid_3d_clipping.jpeg") == True + + +def test_slice_grid_2d( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + test_register(server, dataset_factory) + + result = call_slice(server, [mesh_id], [{"axis": 0, "index": 262}]) + assert result == {"max_indices": [524, 774, 0]} + assert server.compare_image("mesh/cells/slice_grid_2d.jpeg") == True + + +def test_slice_on_non_grid_removed( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + dataset_factory( + id=other_mesh_id, viewable_file="hat.vtp", viewer_elements_type="polygons" + ) + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": other_mesh_id, "name": "hat.vtp"}], + ) + server.get_response() + + result = call_slice(server, [other_mesh_id], []) + assert result == {"max_indices": [0, 0, 0]} + + +def test_slice_on_non_grid_ignored( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + register_grid_3d(server, dataset_factory) + dataset_factory( + id=other_mesh_id, viewable_file="hat.vtp", viewer_elements_type="polygons" + ) + server.call( + VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"], + [{"id": other_mesh_id, "name": "hat.vtp"}], + ) + server.get_response() + + result = call_slice(server, [other_mesh_id, grid_3d_id], [{"axis": 2, "index": 3}]) + assert result == {"max_indices": [10, 8, 6]} + + +def test_multiple_slices( + server: ServerMonitor, dataset_factory: Callable[..., str] +) -> None: + test_register(server, dataset_factory) + + result = call_slice( + server, + [mesh_id], + [ + {"axis": 0, "index": 100}, + {"axis": 0, "index": 400}, + {"axis": 1, "index": 387}, + ], + ) + assert result == {"max_indices": [524, 774, 0]} + assert server.compare_image("mesh/cells/slice_grid_2d_multiple.jpeg") == True + + def test_cells_threshold( server: ServerMonitor, dataset_factory: Callable[..., str] ) -> None: