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")
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
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
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
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
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
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")
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
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")
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
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"
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"
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"
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
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
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"
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")
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")
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")
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")
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
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")
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)
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
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()