class initialization problem

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Sep 18 02:52:06 EDT 2009


En Fri, 18 Sep 2009 03:12:46 -0300, rantingrick <rantingrick at gmail.com>  
escribió:

> I am creating geometry with OpenGL. When you create a face you must
> specify a winding order (clockwise or counter clockwise) this winding
> order controls which side of the face will be visible (since only one
> side of a face is rendered). So to create a two sided face you must
> create two faces that share the exact same points, BUT have opposite
> windings, hence the need to create a face with a "backface" attribute
> that contains the mirrored face instance. So now i can move the
> frontface around and i have a handy reference to the backface so i can
> make it follow!
>
>
> class Face:
>   def __init__(self, pts, nested=True):
>    if nested:
>      newpts = reverse(pts)
>      self.backface = Face(pts, nested=False)
>   def translate(self, v):
>     #offset front and back face by vector
>
> two sided faces, yippie!

I'd use a factory:

class Face:
   otherside = None
   def __init__(self, pts):
     self.pts = pts

class BiFace(Face):
   otherside = None

def BiFaceFactory(pts):
   front = BiFace(pts)
   back = BiFace(list(reversed(pts)))
   front.otherside = back
   back.otherside = front
   return front, back

> And so ends another long day of coding. This is addicting. Does
> anybody know of a good Coders Anonymous group, i think i may have an
> addiction. 16 hours of strait coding with 4hrs sleep last night and
> only stopping for one meal (lunch) still have not ate dinner yet!
> Gheez! ;)

Remember, there is a whole world out there!

-- 
Gabriel Genellina




More information about the Python-list mailing list