Usage Examples#

Convert USDRT Types to USD API Types#

from omni.kit.property.adapter.fabric import convert_usdrt_to_usd
import usdrt
from pxr import Gf, Sdf

# Create some USDRT data types that need conversion
stage = usdrt.Usd.Stage.CreateInMemory("test_stage")
prim = stage.DefinePrim("/TestPrim", "Cube")

# Convert USDRT vector to USD vector
usdrt_vec3f = usdrt.Gf.Vec3f(1.0, 2.0, 3.0)
usd_vec3f = convert_usdrt_to_usd(usdrt_vec3f)
print(f"Converted Vec3f: {usd_vec3f}")  # Output: Gf.Vec3f

# Convert USDRT matrix to USD matrix
usdrt_matrix = usdrt.Gf.Matrix4d()
usd_matrix = convert_usdrt_to_usd(usdrt_matrix)
print(f"Converted Matrix4d: {usd_matrix}")  # Output: Gf.Matrix4d

# Convert USDRT path to USD path
usdrt_path = usdrt.Sdf.Path("/TestPrim")
usd_path = convert_usdrt_to_usd(usdrt_path)
print(f"Converted Path: {usd_path}")  # Output: Sdf.Path

# Convert lists with USDRT types
usdrt_list = [usdrt.Gf.Vec3f(1, 0, 0), usdrt.Gf.Vec3f(0, 1, 0)]
usd_list = convert_usdrt_to_usd(usdrt_list)
print(f"Converted list: {usd_list}")  # Output: list of Gf.Vec3f objects

# Handle None values and unsupported types
none_value = convert_usdrt_to_usd(None)
print(f"None remains: {none_value}")  # Output: None

# Unsupported types are returned unchanged
string_value = convert_usdrt_to_usd("test_string")
print(f"String unchanged: {string_value}")  # Output: "test_string"