20a3a68b387d558bb93b11f2482ef8bbb750416c
[blender-staging.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Engine bge.logic Module
3 ============================
4 *****
5 Intro
6 *****
7
8 Module to access logic functions, imported automatically into the python controllers namespace.
9
10 .. module:: bge.logic
11
12 .. code-block:: python
13
14    # To get the controller thats running this python script:
15    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
16    
17    # To get the game object this controller is on:
18    obj = cont.owner
19
20 :class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`bge.types.~KX_LightObject` methods are available depending on the type of object
21
22 .. code-block:: python
23
24    # To get a sensor linked to this controller.
25    # "sensorname" is the name of the sensor as defined in the Blender interface.
26    # +---------------------+  +--------+
27    # | Sensor "sensorname" +--+ Python +
28    # +---------------------+  +--------+
29    sens = cont.sensors["sensorname"]
30
31    # To get a sequence of all sensors:
32    sensors = co.sensors
33
34 See the sensor's reference for available methods:
35
36 .. hlist::
37    :columns: 3
38
39    * :class:`~bge.types.KX_MouseFocusSensor`
40    * :class:`~bge.types.KX_NearSensor`
41    * :class:`~bge.types.KX_NetworkMessageSensor`
42    * :class:`~bge.types.KX_RadarSensor`
43    * :class:`~bge.types.KX_RaySensor`
44    * :class:`~bge.types.KX_TouchSensor`
45    * :class:`~bge.types.SCA_DelaySensor`
46    * :class:`~bge.types.SCA_JoystickSensor`
47    * :class:`~bge.types.SCA_KeyboardSensor`
48    * :class:`~bge.types.SCA_MouseSensor`
49    * :class:`~bge.types.SCA_PropertySensor`
50    * :class:`~bge.types.SCA_RandomSensor`
51
52 You can also access actuators linked to the controller
53
54 .. code-block:: python
55
56    # To get an actuator attached to the controller:
57    #                          +--------+  +-------------------------+
58    #                          + Python +--+ Actuator "actuatorname" |
59    #                          +--------+  +-------------------------+
60    actuator = co.actuators["actuatorname"]
61    
62    # Activate an actuator
63    controller.activate(actuator)
64
65 See the actuator's reference for available methods
66
67 .. hlist::
68    :columns: 3
69    
70    * :class:`~bge.types.BL_ActionActuator`
71    * :class:`~bge.types.BL_ShapeActionActuator`
72    * :class:`~bge.types.KX_CameraActuator`
73    * :class:`~bge.types.KX_ConstraintActuator`
74    * :class:`~bge.types.KX_GameActuator`
75    * :class:`~bge.types.KX_IpoActuator`
76    * :class:`~bge.types.KX_NetworkMessageActuator`
77    * :class:`~bge.types.KX_ObjectActuator`
78    * :class:`~bge.types.KX_ParentActuator`
79    * :class:`~bge.types.KX_SCA_AddObjectActuator`
80    * :class:`~bge.types.KX_SCA_DynamicActuator`
81    * :class:`~bge.types.KX_SCA_EndObjectActuator`
82    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
83    * :class:`~bge.types.KX_SceneActuator`
84    * :class:`~bge.types.KX_SoundActuator`
85    * :class:`~bge.types.KX_StateActuator`
86    * :class:`~bge.types.KX_TrackToActuator`
87    * :class:`~bge.types.KX_VisibilityActuator`
88    * :class:`~bge.types.SCA_2DFilterActuator`
89    * :class:`~bge.types.SCA_PropertyActuator`
90    * :class:`~bge.types.SCA_RandomActuator`
91
92 Most logic brick's methods are accessors for the properties available in the logic buttons.
93 Consult the logic bricks documentation for more information on how each logic brick works.
94
95 There are also methods to access the current :class:`bge.types.KX_Scene`
96
97 .. code-block:: python
98
99    # Get the current scene
100    scene = bge.logic.getCurrentScene()
101
102    # Get the current camera
103    cam = scene.active_camera
104
105 Matricies as used by the game engine are **row major**
106 ``matrix[row][col] = float``
107
108 :class:`bge.types.KX_Camera` has some examples using matricies.
109
110 *********
111 Variables
112 *********
113
114 .. data:: globalDict
115
116    A dictionary that is saved between loading blend files so you can use it to store inventory and other variables you want to store between scenes and blend files.
117    It can also be written to a file and loaded later on with the game load/save actuators.
118
119    .. note:: only python built in types such as int/string/bool/float/tuples/lists can be saved, GameObjects, Actuators etc will not work as expected.
120
121 .. data:: keyboard
122
123    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
124
125 .. data:: mouse
126
127    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
128
129 *****************
130 General functions
131 *****************
132
133 .. function:: getCurrentController()
134
135    Gets the Python controller associated with this Python script.
136    
137    :rtype: :class:`bge.types.SCA_PythonController`
138
139 .. function:: getCurrentScene()
140
141    Gets the current Scene.
142    
143    :rtype: :class:`bge.types.KX_Scene`
144
145 .. function:: getSceneList()
146
147    Gets a list of the current scenes loaded in the game engine.
148    
149    :rtype: list of :class:`bge.types.KX_Scene`
150    
151    .. note:: Scenes in your blend file that have not been converted wont be in this list. This list will only contain scenes such as overlays scenes.
152
153 .. function:: loadGlobalDict()
154
155    Loads bge.logic.globalDict from a file.
156
157 .. function:: saveGlobalDict()
158
159    Saves bge.logic.globalDict to a file.
160
161 .. function:: startGame(blend)
162
163    Loads the blend file.
164    
165    :arg blend: The name of the blend file
166    :type blend: string
167
168 .. function:: endGame()
169
170    Ends the current game.
171
172 .. function:: restartGame()
173
174    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
175    
176 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
177    
178    Converts the all of the datablocks of the given type from the given blend.
179    
180    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
181    :type blend: string
182    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
183    :type type: string
184    :arg data: Binary data from a blend file (optional)
185    :type data: bytes
186    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
187    :type load_actions: bool
188    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
189    :type verbose: bool
190    
191 .. function:: LibNew(name, type, data)
192
193    Uses existing datablock data and loads in as a new library.
194    
195    :arg name: A unique library name used for removal later
196    :type name: string
197    :arg type: The datablock type (currently only "Mesh" is supported)
198    :type type: string
199    :arg data: A list of names of the datablocks to load
200    :type data: list of strings
201    
202 .. function:: LibFree(name)
203
204    Frees a library, removing all objects and meshes from the currently active scenes.
205
206    :arg name: The name of the library to free (the name used in LibNew)
207    :type name: string
208    
209 .. function:: LibList()
210
211    Returns a list of currently loaded libraries.
212    
213    :rtype: list [str]
214
215 .. function:: addScene(name, overlay=1)
216
217    Loads a scene into the game engine.
218
219    :arg name: The name of the scene
220    :type name: string
221    :arg overlay: Overlay or underlay (optional)
222    :type overlay: integer
223
224 .. function:: sendMessage(subject, body="", to="", message_from="")
225
226    Sends a message to sensors in any active scene.
227    
228    :arg subject: The subject of the message
229    :type subject: string
230    :arg body: The body of the message (optional)
231    :type body: string
232    :arg to: The name of the object to send the message to (optional)
233    :type to: string
234    :arg message_from: The name of the object that the message is coming from (optional)
235    :type message_from: string
236
237 .. function:: setGravity(gravity)
238
239    Sets the world gravity.
240    
241    :type gravity: list [fx, fy, fz]
242
243 .. function:: getSpectrum()
244
245    Returns a 512 point list from the sound card.
246    This only works if the fmod sound driver is being used.
247    
248    :rtype: list [float], len(getSpectrum()) == 512
249
250 .. function:: stopDSP()
251
252    Stops the sound driver using DSP effects.
253    
254    Only the fmod sound driver supports this.
255    DSP can be computationally expensive.
256
257 .. function:: getMaxLogicFrame()
258
259    Gets the maximum number of logic frames per render frame.
260    
261    :return: The maximum number of logic frames per render frame
262    :rtype: integer
263
264 .. function:: setMaxLogicFrame(maxlogic)
265
266    Sets the maximum number of logic frames that are executed per render frame.
267    This does not affect the physic system that still runs at full frame rate.   
268     
269    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
270    :type maxlogic: integer
271
272 .. function:: getMaxPhysicsFrame()
273
274    Gets the maximum number of physics frames per render frame.
275    
276    :return: The maximum number of physics frames per render frame
277    :rtype: integer
278
279 .. function:: setMaxPhysicsFrame(maxphysics)
280
281    Sets the maximum number of physics timestep that are executed per render frame.
282    Higher value allows physics to keep up with realtime even if graphics slows down the game.
283    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
284    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
285     
286    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
287    :type maxphysics: integer
288
289 .. function:: getLogicTicRate()
290
291    Gets the logic update frequency.
292    
293    :return: The logic frequency in Hz
294    :rtype: float
295
296 .. function:: setLogicTicRate(ticrate)
297
298    Sets the logic update frequency.
299    
300    The logic update frequency is the number of times logic bricks are executed every second.
301    The default is 60 Hz.
302    
303    :arg ticrate: The new logic update frequency (in Hz).
304    :type ticrate: float
305
306 .. function:: getPhysicsTicRate()
307
308    Gets the physics update frequency
309    
310    :return: The physics update frequency in Hz
311    :rtype: float
312    
313    .. warning: Not implimented yet
314
315 .. function:: setPhysicsTicRate(ticrate)
316
317    Sets the physics update frequency
318    
319    The physics update frequency is the number of times the physics system is executed every second.
320    The default is 60 Hz.
321    
322    :arg ticrate: The new update frequency (in Hz).
323    :type ticrate: float
324
325    .. warning: Not implimented yet
326
327 *****************
328 Utility functions
329 *****************
330
331 .. function:: expandPath(path)
332
333    Converts a blender internal path into a proper file system path.
334
335    Use / as directory separator in path
336    You can use '//' at the start of the string to define a relative path;
337    Blender replaces that string by the directory of the startup .blend or runtime file
338    to make a full path name (doesn't change during the game, even if you load other .blend).
339    The function also converts the directory separator to the local file system format.
340
341    :arg path: The path string to be converted/expanded.
342    :type path: string
343    :return: The converted string
344    :rtype: string
345
346 .. function:: getAverageFrameRate()
347
348    Gets the estimated average framerate
349    
350    :return: The estimed average framerate in frames per second
351    :rtype: float
352
353 .. function:: getBlendFileList(path = "//")
354
355    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
356
357    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
358    :type path: string
359    :return: A list of filenames, with no directory prefix
360    :rtype: list
361
362 .. function:: getRandomFloat()
363
364    Returns a random floating point value in the range [0 - 1)
365
366 .. function:: PrintGLInfo()
367
368    Prints GL Extension Info into the console
369    
370 *********
371 Constants
372 *********
373
374 .. data:: KX_TRUE
375
376    True value used by some modules.
377
378 .. data:: KX_FALSE
379
380    False value used by some modules.
381
382 =======
383 Sensors
384 ======= 
385
386 .. _sensor-status:
387
388 -------------
389 Sensor Status
390 -------------
391
392 .. data:: KX_SENSOR_INACTIVE
393 .. data:: KX_SENSOR_JUST_ACTIVATED
394 .. data:: KX_SENSOR_ACTIVE
395 .. data:: KX_SENSOR_JUST_DEACTIVATED
396
397 .. _logic-property-sensor:
398
399 ---------------
400 Property Sensor
401 ---------------
402
403 .. data:: KX_PROPSENSOR_EQUAL
404
405    Activate when the property is equal to the sensor value.
406
407    :value: 1
408
409 .. data:: KX_PROPSENSOR_NOTEQUAL
410
411    Activate when the property is not equal to the sensor value.
412    
413    :value: 2
414
415 .. data:: KX_PROPSENSOR_INTERVAL
416
417    Activate when the property is between the specified limits.
418    
419    :value: 3
420    
421 .. data:: KX_PROPSENSOR_CHANGED
422
423    Activate when the property changes   
424
425    :value: 4
426
427 .. data:: KX_PROPSENSOR_EXPRESSION
428
429    Activate when the expression matches
430    
431    :value: 5
432
433 ------------
434 Radar Sensor
435 ------------
436
437 See :class:`bge.types.KX_RadarSensor`
438
439 .. data:: KX_RADAR_AXIS_POS_X
440 .. data:: KX_RADAR_AXIS_POS_Y
441 .. data:: KX_RADAR_AXIS_POS_Z
442 .. data:: KX_RADAR_AXIS_NEG_X
443 .. data:: KX_RADAR_AXIS_NEG_Y
444 .. data:: KX_RADAR_AXIS_NEG_Z
445
446 ----------
447 Ray Sensor
448 ----------
449
450 See :class:`bge.types.KX_RaySensor`
451
452 .. data:: KX_RAY_AXIS_POS_X
453 .. data:: KX_RAY_AXIS_POS_Y
454 .. data:: KX_RAY_AXIS_POS_Z
455 .. data:: KX_RAY_AXIS_NEG_X
456 .. data:: KX_RAY_AXIS_NEG_Y
457 .. data:: KX_RAY_AXIS_NEG_Z
458
459
460 =========
461 Actuators
462 =========
463
464 .. _action-actuator:
465
466 ---------------
467 Action Actuator
468 ---------------
469
470 See :class:`bge.types.BL_ActionActuator`
471
472 .. data:: KX_ACTIONACT_PLAY
473 .. data:: KX_ACTIONACT_FLIPPER
474 .. data:: KX_ACTIONACT_LOOPSTOP
475 .. data:: KX_ACTIONACT_LOOPEND
476 .. data:: KX_ACTIONACT_PROPERTY
477
478 -------------------
479 Constraint Actuator
480 -------------------
481
482 .. _constraint-actuator-option:
483
484 See :class:`bge.types.KX_ConstraintActuator.option`
485
486 * Applicable to Distance constraint:
487
488   .. data:: KX_ACT_CONSTRAINT_NORMAL
489
490      Activate alignment to surface
491    
492   .. data:: KX_ACT_CONSTRAINT_DISTANCE
493
494      Activate distance control
495
496   .. data:: KX_ACT_CONSTRAINT_LOCAL
497
498      Direction of the ray is along the local axis
499
500 * Applicable to Force field constraint:
501
502   .. data:: KX_ACT_CONSTRAINT_DOROTFH
503
504      Force field act on rotation as well
505
506 * Applicable to both:
507
508   .. data:: KX_ACT_CONSTRAINT_MATERIAL
509
510      Detect material rather than property
511    
512   .. data:: KX_ACT_CONSTRAINT_PERMANENT
513
514      No deactivation if ray does not hit target
515
516 .. _constraint-actuator-limit:
517
518 See :class:`bge.types.KX_ConstraintActuator.limit`
519
520 .. data:: KX_CONSTRAINTACT_LOCX
521
522    Limit X coord.
523    
524 .. data:: KX_CONSTRAINTACT_LOCY
525
526    Limit Y coord
527
528 .. data:: KX_CONSTRAINTACT_LOCZ
529
530    Limit Z coord
531    
532 .. data:: KX_CONSTRAINTACT_ROTX
533
534    Limit X rotation
535
536 .. data:: KX_CONSTRAINTACT_ROTY
537
538    Limit Y rotation
539    
540 .. data:: KX_CONSTRAINTACT_ROTZ
541
542    Limit Z rotation
543    
544 .. data:: KX_CONSTRAINTACT_DIRNX
545
546    Set distance along negative X axis
547
548 .. data:: KX_CONSTRAINTACT_DIRNY
549
550    Set distance along negative Y axis
551    
552 .. data:: KX_CONSTRAINTACT_DIRNZ
553
554    Set distance along negative Z axis
555    
556 .. data:: KX_CONSTRAINTACT_DIRPX
557
558    Set distance along positive X axis
559
560 .. data:: KX_CONSTRAINTACT_DIRPY
561
562    Set distance along positive Y axis
563    
564 .. data:: KX_CONSTRAINTACT_DIRPZ
565
566    Set distance along positive Z axis
567    
568 .. data:: KX_CONSTRAINTACT_ORIX
569
570    Set orientation of X axis
571    
572 .. data:: KX_CONSTRAINTACT_ORIY
573
574    Set orientation of Y axis
575    
576 .. data:: KX_CONSTRAINTACT_ORIZ
577
578    Set orientation of Z axis
579    
580 .. data:: KX_ACT_CONSTRAINT_FHNX
581
582    Set force field along negative X axis
583    
584 .. data:: KX_ACT_CONSTRAINT_FHNY
585
586    Set force field along negative Y axis
587    
588 .. data:: KX_ACT_CONSTRAINT_FHNZ
589
590    Set force field along negative Z axis
591    
592 .. data:: KX_ACT_CONSTRAINT_FHPX
593
594    Set force field along positive X axis
595
596 .. data:: KX_ACT_CONSTRAINT_FHPY
597
598    Set force field along positive Y axis
599    
600 .. data:: KX_ACT_CONSTRAINT_FHPZ
601
602    Set force field along positive Z axis
603
604 ----------------
605 Dynamic Actuator
606 ----------------
607
608 See :class:`bge.types.KX_SCA_DynamicActuator`
609
610 .. data:: KX_DYN_RESTORE_DYNAMICS
611 .. data:: KX_DYN_DISABLE_DYNAMICS
612 .. data:: KX_DYN_ENABLE_RIGID_BODY
613 .. data:: KX_DYN_DISABLE_RIGID_BODY
614 .. data:: KX_DYN_SET_MASS
615
616 .. _game-actuator:
617
618 -------------
619 Game Actuator
620 -------------
621
622 See :class:`bge.types.KX_GameActuator`
623
624 .. data:: KX_GAME_LOAD
625 .. data:: KX_GAME_START
626 .. data:: KX_GAME_RESTART
627 .. data:: KX_GAME_QUIT
628 .. data:: KX_GAME_SAVECFG
629 .. data:: KX_GAME_LOADCFG
630
631 .. _ipo-actuator:
632
633 ------------
634 IPO Actuator
635 ------------
636
637 See :class:`bge.types.KX_IpoActuator`
638
639 .. data:: KX_IPOACT_PLAY
640 .. data:: KX_IPOACT_PINGPONG
641 .. data:: KX_IPOACT_FLIPPER
642 .. data:: KX_IPOACT_LOOPSTOP
643 .. data:: KX_IPOACT_LOOPEND
644 .. data:: KX_IPOACT_FROM_PROP
645
646 ---------------
647 Parent Actuator
648 ---------------
649
650 .. data:: KX_PARENT_REMOVE
651 .. data:: KX_PARENT_SET
652
653 .. _logic-random-distributions:
654
655 --------------------
656 Random Distributions
657 --------------------
658
659 See :class:`bge.types.SCA_RandomActuator`
660
661 .. data:: KX_RANDOMACT_BOOL_CONST
662 .. data:: KX_RANDOMACT_BOOL_UNIFORM
663 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
664 .. data:: KX_RANDOMACT_INT_CONST
665 .. data:: KX_RANDOMACT_INT_UNIFORM
666 .. data:: KX_RANDOMACT_INT_POISSON
667 .. data:: KX_RANDOMACT_FLOAT_CONST
668 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
669 .. data:: KX_RANDOMACT_FLOAT_NORMAL
670 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
671
672 --------------
673 Scene Actuator
674 --------------
675
676 See :class:`bge.types.KX_SceneActuator`
677
678 .. data:: KX_SCENE_RESTART
679 .. data:: KX_SCENE_SET_SCENE
680 .. data:: KX_SCENE_SET_CAMERA
681 .. data:: KX_SCENE_ADD_FRONT_SCENE
682 .. data:: KX_SCENE_ADD_BACK_SCENE
683 .. data:: KX_SCENE_REMOVE_SCENE
684 .. data:: KX_SCENE_SUSPEND
685 .. data:: KX_SCENE_RESUME
686
687 .. _shape-action-actuator:
688
689 ---------------------
690 Shape Action Actuator
691 ---------------------
692
693 See :class:`bge.types.BL_ActionActuator`
694
695 .. data:: KX_ACTIONACT_PLAY
696 .. data:: KX_ACTIONACT_FLIPPER
697 .. data:: KX_ACTIONACT_LOOPSTOP
698 .. data:: KX_ACTIONACT_LOOPEND
699 .. data:: KX_ACTIONACT_PROPERTY
700
701 .. _logic-sound-actuator:
702
703 --------------
704 Sound Actuator
705 --------------
706       
707 See :class:`bge.types.KX_SoundActuator`
708
709 .. data:: KX_SOUNDACT_PLAYSTOP
710
711    :value: 1
712    
713 .. data:: KX_SOUNDACT_PLAYEND
714
715    :value: 2
716    
717 .. data:: KX_SOUNDACT_LOOPSTOP
718
719    :value: 3
720    
721 .. data:: KX_SOUNDACT_LOOPEND
722
723    :value: 4
724    
725 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
726
727    :value: 5
728    
729 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
730
731    :value: 6
732    
733
734 =======
735 Various
736 =======
737
738 .. _input-status:
739
740 ------------
741 Input Status
742 ------------
743
744 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
745
746 .. data:: KX_INPUT_NONE
747 .. data:: KX_INPUT_JUST_ACTIVATED
748 .. data:: KX_INPUT_ACTIVE
749 .. data:: KX_INPUT_JUST_RELEASED
750
751 -------------
752 Mouse Buttons
753 -------------
754
755 See :class:`bge.types.SCA_MouseSensor`
756
757 .. data:: KX_MOUSE_BUT_LEFT
758 .. data:: KX_MOUSE_BUT_MIDDLE
759 .. data:: KX_MOUSE_BUT_RIGHT
760
761 ------
762 States
763 ------
764
765 See :class:`bge.types.KX_StateActuator`
766
767 .. data:: KX_STATE1
768 .. data:: KX_STATE2
769 .. data:: KX_STATE3
770 .. data:: KX_STATE4
771 .. data:: KX_STATE5
772 .. data:: KX_STATE6
773 .. data:: KX_STATE7
774 .. data:: KX_STATE8
775 .. data:: KX_STATE9
776 .. data:: KX_STATE10
777 .. data:: KX_STATE11
778 .. data:: KX_STATE12
779 .. data:: KX_STATE13
780 .. data:: KX_STATE14
781 .. data:: KX_STATE15
782 .. data:: KX_STATE16
783 .. data:: KX_STATE17
784 .. data:: KX_STATE18
785 .. data:: KX_STATE19
786 .. data:: KX_STATE20
787 .. data:: KX_STATE21
788 .. data:: KX_STATE22
789 .. data:: KX_STATE23
790 .. data:: KX_STATE24
791 .. data:: KX_STATE25
792 .. data:: KX_STATE26
793 .. data:: KX_STATE27
794 .. data:: KX_STATE28
795 .. data:: KX_STATE29
796 .. data:: KX_STATE30
797
798 .. _state-actuator-operation:
799
800 See :class:`bge.types.KX_StateActuator.operation`
801
802 .. data:: KX_STATE_OP_CLR
803
804    Substract bits to state mask
805    
806    :value: 0
807
808 .. data:: KX_STATE_OP_CPY
809
810    Copy state mask
811    
812    :value: 1
813    
814 .. data:: KX_STATE_OP_NEG
815
816    Invert bits to state mask
817    
818    :value: 2
819    
820 .. data:: KX_STATE_OP_SET
821
822    Add bits to state mask
823    
824    :value: 3
825    
826 .. _Two-D-FilterActuator-mode:
827
828 ---------
829 2D Filter
830 ---------
831
832 .. data:: RAS_2DFILTER_BLUR
833
834    :value: 2
835    
836 .. data:: RAS_2DFILTER_CUSTOMFILTER
837
838    Customer filter, the code code is set via shaderText property.
839    
840    :value: 12
841    
842 .. data:: RAS_2DFILTER_DILATION
843
844    :value: 4
845    
846 .. data:: RAS_2DFILTER_DISABLED
847
848    Disable the filter that is currently active
849
850    :value: -1
851    
852 .. data:: RAS_2DFILTER_ENABLED
853
854    Enable the filter that was previously disabled
855
856    :value: -2
857    
858 .. data:: RAS_2DFILTER_EROSION
859
860    :value: 5
861    
862 .. data:: RAS_2DFILTER_GRAYSCALE
863
864    :value: 9
865    
866 .. data:: RAS_2DFILTER_INVERT
867
868    :value: 11
869    
870 .. data:: RAS_2DFILTER_LAPLACIAN
871
872    :value: 6
873    
874 .. data:: RAS_2DFILTER_MOTIONBLUR
875
876    Create and enable preset filters
877
878    :value: 1
879    
880 .. data:: RAS_2DFILTER_NOFILTER
881
882    Disable and destroy the filter that is currently active
883
884    :value: 0
885    
886 .. data:: RAS_2DFILTER_PREWITT
887
888    :value: 8
889    
890 .. data:: RAS_2DFILTER_SEPIA
891
892    :value: 10
893    
894 .. data:: RAS_2DFILTER_SHARPEN
895
896    :value: 3
897    
898 .. data:: RAS_2DFILTER_SOBEL
899
900    :value: 7
901    
902 ------
903 Shader
904 ------
905
906 .. data:: VIEWMATRIX
907 .. data:: VIEWMATRIX_INVERSE
908 .. data:: VIEWMATRIX_INVERSETRANSPOSE
909 .. data:: VIEWMATRIX_TRANSPOSE
910 .. data:: MODELMATRIX
911 .. data:: MODELMATRIX_INVERSE
912 .. data:: MODELMATRIX_INVERSETRANSPOSE
913 .. data:: MODELMATRIX_TRANSPOSE
914 .. data:: MODELVIEWMATRIX
915 .. data:: MODELVIEWMATRIX_INVERSE
916 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
917 .. data:: MODELVIEWMATRIX_TRANSPOSE
918 .. data:: CAM_POS
919
920    Current camera position
921
922 .. data:: CONSTANT_TIMER
923
924    User a timer for the uniform value.
925
926 .. data:: SHD_TANGENT
927
928 ----------------
929 Blender Material
930 ----------------
931
932 .. data:: BL_DST_ALPHA
933 .. data:: BL_DST_COLOR
934 .. data:: BL_ONE
935 .. data:: BL_ONE_MINUS_DST_ALPHA
936 .. data:: BL_ONE_MINUS_DST_COLOR
937 .. data:: BL_ONE_MINUS_SRC_ALPHA
938 .. data:: BL_ONE_MINUS_SRC_COLOR
939 .. data:: BL_SRC_ALPHA
940 .. data:: BL_SRC_ALPHA_SATURATE
941 .. data:: BL_SRC_COLOR
942 .. data:: BL_ZERO