예제 #1
0
def duplicate_node_object(original_node: hg.Node, name):
    node = hg.Node(name)
    trans = hg.Transform()
    node.AddComponent(trans)
    obj = hg.Object()
    obj.SetGeometry(original_node.GetObject().GetGeometry())
    node.AddComponent(obj)
    return node
예제 #2
0
def create_box(pos = hg.Vector3(), rot = hg.Vector3(), width = 1.0, height = 1.0):
	node = hg.Node()
	object = hg.Object()
	transform = hg.Transform()
	transform.SetPosition(pos + hg.Vector3(0, height * 0.5, 0))
	transform.SetRotation(rot)
	node.AddComponent(transform)
	object.SetGeometry(render_system.CreateGeometry(hg.CreateCube(width, height, width)))
	node.AddComponent(object)
	return node
예제 #3
0
def create_wall(pos = hg.Vector3.Zero, rot = hg.Vector3.Zero, width = 1.0, length = 1.0, material_path = "material_diffuse_color.mat", name="dummy"):
	""" generic function to create a wall """
	node = hg.Node()
	transform = hg.Transform()
	transform.SetPosition(pos)
	transform.SetRotation(rot)
	node.AddComponent(transform)
	object = hg.Object()
	object.SetGeometry(render_system.CreateGeometry(hg.CreatePlane(width, length, 1, material_path, name)))
	node.AddComponent(object)
	return node
예제 #4
0
def load_object(plus, geometry_file_name, name, duplicate_material=False):
    renderSystem = plus.GetRenderSystem()
    node = hg.Node(name)
    trans = hg.Transform()
    node.AddComponent(trans)
    obj = hg.Object()
    geo = hg.Geometry()
    hg.LoadGeometry(geo, geometry_file_name)
    if geo is not None:
        geo = renderSystem.CreateGeometry(geo, False)
        if duplicate_material:
            material = geo.GetMaterial(0)
            material = material.Clone()
            geo.SetMaterial(0, material)
        obj.SetGeometry(geo)
        node.AddComponent(obj)
    return node, geo