Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into enhancement/variants
Browse files Browse the repository at this point in the history
# Conflicts:
#	usd_qtpy/viewer.py
  • Loading branch information
BigRoy committed Dec 1, 2023
2 parents b4133df + dbf5c1b commit 850cb1e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 30 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ classifiers = [
dependencies = [
'importlib-metadata; python_version<"3.7"', "qtpy"
]
version = "0.0.1"
version = "0.0.2"

[project.optional-dependencies]
usd = ["usd-core"]
Expand Down
11 changes: 7 additions & 4 deletions usd_qtpy/references.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
from .prim_hierarchy_model import HierarchyModel


def get_applied_items(list_proxy):
"""Backwards compatible equivalent of `GetAppliedItems()`"""
return list_proxy.ApplyEditsToList([])


class PickPrimPath(QtWidgets.QDialog):

picked_path = QtCore.Signal(Sdf.Path)
Expand Down Expand Up @@ -282,10 +287,8 @@ def clear(layout):
references = []
payloads = []
for prim_spec in stack:
for reference in prim_spec.referenceList.GetAppliedItems():
references.append(reference)
for payload in prim_spec.payloadList.GetAppliedItems():
payloads.append(payload)
references.extend(get_applied_items(prim_spec.referenceList))
payloads.extend(get_applied_items(prim_spec.payloadList))

for reference in references:
self._add_widget(self.references_layout, item=reference)
Expand Down
3 changes: 3 additions & 0 deletions usd_qtpy/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring usd_qtpy version."""
__version__ = "0.0.2"
42 changes: 17 additions & 25 deletions usd_qtpy/viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,12 +302,9 @@ def set_rendermode(action):
group = QtWidgets.QActionGroup(menu)
group.setExclusive(True)
for mode in common.RenderModes:
action = QtWidgets.QAction(
mode,
checkable=True,
checked=self.model.viewSettings.renderMode == mode
)
shading_menu.addAction(action)
action = shading_menu.addAction(mode)
action.setCheckable(True)
action.setChecked(self.model.viewSettings.renderMode == mode)
group.addAction(action)
group.triggered.connect(set_rendermode)

Expand All @@ -322,20 +319,16 @@ def set_complexity(complexity):
self.model.viewSettings.complexity = complexity

action.triggered.connect(partial(set_complexity, complexity))

# TODO: Set view settings

purpose_menu = menu.addMenu("Display Purpose")
for purpose in ["Guide", "Proxy", "Render"]:
key = f"display{purpose}"
state = getattr(self.model.viewSettings, key) == purpose
action = QtWidgets.QAction(
purpose,
checkable=True,
checked=state)
purpose_menu.addAction(action)
action.triggered.connect(
partial(setattr, self.model.viewSettings, key, not state)
action = purpose_menu.addAction(purpose)
action.setCheckable(True)
action.setChecked(getattr(self.model.viewSettings, key))
action.toggled.connect(
partial(setattr, self.model.viewSettings, key)
)

# help(self.model.viewSettings)
Expand Down Expand Up @@ -373,14 +366,17 @@ def set_complexity(complexity):
camera_menu = menu.addMenu("Camera")
fit = camera_menu.addAction("Fit to view")
fit.triggered.connect(partial(self.view.resetCam, 2.0))
current_camera_prim = self.model.viewSettings.cameraPrim
free_cam = camera_menu.addAction("<Free camera>")
free_cam.setCheckable(True)
free_cam.setChecked(not current_camera_prim)
free_cam.triggered.connect(self.view.switchToFreeCamera)
for cam in cameras:
cam_path = str(cam.GetPath())

action = QtGui.QAction(cam_path, camera_menu)
action.setCheckable(True)
action.setChecked(self.model.viewSettings.cameraPrim == cam)
action.setChecked(current_camera_prim == cam)
action.triggered.connect(partial(self.set_camera, cam))

camera_menu.addAction(action)
Expand Down Expand Up @@ -413,16 +409,12 @@ def set_complexity(complexity):
# TODO: Expose renderer specific settings like USD view does?

aov_menu = menu.addMenu("Renderer AOV")
current_aov = None
current_aov = self.view.rendererAovName
for aov in self.view.GetRendererAovs():
action = aov_menu.addAction(
aov,
checkable=True,
checked=aov == current_aov
)
action.triggered.connect(
partial(self.view.SetRendererAov, aov)
)
action = aov_menu.addAction(aov)
action.setCheckable(True)
action.setChecked(aov == current_aov)
action.triggered.connect(partial(self.view.SetRendererAov, aov))
if not aov_menu.actions():
aov_menu.setEnabled(False)

Expand Down

0 comments on commit 850cb1e

Please sign in to comment.