def __init__(self,World, render,base,loader):
        BaseModel3D.__init__(self,World, render,base,loader)
        self.isEarthRotate = False

        #Load Earth
        self.orbit_root_earth = render.attachNewNode('orbit_root_earth')
        self.earth = loader.loadModel("models/planet_sphere")
        self.earth_tex = loader.loadTexture("models/earth_1k_tex.jpg")
        self.earth.setTexture(self.earth_tex, 1)
        self.earth.reparentTo(self.orbit_root_earth)
        self.earth.setScale(1)
        self.earth.setPos( 30, 20, 1)

        self.earthCNode = CollisionNode('earth')
        self.earthCNode.addSolid(CollisionSphere(0, 0,0.10, 1.1))
        self.earthC = self.earth.attachNewNode(self.earthCNode)
        base.cTrav.addCollider(self.earthC, self.World.pusher)
        self.World.pusher.addCollider(self.earthC, self.earth, base.drive.node())
        self.day_period_earth = self.earth.hprInterval((60/365.0)*5, Vec3(360, 0, 0))
    def __init__(self,World, render,base,loader):
        BaseModel3D.__init__(self,World, render,base,loader)
        self.isVenusRotate = False

        #Load Venus
        self.orbit_root_venus = render.attachNewNode('orbit_root_venus')
        self.venus = loader.loadModel("models/planet_sphere")
        self.venus_tex = loader.loadTexture("models/venus_1k_tex.jpg")
        self.venus.setTexture(self.venus_tex, 1)
        self.venus.reparentTo(self.orbit_root_venus)
        self.venus.setPos( 10, -20, .8)
        self.venus.setScale(0.923 * 0.6)

        self.venusCNode = CollisionNode('venus')
        self.venusCNode.addSolid(CollisionSphere(0, 0, 0.01, 1.5))
        self.venusC = self.venus.attachNewNode(self.venusCNode)
        base.cTrav.addCollider(self.venusC, self.World.pusher)
        self.World.pusher.addCollider(self.venusC, self.venus, base.drive.node())

        self.day_period_venus = self.venus.hprInterval((60/365.0)*5, Vec3(360,0,0))
    def __init__(self,World, render,base,loader):
        BaseModel3D.__init__(self,World, render,base,loader)
        self.isSunRotate = False

        #Load the Sun
        self.orbit_root_sun = render.attachNewNode('orbit_root_sun')
        self.sun = loader.loadModel("models/planet_sphere")
        self.sun_tex = loader.loadTexture("models/sun_1k_tex.jpg")
        self.sun.setTexture(self.sun_tex, 1)
        self.sun.reparentTo(self.orbit_root_sun)
        self.sun.reparentTo(render)
        self.sun.setPos(-30,20,0)
        self.sun.setScale(2 * 0.4)

        self.sunCNode = CollisionNode('sun')
        self.sunCNode.addSolid(CollisionSphere(0, 0, 0.10, 1))
        self.sunC = self.sun.attachNewNode(self.sunCNode)
        base.cTrav.addCollider(self.sunC, self.World.pusher)
        self.World.pusher.addCollider(self.sunC, self.sun, base.drive.node())

        self.day_period_sun = self.sun.hprInterval((60/365.0)*5, Vec3(360, 0, 0))
 def __init__(self, World, render, base,loader):
     BaseModel3D.__init__(self, World, render, base,loader)
     if self.floater == None:
         self.floater = NodePath(PandaNode("floater"))
         self.floater.reparentTo(self.render)
     self.isMoving = False