Exemplo n.º 1
0
def constructWorldBox(data_box):
    box = VisusBoundingBox()

    scale_factor = 10.0 / (data_box[3] - data_box[0])

    tmp = 10.0 / (data_box[4] - data_box[1])
    if tmp < scale_factor:
        scale_factor = tmp

    tmp = 10.0 / (data_box[5] - data_box[2])
    if tmp < scale_factor:
        scale_factor = tmp

    for i in xrange(3):
        box[i] = -(data_box[i + 3] - data_box[i]) * scale_factor / 2.0
        box[i + 3] = +(data_box[i + 3] - data_box[i]) * scale_factor / 2.0

    return box
Exemplo n.º 2
0
def createData():
    global gBBox, gDataSet, adata

    import numpy
    from math import sqrt, pow
    from pyvisus.numpyconversion import VisusIncoreEncoder

    idim = 50
    jdim = 50
    kdim = 50

    data = []
    for i in xrange(idim * jdim * kdim):
        data.append(0)

    for i in xrange(idim):
        for j in xrange(jdim):
            for k in xrange(kdim):
                data[k + j * kdim + i * jdim * kdim] = sqrt(
                    pow(i - 25.0, 2) + pow(j - 25.0, 2) + pow(k - 25.0, 2))

    adata = numpy.array(data)

    encoder = VisusIncoreEncoder(idim, jdim, kdim, 1)
    encoder.domain([0, 0, 0], [1.0 * idim, 1.0 * jdim, 0.1 * kdim])
    encoder.field(adata)
    gDataSet = str(encoder)

    # Make the data source
    print "Opening dataset(%s)" % gDataSet
    data = VisusDataSourceFactory.make(gDataSet)
    if not data.isValid():
        raise RuntimeError("Loaded data is not valid")

    gSamples = data.samples()
    left = VectorDouble(3)
    right = VectorDouble(3)
    data.domainBoundingBox(left, right)

    gBBox = VisusBoundingBox()
    gBBox.set(left, right)

    return
Exemplo n.º 3
0
def createData(filename=None):
    global gBBox, gDataSet, adata

    if filename is None:
        import numpy
        from math import sqrt, pow
        from pyvisus.numpyconversion import VisusIncoreEncoder

        data = []
        for i in xrange(50 * 50 * 50):
            data.append(0)

        for i in xrange(50):
            for j in xrange(50):
                for k in xrange(50):
                    data[k + j * 50 + i * 50 * 50] = sqrt(
                        pow(i - 25.0, 2) + pow(j - 25.0, 2) + pow(k - 25.0, 2))

        adata = numpy.array(data)

        encoder = VisusIncoreEncoder(50, 50, 50)
        encoder.field(adata)
        gDataSet = str(encoder)
    else:
        gDataSet = "Idx:%s" % filename

    # Make the data source
    print "Opening dataset(%s)" % gDataSet
    data = VisusDataSourceFactory.make(gDataSet)
    if not data.isValid():
        raise RuntimeError("Loaded data is not valid")

    gSamples = data.samples()
    left = VectorDouble(3)
    right = VectorDouble(3)
    data.domainBoundingBox(left, right)

    gBBox = VisusBoundingBox()
    gBBox.set(left, right)

    return
Exemplo n.º 4
0
    glutDisplayFunc(display)
    glutReshapeFunc(reshape)
    glutMouseFunc(mouse)
    glutKeyboardFunc(keyboard)
    glutMotionFunc(motion)
    glutIdleFunc(idle)

    data = createData(func1, 0)
    gSamples = data.samples()

    left = VectorDouble(3)
    right = VectorDouble(3)
    data.domainBoundingBox(left, right)

    gBBox = VisusBoundingBox()
    gBBox.set(left, right)

    createData(func2, 1)

    box = constructWorldBox(gBBox)

    # Create the default scene graph
    #gRoot = VisusSceneNode.construct()
    gRoot = VisusGroup.construct()
    if not gRoot.setValue(gBBox):
        print "Error occurred setting bbox"
    gRoot.mapToWorldBox(box)
    gRoot.drawBoundingBox(True)
    gFocus = gRoot