コード例 #1
0
ファイル: hda_params_getset.py プロジェクト: maajor/pyhapi
def main():
    """Main
    """
    logging.basicConfig(level=logging.INFO)
    session = ph.HSessionManager.get_or_create_default_session()

    #load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")

    #Query node's parameters
    logging.info("Node has parameter count: {0}".format(len(asset_node.get_param_names())))
    for param in asset_node.get_visible_params():
        logging.info("Query param: {0} has value: {1}".format(param.get_name(), param.get_value()))

    #Set node's parameters
    asset_node.set_param_value("seed", 1.0)
    asset_node.set_param_value("rop_geometry1_sopoutput", "$HIP/spaceship.obj")

    #Query node's parameter after set
    logging.info("Param: seed has value {0}".format(asset_node.get_param_value("seed")))
    logging.info("Param: rop_geometry1_sopoutput has value {0}".\
        format(asset_node.get_param_value("rop_geometry1_sopoutput")))

    #Press button
    asset_node.press_button("rop_geometry1_execute", status_report_interval=1.0)

    session.save_hip("spaceship.hip")
コード例 #2
0
def test_set_param_vec4(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")
    asset_node.set_param_value("vec4", [0.4, 0.5, 0.6, 0.7])
    assert pytest.approx(asset_node.get_param_value("vec4")[3]) == 0.7
コード例 #3
0
def test_set_param_color(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")
    asset_node.set_param_value("color", [0.3, 0.4, 0.5])
    assert pytest.approx(asset_node.get_param_value("color")[1]) == 0.4
コード例 #4
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_child_nodes(init_session):
    """Test get child nodes
    """
    hda_asset = ph.HAsset(init_session, "hda/FourShapes.hda")
    asset_node = hda_asset.instantiate(node_name="Processor").cook()
    child_nodes = asset_node.get_child_nodes()
    assert len(child_nodes) == 4
コード例 #5
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_set_param_int(init_session):
    """Test set int param
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    asset_node.set_param_value("display", 0)
    assert asset_node.get_param_value("display") == 0
コード例 #6
0
def test_set_param_intvec3(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")
    asset_node.set_param_value("intvec3", [1, 1, 1])
    assert asset_node.get_param_value("intvec3")[2] == 1
コード例 #7
0
def main():
    """Main
    """
    session = ph.HSessionManager.get_or_create_default_session()

    #load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/FourShapes.hda")
    asset_node = hda_asset.instantiate(node_name="Processor").cook()
    log_childnodes(asset_node)

    #create a sop node, set input
    another_box = ph.HNode(session,
                           "geo",
                           "ProgrammaticBox",
                           parent_node=asset_node)
    input_node = another_box\
      .connect_node_input(asset_node.get_child_nodes()[0])\
      .cook()\
      .get_node_input(0)
    print("ProgrammaticBox's input node is {0}".format(input_node.name))
    log_childnodes(asset_node)

    #delete sop node
    another_box\
      .disconnect_node_input(0)\
      .delete()
    log_childnodes(asset_node)

    session.save_hip("modifiedScene.hip")
コード例 #8
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_set_param_float(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    asset_node.set_param_value("seed", 1.23)
    assert pytest.approx(asset_node.get_param_value("seed")) == 1.23
コード例 #9
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_get_param_string(init_session):
    """Test get string param
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    assert asset_node.get_param_value("rop_geometry1_sopoutput").endswith(
        "prp_spaceship_001.bgeo")
コード例 #10
0
def test_set_param_toggle(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")
    asset_node.set_param_value("toggle", True)
    assert asset_node.get_param_value("toggle") == True
コード例 #11
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_set_param_string(init_session):
    """Test set string param
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    asset_node.set_param_value("rop_geometry1_sopoutput", "test_geo.obj")
    assert asset_node.get_param_value(
        "rop_geometry1_sopoutput") == "test_geo.obj"
コード例 #12
0
def test_get_node_geo_stringattrib(init_session):
    """Test get node geo
    """
    hda_asset = ph.HAsset(init_session, "hda/string_attrib.hda")
    asset_node = hda_asset.instantiate(node_name="TestObject").cook()
    asset_geos = asset_node.get_display_geos()
    debugstr = asset_geos[0].get_attrib_data(ph.AttributeOwner.POINT, "debug")
    assert debugstr[3, 0] == "debug3"
コード例 #13
0
def test_set_param_strings(init_session):
    """Test set float param
    """
    hda_asset = ph.HAsset(init_session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")
    asset_node.set_param_value("strings5",
                               ["str0", "str1", "str2", "str3", "str4"])
    assert asset_node.get_param_value("strings5")[2] == "str2"
コード例 #14
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_get_node_geo_curve(init_session):
    """Test get node geo curve
    """
    hda_asset = ph.HAsset(init_session, "hda/nurbs_curve.hda")
    asset_node = hda_asset.instantiate(node_name="Curve").cook()
    asset_geos = asset_node.get_display_geos()
    _ps = asset_geos[0].get_attrib_data(ph.AttributeOwner.POINT, "P")
    _x, _y = _ps.shape
    assert _x == 32 and _y == 3
コード例 #15
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_get_node_geo_mesh(init_session):
    """Test get node geo
    """
    hda_asset = ph.HAsset(init_session, "hda/FourShapes.hda")
    asset_node = hda_asset.instantiate(node_name="TestObject").cook()
    asset_geos = asset_node.get_display_geos()
    _ps = asset_geos[0].get_attrib_data(ph.AttributeOwner.POINT, "P")
    _x, _y = _ps.shape
    assert _x == 8 and _y == 3
コード例 #16
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_get_node_geo_heightfield(init_session):
    """Test get node geo
    """
    hda_asset = ph.HAsset(init_session, "hda/heightfield_test.hda")
    asset_node = hda_asset.instantiate(node_name="HF").cook()

    #get node's all display geo, print volume's data shape and name
    all_geos = asset_node.get_display_geos()
    _vol = all_geos[0]
    _x, _y, _z = _vol.volume.shape
    assert _x == 500 and _y == 500 and _z == 1 \
        and _vol.volume_name == "height"
コード例 #17
0
def main():
    """Main
    """
    session = ph.HSessionManager.get_or_create_default_session()

    # load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/FourShapes.hda")
    asset_node = hda_asset.instantiate(node_name="TestObject").cook()
    asset_geos = asset_node.get_display_geos()

    for geo in asset_geos:
        print("Geo {0} has attribute {1}".format(geo, geo.get_attrib_names()))

    print(asset_geos[0].get_attrib_data(ph.AttributeOwner.POINT, "P"))

    session.save_hip("modifiedScene2.hip")
コード例 #18
0
def main():
    """Main
    """
    session = ph.HSessionManager.get_or_create_default_session()

    #load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/heightfield_test.hda")
    asset_node = hda_asset.instantiate(node_name="HF").cook()

    #get node's all display geo, print volume's data shape and name
    all_geos = asset_node.get_display_geos()
    for geo in all_geos:
        if isinstance(geo, ph.HGeoHeightfield):
            print(geo.volume.shape)
            print(geo.volume_name)

    session.save_hip("modifiedScene.hip")
コード例 #19
0
def main():
    """Main
    """
    session = ph.HSessionManager.get_or_create_default_session()

    #load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/nurbs_curve.hda")
    asset_node = hda_asset.instantiate(node_name="Curve").cook()

    #get node's all display geo, print curveinfo and P
    all_geos = asset_node.get_display_geos()
    for geo in all_geos:
        print(geo.get_attrib_data(ph.AttributeOwner.POINT, "P"))
        if isinstance(geo, ph.HGeoCurve):
            print(geo.curve_info)

    session.save_hip("modifiedScene.hip")
コード例 #20
0
ファイル: hparms_getset.py プロジェクト: maajor/pyhapi
def main():
    """Main
    """
    logging.basicConfig(level=logging.INFO)
    session = ph.HSessionManager.get_or_create_default_session()

    #load hda asset and instantiate
    hda_asset = ph.HAsset(session, "hda/dummy_params.hda")
    asset_node = hda_asset.instantiate(node_name="params")

    #Query node's parameters
    logging.info("Node has parameter count: {0}".format(
        len(asset_node.get_param_names())))

    print_all_params(asset_node)

    for parm in asset_node.get_visible_params():
        if isinstance(parm, ph.HParmChoice):
            parm.set_value(index=1)
        elif isinstance(parm, ph.HParmInt):
            parm.set_value(value=3)
        elif isinstance(parm, ph.HParmFloat):
            parm.set_value(value=4.0)
        elif isinstance(parm, ph.HParmString):
            #asset_node.set_param_value(parm.name, "hi")
            parm.set_value(value="hi")

    asset_node.set_param_value("intvec3", [1, 1, 1])
    asset_node.set_param_value("vec4", [0.5, 0.6, 0.7, 0.8])
    asset_node.set_param_value("color", [0.3, 0.4, 0.5])
    asset_node.set_param_value("toggle", True)
    asset_node.set_param_value("strings5",
                               ["str0", "str1", "str2", "str3", "str4"])
    asset_node.press_button("button")

    print_all_params(asset_node)

    session.save_hip("debug.hip")
コード例 #21
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_init_hasset(init_session):
    """Test instantiate HDA asset
    """
    hda_asset = ph.HAsset(init_session, "hda/FourShapes.hda")
    asset_node = hda_asset.instantiate(node_name="Processor").cook()
    assert asset_node is not None
コード例 #22
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
async def test_press_button_async(init_session):
    """Test press button async
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    await asset_node.press_button_async("rop_geometry1_execute")
コード例 #23
0
async def session_task(session: ph.HSession, index1, index2):
    print("execute {0} - {1}".format(index1, index2))
    hda_asset = ph.HAsset(session, "hda/save_cube.hda")
    asset_node = hda_asset.instantiate(node_name="cube")
    asset_node.set_param_value("filename", "{0}-{1}".format(index1, index2))
    await asset_node.press_button_async("execute", status_report_interval=0.1)
コード例 #24
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
def test_get_params_len(init_session):
    """Test get param
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    assert len(asset_node.get_param_names()) == 96
コード例 #25
0
ファイル: test_nodes.py プロジェクト: portalmk2/pyhapi
async def test_cook_async(init_session):
    """Test cook async
    """
    hda_asset = ph.HAsset(init_session, "hda/SideFX_spaceship.otl")
    asset_node = hda_asset.instantiate(node_name="Spaceship")
    await asset_node.cook_async()