diff --git a/examples/scripts/animate_glb.py b/examples/scripts/animate_glb.py
index 7554c2b0..1724e6ed 100644
--- a/examples/scripts/animate_glb.py
+++ b/examples/scripts/animate_glb.py
@@ -36,7 +36,7 @@ def main():
]
keyframe_times = [0, 1, 3, 4, 6] # Example keyframe times
- tri_anim = Animation("TestAnimation", keyframe_times, translation_keyframes, rotational_keyframes)
+ tri_anim = Animation("TestAnimation", keyframe_times, translation_keyframes, rotational_keyframes)
a.animation_store.add(tri_anim)
# Set your initial camera position
diff --git a/src/ada/comms/fb_deserializer.py b/src/ada/comms/fb_deserializer.py
index ea0e6a98..85c21e9e 100644
--- a/src/ada/comms/fb_deserializer.py
+++ b/src/ada/comms/fb_deserializer.py
@@ -1,6 +1,22 @@
+from ada.comms.fb_model_gen import (
+ CameraParamsDC,
+ CommandTypeDC,
+ ErrorDC,
+ FileObjectDC,
+ FilePurposeDC,
+ FileTypeDC,
+ MeshInfoDC,
+ MessageDC,
+ ParameterDC,
+ ProcedureDC,
+ ProcedureStoreDC,
+ SceneOperationDC,
+ SceneOperationsDC,
+ TargetTypeDC,
+ WebClientDC,
+)
from ada.comms.wsock import Message
-from ada.comms.fb_model_gen import WebClientDC, FileObjectDC, MeshInfoDC, CameraParamsDC, SceneOperationDC, ProcedureStoreDC, ProcedureDC, ParameterDC, ErrorDC, MessageDC,CommandTypeDC, TargetTypeDC, SceneOperationsDC, FilePurposeDC, FileTypeDC
def deserialize_webclient(fb_obj) -> WebClientDC | None:
if fb_obj is None:
@@ -8,9 +24,9 @@ def deserialize_webclient(fb_obj) -> WebClientDC | None:
return WebClientDC(
instance_id=fb_obj.InstanceId(),
- name=fb_obj.Name().decode('utf-8') if fb_obj.Name() is not None else None,
- address=fb_obj.Address().decode('utf-8') if fb_obj.Address() is not None else None,
- port=fb_obj.Port()
+ name=fb_obj.Name().decode("utf-8") if fb_obj.Name() is not None else None,
+ address=fb_obj.Address().decode("utf-8") if fb_obj.Address() is not None else None,
+ port=fb_obj.Port(),
)
@@ -19,11 +35,11 @@ def deserialize_fileobject(fb_obj) -> FileObjectDC | None:
return None
return FileObjectDC(
- name=fb_obj.Name().decode('utf-8') if fb_obj.Name() is not None else None,
+ name=fb_obj.Name().decode("utf-8") if fb_obj.Name() is not None else None,
file_type=FileTypeDC(fb_obj.FileType()),
purpose=FilePurposeDC(fb_obj.Purpose()),
- filepath=fb_obj.Filepath().decode('utf-8') if fb_obj.Filepath() is not None else None,
- filedata=bytes(fb_obj.FiledataAsNumpy()) if fb_obj.FiledataLength() > 0 else None
+ filepath=fb_obj.Filepath().decode("utf-8") if fb_obj.Filepath() is not None else None,
+ filedata=bytes(fb_obj.FiledataAsNumpy()) if fb_obj.FiledataLength() > 0 else None,
)
@@ -32,9 +48,9 @@ def deserialize_meshinfo(fb_obj) -> MeshInfoDC | None:
return None
return MeshInfoDC(
- object_name=fb_obj.ObjectName().decode('utf-8') if fb_obj.ObjectName() is not None else None,
+ object_name=fb_obj.ObjectName().decode("utf-8") if fb_obj.ObjectName() is not None else None,
face_index=fb_obj.FaceIndex(),
- json_data=fb_obj.JsonData().decode('utf-8') if fb_obj.JsonData() is not None else None
+ json_data=fb_obj.JsonData().decode("utf-8") if fb_obj.JsonData() is not None else None,
)
@@ -46,10 +62,10 @@ def deserialize_cameraparams(fb_obj) -> CameraParamsDC | None:
position=[fb_obj.Position(i) for i in range(fb_obj.PositionLength())] if fb_obj.PositionLength() > 0 else None,
look_at=[fb_obj.LookAt(i) for i in range(fb_obj.LookAtLength())] if fb_obj.LookAtLength() > 0 else None,
up=[fb_obj.Up(i) for i in range(fb_obj.UpLength())] if fb_obj.UpLength() > 0 else None,
- fov=deserialize_float(fb_obj.Fov()),
- near=deserialize_float(fb_obj.Near()),
- far=deserialize_float(fb_obj.Far()),
- force_camera=fb_obj.ForceCamera()
+ fov=fb_obj.Fov(),
+ near=fb_obj.Near(),
+ far=fb_obj.Far(),
+ force_camera=fb_obj.ForceCamera(),
)
@@ -58,8 +74,7 @@ def deserialize_sceneoperation(fb_obj) -> SceneOperationDC | None:
return None
return SceneOperationDC(
- operation=SceneOperationsDC(fb_obj.Operation()),
- camera_params=deserialize_cameraparams(fb_obj.CameraParams())
+ operation=SceneOperationsDC(fb_obj.Operation()), camera_params=deserialize_cameraparams(fb_obj.CameraParams())
)
@@ -68,7 +83,11 @@ def deserialize_procedurestore(fb_obj) -> ProcedureStoreDC | None:
return None
return ProcedureStoreDC(
- procedures=[deserialize_procedure(fb_obj.Procedures(i)) for i in range(fb_obj.ProceduresLength())] if fb_obj.ProceduresLength() > 0 else None
+ procedures=(
+ [deserialize_procedure(fb_obj.Procedures(i)) for i in range(fb_obj.ProceduresLength())]
+ if fb_obj.ProceduresLength() > 0
+ else None
+ )
)
@@ -77,14 +96,22 @@ def deserialize_procedure(fb_obj) -> ProcedureDC | None:
return None
return ProcedureDC(
- id=fb_obj.Id().decode('utf-8') if fb_obj.Id() is not None else None,
- name=fb_obj.Name().decode('utf-8') if fb_obj.Name() is not None else None,
- description=fb_obj.Description().decode('utf-8') if fb_obj.Description() is not None else None,
- script_file_location=fb_obj.ScriptFileLocation().decode('utf-8') if fb_obj.ScriptFileLocation() is not None else None,
- parameters=[deserialize_parameter(fb_obj.Parameters(i)) for i in range(fb_obj.ParametersLength())] if fb_obj.ParametersLength() > 0 else None,
- input_ifc_filepath=fb_obj.InputIfcFilepath().decode('utf-8') if fb_obj.InputIfcFilepath() is not None else None,
- output_ifc_filepath=fb_obj.OutputIfcFilepath().decode('utf-8') if fb_obj.OutputIfcFilepath() is not None else None,
- error=fb_obj.Error().decode('utf-8') if fb_obj.Error() is not None else None
+ id=fb_obj.Id().decode("utf-8") if fb_obj.Id() is not None else None,
+ name=fb_obj.Name().decode("utf-8") if fb_obj.Name() is not None else None,
+ description=fb_obj.Description().decode("utf-8") if fb_obj.Description() is not None else None,
+ script_file_location=(
+ fb_obj.ScriptFileLocation().decode("utf-8") if fb_obj.ScriptFileLocation() is not None else None
+ ),
+ parameters=(
+ [deserialize_parameter(fb_obj.Parameters(i)) for i in range(fb_obj.ParametersLength())]
+ if fb_obj.ParametersLength() > 0
+ else None
+ ),
+ input_ifc_filepath=fb_obj.InputIfcFilepath().decode("utf-8") if fb_obj.InputIfcFilepath() is not None else None,
+ output_ifc_filepath=(
+ fb_obj.OutputIfcFilepath().decode("utf-8") if fb_obj.OutputIfcFilepath() is not None else None
+ ),
+ error=fb_obj.Error().decode("utf-8") if fb_obj.Error() is not None else None,
)
@@ -93,9 +120,9 @@ def deserialize_parameter(fb_obj) -> ParameterDC | None:
return None
return ParameterDC(
- name=fb_obj.Name().decode('utf-8') if fb_obj.Name() is not None else None,
- type=fb_obj.Type().decode('utf-8') if fb_obj.Type() is not None else None,
- value=fb_obj.Value().decode('utf-8') if fb_obj.Value() is not None else None
+ name=fb_obj.Name().decode("utf-8") if fb_obj.Name() is not None else None,
+ type=fb_obj.Type().decode("utf-8") if fb_obj.Type() is not None else None,
+ value=fb_obj.Value().decode("utf-8") if fb_obj.Value() is not None else None,
)
@@ -104,8 +131,7 @@ def deserialize_error(fb_obj) -> ErrorDC | None:
return None
return ErrorDC(
- code=fb_obj.Code(),
- message=fb_obj.Message().decode('utf-8') if fb_obj.Message() is not None else None
+ code=fb_obj.Code(), message=fb_obj.Message().decode("utf-8") if fb_obj.Message() is not None else None
)
@@ -122,8 +148,12 @@ def deserialize_message(fb_obj) -> MessageDC | None:
client_type=TargetTypeDC(fb_obj.ClientType()),
scene_operation=deserialize_sceneoperation(fb_obj.SceneOperation()),
target_id=fb_obj.TargetId(),
- web_clients=[deserialize_webclient(fb_obj.WebClients(i)) for i in range(fb_obj.WebClientsLength())] if fb_obj.WebClientsLength() > 0 else None,
- procedure_store=deserialize_procedurestore(fb_obj.ProcedureStore())
+ web_clients=(
+ [deserialize_webclient(fb_obj.WebClients(i)) for i in range(fb_obj.WebClientsLength())]
+ if fb_obj.WebClientsLength() > 0
+ else None
+ ),
+ procedure_store=deserialize_procedurestore(fb_obj.ProcedureStore()),
)
diff --git a/src/ada/comms/fb_model_gen.py b/src/ada/comms/fb_model_gen.py
index 3dd09388..0bfd7cf0 100644
--- a/src/ada/comms/fb_model_gen.py
+++ b/src/ada/comms/fb_model_gen.py
@@ -1,9 +1,9 @@
from __future__ import annotations
-from enum import Enum
-from dataclasses import dataclass
-from typing import Optional, List
-import pathlib
+import pathlib
+from dataclasses import dataclass
+from enum import Enum
+from typing import List, Optional
class CommandTypeDC(Enum):
@@ -19,26 +19,31 @@ class CommandTypeDC(Enum):
ERROR = 9
SERVER_REPLY = 10
+
class TargetTypeDC(Enum):
WEB = 0
LOCAL = 1
SERVER = 2
+
class SceneOperationsDC(Enum):
ADD = 0
REMOVE = 1
REPLACE = 2
+
class FilePurposeDC(Enum):
DESIGN = 0
ANALYSIS = 1
FABRICATE = 2
+
class FileTypeDC(Enum):
IFC = 0
GLB = 1
SQLITE = 2
+
@dataclass
class WebClientDC:
instance_id: int = None
@@ -46,6 +51,7 @@ class WebClientDC:
address: str = ""
port: int = None
+
@dataclass
class FileObjectDC:
name: str = ""
@@ -54,12 +60,14 @@ class FileObjectDC:
filepath: pathlib.Path | str = ""
filedata: bytes = None
+
@dataclass
class MeshInfoDC:
object_name: str = ""
face_index: int = None
json_data: str = ""
+
@dataclass
class CameraParamsDC:
position: List[float] = None
@@ -70,15 +78,18 @@ class CameraParamsDC:
far: float = None
force_camera: bool = None
+
@dataclass
class SceneOperationDC:
operation: Optional[SceneOperationsDC] = None
camera_params: Optional[CameraParamsDC] = None
+
@dataclass
class ProcedureStoreDC:
procedures: Optional[List[ProcedureDC]] = None
+
@dataclass
class ProcedureDC:
id: str = ""
@@ -90,17 +101,20 @@ class ProcedureDC:
output_ifc_filepath: pathlib.Path | str = ""
error: str = ""
+
@dataclass
class ParameterDC:
name: str = ""
type: str = ""
value: str = ""
+
@dataclass
class ErrorDC:
code: int = None
message: str = ""
+
@dataclass
class MessageDC:
instance_id: int = None
diff --git a/src/ada/comms/fb_serializer.py b/src/ada/comms/fb_serializer.py
index 4233f8ce..abec3b33 100644
--- a/src/ada/comms/fb_serializer.py
+++ b/src/ada/comms/fb_serializer.py
@@ -1,9 +1,31 @@
-import flatbuffers
from typing import Optional
-from ada.comms.wsock import WebClient, FileObject, MeshInfo, CameraParams, SceneOperation, ProcedureStore, Procedure, Parameter, Error, Message
+import flatbuffers
+from ada.comms.fb_model_gen import (
+ CameraParamsDC,
+ ErrorDC,
+ FileObjectDC,
+ MeshInfoDC,
+ MessageDC,
+ ParameterDC,
+ ProcedureDC,
+ ProcedureStoreDC,
+ SceneOperationDC,
+ WebClientDC,
+)
+from ada.comms.wsock import (
+ CameraParams,
+ Error,
+ FileObject,
+ MeshInfo,
+ Message,
+ Parameter,
+ Procedure,
+ ProcedureStore,
+ SceneOperation,
+ WebClient,
+)
-from ada.comms.fb_model_gen import WebClientDC, FileObjectDC, MeshInfoDC, CameraParamsDC, SceneOperationDC, ProcedureStoreDC, ProcedureDC, ParameterDC, ErrorDC, MessageDC
def serialize_webclient(builder: flatbuffers.Builder, obj: Optional[WebClientDC]) -> Optional[int]:
if obj is None:
@@ -203,7 +225,7 @@ def serialize_error(builder: flatbuffers.Builder, obj: Optional[ErrorDC]) -> Opt
return Error.End(builder)
-def serialize_message(message: MessageDC, builder: flatbuffers.Builder=None) -> bytes:
+def serialize_message(message: MessageDC, builder: flatbuffers.Builder = None) -> bytes:
if builder is None:
builder = flatbuffers.Builder(1024)
file_object_obj = None
diff --git a/src/ada/comms/wsock/CameraParams.py b/src/ada/comms/wsock/CameraParams.py
index 1c8932c5..a92ff461 100644
--- a/src/ada/comms/wsock/CameraParams.py
+++ b/src/ada/comms/wsock/CameraParams.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class CameraParams(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsCameraParams(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# CameraParams
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -29,7 +32,9 @@ def Position(self, j):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0:
a = self._tab.Vector(o)
- return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
+ return self._tab.Get(
+ flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)
+ )
return 0
# CameraParams
@@ -56,7 +61,9 @@ def LookAt(self, j):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
if o != 0:
a = self._tab.Vector(o)
- return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
+ return self._tab.Get(
+ flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)
+ )
return 0
# CameraParams
@@ -83,7 +90,9 @@ def Up(self, j):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
if o != 0:
a = self._tab.Vector(o)
- return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
+ return self._tab.Get(
+ flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4)
+ )
return 0
# CameraParams
@@ -133,74 +142,98 @@ def ForceCamera(self):
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
return False
+
def CameraParamsStart(builder):
builder.StartObject(7)
+
def Start(builder):
CameraParamsStart(builder)
+
def CameraParamsAddPosition(builder, position):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(position), 0)
+
def AddPosition(builder, position):
CameraParamsAddPosition(builder, position)
+
def CameraParamsStartPositionVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartPositionVector(builder, numElems):
return CameraParamsStartPositionVector(builder, numElems)
+
def CameraParamsAddLookAt(builder, lookAt):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(lookAt), 0)
+
def AddLookAt(builder, lookAt):
CameraParamsAddLookAt(builder, lookAt)
+
def CameraParamsStartLookAtVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartLookAtVector(builder, numElems):
return CameraParamsStartLookAtVector(builder, numElems)
+
def CameraParamsAddUp(builder, up):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(up), 0)
+
def AddUp(builder, up):
CameraParamsAddUp(builder, up)
+
def CameraParamsStartUpVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartUpVector(builder, numElems):
return CameraParamsStartUpVector(builder, numElems)
+
def CameraParamsAddFov(builder, fov):
builder.PrependFloat32Slot(3, fov, 60.0)
+
def AddFov(builder, fov):
CameraParamsAddFov(builder, fov)
+
def CameraParamsAddNear(builder, near):
builder.PrependFloat32Slot(4, near, 0.1)
+
def AddNear(builder, near):
CameraParamsAddNear(builder, near)
+
def CameraParamsAddFar(builder, far):
builder.PrependFloat32Slot(5, far, 1000.0)
+
def AddFar(builder, far):
CameraParamsAddFar(builder, far)
+
def CameraParamsAddForceCamera(builder, forceCamera):
builder.PrependBoolSlot(6, forceCamera, 0)
+
def AddForceCamera(builder, forceCamera):
CameraParamsAddForceCamera(builder, forceCamera)
+
def CameraParamsEnd(builder):
return builder.EndObject()
+
def End(builder):
return CameraParamsEnd(builder)
diff --git a/src/ada/comms/wsock/CommandType.py b/src/ada/comms/wsock/CommandType.py
index f3ce019f..a6b592d8 100644
--- a/src/ada/comms/wsock/CommandType.py
+++ b/src/ada/comms/wsock/CommandType.py
@@ -2,6 +2,7 @@
# namespace: wsock
+
class CommandType(object):
PING = 0
PONG = 1
diff --git a/src/ada/comms/wsock/Error.py b/src/ada/comms/wsock/Error.py
index aa776d01..7650463f 100644
--- a/src/ada/comms/wsock/Error.py
+++ b/src/ada/comms/wsock/Error.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class Error(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsError(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# Error
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -38,26 +41,34 @@ def Message(self):
return self._tab.String(o + self._tab.Pos)
return None
+
def ErrorStart(builder):
builder.StartObject(2)
+
def Start(builder):
ErrorStart(builder)
+
def ErrorAddCode(builder, code):
builder.PrependInt32Slot(0, code, 0)
+
def AddCode(builder, code):
ErrorAddCode(builder, code)
+
def ErrorAddMessage(builder, message):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0)
+
def AddMessage(builder, message):
ErrorAddMessage(builder, message)
+
def ErrorEnd(builder):
return builder.EndObject()
+
def End(builder):
return ErrorEnd(builder)
diff --git a/src/ada/comms/wsock/FileObject.py b/src/ada/comms/wsock/FileObject.py
index b28bd12f..fb54bfcb 100644
--- a/src/ada/comms/wsock/FileObject.py
+++ b/src/ada/comms/wsock/FileObject.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class FileObject(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsFileObject(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# FileObject
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -57,7 +60,9 @@ def Filedata(self, j):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
if o != 0:
a = self._tab.Vector(o)
- return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1))
+ return self._tab.Get(
+ flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1)
+ )
return 0
# FileObject
@@ -79,50 +84,66 @@ def FiledataIsNone(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
return o == 0
+
def FileObjectStart(builder):
builder.StartObject(5)
+
def Start(builder):
FileObjectStart(builder)
+
def FileObjectAddName(builder, name):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+
def AddName(builder, name):
FileObjectAddName(builder, name)
+
def FileObjectAddFileType(builder, fileType):
builder.PrependInt8Slot(1, fileType, 0)
+
def AddFileType(builder, fileType):
FileObjectAddFileType(builder, fileType)
+
def FileObjectAddPurpose(builder, purpose):
builder.PrependInt8Slot(2, purpose, 0)
+
def AddPurpose(builder, purpose):
FileObjectAddPurpose(builder, purpose)
+
def FileObjectAddFilepath(builder, filepath):
builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(filepath), 0)
+
def AddFilepath(builder, filepath):
FileObjectAddFilepath(builder, filepath)
+
def FileObjectAddFiledata(builder, filedata):
builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(filedata), 0)
+
def AddFiledata(builder, filedata):
FileObjectAddFiledata(builder, filedata)
+
def FileObjectStartFiledataVector(builder, numElems):
return builder.StartVector(1, numElems, 1)
+
def StartFiledataVector(builder, numElems):
return FileObjectStartFiledataVector(builder, numElems)
+
def FileObjectEnd(builder):
return builder.EndObject()
+
def End(builder):
return FileObjectEnd(builder)
diff --git a/src/ada/comms/wsock/FilePurpose.py b/src/ada/comms/wsock/FilePurpose.py
index 531dfe94..2f236426 100644
--- a/src/ada/comms/wsock/FilePurpose.py
+++ b/src/ada/comms/wsock/FilePurpose.py
@@ -2,6 +2,7 @@
# namespace: wsock
+
class FilePurpose(object):
DESIGN = 0
ANALYSIS = 1
diff --git a/src/ada/comms/wsock/FileType.py b/src/ada/comms/wsock/FileType.py
index c2ae703f..3e09c82b 100644
--- a/src/ada/comms/wsock/FileType.py
+++ b/src/ada/comms/wsock/FileType.py
@@ -2,6 +2,7 @@
# namespace: wsock
+
class FileType(object):
IFC = 0
GLB = 1
diff --git a/src/ada/comms/wsock/MeshInfo.py b/src/ada/comms/wsock/MeshInfo.py
index b8e8151a..b15051ba 100644
--- a/src/ada/comms/wsock/MeshInfo.py
+++ b/src/ada/comms/wsock/MeshInfo.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class MeshInfo(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsMeshInfo(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# MeshInfo
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -45,32 +48,42 @@ def JsonData(self):
return self._tab.String(o + self._tab.Pos)
return None
+
def MeshInfoStart(builder):
builder.StartObject(3)
+
def Start(builder):
MeshInfoStart(builder)
+
def MeshInfoAddObjectName(builder, objectName):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objectName), 0)
+
def AddObjectName(builder, objectName):
MeshInfoAddObjectName(builder, objectName)
+
def MeshInfoAddFaceIndex(builder, faceIndex):
builder.PrependInt32Slot(1, faceIndex, 0)
+
def AddFaceIndex(builder, faceIndex):
MeshInfoAddFaceIndex(builder, faceIndex)
+
def MeshInfoAddJsonData(builder, jsonData):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(jsonData), 0)
+
def AddJsonData(builder, jsonData):
MeshInfoAddJsonData(builder, jsonData)
+
def MeshInfoEnd(builder):
return builder.EndObject()
+
def End(builder):
return MeshInfoEnd(builder)
diff --git a/src/ada/comms/wsock/Message.py b/src/ada/comms/wsock/Message.py
index a6c98b42..f0e781c7 100644
--- a/src/ada/comms/wsock/Message.py
+++ b/src/ada/comms/wsock/Message.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class Message(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsMessage(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# Message
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -44,6 +47,7 @@ def FileObject(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from ada.comms.wsock.FileObject import FileObject
+
obj = FileObject()
obj.Init(self._tab.Bytes, x)
return obj
@@ -55,6 +59,7 @@ def MeshInfo(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from ada.comms.wsock.MeshInfo import MeshInfo
+
obj = MeshInfo()
obj.Init(self._tab.Bytes, x)
return obj
@@ -80,6 +85,7 @@ def SceneOperation(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from ada.comms.wsock.SceneOperation import SceneOperation
+
obj = SceneOperation()
obj.Init(self._tab.Bytes, x)
return obj
@@ -100,6 +106,7 @@ def WebClients(self, j):
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
x = self._tab.Indirect(x)
from ada.comms.wsock.WebClient import WebClient
+
obj = WebClient()
obj.Init(self._tab.Bytes, x)
return obj
@@ -123,85 +130,112 @@ def ProcedureStore(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from ada.comms.wsock.ProcedureStore import ProcedureStore
+
obj = ProcedureStore()
obj.Init(self._tab.Bytes, x)
return obj
return None
+
def MessageStart(builder):
builder.StartObject(10)
+
def Start(builder):
MessageStart(builder)
+
def MessageAddInstanceId(builder, instanceId):
builder.PrependInt32Slot(0, instanceId, 0)
+
def AddInstanceId(builder, instanceId):
MessageAddInstanceId(builder, instanceId)
+
def MessageAddCommandType(builder, commandType):
builder.PrependInt8Slot(1, commandType, 0)
+
def AddCommandType(builder, commandType):
MessageAddCommandType(builder, commandType)
+
def MessageAddFileObject(builder, fileObject):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileObject), 0)
+
def AddFileObject(builder, fileObject):
MessageAddFileObject(builder, fileObject)
+
def MessageAddMeshInfo(builder, meshInfo):
builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(meshInfo), 0)
+
def AddMeshInfo(builder, meshInfo):
MessageAddMeshInfo(builder, meshInfo)
+
def MessageAddTargetGroup(builder, targetGroup):
builder.PrependInt8Slot(4, targetGroup, 0)
+
def AddTargetGroup(builder, targetGroup):
MessageAddTargetGroup(builder, targetGroup)
+
def MessageAddClientType(builder, clientType):
builder.PrependInt8Slot(5, clientType, 0)
+
def AddClientType(builder, clientType):
MessageAddClientType(builder, clientType)
+
def MessageAddSceneOperation(builder, sceneOperation):
builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(sceneOperation), 0)
+
def AddSceneOperation(builder, sceneOperation):
MessageAddSceneOperation(builder, sceneOperation)
+
def MessageAddTargetId(builder, targetId):
builder.PrependInt32Slot(7, targetId, 0)
+
def AddTargetId(builder, targetId):
MessageAddTargetId(builder, targetId)
+
def MessageAddWebClients(builder, webClients):
builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(webClients), 0)
+
def AddWebClients(builder, webClients):
MessageAddWebClients(builder, webClients)
+
def MessageStartWebClientsVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartWebClientsVector(builder, numElems):
return MessageStartWebClientsVector(builder, numElems)
+
def MessageAddProcedureStore(builder, procedureStore):
builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(procedureStore), 0)
+
def AddProcedureStore(builder, procedureStore):
MessageAddProcedureStore(builder, procedureStore)
+
def MessageEnd(builder):
return builder.EndObject()
+
def End(builder):
return MessageEnd(builder)
diff --git a/src/ada/comms/wsock/Parameter.py b/src/ada/comms/wsock/Parameter.py
index 8a10042a..579a1fd6 100644
--- a/src/ada/comms/wsock/Parameter.py
+++ b/src/ada/comms/wsock/Parameter.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class Parameter(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsParameter(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# Parameter
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -45,32 +48,42 @@ def Value(self):
return self._tab.String(o + self._tab.Pos)
return None
+
def ParameterStart(builder):
builder.StartObject(3)
+
def Start(builder):
ParameterStart(builder)
+
def ParameterAddName(builder, name):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+
def AddName(builder, name):
ParameterAddName(builder, name)
+
def ParameterAddType(builder, type):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0)
+
def AddType(builder, type):
ParameterAddType(builder, type)
+
def ParameterAddValue(builder, value):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0)
+
def AddValue(builder, value):
ParameterAddValue(builder, value)
+
def ParameterEnd(builder):
return builder.EndObject()
+
def End(builder):
return ParameterEnd(builder)
diff --git a/src/ada/comms/wsock/Procedure.py b/src/ada/comms/wsock/Procedure.py
index fd9bbf50..15821eb4 100644
--- a/src/ada/comms/wsock/Procedure.py
+++ b/src/ada/comms/wsock/Procedure.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class Procedure(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsProcedure(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# Procedure
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -60,6 +63,7 @@ def Parameters(self, j):
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
x = self._tab.Indirect(x)
from ada.comms.wsock.Parameter import Parameter
+
obj = Parameter()
obj.Init(self._tab.Bytes, x)
return obj
@@ -98,68 +102,90 @@ def Error(self):
return self._tab.String(o + self._tab.Pos)
return None
+
def ProcedureStart(builder):
builder.StartObject(8)
+
def Start(builder):
ProcedureStart(builder)
+
def ProcedureAddId(builder, id):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0)
+
def AddId(builder, id):
ProcedureAddId(builder, id)
+
def ProcedureAddName(builder, name):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+
def AddName(builder, name):
ProcedureAddName(builder, name)
+
def ProcedureAddDescription(builder, description):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(description), 0)
+
def AddDescription(builder, description):
ProcedureAddDescription(builder, description)
+
def ProcedureAddScriptFileLocation(builder, scriptFileLocation):
builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(scriptFileLocation), 0)
+
def AddScriptFileLocation(builder, scriptFileLocation):
ProcedureAddScriptFileLocation(builder, scriptFileLocation)
+
def ProcedureAddParameters(builder, parameters):
builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(parameters), 0)
+
def AddParameters(builder, parameters):
ProcedureAddParameters(builder, parameters)
+
def ProcedureStartParametersVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartParametersVector(builder, numElems):
return ProcedureStartParametersVector(builder, numElems)
+
def ProcedureAddInputIfcFilepath(builder, inputIfcFilepath):
builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inputIfcFilepath), 0)
+
def AddInputIfcFilepath(builder, inputIfcFilepath):
ProcedureAddInputIfcFilepath(builder, inputIfcFilepath)
+
def ProcedureAddOutputIfcFilepath(builder, outputIfcFilepath):
builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(outputIfcFilepath), 0)
+
def AddOutputIfcFilepath(builder, outputIfcFilepath):
ProcedureAddOutputIfcFilepath(builder, outputIfcFilepath)
+
def ProcedureAddError(builder, error):
builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(error), 0)
+
def AddError(builder, error):
ProcedureAddError(builder, error)
+
def ProcedureEnd(builder):
return builder.EndObject()
+
def End(builder):
return ProcedureEnd(builder)
diff --git a/src/ada/comms/wsock/ProcedureStore.py b/src/ada/comms/wsock/ProcedureStore.py
index 056a4f5a..c423624c 100644
--- a/src/ada/comms/wsock/ProcedureStore.py
+++ b/src/ada/comms/wsock/ProcedureStore.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class ProcedureStore(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsProcedureStore(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# ProcedureStore
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -32,6 +35,7 @@ def Procedures(self, j):
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
x = self._tab.Indirect(x)
from ada.comms.wsock.Procedure import Procedure
+
obj = Procedure()
obj.Init(self._tab.Bytes, x)
return obj
@@ -49,26 +53,34 @@ def ProceduresIsNone(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
return o == 0
+
def ProcedureStoreStart(builder):
builder.StartObject(1)
+
def Start(builder):
ProcedureStoreStart(builder)
+
def ProcedureStoreAddProcedures(builder, procedures):
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(procedures), 0)
+
def AddProcedures(builder, procedures):
ProcedureStoreAddProcedures(builder, procedures)
+
def ProcedureStoreStartProceduresVector(builder, numElems):
return builder.StartVector(4, numElems, 4)
+
def StartProceduresVector(builder, numElems):
return ProcedureStoreStartProceduresVector(builder, numElems)
+
def ProcedureStoreEnd(builder):
return builder.EndObject()
+
def End(builder):
return ProcedureStoreEnd(builder)
diff --git a/src/ada/comms/wsock/SceneOperation.py b/src/ada/comms/wsock/SceneOperation.py
index b56ca766..09391409 100644
--- a/src/ada/comms/wsock/SceneOperation.py
+++ b/src/ada/comms/wsock/SceneOperation.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class SceneOperation(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsSceneOperation(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# SceneOperation
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -37,31 +40,40 @@ def CameraParams(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from ada.comms.wsock.CameraParams import CameraParams
+
obj = CameraParams()
obj.Init(self._tab.Bytes, x)
return obj
return None
+
def SceneOperationStart(builder):
builder.StartObject(2)
+
def Start(builder):
SceneOperationStart(builder)
+
def SceneOperationAddOperation(builder, operation):
builder.PrependInt8Slot(0, operation, 0)
+
def AddOperation(builder, operation):
SceneOperationAddOperation(builder, operation)
+
def SceneOperationAddCameraParams(builder, cameraParams):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(cameraParams), 0)
+
def AddCameraParams(builder, cameraParams):
SceneOperationAddCameraParams(builder, cameraParams)
+
def SceneOperationEnd(builder):
return builder.EndObject()
+
def End(builder):
return SceneOperationEnd(builder)
diff --git a/src/ada/comms/wsock/SceneOperations.py b/src/ada/comms/wsock/SceneOperations.py
index 91369f0d..b07fc932 100644
--- a/src/ada/comms/wsock/SceneOperations.py
+++ b/src/ada/comms/wsock/SceneOperations.py
@@ -2,6 +2,7 @@
# namespace: wsock
+
class SceneOperations(object):
ADD = 0
REMOVE = 1
diff --git a/src/ada/comms/wsock/TargetType.py b/src/ada/comms/wsock/TargetType.py
index 2141d9e7..73e6ac6b 100644
--- a/src/ada/comms/wsock/TargetType.py
+++ b/src/ada/comms/wsock/TargetType.py
@@ -2,6 +2,7 @@
# namespace: wsock
+
class TargetType(object):
WEB = 0
LOCAL = 1
diff --git a/src/ada/comms/wsock/WebClient.py b/src/ada/comms/wsock/WebClient.py
index a3ccffd4..517a9e88 100644
--- a/src/ada/comms/wsock/WebClient.py
+++ b/src/ada/comms/wsock/WebClient.py
@@ -4,10 +4,12 @@
import flatbuffers
from flatbuffers.compat import import_numpy
+
np = import_numpy()
+
class WebClient(object):
- __slots__ = ['_tab']
+ __slots__ = ["_tab"]
@classmethod
def GetRootAs(cls, buf, offset=0):
@@ -20,6 +22,7 @@ def GetRootAs(cls, buf, offset=0):
def GetRootAsWebClient(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
+
# WebClient
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
@@ -52,38 +55,50 @@ def Port(self):
return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
return 0
+
def WebClientStart(builder):
builder.StartObject(4)
+
def Start(builder):
WebClientStart(builder)
+
def WebClientAddInstanceId(builder, instanceId):
builder.PrependInt32Slot(0, instanceId, 0)
+
def AddInstanceId(builder, instanceId):
WebClientAddInstanceId(builder, instanceId)
+
def WebClientAddName(builder, name):
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
+
def AddName(builder, name):
WebClientAddName(builder, name)
+
def WebClientAddAddress(builder, address):
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(address), 0)
+
def AddAddress(builder, address):
WebClientAddAddress(builder, address)
+
def WebClientAddPort(builder, port):
builder.PrependInt32Slot(3, port, 0)
+
def AddPort(builder, port):
WebClientAddPort(builder, port)
+
def WebClientEnd(builder):
return builder.EndObject()
+
def End(builder):
return WebClientEnd(builder)
diff --git a/src/ada/comms/wsock_client_sync.py b/src/ada/comms/wsock_client_sync.py
index c959593a..e07d344e 100644
--- a/src/ada/comms/wsock_client_sync.py
+++ b/src/ada/comms/wsock_client_sync.py
@@ -68,8 +68,8 @@ def update_scene(
):
"""Updates the scene with the given GLTF data."""
buffer = self._scene_update_prep(
- name, scene, purpose, scene_op, gltf_buffer_postprocessor, gltf_tree_postprocessor, target_id=target_id
- )
+ name, scene, purpose, scene_op, gltf_buffer_postprocessor, gltf_tree_postprocessor, target_id=target_id
+ )
self.websocket.send(buffer)
def update_file_server(self, file_object: FileObjectDC):
diff --git a/src/ada/fem/results/common.py b/src/ada/fem/results/common.py
index e728561a..b1b40d4a 100644
--- a/src/ada/fem/results/common.py
+++ b/src/ada/fem/results/common.py
@@ -12,12 +12,12 @@
from ada.core.guid import create_guid
from ada.fem.formats.general import FEATypes
from ada.fem.shapes.definitions import LineShapes, MassTypes, ShellShapes, SolidShapes
+from ada.visit.deprecated.websocket_server import send_to_viewer
from ada.visit.gltf.graph import GraphNode, GraphStore
from ada.visit.gltf.meshes import GroupReference, MergedMesh, MeshType
from ada.visit.renderer_manager import RenderParams
from ...comms.fb_model_gen import FilePurposeDC
-from ada.visit.deprecated.websocket_server import send_to_viewer
from .field_data import ElementFieldData, NodalFieldData, NodalFieldType
if TYPE_CHECKING:
@@ -410,7 +410,11 @@ def show(
params_override: RenderParams = None,
ping_timeout=1,
):
- from ada.visit.renderer_manager import RendererManager, RenderParams, FEARenderParams
+ from ada.visit.renderer_manager import (
+ FEARenderParams,
+ RendererManager,
+ RenderParams,
+ )
if renderer == "pygfx":
scene = self.to_trimesh(step, field, warp_field, warp_step, warp_scale, cfunc)
@@ -425,7 +429,7 @@ def show(
server_exe=server_exe,
server_args=server_args,
run_ws_in_thread=run_ws_in_thread,
- ping_timeout=ping_timeout
+ ping_timeout=ping_timeout,
)
fea_params = FEARenderParams(
@@ -442,7 +446,7 @@ def show(
stream_from_ifc_store=False,
add_ifc_backend=False,
purpose=purpose,
- fea_params=fea_params
+ fea_params=fea_params,
)
# Set up the renderer and WebSocket server
diff --git a/src/ada/visit/renderer_manager.py b/src/ada/visit/renderer_manager.py
index 382488b8..4abc5221 100644
--- a/src/ada/visit/renderer_manager.py
+++ b/src/ada/visit/renderer_manager.py
@@ -7,7 +7,13 @@
import numpy as np
import trimesh
-from ada.comms.fb_model_gen import FilePurposeDC, SceneOperationDC, SceneOperationsDC, FileObjectDC, FileTypeDC
+from ada.comms.fb_model_gen import (
+ FileObjectDC,
+ FilePurposeDC,
+ FileTypeDC,
+ SceneOperationDC,
+ SceneOperationsDC,
+)
if TYPE_CHECKING:
from IPython.display import HTML
@@ -49,6 +55,7 @@ def __post_init__(self):
if self.scene_operation is None:
self.scene_operation = SceneOperationDC(operation=SceneOperationsDC.REPLACE)
+
def scene_from_fem_results(self: FEAResult, params: RenderParams):
from trimesh.path.entities import Line
@@ -144,14 +151,14 @@ def scene_from_part_or_assembly(part_or_assembly: Part | Assembly, params: Rende
class RendererManager:
def __init__(
- self,
- renderer: Literal["react", "pygfx"],
- host: str = "localhost",
- port: int = 8765,
- server_exe: pathlib.Path = None,
- server_args: list[str] = None,
- run_ws_in_thread: bool = False,
- ping_timeout=1,
+ self,
+ renderer: Literal["react", "pygfx"],
+ host: str = "localhost",
+ port: int = 8765,
+ server_exe: pathlib.Path = None,
+ server_args: list[str] = None,
+ run_ws_in_thread: bool = False,
+ ping_timeout=1,
):
self.renderer = renderer
self.host = host
@@ -160,7 +167,7 @@ def __init__(
self.server_args = server_args
self.run_ws_in_thread = run_ws_in_thread
self._is_in_notebook = None
- self.ping_timeout=ping_timeout
+ self.ping_timeout = ping_timeout
def start_server(self):
"""Set up the WebSocket server and renderer."""
@@ -264,7 +271,10 @@ def render(self, obj: BackendGeom | Part | Assembly | FEAResult, params: RenderP
ifc_file = backend_file_dir / f"{obj.name}.ifc"
obj.to_ifc(ifc_file)
- wc.update_file_server(FileObjectDC(name=obj.name, file_type=FileTypeDC.IFC, purpose=FilePurposeDC.DESIGN, filepath=ifc_file))
-
+ wc.update_file_server(
+ FileObjectDC(
+ name=obj.name, file_type=FileTypeDC.IFC, purpose=FilePurposeDC.DESIGN, filepath=ifc_file
+ )
+ )
return renderer_instance
diff --git a/src/ada/visit/rendering/renderer_widget.py b/src/ada/visit/rendering/renderer_widget.py
index 0431928c..a644b77b 100644
--- a/src/ada/visit/rendering/renderer_widget.py
+++ b/src/ada/visit/rendering/renderer_widget.py
@@ -6,18 +6,16 @@
class WebSocketRenderer(widgets.DOMWidget):
def __init__(self, html_content: str, height: int = 500, unique_id: int = None, ws_port=None):
super().__init__()
- html_inject_str = ''
+ html_inject_str = ""
if unique_id is not None:
self.unique_id = unique_id
html_inject_str += f'\n'
if ws_port is not None:
self.ws_port = ws_port
- html_inject_str += f''
+ html_inject_str += f""
# Inject the unique ID into the HTML content
- self.html_content = html_content.replace(
- "", html_inject_str
- )
+ self.html_content = html_content.replace("", html_inject_str)
# Escape and embed the HTML in the srcdoc of the iframe
srcdoc = html.escape(self.html_content)
diff --git a/src/flatbuffers/deserializer_gen.py b/src/flatbuffers/deserializer_gen.py
index d4cabffd..5a15a4ff 100644
--- a/src/flatbuffers/deserializer_gen.py
+++ b/src/flatbuffers/deserializer_gen.py
@@ -14,7 +14,7 @@ def generate_deserialize_function(schema: FlatBufferSchema, table: TableDefiniti
for field in table.fields:
if field.field_type == "string":
deserialize_code += f" {field.name}=fb_obj.{make_camel_case(field.name)}().decode('utf-8') if fb_obj.{make_camel_case(field.name)}() is not None else None,\n"
- elif field.field_type in ["int", "byte", "ubyte", "bool"]:
+ elif field.field_type in ["int", "byte", "ubyte", "bool", "float"]:
deserialize_code += f" {field.name}=fb_obj.{make_camel_case(field.name)}(),\n"
elif field.field_type.startswith("["):
field_type_value = field.field_type[1:-1]
diff --git a/tests/full/frontend/conftest.py b/tests/full/frontend/conftest.py
index a0ffe64e..5e8978df 100644
--- a/tests/full/frontend/conftest.py
+++ b/tests/full/frontend/conftest.py
@@ -9,7 +9,7 @@
import pytest
import pytest_asyncio
-from ada.comms.fb_model_gen import MessageDC, CommandTypeDC, TargetTypeDC
+from ada.comms.fb_model_gen import CommandTypeDC, MessageDC, TargetTypeDC
from ada.comms.fb_serializer import serialize_message
from ada.comms.wsock_client_async import WebSocketClientAsync
from ada.comms.wsock_server import WebSocketAsyncServer, handle_partial_message