Hi,

I try to display the surface of sphere which is cut in two and I would like 
that the two hemispheres are independent. 

For example, I would like to be able to change the color of one half of the 
sphere.

But when I try to do that I change the color of two hemispheres : 

##############################
# Code
##############################

import numpy as np

##############################
# Define the sphere cut in two
##############################

xdim, ydim, zdim = 50, 50, 50
vx, vy, vz = 1., 1., 1.
R = 25
cx = 25
cy = 25
cz = 25

data = np.zeros([xdim, ydim, zdim],np.uint8)

for i in xrange(xdim):
    for j in xrange(ydim):
        for k in xrange(zdim):
            if (i * vx - cx)**2 + (j * vy - cy)**2 + (k * vz - cz)**2 < (R * R) 
:
                data[i,j,k] = 1

data[:,:,24:26] = 0

##########################################################
# Using of "Tvtk segmentation example" from mayavi 
# to display the sphere
##########################################################

from enthought.mayavi import mlab
from enthought.tvtk.api import tvtk

fig = mlab.figure(bgcolor=(0, 0, 0), size=(400, 500))
fig.scene.disable_render = True

src = mlab.pipeline.scalar_field(data)
src.update_image_data = True

contour = mlab.pipeline.contour(src, )
#contour.filter.contours = [1,]
contour.filter.number_of_contours = 2

#connect_ = tvtk.PolyDataConnectivityFilter(extraction_mode=4)
connect_ = tvtk.PolyDataConnectivityFilter(extraction_mode=5)

connect = mlab.pipeline.user_defined(contour, filter=connect_)

surf = mlab.pipeline.surface(connect,color=(0.9, 0.72, 0.62))

###########################################################
# Using of the "on_mouse_pick" method of the scene 
# to change the color
##########################################################
def picker_callback(picker_obj):
    print  picker_obj.mapper_position
    print 'try to change the color'
    picker_obj.actor.property.color = (1,0,0)

fig.on_mouse_pick(picker_callback,type='cell')


Is there a way to do that ? 
What is wrong with my implementation ?

Thanks for your help.

Eric 



------------------------------------------------------------------------------
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
_______________________________________________
MayaVi-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mayavi-users

Reply via email to