Commit Graph

485 Commits

Author SHA1 Message Date
6b51c684f1 NEW! Blender now displays flipped (negative scaled) Objects correctly in
OpenGL draw.

(BTW: the previous commit also solves raytrace errors with negative scaled
objects...)

Further a cleanup of displaylist flags and object/base flags. The #define
ACTIVE is moved to filesel.c (only used here).
The GONNA_MOVE #define got a OB_ added in front.
2004-05-29 16:17:46 +00:00
64fd636f0c Mirror in object mode. Works like Mirror in edit mode but only works on local axis (doing it differently would require a much more clever algorithm).
Mirror Object is assigned to Ctrl-M and I've add Ctrl-M to call Mirror Edit (on top of M alone) for practical reason. We should consider switching both to Ctrl-M for pratical reasons but I kept M for backward compatibility
Also added the menu and toolbox counterparts.

Minor addition to arithb.c: A function to print vectors to the console. Easier for debuging.
2004-04-24 21:09:06 +00:00
8ff958e821 The Anim and Tiles settings in the Image Window are now available again, in the
new Properties panel (was first called Transform Properties). They include the
same settings as were previously found in the window header: Anim toggle,
Start/End frame, Speed, Tiles toggle, X repeat and Y repeat.

The Tiles button used to work incorrectly in 2.25, this is now fixed too.

The drawing of the UV Vertex transform buttons in the Properties panel used to
give popup error messages when in Edit Mode (uv_tface_editing_is_allowed is not
silent). Also these buttons would still draw in Edit Mode. Both are problems
are solved now.
2004-04-23 21:38:01 +00:00
438331af8e Nasty Library linking and appending stuff!
Problem: when appending data, it called the local_all() function, which
indeed made all data local, including all other dynamic linked data.
Not very nice... but mixing dynamic & appending data from single file is
headcrunching code.

Solution: when appending data, it now only makes local_all() the data from
that specific library file, leaving dynamic data from other files linked.

(Bug report 1183)
2004-04-22 19:58:54 +00:00
c9a7e7e392 Fix bug: adding Armature as parent for object, which is not Mesh, crashes blender. Menu item "Use Armature" is present only for Mesh object. 2004-04-11 10:32:14 +00:00
Nathan Letwory
1c3a1ba361 Tell the user he is trying to do a boolean op with a faceless mesh, instead of spewing a meaningless "An internal error occurred -- sorry" message. 2004-04-09 07:42:43 +00:00
10eebdbd78 Fix for bug #1134 Numpad "." key broken for num entry
http://projects.blender.org/tracker/index.php?func=detail&aid=1134&group_id=9&atid=125

Thanks to jesterking for saving me the time to look for the proper spelling for the event ;)
2004-04-08 23:20:25 +00:00
9206a1eba6 - replaced G.{edve,eded,edvl} with G.editMesh, atm just a structure to
hold the three lists, nothing major, but gives a place to hang data
    off of and a single "mesh" structure to pass around for editing
    functions.
2004-03-28 08:46:35 +00:00
Nathan Letwory
00291b5cf4 [GameEngine] Commit all Kester's changes made to the gameengine to restore 2.25 like physics.
[SCons] Build with Solid as default when enabling the gameengine in the build process
[SCons] Build solid and qhull from the extern directory and link statically against them

That was about it.

There are a few things that needs double checking:

* Makefiles
* Projectfiles
* All the other systems than Linux and Windows on which the build (with scons) has been successfully tested.
2004-03-22 22:02:18 +00:00
86108b3665 - removed unused sortfaces function 2004-03-21 00:10:05 +00:00
44a74dbf29 - added editmesh_[de]select_by_material function
- added mesh_set_smooth_flag, mesh_delete_material_index function
 - isolated some globals
 - got rid of reliance on meshdata in buttons_editing.c and material.c
2004-03-20 23:59:57 +00:00
aedf456938 - split the data structures that actually constitute a mesh
(MVert,MFace,etc) off into DNA_meshdata_types.h, to isolate areas
    of source that actually edit mesh *data* vs. areas that just edit
    mesh object information.
2004-03-20 22:55:42 +00:00
Chris Want
6c650c586d Fixed issues surrounding the increased vertex limit:
* Created a MESH_MAX_VERTS macro in DNA_mesh_types.h
* fixed vert limit for converting displistmesh ==> mesh
* fixed vert limit when doing boolean operations
2004-03-14 21:21:09 +00:00
16e90d56d2 - replaced AUTOSPACE define with {ME_,CU_,MB_}AUTOSPACE,
different objects shouldn't share flags this way (still sharing of
  other mesh flags in renderer... ickity pickity, but I'm not fixing now)
 - removed some unnecessary uses of DNA_mesh_types.h
2004-03-14 16:59:48 +00:00
5998c12c60 Fixes bug report 1012. Copy Attrib didn't copy sudsurftype.
(Now it does.)
2004-02-29 16:45:10 +00:00
Chris Want
6aab05fea2 This one is a bit strange to describe so I'll just mention the symptom:
bones in one armature that were constrained to bones in another
armature, which in turn were constrained to a non-armature object
weren't getting updated correctly.

This fixes bf-blender bug #955 (thanks Appolux).

Note: This commit need not be logged in future release notes (was
caused by recent armature speed ups).
2004-02-05 15:08:26 +00:00
Chris Want
e8aaea0b63 Armature related fixes and cleanups:
* Armatures that had constraint targets inside other armatures
  weren't transform()-ing correctly

* Issues with lattice deformed objects that are parents of bones
  when rendering an animation. Seems to be mostly OK now with the
  exception of the first rendered frame -- weird bugs like this have
  plagued blender for ages, which leads me to believe that
  RE_rotateBlenderScene() is a piece of garbage that nobody understands
  (especially me).

* made a few helper functions to clean up some repeated code related
  to clearing constraint status and rebuilding displists.
2004-01-27 06:08:37 +00:00
a5f2e598a2 - added line as provided by Bill Baxter, which makes option "no numpad"
accept the minuskey for numerical input while transform().
2004-01-26 15:42:54 +00:00
Chris Want
1942e4897e Fixed the "bones on invisible layers, that are constrained to objects on
visible layers, don't move during transform()" bug.
2004-01-20 05:12:42 +00:00
f7b9fbbbf2 - Add new scene, and choose "Full Copy", didn't create a new Ipo for a
Camera block; it remained linked to 2 camera's. Fixed!
2004-01-17 17:12:05 +00:00
c1a1ba93ae * Bug fix in view3d menus - wasn't checking a pointer's initialisation strictly enough. 2004-01-14 15:51:37 +00:00
4a8f52f619 Converted the Userpreference buttons to zr's new ButBit calls.
Also added USER_*  to each define located in DNA_userdef.h.
2004-01-13 14:50:45 +00:00
9de93ac9dc * Big menus update
Hard to describe other than by saying:

* Updates, re-thought organisation, etc based on testing
and feedback from 2.30 -> 2.31
* A *lot* of missing entries added
* Toolbox expanded, tidied and more consistent with
 pulldown menus
* A lot of functionality hidden behind secondary pupmenu()s is now exposed through arguments, so that
they can be more easily explored from the pulldowns and
toolbox.

This is the reason for the many changed files in this
commit - had to clean up editing functions. Mixing
interface code in the middle of editing functionality is not
good for menus and toolboxes. Please don't do it!

At this stage, the menu and toolbox system (at least for most window spaces) should be just about 'stable' and 'complete'. It's now up to people to keep them up to date :)
2004-01-12 13:30:00 +00:00
e40eaa4d47 Mirror function: Moved push_mesh to functionality function, to truely split functionality and interface. Thanks to broken for spotting that. 2004-01-12 02:46:14 +00:00
Chris Want
3d07196b74 Better pose figuring: fix for the "blender's bone constraints don't work
in pose mode when you merely move the parent of a constraint subtarget"
bug.
2004-01-12 00:53:23 +00:00
73529471e7 Fixed headerprint for wrap transform. It wasn't consistent with the rest. 2004-01-11 15:48:32 +00:00
f6f06ba54d - removed duplicate flags from BKE_mesh.h
- removed rendermesh_uses_displist (no longer relevant)
 - converted appropriate me->flag tests to using mesh_uses_displist
 - made vert and face counting (for info header) use proper counts
 - changed flip_subdivision to allow level==0 argument
 - ps. thanks for subsurf orco fix ton
2004-01-08 04:42:29 +00:00
Chris Want
7aeb986faf Some better pose figuring: in pose mode, when *any* parent of a
constrained bone is flagged for updating (not just an IK parent) we
should update the constrainted bone (except possibly when the
subtarget bone shares the parent). This solves the "Character doesn't
crouch when I pull his spine downward" bug reported in the testing
builds forum.
2004-01-07 17:11:20 +00:00
ecd620a5aa - removed some old cruft from init_render_displist_mesh (for smeshes-RIP)
- reduced main subsurf interface to two functions to make DispListMesh
    structures from an editmesh or a regular mesh. for the most part this
    means that to implement a geometry modifier you only need to write
    these two functions (not very plugable yet however).
 - added displistmesh_from_mesh and displistmesh_from_editmesh functions
    which allow simple support of subdivLevel(0) subsurfs, somewhat handy
    for testing things (like why orco doesn't work for subsurf).
2004-01-07 10:17:37 +00:00
Chris Want
9f009558bf A few related bug-fixes/refinements
* A patch to make sure that constraints on bones that point to
    external objects are evaluated correctly (and that the bones that
    depend on these bones are evaluated correctly, etc, ad nauseum).
    This addresses some of intrr's issues (the blender-related ones,
    that is).

  * Make sure that deformed displists are updated when the user
    manipulates any of the constraint buttons.

  * Added a nice little function, ik_chain_looper(), that executes a
    callback for every bone in an IK chain.
2004-01-04 03:39:06 +00:00
cf8b43a2c8 - constline was overwriting stack (this patch brought to you by VC7's
nifty runtime stack corruption detection).
2004-01-03 06:52:16 +00:00
Chris Want
d311e96174 Armature speed ups, Part III
----------------------------

Another (major) armature speed up for bones with many constraints.

When tranform()-ing, figure out which bones need to be recalculated
beforehand and only update those bones.
2004-01-03 03:53:18 +00:00
Chris Want
33916a2402 Armature speed ups, Part II
---------------------------
"Delay Deform" option for armatures.

The button is under the X-ray bones button in the edit buttons.
With this armature option selected, manipulations in pose mode
will only deform children after the transformation is finished.
While hardly an optimal solution to the slow armature crisis, this
gives about 4 times speed up on some meshes (ah well, at least lets
me isolate armature vs. displist slowdowns while profiling).
2004-01-03 01:40:53 +00:00
Chris Want
a5a01ed549 Armature speed ups, Part I
--------------------------

Major speed up for armatures during times when you aren't
posing a figure.

Background: the calculation of poses generated by actions and the
calculation of displists were getting somewhat out of sync.
This was being remedied by 'clearing the constraint done flag'
of the pose channels and recalculating the displists every time
the 3d view was redrawn, making life slow and unpleasant.
Commenting out the code that was doing this, then reinserting
the 'clearing the constraint done flag' at the right times
made things a bit more perky.
2004-01-02 23:29:34 +00:00
7f90973344 Fix a problem that has been bugging me for a while. Tracking axis by default are different for Lamp and Camera than for the rest. For the constraint, it wasn't using the correct ones for them, so obviously, it didn't track correctly by default.
Fixed by checking the object type and changing the up and track axis accordingly.

Also added some comments in the DNA file (recompiling makedna because of comments is fun!)
2004-01-01 19:21:06 +00:00
4b6bc29bf2 Some random small stuff packed in one commit:
- Moved a couple of undo_push_mesh after the action has been confirmed (mainly bevel, merge and mirror)

- Split mirror in two functions, interface and functionality

- Simplified the code of the merge function
2003-12-31 22:44:26 +00:00
9aed5cb7f0 Bugfix for bug #760
http://projects.blender.org/tracker/index.php?func=detail&aid=760&group_id=9&atid=125

When using numerical input with scaling, axis that did not have any input scaled to 0 (it defaults to 1 now). Fix inspired by Koryo's patch (it was easier to recode it than to apply the patch and then run through the code to see if he didn't forget anything).

Also fixed some other stuff (the variables didn't reset correctly at some point).
2003-12-28 21:16:11 +00:00
ed67092601 Nathanael Law's fix to make numerical input more compatible with axis constraints.
I thought this was a nice addition, so I'm commiting it.

To Ton for easier changelog creation: When constraining to an axis, numerical input is limited (and will switch automaticly) to that axis.

Original e-mail
-------------------------------
I was playing with the axis constraints for grab and scale transforms
and I thought that the behavior was slightly illogical.  Without axis
constraints, I think everything is great, but once a constraint is used
some irregularities show up.  (Note, this is not a bug, it's more of a
possible improvement)

When you enter grab or scale mode, then constrain the transformation to
a
particular axis, then enter numeric entry mode by hitting a number or
'n', there is no reason for you to try and edit the numeric value of a
non-constrained axis which is the current behavior.

E.g. You grab an object and want to move it along the z-axis, so you
enter grab mode and either hit 'z' or the middle mouse button and you
move the mouse to get an idea of how it looks.  You decide that you
want to use a value of +4.2 with numeric entry; now you have to enter
the following sequence: 'g', 'z', 'move mouse', 'tab', 'tab', '4.2',
'enter'.  However, you're already constrained to the z-axis, so you
should not have to enter 'tab', 'tab'.

The included patch changes the behavior of grab and scale transforms so
that if you are constrained to an axis, and enter numeric entry mode
via
'n' or by hitting a number, you will immediately begin editing the
appropriate axis, and will not have to hit 'tab'.

This may not seem like a big improvement (because it's not), but I feel
that it improves the workflow of a commonly used task slightly and does
not negatively impact any other aspects of the program.

I welcome feedback on this idea.

--
 - Nathanael Law <njlaw@xyrodian.com>
2003-12-17 04:27:29 +00:00
Chris Want
356cf79534 OK, My turn to break things ...
The maximum vertex count for a mesh has been raised from 65000 to
2000000000L (yep, 2 billion!).

Please test!

Chris
2003-12-16 01:27:37 +00:00
ec7c7d6983 BEVEL FOR MESH **** LONG LOG WARNING ****
The interesting part:

Bevelling functions for meshes.
Accessible through the Wkey menu.
You then have to enter the recursivity level (Warning, don't use 3 on a big mesh) and interactivly set the bevel width by moving the mouse. It draws the new faces in yellow. Ctrl constraint to 0.1 multiples, Shift switches to low gear, Space to type a value directly.
Support for selective bevelling isn't really working yet, so be sure to select all the vertices beforehand.


The less interesting part:

Code done by intrr (logical stuff, how the algorithm works) and me (math stuff and the interactive bevel width code).

The splitting and bevelling algorithm is not yet fully optimized, and the face shrinking math still doesn't like too big bevel width values. So this will have to be cleaned too.

Selective bevel is on the list next.

If you have any questions about how the code works, send the questions regarding the logic of the method to intrr and math questions to me.


This is very much testing code (or should I say teasing code), so please don't flood me with bug reports. (This excludes OFFICIAL Blender developpers who were there at the meeting and pretty much know what the limitations of the code is and what it should do.)
2003-12-15 04:38:30 +00:00
4760e53cc1 Some fix for local axis translation in edit mode. Sorry, I've fixed that weeks ago but never commit, so I really don't remember what the actual bug was. :o(
It wasn't from the bugtracker though.
2003-12-15 03:13:22 +00:00
29ac120599 Fixed constline camera grab
There's a bug left with local axis constraints, but it's only a minor annoyance and fixing it would take more time that I can give (finals at the U you know...)

Also deleted some vestige of an old feature that was disabled.
2003-12-02 00:19:08 +00:00
4b2e1c3245 Fixed typing mode in resize to allow scaling to 0.0 2003-11-24 23:18:24 +00:00
4a5ae4a55f Fix for undo... it didn't do the UV coords (tface) nor the vertexpaint
colors. This because of the pretty weird (ab)use of load & make editmesh...

For each added undo step, the load_editmesh was fed with an empty mesh
to assign data to, without knowledge of what was in the original mesh.
That way UV and color data got lost.

Solved it in 2 steps:

1. removing the ->tface pointer from EditVlak, and make TFace a builtin
  struct inside EditVlak. This didnt cost much extra mem, since it already
  stored UV and color. This enabled some pretty cleanup in editmesh.c as
  well, storing tface pointers was cumbersome.
2. for each undo step, it then generates always a tface and mcol block to
  link to the undo Mesh.
  Even when it wasn't in the actual Mesh, at exit editmode the original
  Mesh is used as reference anyway, and undo-meshes are freed correctly.

The enormous commit is because I had to change the BLI_editVert.h file, and
found it was included in about every file unnecessary. I removed it there.
ALso found out that subsurf has code ready (unfinished) to make UV coords for
the displaylist in EditMode as well, nice to know for later...
2003-11-19 22:00:14 +00:00
7fc95b35c5 Fixed typing mode for Warp 2003-11-14 01:34:13 +00:00
163292f34f Fixed the last bug with Mirror and removed it from the Wkey menu (it seemed to confuse some people). Merge should probably be removed too. 2003-11-13 22:57:42 +00:00
0e9dd3060e Fixed a majority of the mirror function bug. AFAIK, the last bug remaining is related to flipping normals.
Also added a couple of undo_push_mesh where they were lacking (mainly Merge, Smooth, Mirror)
2003-11-12 23:34:24 +00:00
f3a809b09f - made option for auto open toolbox on left/mouse hold.
standard starts with 0.5 sec. Turn the threshold value up to effectively
  disable it when you dislike it. But give it a try!
- added 'Home' after splitting window for buttonswindow
2003-10-29 01:10:10 +00:00
1e3da857b9 Ooops
typing code for all the other transform mode too
2003-10-28 15:29:25 +00:00
bfef1d0d92 Hotkey fixes for space.c
renaming mirrormesh to mirrormenu and added to the hotkey M in editmode (Layer move no longer works in edit mode)
2003-10-27 23:55:38 +00:00