Ejemplo n.º 1
0
def setup_bitmap_test(nodes):
    if len(nodes) < 1:
        raise Exception("Bitmap test requires at least one node.")

    class result_object:
        pass

    result = result_object
    result.document = k3d.new_document()
    result.nodes = []

    for node in nodes:
        result.nodes.append(k3d.plugin.create(node, result.document))
        if len(result.nodes) > 1:
            k3d.property.connect(
                result.document,
                result.nodes[-2].get_property("output_bitmap"),
                result.nodes[-1].get_property("input_bitmap"))

    result.source = result.nodes[0]

    if len(nodes) == 3:
        result.modifier = result.nodes[1]

    if len(nodes) > 1:
        result.sink = result.nodes[-1]

    return result
Ejemplo n.º 2
0
def run_mesh_modifier_benchmark(meshModifierNodeName,
                                benchmarkMesh,
                                numberOfRuns=1,
                                properties={},
                                appendToFile=False,
                                firstInFile=False):
    document = k3d.new_document()

    profiler = k3d.plugin.create("PipelineProfiler", document)

    benchmarkMesh.set_document(document)

    inputNode = benchmarkMesh.get_mesh()

    selection = k3d.select_all()

    benchmarkNode = k3d.plugin.create(meshModifierNodeName, document)
    for (p, val) in properties.items():
        benchmarkNode.get_property(p).set_value(val)
    benchmarkNode.mesh_selection = selection

    profilingResults = k3dProfilingProcessor()
    for n in range(numberOfRuns):
        k3d.property.connect(document, inputNode.get_property("output_mesh"),
                             benchmarkNode.get_property("input_mesh"))
        benchmarkNode.output_mesh
        profilingResults.add_profiler_results_for_node(meshModifierNodeName,
                                                       profiler.records)

    description = '%d' % (benchmarkMesh.get_size_metric())
    profilingResults.output_and_save(meshModifierNodeName, description,
                                     appendToFile, firstInFile)
Ejemplo n.º 3
0
def setup_bitmap_test(nodes):
	if len(nodes) < 1:
		raise Exception("Bitmap test requires at least one node.")

	class result_object:
		pass

	result = result_object
	result.document = k3d.new_document()
	result.nodes = [] 

	for node in nodes:
		result.nodes.append(k3d.plugin.create(node, result.document))
		if len(result.nodes) > 1:
			k3d.property.connect(result.document, result.nodes[-2].get_property("output_bitmap"), result.nodes[-1].get_property("input_bitmap"))

	result.source = result.nodes[0]

	if len(nodes) == 3:
		result.modifier = result.nodes[1]

	if len(nodes) > 1:
		result.sink = result.nodes[-1]
	
	return result
Ejemplo n.º 4
0
def run_bitmap_modifier_benchmark(BitmapNodeName,
                                  imageDimensions,
                                  numberOfRuns=1,
                                  appendToFile=False,
                                  firstInFile=False):
    document = k3d.new_document()

    profiler = document.new_node("PipelineProfiler")
    inputSolid = document.new_node("BitmapSolid")
    inputSolid.width = imageDimensions[0]
    inputSolid.height = imageDimensions[1]

    benchmarkNode = document.new_node(BitmapNodeName)

    profilingResults = k3dProfilingProcessor()
    for n in range(numberOfRuns):
        document.set_dependency(benchmarkNode.get_property("input_bitmap"),
                                inputSolid.get_property("output_bitmap"))
        benchmarkNode.output_bitmap
        profilingResults.add_profiler_results_for_node(BitmapNodeName,
                                                       profiler.records)

    description = '%dx%d' % (imageDimensions[0], imageDimensions[1])

    profilingResults.output_and_save(BitmapNodeName, description, appendToFile,
                                     firstInFile)
Ejemplo n.º 5
0
def run_mesh_modifier_benchmark(meshModifierNodeName, benchmarkMesh, numberOfRuns = 1, properties = {}, appendToFile = False, firstInFile=False):
    document = k3d.new_document()
        
    profiler = k3d.plugin.create("PipelineProfiler", document)
    
    benchmarkMesh.set_document(document)
    
    inputNode = benchmarkMesh.get_mesh()
    
    selection = k3d.select_all()
    

    benchmarkNode = k3d.plugin.create(meshModifierNodeName, document)
    for (p, val) in properties.items():
        benchmarkNode.get_property(p).set_value(val)
    benchmarkNode.mesh_selection = selection
        
    profilingResults = k3dProfilingProcessor()
    for n in range(numberOfRuns):
        k3d.property.connect(document, inputNode.get_property("output_mesh"), benchmarkNode.get_property("input_mesh"))
        benchmarkNode.output_mesh
        profilingResults.add_profiler_results_for_node(meshModifierNodeName, profiler.records)
    
    description = '%d' % (benchmarkMesh.get_size_metric())
    profilingResults.output_and_save(meshModifierNodeName, description, appendToFile, firstInFile)
Ejemplo n.º 6
0
def setup_scalar_source_test(source_name):
    class result_object:
        pass

    result = result_object
    result.document = k3d.new_document()
    result.source = k3d.plugin.create(source_name, result.document)

    return result
Ejemplo n.º 7
0
def setup_scalar_source_test(source_name):
	class result_object:
		pass

	result = result_object
	result.document = k3d.new_document()
	result.source = k3d.plugin.create(source_name, result.document)

	return result
Ejemplo n.º 8
0
def setup_scalar_source_test(source_name):
    doc = k3d.new_document()

    source = doc.new_node(source_name)

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.source = source

    return result
Ejemplo n.º 9
0
def setup_mesh_modifier_test(source_name, modifier_name):
	class result_object:
		pass

	result = result_object
	result.document = k3d.new_document()
	result.source = k3d.plugin.create(source_name, result.document)
	result.add_index_attributes = k3d.plugin.create("AddIndexAttributes", result.document)
	result.modifier = k3d.plugin.create(modifier_name, result.document)
	k3d.property.connect(result.document, result.source.get_property("output_mesh"), result.add_index_attributes.get_property("input_mesh"))
	k3d.property.connect(result.document, result.add_index_attributes.get_property("output_mesh"), result.modifier.get_property("input_mesh"))

	return result
Ejemplo n.º 10
0
def setup_bitmap_reader_test(reader_name, source_file):
    doc = k3d.new_document()
    reader = doc.new_node(reader_name)
    reader.file = k3d.filesystem.generic_path(source_path() + "/bitmaps/" +
                                              source_file)

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.reader = reader

    return result
Ejemplo n.º 11
0
def setup_mesh_source_test(source_name):
    doc = k3d.new_document()

    source = doc.new_node(source_name)

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.source = source
    result.output_mesh = source.get_property("output_mesh").pipeline_value()

    return result
Ejemplo n.º 12
0
def setup_matrix_modifier_test(source_name, matrix):
    doc = k3d.new_document()

    source = doc.new_node(source_name)
    source.input_matrix = matrix

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.source = source

    return result
Ejemplo n.º 13
0
def setup_mesh_reader_test(reader_name, source_file):
    doc = k3d.new_document()
    reader = doc.new_node(reader_name)
    reader.file = k3d.filesystem.generic_path(source_path() + "/meshes/" +
                                              source_file)
    reader.center = False
    reader.scale_to_size = False

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.reader = reader

    return result
Ejemplo n.º 14
0
def run_mesh_source_benchmark(meshSourceNodeName, numberOfRuns = 1, properties = {}, appendToFile = False, firstInFile=False):
    document = k3d.new_document()
        
    profiler = k3d.plugin.create("PipelineProfiler", document)
    benchmarkNode = k3d.plugin.create(meshSourceNodeName, document)
    
    sizeMetric = 1
    for (p, val) in properties.items():
        benchmarkNode.get_property(p).set_value(val)
        sizeMetric *= val
   
    profilingResults = k3dProfilingProcessor()
    for n in range(numberOfRuns):
        benchmarkNode.output_mesh
        profilingResults.add_profiler_results_for_node(meshSourceNodeName, profiler.records)
    
    profilingResults.output_and_save(meshSourceNodeName, '%d' % (sizeMetric), appendToFile, firstInFile)
Ejemplo n.º 15
0
def setup_mesh_modifier_test(source_name, modifier_name):
    doc = k3d.new_document()

    source = doc.new_node(source_name)

    modifier = doc.new_node(modifier_name)
    doc.set_dependency(modifier.get_property("input_mesh"),
                       source.get_property("output_mesh"))

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.source = source
    result.modifier = modifier

    return result
Ejemplo n.º 16
0
def setup_mesh_modifier_test(source_name, modifier_name):
    class result_object:
        pass

    result = result_object
    result.document = k3d.new_document()
    result.source = k3d.plugin.create(source_name, result.document)
    result.add_index_attributes = k3d.plugin.create("AddIndexAttributes",
                                                    result.document)
    result.modifier = k3d.plugin.create(modifier_name, result.document)
    k3d.property.connect(
        result.document, result.source.get_property("output_mesh"),
        result.add_index_attributes.get_property("input_mesh"))
    k3d.property.connect(
        result.document,
        result.add_index_attributes.get_property("output_mesh"),
        result.modifier.get_property("input_mesh"))

    return result
Ejemplo n.º 17
0
def setup_mesh_modifier_image_test(source_name, modifier_name):
    doc = k3d.new_document()

    axes = doc.new_node("Axes")
    axes.xyplane = False

    painter = create_default_painter(doc)

    source = doc.new_node(source_name)

    modifier = doc.new_node(modifier_name)
    doc.set_dependency(modifier.get_property("input_mesh"),
                       source.get_property("output_mesh"))

    mesh_instance = doc.new_node("MeshInstance")
    mesh_instance.gl_painter = painter
    doc.set_dependency(mesh_instance.get_property("input_mesh"),
                       modifier.get_property("output_mesh"))

    camera = create_camera(doc)
    render_engine = create_opengl_engine(doc)

    camera_to_bitmap = doc.new_node("CameraToBitmap")
    camera_to_bitmap.camera = camera
    camera_to_bitmap.render_engine = render_engine

    class result_object:
        pass

    result = result_object
    result.document = doc
    result.axes = axes
    result.painter = painter
    result.source = source
    result.modifier = modifier
    result.mesh_instance = mesh_instance
    result.camera = camera
    result.render_engine = render_engine
    result.camera_to_bitmap = camera_to_bitmap

    return result
Ejemplo n.º 18
0
def run_mesh_source_benchmark(meshSourceNodeName,
                              numberOfRuns=1,
                              properties={},
                              appendToFile=False,
                              firstInFile=False):
    document = k3d.new_document()

    profiler = k3d.plugin.create("PipelineProfiler", document)
    benchmarkNode = k3d.plugin.create(meshSourceNodeName, document)

    sizeMetric = 1
    for (p, val) in properties.items():
        benchmarkNode.get_property(p).set_value(val)
        sizeMetric *= val

    profilingResults = k3dProfilingProcessor()
    for n in range(numberOfRuns):
        benchmarkNode.output_mesh
        profilingResults.add_profiler_results_for_node(meshSourceNodeName,
                                                       profiler.records)

    profilingResults.output_and_save(meshSourceNodeName, '%d' % (sizeMetric),
                                     appendToFile, firstInFile)
Ejemplo n.º 19
0
#python

# This script recreates a "normal" environment that allows us to perform automated
# regression-testing on our demo scripts.

import k3d

context.document = k3d.new_document()

Ejemplo n.º 20
0
def bitmap_modifier_benchmark(BitmapModifier):
	sys.stdout.write("""<DartMeasurement name="Timing" type="text/html"><![CDATA[\n""")
	sys.stdout.write("""<table>\n""")

	sizes = [(640,480), (800,600), (1024,768), (1280,1024), (1600, 1200)]
	runs = 3

	first_row = True
	for size in sizes:
		for run in range(runs):
			document = k3d.new_document()

			profiler = k3d.plugin.create("PipelineProfiler", document)

			image = k3d.plugin.create("BitmapSolid", document)
			image.width = size[0];
			image.height = size[1];

			modifier = k3d.plugin.create(BitmapModifier, document)

			k3d.property.connect(document, image.get_property("output_bitmap"), modifier.get_property("input_bitmap"))
			modifier.output_bitmap

			if first_row:
				first_row = False

				sys.stdout.write("""<tr>""")
				sys.stdout.write("""<th>Width</th>""")
				sys.stdout.write("""<th>Height</th>""")
				sys.stdout.write("""<th>Run</th>""")

				records = profiler.records
				for node in records:
					if node != modifier:
						continue

					measurements = records[node]
					for measurement in measurements:
						sys.stdout.write("""<th>""")
						sys.stdout.write(measurement)
						sys.stdout.write("""</th>""")

				sys.stdout.write("""</tr>\n""")

			sys.stdout.write("""<tr>""")
			sys.stdout.write("""<td>""" + str(size[0]) + """</td>""")
			sys.stdout.write("""<td>""" + str(size[1]) + """</td>""")
			sys.stdout.write("""<td>""" + str(run) + """</td>""")

			records = profiler.records
			for node in records:
				if node != modifier:
					continue

				measurements = records[node]
				for measurement in measurements:
					sys.stdout.write("""<td>""")
					sys.stdout.write(str(measurements[measurement]))
					sys.stdout.write("""</td>""")

			sys.stdout.write("""</tr>\n""")

			k3d.close_document(document)

	sys.stdout.write("""</table>\n""")
	sys.stdout.write("""]]></DartMeasurement>\n""")
Ejemplo n.º 21
0
def bitmap_modifier_benchmark(BitmapModifier):
    sys.stdout.write(
        """<DartMeasurement name="Timing" type="text/html"><![CDATA[\n""")
    sys.stdout.write("""<table>\n""")

    sizes = [(640, 480), (800, 600), (1024, 768), (1280, 1024), (1600, 1200)]
    runs = 3

    first_row = True
    for size in sizes:
        for run in range(runs):
            document = k3d.new_document()

            profiler = k3d.plugin.create("PipelineProfiler", document)

            image = k3d.plugin.create("BitmapSolid", document)
            image.width = size[0]
            image.height = size[1]

            modifier = k3d.plugin.create(BitmapModifier, document)

            k3d.property.connect(document, image.get_property("output_bitmap"),
                                 modifier.get_property("input_bitmap"))
            modifier.output_bitmap

            if first_row:
                first_row = False

                sys.stdout.write("""<tr>""")
                sys.stdout.write("""<th>Width</th>""")
                sys.stdout.write("""<th>Height</th>""")
                sys.stdout.write("""<th>Run</th>""")

                records = profiler.records
                for node in records:
                    if node != modifier:
                        continue

                    measurements = records[node]
                    for measurement in measurements:
                        sys.stdout.write("""<th>""")
                        sys.stdout.write(measurement)
                        sys.stdout.write("""</th>""")

                sys.stdout.write("""</tr>\n""")

            sys.stdout.write("""<tr>""")
            sys.stdout.write("""<td>""" + str(size[0]) + """</td>""")
            sys.stdout.write("""<td>""" + str(size[1]) + """</td>""")
            sys.stdout.write("""<td>""" + str(run) + """</td>""")

            records = profiler.records
            for node in records:
                if node != modifier:
                    continue

                measurements = records[node]
                for measurement in measurements:
                    sys.stdout.write("""<td>""")
                    sys.stdout.write(str(measurements[measurement]))
                    sys.stdout.write("""</td>""")

            sys.stdout.write("""</tr>\n""")

            k3d.close_document(document)

    sys.stdout.write("""</table>\n""")
    sys.stdout.write("""]]></DartMeasurement>\n""")
#python

import k3d

document = k3d.new_document()

pointToVector = k3d.plugin.create("PointToVector", document)

vector = k3d.vector3(1, 2, 3)
point = k3d.point3(1, 2, 3)
pointToVector.point = point


if pointToVector.vector != vector:
  raise Exception("Incorrect convertion: pointToVector.vector = " + str(pointToVector.vector) 
    + "; point = " + str(point))
Ejemplo n.º 23
0
#python

import k3d
import testing

document = k3d.new_document()

setup = testing.setup_mesh_reader_test("PLYMeshReader",
                                       "mesh.modifier.PGPRemesh.torus.ply")

modifier = setup.document.new_node("PGPRemesh")
modifier.use_smooth = True
modifier.steps = 15
modifier.h = 1000
modifier.omega = 10
modifier.div = 4
modifier.triangulate = True
document.set_dependency(modifier.get_property("input_mesh"),
                        setup.reader.get_property("output_mesh"))

#print "source output: " + repr(source.output_mesh)
#print "triangles output: " + repr(triangles.output_mesh)
#print "modifier output: " + repr(modifier.output_mesh)

testing.mesh_comparison_to_reference(document,
                                     modifier.get_property("output_mesh"),
                                     "mesh.modifier.PGPRemesh.torus", 1)
Ejemplo n.º 24
0
#python

import k3d
doc = k3d.new_document();