BGE Docs: Moving the BL_ArmatureChannel.rotation_mode constant docs from bge.types...
[blender.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 ************
6 Introduction
7 ************
8
9 Module to access logic functions, imported automatically into the python controllers namespace.
10
11 .. module:: bge.logic
12
13 .. code-block:: python
14
15    # To get the controller thats running this python script:
16    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
17    
18    # To get the game object this controller is on:
19    obj = cont.owner
20
21 :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
22
23 .. code-block:: python
24
25    # To get a sensor linked to this controller.
26    # "sensorname" is the name of the sensor as defined in the Blender interface.
27    # +---------------------+  +--------+
28    # | Sensor "sensorname" +--+ Python +
29    # +---------------------+  +--------+
30    sens = cont.sensors["sensorname"]
31
32    # To get a sequence of all sensors:
33    sensors = co.sensors
34
35 See the sensor's reference for available methods:
36
37 .. hlist::
38    :columns: 3
39
40    * :class:`~bge.types.KX_MouseFocusSensor`
41    * :class:`~bge.types.KX_NearSensor`
42    * :class:`~bge.types.KX_NetworkMessageSensor`
43    * :class:`~bge.types.KX_RadarSensor`
44    * :class:`~bge.types.KX_RaySensor`
45    * :class:`~bge.types.KX_TouchSensor`
46    * :class:`~bge.types.SCA_DelaySensor`
47    * :class:`~bge.types.SCA_JoystickSensor`
48    * :class:`~bge.types.SCA_KeyboardSensor`
49    * :class:`~bge.types.SCA_MouseSensor`
50    * :class:`~bge.types.SCA_PropertySensor`
51    * :class:`~bge.types.SCA_RandomSensor`
52
53 You can also access actuators linked to the controller
54
55 .. code-block:: python
56
57    # To get an actuator attached to the controller:
58    #                          +--------+  +-------------------------+
59    #                          + Python +--+ Actuator "actuatorname" |
60    #                          +--------+  +-------------------------+
61    actuator = co.actuators["actuatorname"]
62    
63    # Activate an actuator
64    controller.activate(actuator)
65
66 See the actuator's reference for available methods
67
68 .. hlist::
69    :columns: 3
70    
71    * :class:`~bge.types.BL_ActionActuator`
72    * :class:`~bge.types.KX_CameraActuator`
73    * :class:`~bge.types.KX_ConstraintActuator`
74    * :class:`~bge.types.KX_GameActuator`
75    * :class:`~bge.types.KX_NetworkMessageActuator`
76    * :class:`~bge.types.KX_ObjectActuator`
77    * :class:`~bge.types.KX_ParentActuator`
78    * :class:`~bge.types.KX_SCA_AddObjectActuator`
79    * :class:`~bge.types.KX_SCA_DynamicActuator`
80    * :class:`~bge.types.KX_SCA_EndObjectActuator`
81    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
82    * :class:`~bge.types.KX_SceneActuator`
83    * :class:`~bge.types.KX_SoundActuator`
84    * :class:`~bge.types.KX_StateActuator`
85    * :class:`~bge.types.KX_TrackToActuator`
86    * :class:`~bge.types.KX_VisibilityActuator`
87    * :class:`~bge.types.SCA_2DFilterActuator`
88    * :class:`~bge.types.SCA_PropertyActuator`
89    * :class:`~bge.types.SCA_RandomActuator`
90
91 Most logic brick's methods are accessors for the properties available in the logic buttons.
92 Consult the logic bricks documentation for more information on how each logic brick works.
93
94 There are also methods to access the current :class:`bge.types.KX_Scene`
95
96 .. code-block:: python
97
98    # Get the current scene
99    scene = bge.logic.getCurrentScene()
100
101    # Get the current camera
102    cam = scene.active_camera
103
104 Matricies as used by the game engine are **row major**
105 ``matrix[row][col] = float``
106
107 :class:`bge.types.KX_Camera` has some examples using matrices.
108
109 *********
110 Variables
111 *********
112
113 .. data:: globalDict
114
115    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.
116    It can also be written to a file and loaded later on with the game load/save actuators.
117
118    .. 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.
119
120 .. data:: keyboard
121
122    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
123
124 .. data:: mouse
125
126    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
127
128 *****************
129 General functions
130 *****************
131
132 .. function:: getCurrentController()
133
134    Gets the Python controller associated with this Python script.
135    
136    :rtype: :class:`bge.types.SCA_PythonController`
137
138 .. function:: getCurrentScene()
139
140    Gets the current Scene.
141    
142    :rtype: :class:`bge.types.KX_Scene`
143
144 .. function:: getSceneList()
145
146    Gets a list of the current scenes loaded in the game engine.
147    
148    :rtype: list of :class:`bge.types.KX_Scene`
149    
150    .. 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.
151
152 .. function:: loadGlobalDict()
153
154    Loads bge.logic.globalDict from a file.
155
156 .. function:: saveGlobalDict()
157
158    Saves bge.logic.globalDict to a file.
159
160 .. function:: startGame(blend)
161
162    Loads the blend file.
163    
164    :arg blend: The name of the blend file
165    :type blend: string
166
167 .. function:: endGame()
168
169    Ends the current game.
170
171 .. function:: restartGame()
172
173    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
174    
175 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False, load_scripts=True)
176    
177    Converts the all of the datablocks of the given type from the given blend.
178    
179    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
180    :type blend: string
181    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
182    :type type: string
183    :arg data: Binary data from a blend file (optional)
184    :type data: bytes
185    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
186    :type load_actions: bool
187    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
188    :type verbose: bool
189    :arg load_scripts: Whether or not to load text datablocks as well (can be disabled for some extra security)
190    :type load_scripts: bool
191    
192 .. function:: LibNew(name, type, data)
193
194    Uses existing datablock data and loads in as a new library.
195    
196    :arg name: A unique library name used for removal later
197    :type name: string
198    :arg type: The datablock type (currently only "Mesh" is supported)
199    :type type: string
200    :arg data: A list of names of the datablocks to load
201    :type data: list of strings
202    
203 .. function:: LibFree(name)
204
205    Frees a library, removing all objects and meshes from the currently active scenes.
206
207    :arg name: The name of the library to free (the name used in LibNew)
208    :type name: string
209    
210 .. function:: LibList()
211
212    Returns a list of currently loaded libraries.
213    
214    :rtype: list [str]
215
216 .. function:: addScene(name, overlay=1)
217
218    Loads a scene into the game engine.
219
220    .. note::
221
222       This function is not effective immediately, the scene is queued
223       and added on the next logic cycle where it will be available
224       from `getSceneList`
225
226    :arg name: The name of the scene
227    :type name: string
228    :arg overlay: Overlay or underlay (optional)
229    :type overlay: integer
230
231 .. function:: sendMessage(subject, body="", to="", message_from="")
232
233    Sends a message to sensors in any active scene.
234    
235    :arg subject: The subject of the message
236    :type subject: string
237    :arg body: The body of the message (optional)
238    :type body: string
239    :arg to: The name of the object to send the message to (optional)
240    :type to: string
241    :arg message_from: The name of the object that the message is coming from (optional)
242    :type message_from: string
243
244 .. function:: setGravity(gravity)
245
246    Sets the world gravity.
247    
248    :type gravity: list [fx, fy, fz]
249
250 .. function:: getSpectrum()
251
252    Returns a 512 point list from the sound card.
253    This only works if the fmod sound driver is being used.
254    
255    :rtype: list [float], len(getSpectrum()) == 512
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 .. function:: getExitKey()
328
329    Gets the key used to exit the game engine
330
331    :return: The key (defaults to :mod:`bge.events.ESCKEY`)
332    :rtype: int
333
334 .. function:: setExitKey(key)
335
336    Sets the key used to exit the game engine
337
338    :arg key: A key constant from :mod:`bge.events`
339    :rtype key: int
340
341
342 *****************
343 Utility functions
344 *****************
345
346 .. function:: expandPath(path)
347
348    Converts a blender internal path into a proper file system path.
349
350    Use / as directory separator in path
351    You can use '//' at the start of the string to define a relative path;
352    Blender replaces that string by the directory of the startup .blend or runtime file
353    to make a full path name (doesn't change during the game, even if you load other .blend).
354    The function also converts the directory separator to the local file system format.
355
356    :arg path: The path string to be converted/expanded.
357    :type path: string
358    :return: The converted string
359    :rtype: string
360
361 .. function:: getAverageFrameRate()
362
363    Gets the estimated/average framerate for all the active scenes, not only the current scene.
364
365    :return: The estimated average framerate in frames per second
366    :rtype: float
367
368 .. function:: getBlendFileList(path = "//")
369
370    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
371
372    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
373    :type path: string
374    :return: A list of filenames, with no directory prefix
375    :rtype: list
376
377 .. function:: getRandomFloat()
378
379    Returns a random floating point value in the range [0 - 1)
380
381 .. function:: PrintGLInfo()
382
383    Prints GL Extension Info into the console
384    
385 *********
386 Constants
387 *********
388
389 .. data:: KX_TRUE
390
391    True value used by some modules.
392
393 .. data:: KX_FALSE
394
395    False value used by some modules.
396
397 =======
398 Sensors
399 ======= 
400
401 .. _sensor-status:
402
403 -------------
404 Sensor Status
405 -------------
406
407 .. data:: KX_SENSOR_INACTIVE
408 .. data:: KX_SENSOR_JUST_ACTIVATED
409 .. data:: KX_SENSOR_ACTIVE
410 .. data:: KX_SENSOR_JUST_DEACTIVATED
411
412 .. _logic-property-sensor:
413
414 ---------------
415 Property Sensor
416 ---------------
417
418 .. data:: KX_PROPSENSOR_EQUAL
419
420    Activate when the property is equal to the sensor value.
421
422    :value: 1
423
424 .. data:: KX_PROPSENSOR_NOTEQUAL
425
426    Activate when the property is not equal to the sensor value.
427    
428    :value: 2
429
430 .. data:: KX_PROPSENSOR_INTERVAL
431
432    Activate when the property is between the specified limits.
433    
434    :value: 3
435    
436 .. data:: KX_PROPSENSOR_CHANGED
437
438    Activate when the property changes   
439
440    :value: 4
441
442 .. data:: KX_PROPSENSOR_EXPRESSION
443
444    Activate when the expression matches
445    
446    :value: 5
447
448 ------------
449 Radar Sensor
450 ------------
451
452 See :class:`bge.types.KX_RadarSensor`
453
454 .. data:: KX_RADAR_AXIS_POS_X
455 .. data:: KX_RADAR_AXIS_POS_Y
456 .. data:: KX_RADAR_AXIS_POS_Z
457 .. data:: KX_RADAR_AXIS_NEG_X
458 .. data:: KX_RADAR_AXIS_NEG_Y
459 .. data:: KX_RADAR_AXIS_NEG_Z
460
461 ----------
462 Ray Sensor
463 ----------
464
465 See :class:`bge.types.KX_RaySensor`
466
467 .. data:: KX_RAY_AXIS_POS_X
468 .. data:: KX_RAY_AXIS_POS_Y
469 .. data:: KX_RAY_AXIS_POS_Z
470 .. data:: KX_RAY_AXIS_NEG_X
471 .. data:: KX_RAY_AXIS_NEG_Y
472 .. data:: KX_RAY_AXIS_NEG_Z
473
474
475 =========
476 Actuators
477 =========
478
479 .. _action-actuator:
480
481 ---------------
482 Action Actuator
483 ---------------
484
485 See :class:`bge.types.BL_ActionActuator`
486
487 .. data:: KX_ACTIONACT_PLAY
488 .. data:: KX_ACTIONACT_PINGPONG
489 .. data:: KX_ACTIONACT_FLIPPER
490 .. data:: KX_ACTIONACT_LOOPSTOP
491 .. data:: KX_ACTIONACT_LOOPEND
492 .. data:: KX_ACTIONACT_PROPERTY
493
494 ---------------
495 Armature Actuator
496 ---------------
497
498  .. _armatureactuator-constants-type:
499    
500    See :class:`bge.types.BL_ArmatureActuator.type`
501    
502    .. data:: KX_ACT_ARMATURE_RUN
503
504       Just make sure the armature will be updated on the next graphic frame.
505       This is the only persistent mode of the actuator:
506       it executes automatically once per frame until stopped by a controller
507       
508       :value: 0
509
510    .. data:: KX_ACT_ARMATURE_ENABLE
511
512       Enable the constraint.
513             
514       :value: 1
515
516    .. data:: KX_ACT_ARMATURE_DISABLE
517
518       Disable the constraint (runtime constraint values are not updated).
519             
520       :value: 2
521
522    .. data:: KX_ACT_ARMATURE_SETTARGET
523
524       Change target and subtarget of constraint.
525       
526       :value: 3
527
528    .. data:: KX_ACT_ARMATURE_SETWEIGHT
529
530       Change weight of constraint (IK only).
531
532       :value: 4
533
534    .. data:: KX_ACT_ARMATURE_SETINFLUENCE
535
536       Change influence of constraint.
537
538       :value: 5
539
540 -------------------
541 Constraint Actuator
542 -------------------
543
544 .. _constraint-actuator-option:
545
546 See :class:`bge.types.KX_ConstraintActuator.option`
547
548 * Applicable to Distance constraint:
549
550   .. data:: KX_CONSTRAINTACT_NORMAL
551
552      Activate alignment to surface
553    
554   .. data:: KX_CONSTRAINTACT_DISTANCE
555
556      Activate distance control
557
558   .. data:: KX_CONSTRAINTACT_LOCAL
559
560      Direction of the ray is along the local axis
561
562 * Applicable to Force field constraint:
563
564   .. data:: KX_CONSTRAINTACT_DOROTFH
565
566      Force field act on rotation as well
567
568 * Applicable to both:
569
570   .. data:: KX_CONSTRAINTACT_MATERIAL
571
572      Detect material rather than property
573    
574   .. data:: KX_CONSTRAINTACT_PERMANENT
575
576      No deactivation if ray does not hit target
577
578 .. _constraint-actuator-limit:
579
580 See :class:`bge.types.KX_ConstraintActuator.limit`
581
582 .. data:: KX_CONSTRAINTACT_LOCX
583
584    Limit X coord.
585    
586 .. data:: KX_CONSTRAINTACT_LOCY
587
588    Limit Y coord
589
590 .. data:: KX_CONSTRAINTACT_LOCZ
591
592    Limit Z coord
593    
594 .. data:: KX_CONSTRAINTACT_ROTX
595
596    Limit X rotation
597
598 .. data:: KX_CONSTRAINTACT_ROTY
599
600    Limit Y rotation
601    
602 .. data:: KX_CONSTRAINTACT_ROTZ
603
604    Limit Z rotation
605    
606 .. data:: KX_CONSTRAINTACT_DIRNX
607
608    Set distance along negative X axis
609
610 .. data:: KX_CONSTRAINTACT_DIRNY
611
612    Set distance along negative Y axis
613    
614 .. data:: KX_CONSTRAINTACT_DIRNZ
615
616    Set distance along negative Z axis
617    
618 .. data:: KX_CONSTRAINTACT_DIRPX
619
620    Set distance along positive X axis
621
622 .. data:: KX_CONSTRAINTACT_DIRPY
623
624    Set distance along positive Y axis
625    
626 .. data:: KX_CONSTRAINTACT_DIRPZ
627
628    Set distance along positive Z axis
629    
630 .. data:: KX_CONSTRAINTACT_ORIX
631
632    Set orientation of X axis
633    
634 .. data:: KX_CONSTRAINTACT_ORIY
635
636    Set orientation of Y axis
637    
638 .. data:: KX_CONSTRAINTACT_ORIZ
639
640    Set orientation of Z axis
641    
642 .. data:: KX_CONSTRAINTACT_FHNX
643
644    Set force field along negative X axis
645    
646 .. data:: KX_CONSTRAINTACT_FHNY
647
648    Set force field along negative Y axis
649    
650 .. data:: KX_CONSTRAINTACT_FHNZ
651
652    Set force field along negative Z axis
653    
654 .. data:: KX_CONSTRAINTACT_FHPX
655
656    Set force field along positive X axis
657
658 .. data:: KX_CONSTRAINTACT_FHPY
659
660    Set force field along positive Y axis
661    
662 .. data:: KX_CONSTRAINTACT_FHPZ
663
664    Set force field along positive Z axis
665
666 ----------------
667 Dynamic Actuator
668 ----------------
669
670 See :class:`bge.types.KX_SCA_DynamicActuator`
671
672 .. data:: KX_DYN_RESTORE_DYNAMICS
673 .. data:: KX_DYN_DISABLE_DYNAMICS
674 .. data:: KX_DYN_ENABLE_RIGID_BODY
675 .. data:: KX_DYN_DISABLE_RIGID_BODY
676 .. data:: KX_DYN_SET_MASS
677
678 .. _game-actuator:
679
680 -------------
681 Game Actuator
682 -------------
683
684 See :class:`bge.types.KX_GameActuator`
685
686 .. data:: KX_GAME_LOAD
687 .. data:: KX_GAME_START
688 .. data:: KX_GAME_RESTART
689 .. data:: KX_GAME_QUIT
690 .. data:: KX_GAME_SAVECFG
691 .. data:: KX_GAME_LOADCFG
692
693 ---------------
694 Parent Actuator
695 ---------------
696
697 .. data:: KX_PARENT_REMOVE
698 .. data:: KX_PARENT_SET
699
700 .. _logic-random-distributions:
701
702 --------------------
703 Random Distributions
704 --------------------
705
706 See :class:`bge.types.SCA_RandomActuator`
707
708 .. data:: KX_RANDOMACT_BOOL_CONST
709 .. data:: KX_RANDOMACT_BOOL_UNIFORM
710 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
711 .. data:: KX_RANDOMACT_INT_CONST
712 .. data:: KX_RANDOMACT_INT_UNIFORM
713 .. data:: KX_RANDOMACT_INT_POISSON
714 .. data:: KX_RANDOMACT_FLOAT_CONST
715 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
716 .. data:: KX_RANDOMACT_FLOAT_NORMAL
717 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
718
719 --------------
720 Scene Actuator
721 --------------
722
723 See :class:`bge.types.KX_SceneActuator`
724
725 .. data:: KX_SCENE_RESTART
726 .. data:: KX_SCENE_SET_SCENE
727 .. data:: KX_SCENE_SET_CAMERA
728 .. data:: KX_SCENE_ADD_FRONT_SCENE
729 .. data:: KX_SCENE_ADD_BACK_SCENE
730 .. data:: KX_SCENE_REMOVE_SCENE
731 .. data:: KX_SCENE_SUSPEND
732 .. data:: KX_SCENE_RESUME
733
734 .. _logic-sound-actuator:
735
736 --------------
737 Sound Actuator
738 --------------
739       
740 See :class:`bge.types.KX_SoundActuator`
741
742 .. data:: KX_SOUNDACT_PLAYSTOP
743
744    :value: 1
745    
746 .. data:: KX_SOUNDACT_PLAYEND
747
748    :value: 2
749    
750 .. data:: KX_SOUNDACT_LOOPSTOP
751
752    :value: 3
753    
754 .. data:: KX_SOUNDACT_LOOPEND
755
756    :value: 4
757    
758 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
759
760    :value: 5
761    
762 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
763
764    :value: 6
765    
766
767 =======
768 Various
769 =======
770
771 .. _input-status:
772
773 ------------
774 Input Status
775 ------------
776
777 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
778
779 .. data:: KX_INPUT_NONE
780 .. data:: KX_INPUT_JUST_ACTIVATED
781 .. data:: KX_INPUT_ACTIVE
782 .. data:: KX_INPUT_JUST_RELEASED
783
784 -------------
785 Mouse Buttons
786 -------------
787
788 See :class:`bge.types.SCA_MouseSensor`
789
790 .. data:: KX_MOUSE_BUT_LEFT
791 .. data:: KX_MOUSE_BUT_MIDDLE
792 .. data:: KX_MOUSE_BUT_RIGHT
793
794 ------------
795 Navigation Mesh Draw Modes
796 ------------
797
798 .. _navmesh-draw-mode:
799
800 .. data:: RM_WALLS
801
802    Draw only the walls.
803
804 .. data:: RM_POLYS
805
806    Draw only polygons.
807  
808 .. data:: RM_TRIS
809
810    Draw triangle mesh.
811
812 ------
813 States
814 ------
815
816 See :class:`bge.types.KX_StateActuator`
817
818 .. data:: KX_STATE1
819 .. data:: KX_STATE2
820 .. data:: KX_STATE3
821 .. data:: KX_STATE4
822 .. data:: KX_STATE5
823 .. data:: KX_STATE6
824 .. data:: KX_STATE7
825 .. data:: KX_STATE8
826 .. data:: KX_STATE9
827 .. data:: KX_STATE10
828 .. data:: KX_STATE11
829 .. data:: KX_STATE12
830 .. data:: KX_STATE13
831 .. data:: KX_STATE14
832 .. data:: KX_STATE15
833 .. data:: KX_STATE16
834 .. data:: KX_STATE17
835 .. data:: KX_STATE18
836 .. data:: KX_STATE19
837 .. data:: KX_STATE20
838 .. data:: KX_STATE21
839 .. data:: KX_STATE22
840 .. data:: KX_STATE23
841 .. data:: KX_STATE24
842 .. data:: KX_STATE25
843 .. data:: KX_STATE26
844 .. data:: KX_STATE27
845 .. data:: KX_STATE28
846 .. data:: KX_STATE29
847 .. data:: KX_STATE30
848
849 .. _state-actuator-operation:
850
851 See :class:`bge.types.KX_StateActuator.operation`
852
853 .. data:: KX_STATE_OP_CLR
854
855    Substract bits to state mask
856    
857    :value: 0
858
859 .. data:: KX_STATE_OP_CPY
860
861    Copy state mask
862    
863    :value: 1
864    
865 .. data:: KX_STATE_OP_NEG
866
867    Invert bits to state mask
868    
869    :value: 2
870    
871 .. data:: KX_STATE_OP_SET
872
873    Add bits to state mask
874    
875    :value: 3
876    
877 .. _Two-D-FilterActuator-mode:
878
879 ---------
880 2D Filter
881 ---------
882
883 .. data:: RAS_2DFILTER_BLUR
884
885    :value: 2
886    
887 .. data:: RAS_2DFILTER_CUSTOMFILTER
888
889    Customer filter, the code code is set via shaderText property.
890    
891    :value: 12
892    
893 .. data:: RAS_2DFILTER_DILATION
894
895    :value: 4
896    
897 .. data:: RAS_2DFILTER_DISABLED
898
899    Disable the filter that is currently active
900
901    :value: -1
902    
903 .. data:: RAS_2DFILTER_ENABLED
904
905    Enable the filter that was previously disabled
906
907    :value: -2
908    
909 .. data:: RAS_2DFILTER_EROSION
910
911    :value: 5
912    
913 .. data:: RAS_2DFILTER_GRAYSCALE
914
915    :value: 9
916    
917 .. data:: RAS_2DFILTER_INVERT
918
919    :value: 11
920    
921 .. data:: RAS_2DFILTER_LAPLACIAN
922
923    :value: 6
924    
925 .. data:: RAS_2DFILTER_MOTIONBLUR
926
927    Create and enable preset filters
928
929    :value: 1
930    
931 .. data:: RAS_2DFILTER_NOFILTER
932
933    Disable and destroy the filter that is currently active
934
935    :value: 0
936    
937 .. data:: RAS_2DFILTER_PREWITT
938
939    :value: 8
940    
941 .. data:: RAS_2DFILTER_SEPIA
942
943    :value: 10
944    
945 .. data:: RAS_2DFILTER_SHARPEN
946
947    :value: 3
948    
949 .. data:: RAS_2DFILTER_SOBEL
950
951    :value: 7
952    
953 ------
954 Shader
955 ------
956
957 .. data:: VIEWMATRIX
958 .. data:: VIEWMATRIX_INVERSE
959 .. data:: VIEWMATRIX_INVERSETRANSPOSE
960 .. data:: VIEWMATRIX_TRANSPOSE
961 .. data:: MODELMATRIX
962 .. data:: MODELMATRIX_INVERSE
963 .. data:: MODELMATRIX_INVERSETRANSPOSE
964 .. data:: MODELMATRIX_TRANSPOSE
965 .. data:: MODELVIEWMATRIX
966 .. data:: MODELVIEWMATRIX_INVERSE
967 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
968 .. data:: MODELVIEWMATRIX_TRANSPOSE
969 .. data:: CAM_POS
970
971    Current camera position
972
973 .. data:: CONSTANT_TIMER
974
975    User a timer for the uniform value.
976
977 .. data:: SHD_TANGENT
978
979 ----------------
980 Blender Material
981 ----------------
982
983 .. data:: BL_DST_ALPHA
984 .. data:: BL_DST_COLOR
985 .. data:: BL_ONE
986 .. data:: BL_ONE_MINUS_DST_ALPHA
987 .. data:: BL_ONE_MINUS_DST_COLOR
988 .. data:: BL_ONE_MINUS_SRC_ALPHA
989 .. data:: BL_ONE_MINUS_SRC_COLOR
990 .. data:: BL_SRC_ALPHA
991 .. data:: BL_SRC_ALPHA_SATURATE
992 .. data:: BL_SRC_COLOR
993 .. data:: BL_ZERO
994
995 ----------------
996 Armature Channel
997 ----------------
998 .. _armaturechannel-constants-rotation-mode:
999
1000    See :class:`bge.types.BL_ArmatureChannel.rotation_mode`
1001    
1002    .. note:
1003       euler mode are named as in Blender UI but the actual axis order is reversed
1004
1005    .. data:: ROT_QUAT
1006    
1007       Use quaternion in rotation attribute to update bone rotation.
1008           
1009       :value: 0
1010
1011    .. data:: ROT_XYZ
1012    
1013       Use euler_rotation and apply angles on bone's Z, Y, X axis successively.
1014           
1015       :value: 1
1016
1017    .. data:: ROT_XZY
1018    
1019       Use euler_rotation and apply angles on bone's Y, Z, X axis successively.
1020           
1021       :value: 2
1022
1023    .. data:: ROT_YXZ
1024    
1025       Use euler_rotation and apply angles on bone's Z, X, Y axis successively.
1026           
1027       :value: 3
1028
1029    .. data:: ROT_YZX
1030    
1031       Use euler_rotation and apply angles on bone's X, Z, Y axis successively.
1032           
1033       :value: 4
1034
1035    .. data:: ROT_ZXY
1036    
1037       Use euler_rotation and apply angles on bone's Y, X, Z axis successively.
1038           
1039       :value: 5
1040
1041    .. data:: ROT_ZYX
1042    
1043       Use euler_rotation and apply angles on bone's X, Y, Z axis successively.
1044           
1045       :value: 6
1046
1047
1048 ----------------
1049 Armature Constraint
1050 ----------------
1051    .. _armatureconstraint-constants-type:
1052
1053    See :class:`bge.types.BL_ArmatureConstraint.type`
1054
1055    .. data:: CONSTRAINT_TYPE_TRACKTO
1056    .. data:: CONSTRAINT_TYPE_KINEMATIC
1057    .. data:: CONSTRAINT_TYPE_ROTLIKE
1058    .. data:: CONSTRAINT_TYPE_LOCLIKE
1059    .. data:: CONSTRAINT_TYPE_MINMAX
1060    .. data:: CONSTRAINT_TYPE_SIZELIKE
1061    .. data:: CONSTRAINT_TYPE_LOCKTRACK
1062    .. data:: CONSTRAINT_TYPE_STRETCHTO
1063    .. data:: CONSTRAINT_TYPE_CLAMPTO
1064    .. data:: CONSTRAINT_TYPE_TRANSFORM
1065    .. data:: CONSTRAINT_TYPE_DISTLIMIT
1066
1067    .. _armatureconstraint-constants-ik-type:
1068
1069    See :class:`bge.types.BL_ArmatureConstraint.ik_type`
1070       
1071    .. data:: CONSTRAINT_IK_COPYPOSE
1072       
1073       constraint is trying to match the position and eventually the rotation of the target.
1074       
1075       :value: 0
1076    
1077    .. data:: CONSTRAINT_IK_DISTANCE
1078       
1079       Constraint is maintaining a certain distance to target subject to ik_mode
1080       
1081       :value: 1
1082
1083    .. _armatureconstraint-constants-ik-flag:
1084
1085    See :class:`bge.types.BL_ArmatureConstraint.ik_flag`
1086
1087    .. data:: CONSTRAINT_IK_FLAG_TIP
1088       
1089       Set when the constraint operates on the head of the bone and not the tail
1090       
1091       :value: 1
1092       
1093    .. data:: CONSTRAINT_IK_FLAG_ROT
1094       
1095       Set when the constraint tries to match the orientation of the target
1096       
1097       :value: 2
1098       
1099    .. data:: CONSTRAINT_IK_FLAG_STRETCH
1100       
1101       Set when the armature is allowed to stretch (only the bones with stretch factor > 0.0)
1102       
1103       :value: 16
1104       
1105    .. data:: CONSTRAINT_IK_FLAG_POS
1106       
1107       Set when the constraint tries to match the position of the target.
1108       
1109       :value: 32
1110       
1111    .. _armatureconstraint-constants-ik-mode:
1112
1113    See :class:`bge.types.BL_ArmatureConstraint.ik_mode`
1114    
1115    .. data:: CONSTRAINT_IK_MODE_INSIDE
1116       
1117       The constraint tries to keep the bone within ik_dist of target
1118       
1119       :value: 0
1120       
1121    .. data:: CONSTRAINT_IK_MODE_OUTSIDE
1122       
1123       The constraint tries to keep the bone outside ik_dist of the target
1124       
1125       :value: 1
1126       
1127    .. data:: CONSTRAINT_IK_MODE_ONSURFACE
1128       
1129       The constraint tries to keep the bone exactly at ik_dist of the target.
1130       
1131       :value: 2