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

Houdini: move houdini client code - Add Settings Category #536

Merged
Show file tree
Hide file tree
Changes from 5 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
25 changes: 24 additions & 1 deletion server_addon/houdini/client/ayon_houdini/api/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,14 @@
CreatedInstance,
AYON_INSTANCE_ID,
AVALON_INSTANCE_ID,
load
)
from ayon_core.lib import BoolDef
from .lib import imprint, read, lsattr, add_self_publish_button
import pyblish.api
MustafaJafar marked this conversation as resolved.
Show resolved Hide resolved


SETTINGS_CATEGORY = "houdini"


class Creator(LegacyCreator):
Expand Down Expand Up @@ -169,7 +174,7 @@ class HoudiniCreator(NewCreator, HoudiniCreatorBase):
settings_name = None
add_publish_button = False

settings_category = "houdini"
settings_category = SETTINGS_CATEGORY

def create(self, product_name, instance_data, pre_create_data):
try:
Expand Down Expand Up @@ -349,3 +354,21 @@ def apply_settings(self, project_settings):

for key, value in settings.items():
setattr(self, key, value)


class HoudiniLoader(load.LoaderPlugin):
"""Base class for most of the Houdini load plugins."""

settings_category = SETTINGS_CATEGORY


class HoudiniInstancePlugin(pyblish.api.InstancePlugin):
"""Base class for most of the Houdini instance publish plugins."""

settings_category = SETTINGS_CATEGORY


class HoudiniContextPlugin(pyblish.api.ContextPlugin):
"""Base class for most of the Houdini context publish plugins."""

settings_category = SETTINGS_CATEGORY
MustafaJafar marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

"""

from ayon_core.pipeline import load
from ayon_houdini.api import plugin


class SetFrameRangeLoader(load.LoaderPlugin):
class SetFrameRangeLoader(plugin.HoudiniLoader):
"""Set frame range excluding pre- and post-handles"""

product_types = {
Expand Down Expand Up @@ -42,7 +42,7 @@ def load(self, context, name, namespace, data):
hou.playbar.setPlaybackRange(start, end)


class SetFrameRangeWithHandlesLoader(load.LoaderPlugin):
class SetFrameRangeWithHandlesLoader(plugin.HoudiniLoader):
"""Set frame range including pre- and post-handles"""

product_types = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import os
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class AbcLoader(load.LoaderPlugin):
class AbcLoader(plugin.HoudiniLoader):
"""Load Alembic"""

product_types = {"model", "animation", "pointcache", "gpuCache"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@

import os
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class AbcArchiveLoader(load.LoaderPlugin):
class AbcArchiveLoader(plugin.HoudiniLoader):
"""Load Alembic as full geometry network hierarchy """

product_types = {"model", "animation", "pointcache", "gpuCache"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import os
import re

from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class AssLoader(load.LoaderPlugin):
class AssLoader(plugin.HoudiniLoader):
"""Load .ass with Arnold Procedural"""

product_types = {"ass"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
import os
import re

from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class BgeoLoader(load.LoaderPlugin):
class BgeoLoader(plugin.HoudiniLoader):
"""Load bgeo files to Houdini."""

label = "Load bgeo"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline

from ayon_houdini.api.lib import (
set_camera_resolution,
get_camera_from_container
Expand Down Expand Up @@ -84,7 +83,7 @@ def transfer_non_default_values(src, dest, ignore=None):
dest_parm.setFromParm(parm)


class CameraLoader(load.LoaderPlugin):
class CameraLoader(plugin.HoudiniLoader):
"""Load camera from an Alembic file"""

product_types = {"camera"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
"""Fbx Loader for houdini. """
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class FbxLoader(load.LoaderPlugin):
class FbxLoader(plugin.HoudiniLoader):
"""Load fbx files. """

label = "Load FBX"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import os
import re

from ayon_core.pipeline import load
from ayon_houdini.api import pipeline

from ayon_houdini.api import (
pipeline,
plugin
)
import hou


class FilePathLoader(load.LoaderPlugin):
class FilePathLoader(plugin.HoudiniLoader):
"""Load a managed filepath to a null node.

This is useful if for a particular workflow there is no existing loader
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
import os
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class HdaLoader(load.LoaderPlugin):
class HdaLoader(plugin.HoudiniLoader):
"""Load Houdini Digital Asset file."""

product_types = {"hda"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@
import re

from ayon_core.pipeline import (
load,
get_representation_path,
AVALON_CONTAINER_ID,
)
from ayon_houdini.api import lib, pipeline
from ayon_houdini.api import (
pipeline,
plugin,
lib
)

import hou

Expand Down Expand Up @@ -42,7 +45,7 @@ def get_image_avalon_container():
return image_container


class ImageLoader(load.LoaderPlugin):
class ImageLoader(plugin.HoudiniLoader):
"""Load images into COP2"""

product_types = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import os
import re
from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline
from ayon_core.pipeline.load import LoadError

import hou


class RedshiftProxyLoader(load.LoaderPlugin):
class RedshiftProxyLoader(plugin.HoudiniLoader):
"""Load Redshift Proxy"""

product_types = {"redshiftproxy"}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from ayon_core.pipeline import (
load,
get_representation_path,
AVALON_CONTAINER_ID,
)
from ayon_houdini.api import lib
from ayon_houdini.api import (
plugin,
lib
)


class USDSublayerLoader(load.LoaderPlugin):
class USDSublayerLoader(plugin.HoudiniLoader):
"""Sublayer USD file in Solaris"""

product_types = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from ayon_core.pipeline import (
load,
get_representation_path,
AVALON_CONTAINER_ID,
)
from ayon_houdini.api import lib
from ayon_houdini.api import (
plugin,
lib
)


class USDReferenceLoader(load.LoaderPlugin):
class USDReferenceLoader(plugin.HoudiniLoader):
"""Reference USD file in Solaris"""

product_types = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import os

from ayon_core.pipeline import load
from ayon_houdini.api import pipeline
from ayon_houdini.api import (
pipeline,
plugin
)


class SopUsdImportLoader(load.LoaderPlugin):
class SopUsdImportLoader(plugin.HoudiniLoader):
"""Load USD to SOPs via `usdimport`"""

label = "Load USD to SOPs"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import os
import re

from ayon_core.pipeline import (
load,
get_representation_path,
from ayon_core.pipeline import get_representation_path
from ayon_houdini.api import (
pipeline,
plugin
)
from ayon_houdini.api import pipeline


class VdbLoader(load.LoaderPlugin):
class VdbLoader(plugin.HoudiniLoader):
"""Load VDB"""

product_types = {"vdbcache"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import subprocess

from ayon_core.lib.vendor_bin_utils import find_executable
from ayon_core.pipeline import load
from ayon_houdini.api import plugin


class ShowInUsdview(load.LoaderPlugin):
class ShowInUsdview(plugin.HoudiniLoader):
"""Open USD file in usdview"""

label = "Show in usdview"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import pyblish.api
from ayon_houdini.api import plugin
import hou


class CollectInstanceActiveState(pyblish.api.InstancePlugin):
class CollectInstanceActiveState(plugin.HoudiniInstancePlugin):
"""Collect default active state for instance from its node bypass state.

This is done at the very end of the CollectorOrder so that any required
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import hou
import pyblish.api

from ayon_houdini.api import colorspace
from ayon_houdini.api import colorspace, plugin
from ayon_houdini.api.lib import (
evalParmNoFrame, get_color_management_preferences)


class CollectArnoldROPRenderProducts(pyblish.api.InstancePlugin):
class CollectArnoldROPRenderProducts(plugin.HoudiniInstancePlugin):
"""Collect Arnold ROP Render Products

Collects the instance.data["files"] for the render products.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
import pyblish.api
from ayon_core.lib import BoolDef
from ayon_core.pipeline import AYONPyblishPluginMixin
from ayon_houdini.api import plugin


class CollectAssetHandles(pyblish.api.InstancePlugin,
class CollectAssetHandles(plugin.HoudiniInstancePlugin,
AYONPyblishPluginMixin):
"""Apply folder handles.

Expand Down
Loading
Loading