Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scene #24

Merged
merged 2 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
4 changes: 3 additions & 1 deletion src/compas_model/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
__all__ = ["HOME", "DATA", "DOCS", "TEMP"]

__all_plugins__ = [
"compas_model.blender.scene",
# "compas_model.blender.scene",
"compas_model.rhino.scene",
"compas_model.scene"
# "compas_viewer.scene",
]
6 changes: 3 additions & 3 deletions src/compas_model/blender/scene/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
from compas.plugins import plugin
from compas.scene import register

from compas_model.elements import Beam
from .beamobject import BlenderBeamObject
from compas_model.elements import Block
from .beamobject import BlenderBlockObject


@plugin(category="factories", requires=["bpy"])
def register_scene_objects():
register(Beam, BlenderBeamObject, context="Blender")
register(Block, BlenderBlockObject, context="Blender")
print("Blender SceneObjects registered for compas_model.")


Expand Down
2 changes: 1 addition & 1 deletion src/compas_model/blender/scene/beamobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from compas_model.scene import ElementObject


class BlenderBeamObject(BlenderSceneObject, ElementObject):
class BlenderBlockObject(BlenderSceneObject, ElementObject):
def draw(self):
"""Draw the object representing the element."""
pass
29 changes: 25 additions & 4 deletions src/compas_model/rhino/scene/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,37 @@
from compas.plugins import plugin
from compas.scene import register

from compas_model.elements import Beam
from .beamobject import RhinoBeamObject
from compas_model.elements import Block
from .rhinoblockobject import RhinoBlockObject


@plugin(category="factories", requires=["Rhino"])
def register_scene_objects():
register(Beam, RhinoBeamObject, context="Rhino")
register(Block, RhinoBlockObject, context="Rhino")
print("Rhino SceneObjects registered for compas_model.")


__all__ = [
"RhinoBeamObject",
"RhinoBlockObject",
]

# """This package provides scene object plugins for visualising COMPAS objects in Jupyter Notebooks using three.
# When working in a notebook, :class:`compas.scene.SceneObject` will automatically use the corresponding PyThreeJS scene object for each COMPAS object type.

# """
# from compas.plugins import plugin
# from compas.scene import register

# from compas_model.elements import Block
# from .blockobject import RhinoBlockObject


# @plugin(category="factories", requires=["Rhino"])
# def register_scene_objects():
# register(Block, RhinoBlockObject, context="Rhino")
# print("____________________________Rhino SceneObjects registered for compas_model.______________________________________")


# __all__ = [
# "RhinoBlockObject",
# ]
24 changes: 24 additions & 0 deletions src/compas_model/rhino/scene/rhinoblockobject.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from compas_rhino.scene import RhinoSceneObject
from compas_model.scene import ElementObject

# from compas_rhino.utilities import transformation_to_rhino
# from compas_rhino.utilities import attributes
import scriptcontext as sc
from compas_rhino.conversions import mesh_to_rhino


class RhinoBlockObject(RhinoSceneObject, ElementObject):
def __init__(self, element, **kwargs):
super(RhinoBlockObject, self).__init__(element=element, **kwargs)

def draw(self):
"""Draw the object representing the element."""
print(
"_______________________Hello from RhinoBlockObject.draw()_______________________"
)
print(self.element.geometry)
mesh = mesh_to_rhino(self.element.geometry)
self._guid_mesh = sc.doc.Objects.AddMesh(mesh)
self._guids = []
self._guids.append(self._guid_mesh)
return self._guids
25 changes: 25 additions & 0 deletions src/compas_model/scene/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
from .elementobject import ElementObject
from .blockobject import BlockObject
from compas_model.elements import Block
from compas_model.elements import Element
from compas.plugins import plugin
from compas.scene import register


@plugin(category="factories")
def register_scene_objects():
print(
"____________________________SceneObjects registered for compas_model.______________________________________"
)
register(Element, ElementObject)
register(Block, BlockObject)


@plugin(category="factories", pluggable_name="register_scene_objects")
def register_scene_objects_base():
print(
"____________________________SceneObjects registered for compas_model.______________________________________"
)
register(Element, ElementObject)
register(Block, BlockObject)


__all__ = [
"ElementObject",
"BlockObject",
]
7 changes: 7 additions & 0 deletions src/compas_model/scene/blockobject.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from compas.scene import SceneObject


class BlockObject(SceneObject):
def __init__(self, element, **kwargs):
super(BlockObject, self).__init__(item=element, **kwargs)
self.element = element
4 changes: 2 additions & 2 deletions src/compas_model/scene/elementobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@


class ElementObject(SceneObject):
def __init__(self, element):
super(ElementObject, self).__init__(item=element)
def __init__(self, element, **kwargs):
super(ElementObject, self).__init__(item=element, **kwargs)
self.element = element
Loading