2011-02-23 10:52:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
									
										
										
										
											2009-06-23 00:09:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  $ Id $ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  * * * * *  BEGIN  GPL  LICENSE  BLOCK  * * * * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software ;  you  can  redistribute  it  and / or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  modify  it  under  the  terms  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  as  published  by  the  Free  Software  Foundation ;  either  version  2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  of  the  License ,  or  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  along  with  this  program ;  if  not ,  write  to  the  Free  Software  Foundation , 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-12 13:34:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Inc . ,  51  Franklin  Street ,  Fifth  Floor ,  Boston ,  MA  02110 - 1301 ,  USA . 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Contributor ( s ) :  none  yet . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  * * * * *  END  GPL  LICENSE  BLOCK  * * * * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 20:29:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** \file blender/editors/transform/transform_ops.c
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ ingroup  edtransform 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "MEM_guardedalloc.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "DNA_scene_types.h" 
  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "RNA_access.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "RNA_define.h" 
  
						 
					
						
							
								
									
										
										
										
											2009-03-07 10:28:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "RNA_enum_types.h" 
  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-10 20:43:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BLI_math.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-01-07 18:36:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BLI_utildefines.h" 
  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BKE_context.h" 
  
						 
					
						
							
								
									
										
										
										
											2009-07-19 17:42:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_global.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-02-23 04:58:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "BKE_armature.h" 
  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "WM_api.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "WM_types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "UI_interface.h" 
  
						 
					
						
							
								
									
										
										
										
											2011-02-27 18:03:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "UI_resources.h" 
  
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "ED_screen.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "transform.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								typedef  struct  TransformModeItem  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									char  * idname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int 		mode ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  ( * opfunc ) ( wmOperatorType * ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  TransformModeItem ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  float  VecOne [ 3 ]  =  { 1 ,  1 ,  1 } ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  char  OP_TRANSLATION [ ]  =  " TRANSFORM_OT_translate " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_ROTATION [ ]  =  " TRANSFORM_OT_rotate " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_TOSPHERE [ ]  =  " TRANSFORM_OT_tosphere " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_RESIZE [ ]  =  " TRANSFORM_OT_resize " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_SHEAR [ ]  =  " TRANSFORM_OT_shear " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_WARP [ ]  =  " TRANSFORM_OT_warp " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_SHRINK_FATTEN [ ]  =  " TRANSFORM_OT_shrink_fatten " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_PUSH_PULL [ ]  =  " TRANSFORM_OT_push_pull " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_TILT [ ]  =  " TRANSFORM_OT_tilt " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_TRACKBALL [ ]  =  " TRANSFORM_OT_trackball " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_MIRROR [ ]  =  " TRANSFORM_OT_mirror " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_EDGE_SLIDE [ ]  =  " TRANSFORM_OT_edge_slide " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_EDGE_CREASE [ ]  =  " TRANSFORM_OT_edge_crease " ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  char  OP_SEQ_SLIDE [ ]  =  " TRANSFORM_OT_seq_slide " ;  
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_translate ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_rotate ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_tosphere ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_resize ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_shear ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_warp ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_shrink_fatten ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
									
										
										
										
											2010-04-11 16:04:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_push_pull ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_tilt ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_trackball ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_mirror ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  TRANSFORM_OT_edge_slide ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
									
										
										
										
											2010-01-09 20:42:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_edge_crease ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_seq_slide ( struct  wmOperatorType  * ot ) ;  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  TransformModeItem  transform_modes [ ]  =  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ OP_TRANSLATION ,  TFM_TRANSLATION ,  TRANSFORM_OT_translate } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_ROTATION ,  TFM_ROTATION ,  TRANSFORM_OT_rotate } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_TOSPHERE ,  TFM_TOSPHERE ,  TRANSFORM_OT_tosphere } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_RESIZE ,  TFM_RESIZE ,  TRANSFORM_OT_resize } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_SHEAR ,  TFM_SHEAR ,  TRANSFORM_OT_shear } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_WARP ,  TFM_WARP ,  TRANSFORM_OT_warp } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_SHRINK_FATTEN ,  TFM_SHRINKFATTEN ,  TRANSFORM_OT_shrink_fatten } , 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-11 16:04:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ OP_PUSH_PULL ,  TFM_PUSHPULL ,  TRANSFORM_OT_push_pull } , 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ OP_TILT ,  TFM_TILT ,  TRANSFORM_OT_tilt } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_TRACKBALL ,  TFM_TRACKBALL ,  TRANSFORM_OT_trackball } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_MIRROR ,  TFM_MIRROR ,  TRANSFORM_OT_mirror } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ OP_EDGE_SLIDE ,  TFM_EDGE_SLIDE ,  TRANSFORM_OT_edge_slide } , 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 20:42:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ OP_EDGE_CREASE ,  TFM_CREASE ,  TRANSFORM_OT_edge_crease } , 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ OP_SEQ_SLIDE ,  TFM_SEQ_SLIDE ,  TRANSFORM_OT_seq_slide } , 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ NULL ,  0 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-04-01 08:51:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								EnumPropertyItem  transform_mode_types [ ]  =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_INIT ,  " INIT " ,  0 ,  " Init " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_DUMMY ,  " DUMMY " ,  0 ,  " Dummy " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TRANSLATION ,  " TRANSLATION " ,  0 ,  " Translation " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_ROTATION ,  " ROTATION " ,  0 ,  " Rotation " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_RESIZE ,  " RESIZE " ,  0 ,  " Resize " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TOSPHERE ,  " TOSPHERE " ,  0 ,  " Tosphere " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_SHEAR ,  " SHEAR " ,  0 ,  " Shear " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_WARP ,  " WARP " ,  0 ,  " Warp " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_SHRINKFATTEN ,  " SHRINKFATTEN " ,  0 ,  " Shrinkfatten " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TILT ,  " TILT " ,  0 ,  " Tilt " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TRACKBALL ,  " TRACKBALL " ,  0 ,  " Trackball " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_PUSHPULL ,  " PUSHPULL " ,  0 ,  " Pushpull " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_CREASE ,  " CREASE " ,  0 ,  " Crease " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_MIRROR ,  " MIRROR " ,  0 ,  " Mirror " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BONESIZE ,  " BONE_SIZE " ,  0 ,  " Bonesize " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BONE_ENVELOPE ,  " BONE_ENVELOPE " ,  0 ,  " Bone_Envelope " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_CURVE_SHRINKFATTEN ,  " CURVE_SHRINKFATTEN " ,  0 ,  " Curve_Shrinkfatten " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BONE_ROLL ,  " BONE_ROLL " ,  0 ,  " Bone_Roll " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TIME_TRANSLATE ,  " TIME_TRANSLATE " ,  0 ,  " Time_Translate " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TIME_SLIDE ,  " TIME_SLIDE " ,  0 ,  " Time_Slide " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TIME_SCALE ,  " TIME_SCALE " ,  0 ,  " Time_Scale " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_TIME_EXTEND ,  " TIME_EXTEND " ,  0 ,  " Time_Extend " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BAKE_TIME ,  " BAKE_TIME " ,  0 ,  " Bake_Time " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BEVEL ,  " BEVEL " ,  0 ,  " Bevel " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_BWEIGHT ,  " BWEIGHT " ,  0 ,  " Bweight " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_ALIGN ,  " ALIGN " ,  0 ,  " Align " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_EDGE_SLIDE ,  " EDGESLIDE " ,  0 ,  " Edge Slide " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ TFM_SEQ_SLIDE ,  " SEQSLIDE " ,  0 ,  " Sequence Slide " ,  " " } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 0 ,  NULL ,  0 ,  NULL ,  NULL } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  snap_type_exec ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ToolSettings  * ts =  CTX_data_tool_settings ( C ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ts - > snap_mode  =  RNA_enum_get ( op - > ptr , " type " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-01-14 02:06:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SCENE | ND_TOOLSETTINGS ,  NULL ) ;  /* header redraw */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  OPERATOR_FINISHED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  void  TRANSFORM_OT_snap_type ( wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name =  " Snap Type " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Set the snap element type " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname =  " TRANSFORM_OT_snap_type " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke =  WM_menu_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec =  snap_type_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll =  ED_operator_areaactive ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* flags */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag =  OPTYPE_UNDO ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* props */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-15 22:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > prop =  RNA_def_enum ( ot - > srna ,  " type " ,  snap_element_items ,  0 ,  " Type " ,  " Set the snap element type " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  select_orientation_exec ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-02-04 11:52:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  orientation  =  RNA_enum_get ( op - > ptr ,  " orientation " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 11:52:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									BIF_selectTransformOrientationValue ( C ,  orientation ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-10 17:40:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SPACE | ND_SPACE_VIEW3D ,  CTX_wm_view3d ( C ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 11:52:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  OPERATOR_FINISHED ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-15 01:36:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  select_orientation_invoke ( bContext  * C ,  wmOperator  * UNUSED ( op ) ,  wmEvent  * UNUSED ( event ) )  
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-04-22 18:39:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									uiPopupMenu  * pup ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									uiLayout  * layout ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 18:03:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									pup =  uiPupMenuBegin ( C ,  " Orientation " ,  ICON_NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-22 18:39:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									layout =  uiPupMenuLayout ( pup ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									uiItemsEnumO ( layout ,  " TRANSFORM_OT_select_orientation " ,  " orientation " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-22 18:39:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									uiPupMenuEnd ( C ,  pup ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 11:52:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  OPERATOR_CANCELLED ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  void  TRANSFORM_OT_select_orientation ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
											
												RNA
* Enums can now be dynamically created in the _itemf callback,
  using RNA_enum_item(s)_add, RNA_enum_item_end. All places asking
  for enum items now need to potentially free the items.
* This callback now also gets context, this was added specifically
  for operators. This doesn't fit design well at all, needed to do
  some ugly hacks, but can't find a good solution at the moment.
* All enums must have a default list of items too, even with an
  _itemf callback, for docs and fallback in case there is no context.
* Used by MESH_OT_merge, MESH_OT_select_similar, TFM_OT_select_orientation.
* Also changes some operator properties that were enums to booleas
  (unselected, deselect), to make them consistent with other ops.
											 
										 
										
											2009-07-10 19:56:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									PropertyRNA  * prop ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-04 11:52:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Select Orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Select transformation orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  " TRANSFORM_OT_select_orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag    =  OPTYPE_UNDO ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  select_orientation_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  select_orientation_exec ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-14 18:27:25 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_view3d_active ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-12 22:33:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									prop =  RNA_def_property ( ot - > srna ,  " orientation " ,  PROP_ENUM ,  PROP_NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_property_ui_text ( prop ,  " Orientation " ,  " Transformation orientation " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-10 17:40:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_enum_funcs ( prop ,  rna_TransformOrientation_itemf ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-15 01:36:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  delete_orientation_exec ( bContext  * C ,  wmOperator  * UNUSED ( op ) )  
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									View3D  * v3d  =  CTX_wm_view3d ( C ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  selected_index  =  ( v3d - > twmode  -  V3D_MANIP_CUSTOM ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									BIF_removeTransformOrientationIndex ( C ,  selected_index ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-10 17:40:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SPACE | ND_SPACE_VIEW3D ,  CTX_wm_view3d ( C ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-14 02:06:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SCENE | NA_EDITED ,  CTX_data_scene ( C ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  OPERATOR_FINISHED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-15 01:36:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  delete_orientation_invoke ( bContext  * C ,  wmOperator  * op ,  wmEvent  * UNUSED ( event ) )  
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  delete_orientation_exec ( C ,  op ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  int  delete_orientation_poll ( bContext  * C )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  selected_index  =  - 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									View3D  * v3d  =  CTX_wm_view3d ( C ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( ED_operator_areaactive ( C )  = =  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if ( v3d )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										selected_index  =  ( v3d - > twmode  -  V3D_MANIP_CUSTOM ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  selected_index  > =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  void  TRANSFORM_OT_delete_orientation ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Delete Orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Delete transformation orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  " TRANSFORM_OT_delete_orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag    =  OPTYPE_UNDO ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  delete_orientation_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  delete_orientation_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  delete_orientation_poll ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  int  create_orientation_exec ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									char  name [ 36 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  use  =  RNA_boolean_get ( op - > ptr ,  " use " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  overwrite  =  RNA_boolean_get ( op - > ptr ,  " overwrite " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_string_get ( op - > ptr ,  " name " ,  name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									BIF_createTransformOrientation ( C ,  op - > reports ,  name ,  use ,  overwrite ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-10 17:40:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SPACE | ND_SPACE_VIEW3D ,  CTX_wm_view3d ( C ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-14 02:06:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_SCENE | NA_EDITED ,  CTX_data_scene ( C ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  OPERATOR_FINISHED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-15 01:36:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  create_orientation_invoke ( bContext  * C ,  wmOperator  * op ,  wmEvent  * UNUSED ( event ) )  
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  create_orientation_exec ( C ,  op ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-14 17:55:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  void  TRANSFORM_OT_create_orientation ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Create Orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Create transformation orientation from selection " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  " TRANSFORM_OT_create_orientation " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag    =  OPTYPE_REGISTER | OPTYPE_UNDO ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  create_orientation_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  create_orientation_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_areaactive ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag    =  OPTYPE_REGISTER | OPTYPE_UNDO ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_string ( ot - > srna ,  " name " ,  " " ,  35 ,  " Name " ,  " Text to insert at the cursor position. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_boolean ( ot - > srna ,  " use " ,  0 ,  " Use after creation " ,  " Select orientation after its creation " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_boolean ( ot - > srna ,  " overwrite " ,  0 ,  " Overwrite previous " ,  " Overwrite previously created orientation with same name " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								static  void  transformops_exit ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									saveTransform ( C ,  op - > customdata ,  op ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									MEM_freeN ( op - > customdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									op - > customdata  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-19 17:42:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									G . moving  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  transformops_data ( bContext  * C ,  wmOperator  * op ,  wmEvent  * event )  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  retval  =  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( op - > customdata  = =  NULL ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-03 22:36:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										TransInfo  * t  =  MEM_callocN ( sizeof ( TransInfo ) ,  " TransInfo data2 " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										TransformModeItem  * tmode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										int  mode  =  - 1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( tmode  =  transform_modes ;  tmode - > idname ;  tmode + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( op - > type - > idname  = =  tmode - > idname ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												mode  =  tmode - > mode ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-02 00:53:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( mode  = =  - 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-26 15:24:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											mode  =  RNA_enum_get ( op - > ptr ,  " mode " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										retval  =  initTransform ( C ,  t ,  op ,  event ,  mode ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-19 17:42:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										G . moving  =  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										/* store data */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-03 22:36:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if ( retval )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											op - > customdata  =  t ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											MEM_freeN ( t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  retval ;  /* return 0 on error */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  int  transform_modal ( bContext  * C ,  wmOperator  * op ,  wmEvent  * event )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  exit_code ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									TransInfo  * t  =  op - > customdata ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-08-02 22:50:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									#if 0 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// stable 2D mouse coords map to different 3D coords while the 3D mouse is active
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// in other words, 2D deltas are no longer good enough!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// disable until individual 'transformers' behave better
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-25 00:00:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( event - > type  = =  NDOF_MOTION ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-02 07:08:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/* puts("transform_modal: passing through NDOF_MOTION"); */ 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-25 00:00:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  OPERATOR_PASS_THROUGH ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-02 07:08:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-02 22:50:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									# endif 
 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-25 00:00:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-09 12:08:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/* XXX insert keys are called here, and require context */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									t - > context =  C ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 16:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									exit_code  =  transformEvent ( t ,  event ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-09 12:08:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									t - > context =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-07 16:52:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									transformApply ( C ,  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 16:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									exit_code  | =  transformEnd ( C ,  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 16:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ( exit_code  &  OPERATOR_RUNNING_MODAL )  = =  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										transformops_exit ( C ,  op ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-29 16:49:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										exit_code  & =  ~ OPERATOR_PASS_THROUGH ;  /* preventively remove passthrough */ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  exit_code ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								static  int  transform_cancel ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TransInfo  * t  =  op - > customdata ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									t - > state  =  TRANS_CANCEL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									transformEnd ( C ,  t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									transformops_exit ( C ,  op ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									return  OPERATOR_CANCELLED ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  int  transform_exec ( bContext  * C ,  wmOperator  * op )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									TransInfo  * t ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! transformops_data ( C ,  op ,  NULL ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-21 17:21:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										G . moving  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  OPERATOR_CANCELLED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									t  =  op - > customdata ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									t - > options  | =  CTX_AUTOCONFIRM ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-07 16:52:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									transformApply ( C ,  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-31 17:11:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									transformEnd ( C ,  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									transformops_exit ( C ,  op ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 14:01:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WM_event_add_notifier ( C ,  NC_OBJECT | ND_TRANSFORM ,  NULL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									return  OPERATOR_FINISHED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								static  int  transform_invoke ( bContext  * C ,  wmOperator  * op ,  wmEvent  * event )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( ! transformops_data ( C ,  op ,  event ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-21 17:21:46 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										G . moving  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 20:46:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  OPERATOR_CANCELLED ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if ( RNA_property_is_set ( op - > ptr ,  " value " ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  transform_exec ( C ,  op ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/* add temp handler */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-18 12:43:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										WM_event_add_modal_handler ( C ,  op ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-17 15:25:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										op - > flag  | =  OP_GRAB_POINTER ;  // XXX maybe we want this with the manipulator only?
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  OPERATOR_RUNNING_MODAL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  Transform_Properties ( struct  wmOperatorType  * ot ,  int  flags )  
						 
					
						
							
								
									
										
										
										
											2010-01-04 20:49:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									PropertyRNA  * prop ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( flags  &  P_AXIS ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										prop =  RNA_def_property ( ot - > srna ,  " axis " ,  PROP_FLOAT ,  PROP_DIRECTION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_property_array ( prop ,  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-19 20:18:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										/* Make this not hidden when there's a nice axis selection widget */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_def_property_ui_text ( prop ,  " Axis " ,  " The axis around which the transformation occurs " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( flags  &  P_CONSTRAINT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 04:53:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_def_boolean_vector ( ot - > srna ,  " constraint_axis " ,  3 ,  NULL ,  " Constraint Axis " ,  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										prop =  RNA_def_property ( ot - > srna ,  " constraint_orientation " ,  PROP_ENUM ,  PROP_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_property_ui_text ( prop ,  " Orientation " ,  " Transformation orientation " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_enum_funcs ( prop ,  rna_TransformOrientation_itemf ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-27 16:15:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( flags  &  P_MIRROR ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_boolean ( ot - > srna ,  " mirror " ,  0 ,  " Mirror Editing " ,  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-29 19:52:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-16 03:16:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( flags  &  P_PROPORTIONAL ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_enum ( ot - > srna ,  " proportional " ,  proportional_editing_items ,  0 ,  " Proportional Editing " ,  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-18 03:24:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_def_enum ( ot - > srna ,  " proportional_edit_falloff " ,  proportional_falloff_items ,  0 ,  " Proportional Editing Falloff " ,  " Falloff type for proportional editing mode. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-27 19:18:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RNA_def_float ( ot - > srna ,  " proportional_size " ,  1 ,  0.00001f ,  FLT_MAX ,  " Proportional Size " ,  " " ,  0.001 ,  100 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( flags  &  P_SNAP ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										prop =  RNA_def_boolean ( ot - > srna ,  " snap " ,  0 ,  " Use Snapping Options " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( flags  &  P_GEO_SNAP )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											prop =  RNA_def_enum ( ot - > srna ,  " snap_target " ,  snap_target_items ,  0 ,  " Target " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											prop =  RNA_def_float_vector ( ot - > srna ,  " snap_point " ,  3 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Point " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( flags  &  P_ALIGN_SNAP )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 15:38:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												prop =  RNA_def_boolean ( ot - > srna ,  " snap_align " ,  0 ,  " Align with Point Normal " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												prop =  RNA_def_float_vector ( ot - > srna ,  " snap_normal " ,  3 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Normal " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:27:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( flags  &  P_OPTIONS ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_boolean ( ot - > srna ,  " texture_space " ,  0 ,  " Edit Object data texture space " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-04 20:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-08-03 08:02:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( flags  &  P_CORRECT_UV ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RNA_def_boolean ( ot - > srna ,  " correct_uv " ,  0 ,  " Correct UV coords when transforming " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 22:32:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit
 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 04:53:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*prop =*/  RNA_def_boolean ( ot - > srna ,  " release_confirm " ,  0 ,  " Confirm on Release " ,  " Always confirm operation when releasing button " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-05 22:32:29 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									//RNA_def_property_flag(prop, PROP_HIDDEN);
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_translate ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-18 14:55:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > name    =  " Translate " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Translate selected items " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_TRANSLATION ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-08-26 00:06:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_vector_xyz ( ot - > srna ,  " value " ,  3 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Vector " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:27:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_ALIGN_SNAP | P_OPTIONS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_resize ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Resize " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Resize selected items " ;  
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_RESIZE ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_float_vector ( ot - > srna ,  " value " ,  3 ,  VecOne ,  - FLT_MAX ,  FLT_MAX ,  " Vector " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:27:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_GEO_SNAP | P_OPTIONS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_trackball ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Trackball " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Trackball style rotation of selected items " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_TRACKBALL ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_float_vector ( ot - > srna ,  " value " ,  2 ,  VecOne ,  - FLT_MAX ,  FLT_MAX ,  " angle " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_rotate ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-18 14:55:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > name    =  " Rotate " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Rotate selected items " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_ROTATION ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-10 18:10:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_rotation ( ot - > srna ,  " value " ,  1 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Angle " ,  " " ,  - M_PI * 2 ,  M_PI * 2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_AXIS | P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_GEO_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_tilt ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Tilt " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-22 09:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/*optionals - 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										" Tilt selected vertices. " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										" Specify an extra axis rotation for selected vertices of 3d curve. "  */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Tilt selected control vertices of 3d curve " ;  
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_TILT ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_editcurve ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-10 18:10:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_rotation ( ot - > srna ,  " value " ,  1 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Angle " ,  " " ,  - M_PI * 2 ,  M_PI * 2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_warp ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Warp " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Warp selected items around the cursor " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_WARP ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-10 18:10:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_rotation ( ot - > srna ,  " value " ,  1 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Angle " ,  " " ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-27 16:15:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// XXX Warp axis?
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_shear ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Shear " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Shear selected items along the horizontal screen axis " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_SHEAR ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-10 18:10:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float ( ot - > srna ,  " value " ,  0 ,  - FLT_MAX ,  FLT_MAX ,  " Offset " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// XXX Shear axis?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-11 16:04:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_push_pull ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Push/Pull " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > description =  " Push/Pull selected items " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > idname  =  OP_PUSH_PULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-11 16:04:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_float ( ot - > srna ,  " value " ,  0 ,  - FLT_MAX ,  FLT_MAX ,  " Distance " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_shrink_fatten ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Shrink/Fatten " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Shrink/fatten selected vertices along normals " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_SHRINK_FATTEN ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_editmesh ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-10 18:10:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float ( ot - > srna ,  " value " ,  0 ,  - FLT_MAX ,  FLT_MAX ,  " Offset " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_tosphere ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " To Sphere " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-22 09:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									//added "around mesh center" to differentiate between "MESH_OT_vertices_to_sphere()" 
 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Move selected vertices outward in a spherical shape around mesh center " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_TOSPHERE ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-21 21:19:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_factor ( ot - > srna ,  " value " ,  0 ,  0 ,  1 ,  " Factor " ,  " " ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_PROPORTIONAL | P_MIRROR | P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_mirror ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-09-10 11:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Mirror " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Mirror selected vertices around one or more axes " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-10 11:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_MIRROR ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-10 11:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_CONSTRAINT | P_PROPORTIONAL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-10 11:04:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_edge_slide ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2009-09-22 20:16:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 03:28:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > name    =  " Edge Slide " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Slide an edge loop along a mesh " ;  
							 
						 
					
						
							
								
									
										
										
										
											2009-09-22 20:16:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_EDGE_SLIDE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_editmesh ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 03:28:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_factor ( ot - > srna ,  " value " ,  0 ,  - 1.0f ,  1.0f ,  " Factor " ,  " " ,  - 1.0f ,  1.0f ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-04 20:42:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-08-03 08:02:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_MIRROR | P_SNAP | P_CORRECT_UV ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-22 20:16:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 20:42:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_edge_crease ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Edge Crease " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Change the crease of edges " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 20:42:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_EDGE_CREASE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_editmesh ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_float_factor ( ot - > srna ,  " value " ,  0 ,  - 1.0f ,  1.0f ,  " Factor " ,  " " ,  - 1.0f ,  1.0f ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 20:42:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_seq_slide ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Sequence Slide " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Slide a sequence strip in time " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  OP_SEQ_SLIDE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > flag  =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_sequencer_active ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_float_vector ( ot - > srna ,  " value " ,  2 ,  VecOne ,  - FLT_MAX ,  FLT_MAX ,  " angle " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  TRANSFORM_OT_transform ( struct  wmOperatorType  * ot )  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2011-03-27 22:15:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									PropertyRNA  * prop ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									/* identifiers */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > name    =  " Transform " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-10 21:15:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > description =  " Transform selected items by mode type " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > idname  =  " TRANSFORM_OT_transform " ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-11 14:51:13 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > flag =  OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* api callbacks */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > invoke  =  transform_invoke ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > exec    =  transform_exec ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ot - > modal   =  transform_modal ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-03 22:15:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > cancel   =  transform_cancel ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-05-18 08:36:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									ot - > poll    =  ED_operator_screenactive ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-03-27 22:15:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									prop =  RNA_def_enum ( ot - > srna ,  " mode " ,  transform_mode_types ,  TFM_TRANSLATION ,  " Mode " ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									RNA_def_property_flag ( prop ,  PROP_HIDDEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-10 19:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									RNA_def_float_vector ( ot - > srna ,  " value " ,  4 ,  NULL ,  - FLT_MAX ,  FLT_MAX ,  " Values " ,  " " ,  - FLT_MAX ,  FLT_MAX ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-10 19:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-02 19:40:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Transform_Properties ( ot ,  P_AXIS | P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_ALIGN_SNAP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  transform_operatortypes ( void )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									TransformModeItem  * tmode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  ( tmode  =  transform_modes ;  tmode - > idname ;  tmode + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										WM_operatortype_append ( tmode - > opfunc ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_operatortype_append ( TRANSFORM_OT_transform ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-06 15:50:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_operatortype_append ( TRANSFORM_OT_select_orientation ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WM_operatortype_append ( TRANSFORM_OT_create_orientation ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									WM_operatortype_append ( TRANSFORM_OT_delete_orientation ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									WM_operatortype_append ( TRANSFORM_OT_snap_type ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								void  transform_keymap_for_space ( wmKeyConfig  * keyconf ,  wmKeyMap  * keymap ,  int  spaceid )  
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
											 
										
											
												Key Configuration
Keymaps are now saveable and configurable from the user preferences, note
that editing one item in a keymap means the whole keymap is now defined by
the user and will not be updated by Blender, an option for syncing might be
added later. The outliner interface is still there, but I will probably
remove it.
There's actually 3 levels now:
* Default builtin key configuration.
* Key configuration loaded from .py file, for configs like Blender 2.4x
  or other 3D applications.
* Keymaps edited by the user and saved in .B.blend. These can be saved
  to .py files as well to make creating distributable configurations
  easier.
Also, user preferences sections were reorganized a bit, now there is:
Interface, Editing, Input, Files and System.
Implementation notes:
* wmKeyConfig was added which represents a key configuration containing
  keymaps.
* wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap.
* Modal maps are not wrapped yet.
* User preferences DNA file reading did not support newdataadr() yet,
  added this now for reading keymaps.
* Key configuration related settings are now RNA wrapped.
* is_property_set and is_property_hidden python methods were added.
											 
										 
										
											2009-10-08 18:40:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									wmKeyMapItem  * km ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									wmKeyMap  * modalmap ; 
							 
						 
					
						
							
								
									
										
											 
										
											
												2.5
Modal keymaps.
I've tried to make it as simple as possible, yet still using sufficient facilities to enable self-documenting UIs, saving/reading in files, and proper Python support.
The simplicity is: the 'modal keymap' just checks an event, uses event matching similarly to other keymap matching, and if there's a match it changes the event type, and sets the event value to what the modal keymap has defined. The event values are being defined using EnumPropertyItem structs, so the UI will be able to show all options in self-documenting way.
This system also allows to still handle hardcoded own events.
Tech doc:
1) define keymap
- Create map with unique name, WM_modalkeymap_add()
- Give map property definitions (EnumPropertyItem *)
  This only for UI, so user can get information on available options
2) items
- WM_modalkeymap_add_item(): give it an enum value for events
3) activate
- In keymap definition code, assign the modal keymap to operatortype
  WM_modalkeymap_assign()
4) event manager
- The event handler will check for modal keymap, if so:
  - If the modal map has a match:
    - Sets event->type to EVT_MODAL_MAP
    - Sets event->val to the enum value
5) modal handler
- If event type is EVT_MODAL_MAP:
  - Check event->val, handle it
- Other events can just be handled still
Two examples added in the code:
editors/transform/transform.c: transform_modal_keymap()
editors/screen/screen_ops.c: keymap_modal_set()
Also: to support 'key release' the define KM_RELEASE now is officially
used in event manager, this is not '0', so don't check key events with
the old convention if(event->val) but use if(event->val==KM_PRESS)
											 
										 
										
											2009-07-21 11:03:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* transform.c, only adds modal map once, checks if it's there */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									modalmap  =  transform_modal_keymap ( keyconf ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* assign map to operators only the first time */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( modalmap )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										TransformModeItem  * tmode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( tmode  =  transform_modes ;  tmode - > idname ;  tmode + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											WM_modalkeymap_assign ( modalmap ,  tmode - > idname ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										WM_modalkeymap_assign ( modalmap ,  " TRANSFORM_OT_transform " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
											 
										
											
												2.5
Modal keymaps.
I've tried to make it as simple as possible, yet still using sufficient facilities to enable self-documenting UIs, saving/reading in files, and proper Python support.
The simplicity is: the 'modal keymap' just checks an event, uses event matching similarly to other keymap matching, and if there's a match it changes the event type, and sets the event value to what the modal keymap has defined. The event values are being defined using EnumPropertyItem structs, so the UI will be able to show all options in self-documenting way.
This system also allows to still handle hardcoded own events.
Tech doc:
1) define keymap
- Create map with unique name, WM_modalkeymap_add()
- Give map property definitions (EnumPropertyItem *)
  This only for UI, so user can get information on available options
2) items
- WM_modalkeymap_add_item(): give it an enum value for events
3) activate
- In keymap definition code, assign the modal keymap to operatortype
  WM_modalkeymap_assign()
4) event manager
- The event handler will check for modal keymap, if so:
  - If the modal map has a match:
    - Sets event->type to EVT_MODAL_MAP
    - Sets event->val to the enum value
5) modal handler
- If event type is EVT_MODAL_MAP:
  - Check event->val, handle it
- Other events can just be handled still
Two examples added in the code:
editors/transform/transform.c: transform_modal_keymap()
editors/screen/screen_ops.c: keymap_modal_set()
Also: to support 'key release' the define KM_RELEASE now is officially
used in event manager, this is not '0', so don't check key events with
the old convention if(event->val) but use if(event->val==KM_PRESS)
											 
										 
										
											2009-07-21 11:03:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									switch ( spaceid ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  SPACE_VIEW3D : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_ROTATION ,  RKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_RESIZE ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_WARP ,  WKEY ,  KM_PRESS ,  KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TOSPHERE ,  SKEY ,  KM_PRESS ,  KM_ALT | KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_SHEAR ,  SKEY ,  KM_PRESS ,  KM_ALT | KM_CTRL | KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_select_orientation " ,  SPACEKEY ,  KM_PRESS ,  KM_ALT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-18 21:36:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km  =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_create_orientation " ,  SPACEKEY ,  KM_PRESS ,  KM_CTRL | KM_ALT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 19:49:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_boolean_set ( km - > ptr ,  " use " ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_MIRROR ,  MKEY ,  KM_PRESS ,  KM_CTRL ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-07 16:10:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-03 19:18:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km  =  WM_keymap_add_item ( keymap ,  " WM_OT_context_toggle " ,  TABKEY ,  KM_PRESS ,  KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-30 13:50:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_string_set ( km - > ptr ,  " data_path " ,  " tool_settings.use_snap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_snap_type " ,  TABKEY ,  KM_PRESS ,  KM_SHIFT | KM_CTRL ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:27:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km  =  WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  TKEY ,  KM_PRESS ,  KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											RNA_boolean_set ( km - > ptr ,  " texture_space " ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:27:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km  =  WM_keymap_add_item ( keymap ,  OP_RESIZE ,  TKEY ,  KM_PRESS ,  KM_SHIFT | KM_ALT ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											RNA_boolean_set ( km - > ptr ,  " texture_space " ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 06:06:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_ACTION : 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_TRANSLATE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_TRANSLATE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_EXTEND ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_SCALE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  TKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_SLIDE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-04 01:08:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 00:50:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_IPO : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_EXTEND ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_ROTATION ,  RKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-03-26 00:25:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_RESIZE ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 00:50:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 11:26:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_NLA : 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TRANSLATION ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 11:26:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TRANSLATION ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 11:26:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_EXTEND ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 11:26:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_SCALE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-09 11:26:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-02 23:58:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_NODE : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  EVT_TWEAK_A ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_boolean_set ( km - > ptr ,  " release_confirm " ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-21 17:23:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_boolean_set ( km - > ptr ,  " release_confirm " ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_ROTATION ,  RKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_RESIZE ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-04 01:08:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 07:01:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_SEQ : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_SEQ_SLIDE ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_SEQ_SLIDE ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-10 10:36:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km =  WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_transform " ,  EKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-03-22 12:53:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_enum_set ( km - > ptr ,  " mode " ,  TFM_TIME_EXTEND ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-21 07:01:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 21:43:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  SPACE_IMAGE : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  GKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_TRANSLATION ,  EVT_TWEAK_S ,  KM_ANY ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-09 02:45:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_ROTATION ,  RKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 21:43:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_RESIZE ,  SKEY ,  KM_PRESS ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 21:43:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-07-27 07:42:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  OP_SHEAR ,  SKEY ,  KM_PRESS ,  KM_ALT | KM_CTRL | KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 03:41:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											WM_keymap_add_item ( keymap ,  " TRANSFORM_OT_mirror " ,  MKEY ,  KM_PRESS ,  KM_CTRL ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-26 19:47:55 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-12-03 19:18:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											km  =  WM_keymap_add_item ( keymap ,  " WM_OT_context_toggle " ,  TABKEY ,  KM_PRESS ,  KM_SHIFT ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-08-30 13:50:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											RNA_string_set ( km - > ptr ,  " data_path " ,  " tool_settings.use_snap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-28 21:43:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-29 04:14:27 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2009-02-09 20:58:31 +00:00