Пример #1
0
def thingIsMesh(thing):
    isMesh = False
    if mxs.classOf(thing) == mxs.XRefObject:
        thing = thing.actualBaseObject
    if mxs.classOf(thing) == mxs.Editable_Mesh:
        isMesh = True
    return isMesh
Пример #2
0
    def addProceduralShake(self):

        listController = mxs.getPropertyController(
            self._nativePointer.controller, 'rotation')
        print mxs.classOf(listController)
        if not mxs.classOf(listController) == mxs.rotation_list:
            listController = mxs.rotation_list()
            mxs.setPropertyController(self._nativePointer.controller,
                                      'rotation', listController)

        noise = mxs.Noise_rotation()
        noise.frequency = 0.05
        noise.fractal = False
        noise.seed = random.randint(0, 10000000)

        # Got lazy here, did not have time to find the Python way to do it.
        maxScript = """fn setNoiseControllerStrength noiseController x y z = (
            noiseController.noise_strength = [x, y, z]
        )"""

        mxs.execute(maxScript)
        weirdFactor = 57.296
        mxs.setNoiseControllerStrength(noise, 0.4 / weirdFactor,
                                       0.4 / weirdFactor, 0.1 / weirdFactor)
        mxs.setPropertyController(listController, 'Available', noise)

        return True
Пример #3
0
 def setFilmWidth(self, width):
     """
             \remarks	Sets the film_width value for the camera.
             \param		width <float>
             \return		n/a
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.film_width = float(width)
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         self._nativePointer.film_width_mm = float(width)
     return True
Пример #4
0
 def setFilmWidth(self, width):
     """
             \remarks	Sets the film_width value for the camera.
             \param		width <float>
             \return		n/a
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.film_width = float(width)
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         self._nativePointer.film_width_mm = float(width)
     return True
Пример #5
0
 def setWhiteBalance(self, whiteBalance):
     if isinstance(whiteBalance, QColor):
         if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
             self._nativePointer.whiteBalance_preset = 3
             self._nativePointer.whiteBalance = mxs.Color(*whiteBalance.getRgb())
             return True
         elif mxs.classOf(self._nativePointer) == mxs.Physical:
             self._nativePointer.whiteBalance_type = 0
             self._nativePointer.white_balance_custom = mxs.Color(*whiteBalance.getRgb())
             return True
     return False
Пример #6
0
 def motionBlur(self):
     """ Returns wheter or not this camera is enabling motion blur at render time.
     
     Returns:
         bool: Whether the camera renders motion blur.
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         return self._nativePointer.use_moBlur
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         return self._nativePointer.motion_blur_enabled
     else:
         return False
Пример #7
0
 def motionBlur(self):
     """ Returns wheter or not this camera is enabling motion blur at render time.
     
     Returns:
         bool: Whether the camera renders motion blur.
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         return self._nativePointer.use_moBlur
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         return self._nativePointer.motion_blur_enabled
     else:
         return False
Пример #8
0
 def setWhiteBalance(self, whiteBalance):
     if isinstance(whiteBalance, QColor):
         if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
             self._nativePointer.whiteBalance_preset = 3
             self._nativePointer.whiteBalance = mxs.Color(
                 *whiteBalance.getRgb())
             return True
         elif mxs.classOf(self._nativePointer) == mxs.Physical:
             self._nativePointer.whiteBalance_type = 0
             self._nativePointer.white_balance_custom = mxs.Color(
                 *whiteBalance.getRgb())
             return True
     return False
Пример #9
0
def setAllVerts(obj, newVerts):
    if mxs.classOf(obj) == mxs.XRefObject:
        obj = obj.actualBaseObject
    if mxs.classOf(obj) in [mxs.Editable_Poly, mxs.PolyMeshObject]:
        maxAll = mxs.execute('#all')
        maxPos = [
            mxs.point3(float(i[0]), float(i[1]), float(i[2])) for i in newVerts
        ]
        mxs.polyop.setVert(obj, maxAll, maxPos)
    else:
        for i, v in enumerate(newVerts):
            mxs.setVert(obj, i + 1, *v)
    return True
Пример #10
0
	def saveCurrentLightProperty(self, propSet):
		for obj in self._nativeObjects():
			if mxs.classOf(obj) == mxs.VRayLight:
				if propSet.value('primaryVisibility'):
					so = SceneObject(self._scene, obj)
					so.userProps()['previousInvisibleState'] = obj.invisible
					obj.invisible = True
Пример #11
0
    def type(self):
        """
			\remarks	implements AbstractSceneAnimationController.controllerType method to return the controller type for this instance
			\return		<cross3d.constants.ControllerType>
		"""
        return self._nativeToAbstractTypes.get(
            str(mxs.classOf(self._nativePointer)), 0)
Пример #12
0
 def anisotropy(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.anisotropy
     elif classOf == mxs.Physical:
         return self._nativePointer.bokeh_anisotropy
     return False
Пример #13
0
 def setMotionBlur(self, motionBlur):
     """ Sets wheter or not this camera is enabling motion blur at render time.
     
     Args:
         motionBlur (bool): Whether the camera renders motion blur.
     
     Returns:
         True: Whether or not motion blur was set.
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.use_moBlur = motionBlur
         return True
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         self._nativePointer.motion_blur_enabled = motionBlur
         return True
     return False
Пример #14
0
 def distortion(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.distortion
     elif classOf == mxs.Physical:
         return self._nativePointer.distortion_cubic_amount
     return False
Пример #15
0
 def blades(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.blades_number
     elif classOf == mxs.Physical:
         return self._nativePointer.bokeh_blades_number
     return 0
Пример #16
0
 def setMotionBlur(self, motionBlur):
     """ Sets wheter or not this camera is enabling motion blur at render time.
     
     Args:
         motionBlur (bool): Whether the camera renders motion blur.
     
     Returns:
         True: Whether or not motion blur was set.
     """
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.use_moBlur = motionBlur
         return True
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         self._nativePointer.motion_blur_enabled = motionBlur
         return True
     return False
Пример #17
0
 def blades(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.blades_number
     elif classOf == mxs.Physical:
         return self._nativePointer.bokeh_blades_number
     return 0
Пример #18
0
 def saveCurrentLightProperty(self, propSet):
     for obj in self._nativeObjects():
         if mxs.classOf(obj) == mxs.VRayLight:
             if propSet.value('primaryVisibility'):
                 so = SceneObject(self._scene, obj)
                 so.userProps()['previousInvisibleState'] = obj.invisible
                 obj.invisible = True
Пример #19
0
 def distortionType(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._vRayDistortionTypes[self._nativePointer.distortion_type]
     elif classOf == mxs.Physical:
         return self._distortionTypes[self._nativePointer.distortion_type]
     return ''
Пример #20
0
 def anisotropy(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.anisotropy
     elif classOf == mxs.Physical:
         return self._nativePointer.bokeh_anisotropy
     return False
Пример #21
0
 def distortion(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._nativePointer.distortion
     elif classOf == mxs.Physical:
         return self._nativePointer.distortion_cubic_amount
     return False
Пример #22
0
	def _typeOfNativeObject(cls, nativeObject):
		"""
			\remarks	reimplements the AbstractSceneObject._typeOfNativeObject method to returns the ObjectType of the nativeObject applied
			\param		<Py3dsMax.mxs.Object> nativeObject || None
			\return		<bool> success
		"""

		# Checking for model.
		if mxs.classOf(nativeObject) == mxs.Point:
			userProps = UserProps(nativeObject)
			if 'model' in userProps:
				return ObjectType.Model

		output = 	cls._nativeToAbstractObjectType.get(str(mxs.classOf(nativeObject)),
					cls._nativeToAbstractObjectType.get(str(mxs.superClassOf(nativeObject)),
					AbstractSceneObject._typeOfNativeObject(nativeObject)))
		return output
Пример #23
0
 def setVignettingEnabled(self, vignettingEnabled):
     if isinstance(vignettingEnabled, (bool, int, float)):
         classOff = mxs.classOf(self._nativePointer)
         if classOff == mxs.VRayPhysicalCamera:
             self._nativePointer.vignetting = vignettingEnabled
         elif classOff == mxs.Physical:
             self._nativePointer.vignetting_enabled = vignettingEnabled
     return False
Пример #24
0
def delete_scene():
    """ pydoc """
    mxs.actionMan.executeAction(0, "40021")  # Selection: Select All
    for i in mxs.selection:
        # use mxs.Teapot refer to Teapot keyword in maxscript, cause there is
        # no such type in python
        if mxs.classOf(i) == mxs.Teapot and i.wireColor.B < 210:
            mxs.delete(i)
Пример #25
0
 def distortionType(self):
     classOf = mxs.classOf(self._nativePointer)
     if classOf == mxs.VRayPhysicalCamera:
         return self._vRayDistortionTypes[
             self._nativePointer.distortion_type]
     elif classOf == mxs.Physical:
         return self._distortionTypes[self._nativePointer.distortion_type]
     return ''
Пример #26
0
 def setVignettingEnabled(self, vignettingEnabled):
     if isinstance(vignettingEnabled, (bool, int, float)):
         classOff = mxs.classOf(self._nativePointer)
         if classOff == mxs.VRayPhysicalCamera:
             self._nativePointer.vignetting = vignettingEnabled
         elif classOff == mxs.Physical:
             self._nativePointer.vignetting_enabled = vignettingEnabled
     return False
Пример #27
0
 def setDistortionType(self, distortionType):
     if isinstance(distortionType, basestring):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.distortion_type = self._vRayDistortionTypes.index(distortionType)
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.distortion_type = self._distortionTypes.index(distortionType)
             return True
     return False
Пример #28
0
 def setDistortion(self, distortion):
     if isinstance(distortion, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.distortion = distortion
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.distortion_cubic_amount = distortion
             return True
     return False
Пример #29
0
 def setAnisotropy(self, anisotropy):
     if isinstance(anisotropy, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.anisotropy = anisotropy
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.bokeh_anisotropy = anisotropy
             return True
     return False
Пример #30
0
 def setAnisotropy(self, anisotropy):
     if isinstance(anisotropy, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.anisotropy = anisotropy
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.bokeh_anisotropy = anisotropy
             return True
     return False
Пример #31
0
 def setBlades(self, blades):
     if isinstance(blades, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.blades_number = int(blades)
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.bokeh_blades_number = int(blades)
             return True
     return False
Пример #32
0
    def _typeOfNativeObject(cls, nativeObject):
        """
			\remarks	reimplements the AbstractSceneObject._typeOfNativeObject method to returns the ObjectType of the nativeObject applied
			\param		<Py3dsMax.mxs.Object> nativeObject || None
			\return		<bool> success
		"""

        # Checking for model.
        if mxs.classOf(nativeObject) == mxs.Point:
            userProps = UserProps(nativeObject)
            if 'model' in userProps:
                return ObjectType.Model

        output = cls._nativeToAbstractObjectType.get(
            str(mxs.classOf(nativeObject)),
            cls._nativeToAbstractObjectType.get(
                str(mxs.superClassOf(nativeObject)),
                AbstractSceneObject._typeOfNativeObject(nativeObject)))
        return output
Пример #33
0
 def setDistortion(self, distortion):
     if isinstance(distortion, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.distortion = distortion
             return True               
         elif classOf == mxs.Physical:
             self._nativePointer.distortion_cubic_amount = distortion
             return True
     return False
Пример #34
0
 def setBlades(self, blades):
     if isinstance(blades, (int, float)):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.blades_number = int(blades)
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.bokeh_blades_number = int(blades)
             return True
     return False
	def _nativeKeys(self):
		"""
			\remarks	implements the AbstractSceneAnimationController._nativeKeys method to collect a list of the current keys
						for this controller instance
			\return		<list> [ <Py3dsMax.mxs.Key> nativeKey, .. ]
		"""

		# This method only supports controllers with keys.
		if mxs.classOf(self._nativePointer) in [mxs.bezier_float, mxs.linear_float]:
			return self._nativePointer.keys
		return []
Пример #36
0
 def hasMultiPassEffects(self):
     """
             \remarks	returns whether multipass effects are active on this camera
             \return		<bool>
     """
     cls = mxs.classOf(self._nativePointer)
     if cls in (mxs.VRayPhysicalCamera, mxs.Physical):
         return self._nativePointer.use_DOF
     elif mxs.isProperty(self._nativePointer, 'mpassEnabled'):
         return self._nativePointer.mpassEnabled
     return False
Пример #37
0
 def hasMultiPassEffects(self):
     """
             \remarks	returns whether multipass effects are active on this camera
             \return		<bool>
     """
     cls = mxs.classOf(self._nativePointer)
     if cls in (mxs.VRayPhysicalCamera, mxs.Physical):
         return self._nativePointer.use_DOF
     elif mxs.isProperty(self._nativePointer, 'mpassEnabled'):
         return self._nativePointer.mpassEnabled
     return False
Пример #38
0
 def setDistortionType(self, distortionType):
     if isinstance(distortionType, basestring):
         classOf = mxs.classOf(self._nativePointer)
         if classOf == mxs.VRayPhysicalCamera:
             self._nativePointer.distortion_type = self._vRayDistortionTypes.index(
                 distortionType)
             return True
         elif classOf == mxs.Physical:
             self._nativePointer.distortion_type = self._distortionTypes.index(
                 distortionType)
             return True
     return False
Пример #39
0
    def _nativeKeys(self):
        """
			\remarks	implements the AbstractSceneAnimationController._nativeKeys method to collect a list of the current keys
						for this controller instance
			\return		<list> [ <Py3dsMax.mxs.Key> nativeKey, .. ]
		"""

        # This method only supports controllers with keys.
        if mxs.classOf(
                self._nativePointer) in [mxs.bezier_float, mxs.linear_float]:
            return self._nativePointer.keys
        return []
Пример #40
0
def selectVerts(obj, idx):
    selMod = None
    if list(obj.modifiers):
        if obj.modifiers[0] == mxs.Mesh_Select:
            selMod = obj.modifiers[0]
        elif obj.modifiers[0] == mxs.Poly_Select:
            selMod = obj.modifiers[0]

    if selMod is None:
        if mxs.classOf(obj) == mxs.Editable_Mesh:
            selMod = mxs.addModifier(obj, mxs.Mesh_Select)
        elif mxs.classOf(obj) == mxs.Editable_Poly:
            selMod = mxs.addModifier(obj, mxs.Poly_Select)

    if selMod is None:
        raise RuntimeError("Could not build selection")

    mxs.select(obj)
    mxs.subObjectLevel = 1
    sel = [] if idx is None else [idx + 1]
    obj.selectedVerts = sel
    mxs.completeRedraw()
Пример #41
0
    def addProceduralShake(self):

        listController = mxs.getPropertyController(self._nativePointer.controller, 'rotation')
        print mxs.classOf(listController)
        if not mxs.classOf(listController) == mxs.rotation_list:
            listController = mxs.rotation_list()
            mxs.setPropertyController(self._nativePointer.controller, 'rotation', listController)

        noise = mxs.Noise_rotation()
        noise.frequency = 0.05
        noise.fractal = False
        noise.seed = random.randint(0, 10000000)

        # Got lazy here, did not have time to find the Python way to do it.
        maxScript = """fn setNoiseControllerStrength noiseController x y z = (
            noiseController.noise_strength = [x, y, z]
        )"""
        
        mxs.execute(maxScript)
        weirdFactor = 57.296
        mxs.setNoiseControllerStrength(noise, 0.4/weirdFactor, 0.4/weirdFactor, 0.1/weirdFactor)
        mxs.setPropertyController(listController, 'Available', noise)

        return True
Пример #42
0
 def bladesEnabled(self):
     return self._nativePointer.use_blades if mxs.classOf(
         self._nativePointer) == mxs.VRayPhysicalCamera else False
Пример #43
0
 def setBladesEnabled(self, bladesEnabled):
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.use_blades = bladesEnabled
         return True
     return False
Пример #44
0
 def outputType(self):
     return self._vRayOutputTypes[self._nativePointer.type] if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera else ''
Пример #45
0
 def setShutterOffset(self, shutterOffset):
     if isinstance(shutterOffset, (int, float)) and mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.shutter_offset = shutterOffset
         return True
     return False
Пример #46
0
 def whiteBalance(self):
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         color = self._nativePointer.whiteBalance
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         color = self._nativePointer.white_balance_custom
     return QColor(color.r, color.g, color.b, color.a) if color else ''
Пример #47
0
 def setShutterAngle(self, shutterAngle):
     if isinstance(shutterAngle, (int, float)) and mxs.classOf(
             self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.shutter_angle = shutterAngle
         return True
     return False
Пример #48
0
 def whiteBalance(self):
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         color = self._nativePointer.whiteBalance
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         color = self._nativePointer.white_balance_custom
     return QColor(color.r, color.g, color.b, color.a) if color else ''
Пример #49
0
 def shutterAngle(self):
     return self._nativePointer.shutter_angle if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera else 180
Пример #50
0
 def setBladesEnabled(self, bladesEnabled):
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.use_blades = bladesEnabled
         return True
     return False
Пример #51
0
 def setShutterAngle(self, shutterAngle):
     if isinstance(shutterAngle, (int, float)) and mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.shutter_angle = shutterAngle
         return True
     return False
Пример #52
0
 def bladesEnabled(self):
     return self._nativePointer.use_blades if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera else False
Пример #53
0
 def setShutterOffset(self, shutterOffset):
     if isinstance(shutterOffset, (int, float)) and mxs.classOf(
             self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.shutter_offset = shutterOffset
         return True
     return False
Пример #54
0
 def vignettingEnabled(self):
     if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         return self._nativePointer.vignetting
     elif mxs.classOf(self._nativePointer) == mxs.Physical:
         return self._nativePointer.vignetting_enabled
     return False
Пример #55
0
 def shutterOffset(self):
     return self._nativePointer.shutter_offset if mxs.classOf(
         self._nativePointer) == mxs.VRayPhysicalCamera else 0
Пример #56
0
 def setExposureEnabled(self, exposureEnabled):
     if isinstance(exposureEnabled, (bool, int, float)) and mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.exposure = exposureEnabled
         return True
     return False
Пример #57
0
 def shutterAngle(self):
     return self._nativePointer.shutter_angle if mxs.classOf(
         self._nativePointer) == mxs.VRayPhysicalCamera else 180
Пример #58
0
 def setOutputType(self, outputType):
     if isinstance(outputType, basestring) and mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera:
         self._nativePointer.type = self._vRayOutputTypes.index(outputType)
         return True
     return False
Пример #59
0
 def exposureEnabled(self):
     return self._nativePointer.exposure if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera else False
Пример #60
0
 def shutterOffset(self):
     return self._nativePointer.shutter_offset if mxs.classOf(self._nativePointer) == mxs.VRayPhysicalCamera else 0