2005-02-20 01:25:10 +00:00
|
|
|
/**
|
|
|
|
|
* $Id$
|
|
|
|
|
*
|
|
|
|
|
* ***** BEGIN GPL/BL DUAL 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. The Blender
|
|
|
|
|
* Foundation also sells licenses for use in proprietary software under
|
|
|
|
|
* the Blender License. See http://www.blender.org/BL/ for information
|
|
|
|
|
* about this.
|
|
|
|
|
*
|
|
|
|
|
* 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,
|
|
|
|
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
*
|
|
|
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* The Original Code is: all of this file.
|
|
|
|
|
*
|
|
|
|
|
* Contributor(s): none yet.
|
|
|
|
|
*
|
|
|
|
|
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef BIF_TRANSFORM_H
|
|
|
|
|
#define BIF_TRANSFORM_H
|
|
|
|
|
|
|
|
|
|
/* ******************** Macros & Prototypes *********************** */
|
|
|
|
|
|
|
|
|
|
/* MODE AND NUMINPUT FLAGS */
|
|
|
|
|
#define TFM_REPEAT 0
|
|
|
|
|
#define TFM_TRANSLATION 1
|
|
|
|
|
#define TFM_ROTATION 2
|
|
|
|
|
#define TFM_RESIZE 3
|
|
|
|
|
#define TFM_TOSPHERE 4
|
|
|
|
|
#define TFM_SHEAR 5
|
2005-03-08 17:29:33 +00:00
|
|
|
#define TFM_WARP 7
|
2005-03-13 20:17:39 +00:00
|
|
|
#define TFM_SHRINKFATTEN 8
|
2005-03-16 21:55:57 +00:00
|
|
|
#define TFM_TILT 9
|
2005-03-13 20:17:39 +00:00
|
|
|
#define TFM_LAMP_ENERGY 10
|
2005-03-19 12:17:06 +00:00
|
|
|
#define TFM_TRACKBALL 11
|
2005-03-31 22:18:08 +00:00
|
|
|
#define TFM_PUSHPULL 12
|
2005-04-04 23:37:15 +00:00
|
|
|
#define TFM_CREASE 13
|
2005-02-20 01:25:10 +00:00
|
|
|
|
2005-03-27 21:25:15 +00:00
|
|
|
/* TRANSFORM CONTEXTS */
|
2005-04-04 02:16:56 +00:00
|
|
|
#define CTX_NONE 0
|
|
|
|
|
#define CTX_TEXTURE 1
|
|
|
|
|
#define CTX_EDGE 2
|
|
|
|
|
#define CTX_NO_PET 4
|
|
|
|
|
#define CTX_NO_NOR_RECALC 8
|
2005-02-25 17:40:03 +00:00
|
|
|
|
2005-03-27 21:25:15 +00:00
|
|
|
/* TRANSFORM PROPORTIONAL FALLOFF MODES */
|
2005-02-20 01:25:10 +00:00
|
|
|
#define PROP_SHARP 0
|
2005-04-01 18:39:39 +00:00
|
|
|
#define PROP_LIN 1
|
2005-02-20 01:25:10 +00:00
|
|
|
#define PROP_ROOT 2
|
2005-04-01 18:39:39 +00:00
|
|
|
#define PROP_SPHERE 3
|
2005-02-20 01:25:10 +00:00
|
|
|
#define PROP_CONST 4
|
2005-04-01 18:39:39 +00:00
|
|
|
#define PROP_SMOOTH 5
|
2005-02-20 01:25:10 +00:00
|
|
|
|
2005-03-27 21:25:15 +00:00
|
|
|
void Transform(int mode, int context);
|
2005-02-20 01:25:10 +00:00
|
|
|
|
|
|
|
|
|
2005-02-20 19:00:00 +00:00
|
|
|
struct TransInfo;
|
So! Finally a show-off of the *power* of Martin P's work! :)
- Made framework for 3d Transform Manipulators (widgets)
- The Manipulators act like '2d buttons', by default with LeftMouse and with
while-hold-move-release
- Implemented now: Translation Widget, which allows:
- four hotspots for axis grab or view-aligned grab
- center defined by 'around' setting
- SHIFT+LMB gives planar constraint on other 2 axes
- works in Object mode and Edit mode (not posemode yet)
Enable it with (temporal) icon in 3D header. All other 'normal' transforms
then keeps working btw.
On the todo for this widget:
- choice for Global, Local or Normal orientation
The way the widgets are going to work is in review still. Commit is also for
Matt for his proposal/paper on topic.
Some notes regarding this project;
- no life updates (on mouse over) like 3DS, I think that's neurotic
- on click, dominant axis changes to theme defined "Transform" color, other axes disappear, like maya
- manipulater size is fixed preset, independent zoom.
- manipulator follows selection, and is located based on 'around' mode
Unresolved;
- in maya, when you select 2 or more objects, the manipulator draws on the 'active' object, also interesting
- what to do with G,R,S hotkeys? It could switch the manipulator "mode"...
- header button/menu for manipulator mode?
2005-03-17 21:31:49 +00:00
|
|
|
struct ScrArea;
|
2005-02-20 19:00:00 +00:00
|
|
|
|
2005-03-09 19:45:59 +00:00
|
|
|
struct TransInfo * BIF_GetTransInfo(void);
|
2005-03-21 17:52:45 +00:00
|
|
|
void BIF_setSingleAxisConstraint(float vec[3], char *text);
|
2005-04-03 20:13:10 +00:00
|
|
|
void BIF_setDualAxisConstraint(float vec1[3], float vec2[3], char *text);
|
2005-03-09 19:45:59 +00:00
|
|
|
void BIF_drawConstraint(void);
|
|
|
|
|
void BIF_drawPropCircle(void);
|
2005-02-20 01:25:10 +00:00
|
|
|
|
So! Finally a show-off of the *power* of Martin P's work! :)
- Made framework for 3d Transform Manipulators (widgets)
- The Manipulators act like '2d buttons', by default with LeftMouse and with
while-hold-move-release
- Implemented now: Translation Widget, which allows:
- four hotspots for axis grab or view-aligned grab
- center defined by 'around' setting
- SHIFT+LMB gives planar constraint on other 2 axes
- works in Object mode and Edit mode (not posemode yet)
Enable it with (temporal) icon in 3D header. All other 'normal' transforms
then keeps working btw.
On the todo for this widget:
- choice for Global, Local or Normal orientation
The way the widgets are going to work is in review still. Commit is also for
Matt for his proposal/paper on topic.
Some notes regarding this project;
- no life updates (on mouse over) like 3DS, I think that's neurotic
- on click, dominant axis changes to theme defined "Transform" color, other axes disappear, like maya
- manipulater size is fixed preset, independent zoom.
- manipulator follows selection, and is located based on 'around' mode
Unresolved;
- in maya, when you select 2 or more objects, the manipulator draws on the 'active' object, also interesting
- what to do with G,R,S hotkeys? It could switch the manipulator "mode"...
- header button/menu for manipulator mode?
2005-03-17 21:31:49 +00:00
|
|
|
/* view3d manipulators */
|
|
|
|
|
void ManipulatorTransform(int mode);
|
|
|
|
|
|
|
|
|
|
int BIF_do_manipulator(struct ScrArea *sa);
|
|
|
|
|
void BIF_draw_manipulator(struct ScrArea *sa);
|
|
|
|
|
|
2005-02-20 01:25:10 +00:00
|
|
|
#endif
|
|
|
|
|
|