Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
824 changes: 824 additions & 0 deletions opengeodeweb_viewer_schemas.json

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,3 @@ wslink==1.12.4
yarl>=1
# via aiohttp

opengeodeweb-microservice==1.*,>=1.1.1
21 changes: 20 additions & 1 deletion src/opengeodeweb_viewer/object/object_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,35 @@ def registerObject(
if actor.visibility == True:
resetCamara = False
renderer.AddActor(data.actor)
for category_actor in data.category_actors.values():
renderer.AddActor(category_actor)
if resetCamara:
renderer.ResetCamera()

def deregisterObject(self, data_id: str) -> None:
actor = self.get_vtk_pipeline(data_id).actor
pipeline = self.get_vtk_pipeline(data_id)
actor = pipeline.actor
renderWindow = self.getView("-1")
renderer = renderWindow.GetRenderers().GetFirstRenderer()
renderer.RemoveActor(actor)
for category_actor in pipeline.category_actors.values():
renderer.RemoveActor(category_actor)
self.deregister_object(data_id)

def SetCategoryEdgesVisibility(
self, data_id: str, category: str, visibility: bool
) -> None:
actor = self.get_vtk_pipeline(data_id).category_actors.get(category)
if actor is not None:
actor.GetProperty().SetEdgeVisibility(visibility)

def SetCategoryPointsVisibility(
self, data_id: str, category: str, visibility: bool
) -> None:
actor = self.get_vtk_pipeline(data_id).category_actors.get(category)
if actor is not None:
actor.GetProperty().SetVertexVisibility(visibility)

def SetVisibility(self, data_id: str, visibility: bool) -> None:
actor = self.get_vtk_pipeline(data_id).actor
actor.SetVisibility(visibility)
Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Standard library imports
import os

# Third party imports
from wslink import register as exportRpc
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [mypy] reported by reviewdog 🐶
Skipping analyzing "wslink": module is installed, but missing library stubs or py.typed marker [import-untyped]

from opengeodeweb_microservice.schemas import get_schemas_dict

# Local application imports
from opengeodeweb_viewer.utils_functions import validate_schema, RpcParams
from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView
from . import schemas


class VtkModelBlocksEdgesView(VtkModelView):
model_blocks_edges_prefix = "opengeodeweb_viewer.model.blocks.edges."
model_blocks_edges_schemas_dict = get_schemas_dict(
os.path.join(os.path.dirname(__file__), "schemas")
)

def __init__(self) -> None:
super().__init__()

@exportRpc(
model_blocks_edges_prefix + model_blocks_edges_schemas_dict["visibility"]["rpc"]
)
def setModelBlocksEdgesVisibility(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_edges_schemas_dict["visibility"],
self.model_blocks_edges_prefix,
)
params = schemas.Visibility.from_dict(rpc_params)
self.SetEdgesVisibility(params.id, params.visibility)

@exportRpc(
model_blocks_edges_prefix + model_blocks_edges_schemas_dict["color"]["rpc"]
)
def setModelBlocksEdgesColor(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_edges_schemas_dict["color"],
self.model_blocks_edges_prefix,
)
params = schemas.Color.from_dict(rpc_params)
self.SetEdgesColor(params.id, params.color.r, params.color.g, params.color.b)

@exportRpc(
model_blocks_edges_prefix + model_blocks_edges_schemas_dict["width"]["rpc"]
)
def setModelBlocksEdgesWidth(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_edges_schemas_dict["width"],
self.model_blocks_edges_prefix,
)
params = schemas.Width.from_dict(rpc_params)
self.SetEdgesWidth(params.id, params.width)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .width import *
from .visibility import *
from .color import *
40 changes: 40 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/edges/schemas/color.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"rpc": "color",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"color": {
"type": "object",
"properties": {
"r": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"g": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"b": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 1
}
},
"required": ["r", "g", "b"],
"additionalProperties": false
}
},
"required": ["id", "color"],
"additionalProperties": false
}
23 changes: 23 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/edges/schemas/color.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass
from typing import Optional


@dataclass
class ColorClass(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

b: int
g: int
r: int
a: Optional[float] = None


@dataclass
class Color(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

color: ColorClass
id: str
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"rpc": "visibility",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"visibility": {
"type": "boolean"
}
},
"required": ["id", "visibility"],
"additionalProperties": false
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass


@dataclass
class Visibility(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

id: str
visibility: bool
15 changes: 15 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/edges/schemas/width.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"rpc": "width",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"width": {
"type": "number"
}
},
"required": ["id", "width"],
"additionalProperties": false
}
11 changes: 11 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/edges/schemas/width.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass


@dataclass
class Width(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

id: str
width: float
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import os
from wslink import register as exportRpc
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [mypy] reported by reviewdog 🐶
Skipping analyzing "wslink": module is installed, but missing library stubs or py.typed marker [import-untyped]

from opengeodeweb_microservice.schemas import get_schemas_dict
from opengeodeweb_viewer.utils_functions import validate_schema, RpcParams
from opengeodeweb_viewer.rpc.model.model_protocols import VtkModelView
from . import schemas


class VtkModelBlocksPointsView(VtkModelView):
model_blocks_points_prefix = "opengeodeweb_viewer.model.blocks.points."
model_blocks_points_schemas_dict = get_schemas_dict(
os.path.join(os.path.dirname(__file__), "schemas")
)

def __init__(self) -> None:
super().__init__()

@exportRpc(
model_blocks_points_prefix
+ model_blocks_points_schemas_dict["visibility"]["rpc"]
)
def setModelBlocksPointsVisibility(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_points_schemas_dict["visibility"],
self.model_blocks_points_prefix,
)
params = schemas.Visibility.from_dict(rpc_params)
self.SetPointsVisibility(params.id, params.visibility)

@exportRpc(
model_blocks_points_prefix + model_blocks_points_schemas_dict["size"]["rpc"]
)
def setModelBlocksPointsSize(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_points_schemas_dict["size"],
self.model_blocks_points_prefix,
)
params = schemas.Size.from_dict(rpc_params)
self.SetPointsSize(params.id, params.size)

@exportRpc(
model_blocks_points_prefix + model_blocks_points_schemas_dict["color"]["rpc"]
)
def setModelBlocksPointsColor(self, rpc_params: RpcParams) -> None:
validate_schema(
rpc_params,
self.model_blocks_points_schemas_dict["color"],
self.model_blocks_points_prefix,
)
params = schemas.Color.from_dict(rpc_params)
self.SetPointsColor(params.id, params.color.r, params.color.g, params.color.b)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .visibility import *
from .size import *
from .color import *
40 changes: 40 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/points/schemas/color.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"rpc": "color",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"color": {
"type": "object",
"properties": {
"r": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"g": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"b": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"a": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 1
}
},
"required": ["r", "g", "b"],
"additionalProperties": false
}
},
"required": ["id", "color"],
"additionalProperties": false
}
23 changes: 23 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/points/schemas/color.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass
from typing import Optional


@dataclass
class ColorClass(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

b: int
g: int
r: int
a: Optional[float] = None


@dataclass
class Color(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

color: ColorClass
id: str
15 changes: 15 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/points/schemas/size.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"rpc": "size",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"size": {
"type": "number"
}
},
"required": ["id", "size"],
"additionalProperties": false
}
11 changes: 11 additions & 0 deletions src/opengeodeweb_viewer/rpc/model/blocks/points/schemas/size.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from dataclasses_json import DataClassJsonMixin
from dataclasses import dataclass


@dataclass
class Size(DataClassJsonMixin):
def __post_init__(self) -> None:
print(self, flush=True)

id: str
size: float
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"rpc": "visibility",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"visibility": {
"type": "boolean"
}
},
"required": ["id", "visibility"],
"additionalProperties": false
}
Loading
Loading