Hi Damon,
Thanks for the information, reading the help docs and it's a bit mind
melting for me atm...So let me post what I have, which works, just not
well:
###START PLUG
import sys
import maya.OpenMaya as OpenMaya
import maya.OpenMayaMPx as OpenMayaMPx
import maya.OpenMayaRender as OpenMayaRender
import maya.OpenMayaUI as OpenMayaUI
nodeTypeName = "atomSphereLocator"
nodeTypeId = OpenMaya.MTypeId(0x87079)
glRenderer = OpenMayaRender.MHardwareRenderer.theRenderer()
glFT = glRenderer.glFunctionTable()
import sys
import maya.OpenMaya as OpenMaya
import maya.OpenMayaMPx as OpenMayaMPx
import maya.OpenMayaRender as OpenMayaRender
import maya.OpenMayaUI as OpenMayaUI
nodeTypeName = "atomSphereLocator"
nodeTypeId = OpenMaya.MTypeId(0x87079)
glRenderer = OpenMayaRender.MHardwareRenderer.theRenderer()
glFT = glRenderer.glFunctionTable()
class AtomSphereLocator(OpenMayaMPx.MPxLocatorNode):
rInput = OpenMaya.MObject()
gInput = OpenMaya.MObject()
bInput = OpenMaya.MObject()
aInput = OpenMaya.MObject()
def __init__(self, scale):
OpenMayaMPx.MPxLocatorNode.__init__(self)
self.mf = scale
self.red = 0
self.green = 0
self.blue = 0
self.alpha = 1
def draw(self, view, path, style, status):
#procedure appele au
momment du "dessin" du locator
thisNode = self.thisMObject()
rPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.rInput)
gPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.gInput)
bPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.bInput)
aPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.aInput)
view.beginGL()
#fonctionne bien sans mais il semble que ce
soit necessaire pour eviter les plantages...
#store the current user setup colors
glFT.glPushAttrib(OpenMayaRender.MGL_CURRENT_BIT)
#enable the transparency
glFT.glEnable(OpenMayaRender.MGL_BLEND) #on active l'extension
#set the color and alpha, rgba
glFT.glColor4f(rPlug, self.green, self.blue, self.alpha)
#Change
color and add alpha
#top section
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#Top Mid
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( -0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( -0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#top lower
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
#Bottom Section
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#Bottom Mid
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#top lower
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glDisable(OpenMayaRender.MGL_BLEND)
glFT.glPopAttrib()
view.endGL()
def nodeCreator():
return OpenMayaMPx.asMPxPtr(AtomSphereLocator(1))
def nodeInitializer():
nAttr = OpenMaya.MFnNumericAttribute()
AtomSphereLocator.rInput = nAttr.create('rInput', 'rIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.gInput = nAttr.create('gInput', 'gIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.bInput = nAttr.create('bInput', 'bIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.aInput = nAttr.create('aInput', 'aIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.addAttribute(AtomSphereLocator.rInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.gInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.bInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.aInput)
return OpenMaya.MStatus.kSuccess
def initializePlugin(obj):
#procedure lance au moment de
l'initialisation du plugin
plugin = OpenMayaMPx.MFnPlugin(obj)
try:
plugin.registerNode(nodeTypeName, nodeTypeId, nodeCreator,
nodeInitializer, OpenMayaMPx.MPxNode.kLocatorNode)
except:
sys.stderr.write( "Failed to register node: %s" % nodeTypeName)
def uninitializePlugin(obj): #procedure
lance au moment de la
desactivation du plugin
plugin = OpenMayaMPx.MFnPlugin(obj)
try:
plugin.deregisterNode(nodeTypeId)
except:
sys.stderr.write( "Failed to deregister node: %s" %
nodeTypeName)
class AtomSphereLocator(OpenMayaMPx.MPxLocatorNode):
rInput = OpenMaya.MObject()
gInput = OpenMaya.MObject()
bInput = OpenMaya.MObject()
aInput = OpenMaya.MObject()
def __init__(self, scale):
OpenMayaMPx.MPxLocatorNode.__init__(self)
self.mf = scale
self.red = 0
self.green = 0
self.blue = 0
self.alpha = 1
def draw(self, view, path, style, status):
#procedure appele au
momment du "dessin" du locator
thisNode = self.thisMObject()
rPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.rInput)
gPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.gInput)
bPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.bInput)
aPlug = OpenMaya.MPlug(thisNode, AtomSphereLocator.aInput)
view.beginGL()
#fonctionne bien sans mais il semble que ce
soit necessaire pour eviter les plantages...
#store the current user setup colors
glFT.glPushAttrib(OpenMayaRender.MGL_CURRENT_BIT)
#enable the transparency
glFT.glEnable(OpenMayaRender.MGL_BLEND) #on active l'extension
#set the color and alpha, rgba
glFT.glColor4f(rPlug, self.green, self.blue, self.alpha)
#Change
color and add alpha
#top section
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, 1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#Top Mid
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( -0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( -0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.5 * self.mf, 0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, 0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#top lower
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.866 * self.mf, 0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, 0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
#Bottom Section
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -.433 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_TRIANGLES)
glFT.glVertex3f( 0.0 * self.mf, -1.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#Bottom Mid
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, -0.433 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.5 * self.mf, -0.866 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.25 * self.mf, -0.866 * self.mf, 0.433 *
self.mf )
glFT.glEnd()
#top lower
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, 0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, 0.866 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.866 * self.mf, -0.5 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 1.0 * self.mf, 0.0 * self.mf, 0.0 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glBegin(OpenMayaRender.MGL_QUADS)
glFT.glVertex3f( 0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glVertex3f( 0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.5 * self.mf, 0.0 * self.mf, -0.866 *
self.mf )
glFT.glVertex3f(-0.433 * self.mf, -0.5 * self.mf, -0.75 *
self.mf )
glFT.glEnd()
glFT.glDisable(OpenMayaRender.MGL_BLEND)
glFT.glPopAttrib()
view.endGL()
def nodeCreator():
return OpenMayaMPx.asMPxPtr(AtomSphereLocator(1))
def nodeInitializer():
nAttr = OpenMaya.MFnNumericAttribute()
AtomSphereLocator.rInput = nAttr.create('rInput', 'rIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.gInput = nAttr.create('gInput', 'gIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.bInput = nAttr.create('bInput', 'bIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.aInput = nAttr.create('aInput', 'aIn',
OpenMaya.MFnNumericData.kFloat, 1.0)
nAttr.setStorable(1)
nAttr.setWritable(1)
nAttr.setKeyable(1)
nAttr.setMin(0)
nAttr.setMax(1)
AtomSphereLocator.addAttribute(AtomSphereLocator.rInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.gInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.bInput)
AtomSphereLocator.addAttribute(AtomSphereLocator.aInput)
return OpenMaya.MStatus.kSuccess
def initializePlugin(obj):
#procedure lance au moment de
l'initialisation du plugin
plugin = OpenMayaMPx.MFnPlugin(obj)
try:
plugin.registerNode(nodeTypeName, nodeTypeId, nodeCreator,
nodeInitializer, OpenMayaMPx.MPxNode.kLocatorNode)
except:
sys.stderr.write( "Failed to register node: %s" % nodeTypeName)
def uninitializePlugin(obj): #procedure
lance au moment de la
desactivation du plugin
plugin = OpenMayaMPx.MFnPlugin(obj)
try:
plugin.deregisterNode(nodeTypeId)
except:
sys.stderr.write( "Failed to deregister node: %s" %
nodeTypeName)
####END PLUG
--
http://groups.google.com/group/python_inside_maya