Commit Graph

131 Commits

Author SHA1 Message Date
Daniel Dunbar
33709bf6e2 - shuffled editmesh derived function name/function
- added ModifierTypeInfo.freeData function
 - added modifier_{new,free] utility function
 - added ccgSubSurf_getUseAgeCounts to query info
 - removed subsurf modifier faking (ME_SUBSURF flag is no
   longer valid). subsurf modifier gets converted on file load
   although there is obscure linked mesh situation where this
   can go wrong, will fix shortly. this also means that some
   places in the code that test/copy subsurf settings are broken
   for the time being.
 - shuffled modifier calculation to be simpler. note that
   all modifiers are currently disabled in editmode (including
   subsurf). don't worry, will return shortly.
 - bug fix, build modifier didn't randomize meshes with only verts
 - cleaned up subsurf_ccg and adapted for future editmode modifier
   work
 - added editmesh.derived{Cage,Final}, not used yet
 - added SubsurfModifierData.{mCache,emCache}, will be used to cache
   subsurf instead of caching in derivedmesh itself
 - removed old subsurf buttons
 - added do_modifiers_buttons to handle modifier events
 - removed count_object counting of modifier (subsurfed) objects...
   this would be nice to add back at some point but requires care.
   probably requires rewrite of counting system.

New feature: Incremental Subsurf in Object Mode

The previous release introduce incremental subsurf calculation during
editmode but it was not turned on during object mode. In general it
does not make sense to have it always enabled during object mode because
it requires caching a fair amount of information about the mesh which
is a waste of memory unless the mesh is often recalculated.

However, for mesh's that have subsurfed armatures for example, or that
have other modifiers so that the mesh is essentially changing on every
frame, it makes a lot of sense to keep the subsurf'd object around and
that is what the new incremental subsurf modifier toggle is for. The
intent is that the user will enable this option for (a) a mesh that is
currently under active editing or (b) a mesh that is heavily updated
in the scene, such as a character.

I will try to write more about this feature for release, because it
has advantages and disadvantages that are not immediately obvious (the
first user reaction will be to turn it on for ever object, which is
probably not correct).
2005-07-21 20:30:33 +00:00
Daniel Dunbar
ba28fc489a - added an array shuffling function to BLI_rand 2005-07-20 03:33:44 +00:00
Erwin Coumans
2d73b31aff preparation for bullet physics 2005-07-16 21:47:54 +00:00
Johnny Matthews
798d39dd4c Well here it is. Subdivision/Loop Tools Recode Commit #1
Ton has been pushing me to get this in and finish it up with help, so here is a run down of the commit

Revised Features
	Subdivide now is Edge based, allows for multicut
	Loopcut was recoded, now has multi option
	Knife tool now has multi option

New Features
	Edgeslide
	Edgering select

Removed Features
	Alt-B Edgeloop selection (use alt-RMB in edgemode)
	Shift-R Faceloop selection (use alt-RMB in facemode)
	Old Subdivide (Except for smooth which is left in until new one works)

Todo
	Subdivide Smooth Math is broken - could use some help here (look for alter_co in editmesh_tools.c)
	Tweak mouse control of Edgeslide is hackish ATM
	Add Non-proportional movement  to edgeslide
	Add smooth option to new loopcut

I probably left something out.

See here for more info
http://wiki.blender.org/bin/view.pl/Blenderdev/EdgeSubdivision
2005-07-13 15:20:40 +00:00
Martin Poirier
44ed77b888 Added some missing quaternions fonctions:
QuatMulVecf	Multiplies vector (3-float) by quaternion (rotation). Assumes it recieves a unit quaternion
QuatConj	Quaternion conjugate
QuatInv		Quaternion inverse (does not assume a unit quat)
QuatMulf	Quaternion multiplication with scalar
QuatDot		Quaternion dot product
printquat	debug print function
2005-07-05 00:30:40 +00:00
Alexander Ewering
97df61a7e5 Initial commit for new text object.
Important notes:

 - Full compatibility with old text objects not fully restored
   (word spacing will be 0.0, need to set it manually to 1.0), will
   either need version upgrade to 238 or a hack. Will check.

 - lorem.c (about to be committed) contains BF copyright notice, but as
   BF did not exist a few hundred years ago, probably best to remove it :)

 - If you notice any cross-platform issues (especially beloved windows),
   please report

 - A few tiny warnings left, I will fix those issues still.

The rest has been said already - so have fun testing. And please do!

=== Reminder:
=== Documentation at http://blender.instinctive.de/docs/textobject.txt ===
2005-06-17 21:04:27 +00:00
Nathan Letwory
f73183ae49 * fix for bug #2720 2005-06-10 13:12:59 +00:00
Jean-Luc Peurière
f38e0686d9 new round of warning fixes. we are now down to 24 with Xcode on blender
alone with the following flags :
-Wall -Wno-char-subscripts -Wno-missing-braces.

the only one still worrying me is in rand.c line 57 :

rand.c:57: integer constant is too large for "long" type

but i have no clue about how correct cross-compiler and 32/64 bits friendly

see also my mail to commiter list for signed/unsigned issues
2005-06-04 16:22:50 +00:00
Nathan Letwory
b7cc5b790a * Check path for NULL. Fixes potential crash on non-win32 systems at startup, but also future passes of null. 2005-05-20 12:37:48 +00:00
Nathan Letwory
1071d4a16e This commit fixes two related issues:
1:
* when a blendfile gets loaded, paths are corrected with OS specific slashes (see blender.c)
* made available BLI_char_switch(char *string, char from, char to)
* made available BLI_clean(char *string);. This function should be called whenever you're doing path stuff, so paths are correctly saved, and thus avoiding other path functions stopping to work

2:
* relative paths work now in sequencer too (due to slash mess that didn't work all too well).
2005-05-20 12:18:11 +00:00
Ton Roosendaal
ea3f579482 - file sizes > 4 GB were not correctly displayed in the file window. It
still was using int for calculus... made it using 64 bits ints.

- The "disk free" indicator in the header didn't work for OSX, due to
  a missing #ifdef __APPLE_
2005-04-30 09:57:35 +00:00
Brecht Van Lommel
6a00fcd90c Add "View Selected" (numpad .-key) for faceselect mode and the uv editor.
Also includes some 2d vector operations (subtract, dot, normalise).
2005-04-22 20:16:02 +00:00
Ton Roosendaal
8a02dc11de Patch provided by Andrea Weikert (elubie):
With a few tests I have discovered that when quitting Blender the filelist
in SpaceFile doesn't get free'd.

storage.c:
I have replaced strdup for the relname member in BLI_builddir with BLI_strdup.
and malloc with MEM_mallocN for the string member in BLI_addstrings().

filesel.c:
Of course also had to replace free with MEM_freeN in freefilelist().

In freespacelist (space.c) I added call to freefilelist for the SPACE_FILE
space type.
2005-04-17 15:50:52 +00:00
Ton Roosendaal
b7796f5481 Yuck, forgot to uncommit the ugly version of Mat3ToSize(). Caused scaling
to do very weird things on rotated objects.
2005-04-04 14:21:09 +00:00
Daniel Dunbar
93c66febd7 - removed DispListMesh.{editedge,editface}
- removed displistmesh_from_{mesh,editmesh}
 - removed EditVert.ssco
 - removed unused functions for DispListMesh DerivedMesh

 Still need lots more testing for this stuff.
2005-04-04 04:50:41 +00:00
Daniel Dunbar
a5e55df5ec - BLI_STRUCT_OFFSET was not defined correctly, fixed 2005-04-03 21:45:43 +00:00
Daniel Dunbar
3144d64076 - fix unused variable warning 2005-04-02 18:20:03 +00:00
Daniel Dunbar
24c9f65056 - got tired of str[n]casecmp not declared warnings
- added BLI_str[n]casecmp, use instead of regular versions
 - rewrote BLI_str[n]casecmp to not be stupid
2005-04-02 15:36:57 +00:00
Daniel Dunbar
f0a8a93292 - removed USE_CCGSUBSURF define (always on now)
- added G.editMesh->derived pointer... idea is to use this
   for mesh derived from editmesh instead of Mesh->derived (as the
   derived mesh tends to vary depending on what it came from).

   This part could be cleaner, also there may problems with it not
   being invalidated correctly.

 - And most importantly: In case people were beginning to worry all
   these edits were just crazy zr stuff, the big point comes about:
   Incremental subsurf calculation is now enabled. This gives massive
   speed improvements when editing a large mesh.

   For the eye-candy happy: try setting G.rt==52 before entering editmode
   and the edges and vertices (in optimal mode) will switch to displaying
   visually the age since a region has last been calculated. Lots of
   fun!
2005-03-31 15:44:05 +00:00
Daniel Dunbar
eeb3e173a6 - perhaps I should commit a version that compiles 2005-03-31 13:56:50 +00:00
Daniel Dunbar
ac35fb34b8 - committed VecLength function for theeth 2005-03-31 13:44:23 +00:00
Daniel Dunbar
11a96fdddc - restored msvc warning disable code 2005-03-30 05:05:05 +00:00
Daniel Dunbar
e229722d5b - added Mesh->derived and Mesh->decimated DerivedMesh pointers
- removed DL_MESH displist type!!!! Now store a DerivedMesh directly.
 - May still be some issues left having to do with releasing this
   at the right time (old code just splashed free_displist all
   over the place).
2005-03-29 16:43:39 +00:00
Daniel Dunbar
67eaf69f3f - added mesh_get_derived_render
- cancelled previous commit to add RE_findTFAce, instead just added
   a MemArena to render struct... free'd at end of render, can be used
   to store other data as well
 - switch rendering to using DerivedMesh API... this is slightly more
   inefficient now because it is doing some unnecessary copying. Can
   be fixed by defining a DerivedMesh function to convert the object
   into a render object (on todo list)
2005-03-28 21:49:49 +00:00
Daniel Dunbar
85b9f7ccfb - switch some code to using BLI_strncpy (with right string lengths!) 2005-03-28 18:37:19 +00:00
Simon Clitherow
b4ff308709 bug fix for #2096:
- switched strcpy calls to strncpy using FILE_MAXDIR & FILE_MAXFILE to prevent buffer overruns.  Non-windows code left untouched. :)
2005-03-28 15:29:59 +00:00
Ton Roosendaal
b8d59ccb69 Transform goodies;
- Added icons for the Widgets to blenderbuttons pic
- Added in header - if widget in use - three buttons to choose widget type
  (hold shift for combo widgets)
- Hotkey CTRL+space now switches widgets on/off

I also noticed negative scaling doesn't work satisfying yet;
- for scale widget, using center didn't work correct anymore (fixed)
- negative scaling didn't even get applied! (fixed)
- but; scaling somethig negative now flips back to positive... ????

Last one i need Martin P for! Note that I had to change Mat3ToSize....
2005-03-27 18:17:48 +00:00
Daniel Dunbar
6e41cb0a97 - switch BLI_memarena to use stdlib malloc/free (alloc errors
will be caught by containing structure)
 - fixed off-by-one bug (reallocated one byte before necessary)
2005-03-21 00:48:19 +00:00
Daniel Dunbar
8e92ee8684 - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)
NOTE: BLI_winstuff.h was meant to be a wrapper around windows.h to handle
undefining various crap that windows.h defines. Platform specific headers
should only have to be included in a few places. This reduces the number
of inclusions of BLI_winstuff.h to 16 which is a much more reasonable
number (than the 144 or whatever it used to be)
2005-03-19 21:08:13 +00:00
Daniel Dunbar
b3bb3f06ba Some cleaning up of BLI_winstuff.h usage
- removed reference in render.h (really bad, shouldn't include a platform
   specific header so widely unless really necessary)
 - added M_PI, M_PI_2, M_SQRT, M_SQRT_2 defines to BLI_arithb.h... this is
   a better place as it is more the "standard" blender math header. left
   in winstuff.h as well for the moment for simplicity
 - other changes are patches to code so everything works ok with this
   shuffling.
2005-03-19 20:04:25 +00:00
Jean-Luc Peurière
3ca88c4e7f ome more warnings cleaning 2005-03-14 20:10:22 +00:00
Jean-Luc Peurière
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
Simon Clitherow
b2288bca09 Applied correct '\\' for file paths on Windows (thanks Elubie!) 2005-03-03 20:40:48 +00:00
Martin Poirier
cfd5439bc6 Fixed Constraint projection code in perspective mode. When using a planar constraints, it follows the movement of the mouse exactly instead of just casting on the plane.
In user terms: the motion on screen of the selection follows the motion of the mouse pointer.

Gives some errors when the constraint plane is nearly perpendicular to the view port though.

Added a debug print function for 4D vectors to arithb.c

Optimised the 3D -> view projection functions in view.c (a bit).
2005-02-27 19:14:21 +00:00
Kent Mein
e13933bc7c Added include sys/vfs.h for hpux was in the patches tracker....
and cleaned up the include for dirent.h

Kent
2005-02-25 14:50:57 +00:00
Kent Mein
8c4608bbf4 I updated the FREETYPE2 checks so it didn't build freetype stuff
if WITH_FREETYPE2 was set to false.

Also added/cleaned up source/nan_compile.mk NAN_NOKETSJI stuff a hair.

Kent
2005-02-18 16:52:03 +00:00
Ton Roosendaal
996374bb5a Fixed old annoyance; enabling true Ortho render in Blender.
It used to be a simple hack, scaling lens with 100, and moving the camera
to the back with an equivalent amount.
Because of the hack, making it 100% compatible with older files I could not
achieve (yet?). To help reminding users, I've added a print when reading
old files with Ortho cameras.

Full description of how it works can be found here;
http://www.blender3d.com/cms/Render_changes.515.0.html
2005-01-30 11:25:27 +00:00
Ton Roosendaal
3806b050d6 Mixup of vectors in VecAngle3 (caused by me switching order of args!)
Resulted in wrong angle display, especially in trias
2005-01-09 14:28:18 +00:00
Ton Roosendaal
3c921cc8e8 The "teac" (measurement info) patch from Campbell Barton
Cleaned code somewhat (half the size!) and applied some changes:
- made it compatible with selection flags for new mesh editing (edge/face)
- renamed 'face angles' to 'edge angles' and made it display angles for
  2 selected edges too
- removed the confusing convention that always drawed the info if one
  of the vertices of edge/face/angle was selected. now it only displays on
  minimum of 1 full edge or face selected.
- made it react to "zbuf occluded selection" option (for zbuffered text)
- made it also colorize text for white theme color (TH_TEXT)

On larger meshes this info still draws very confusing. The idea of displaying
the info on 1 vertex selected was probably to show values while grabbing,
although that didnt really work for angles. One idea could be, for transform,
that it draws all lenghts/angles/areas that get changed during transform

All in all, still useful addition tho!
2005-01-08 21:16:24 +00:00
Kent Mein
48bc598658 More warning cleanups...
added a casts to:
   blender/blenlib/intern/BLI_memarena.c
   gameengine/Rasterizer/RAS_TexVert.cpp

Removed unused vars from:
   blender/python/api2_2x/vector.c
   gameengine/Ketsji/KX_PyMath.cpp gameengine/Ketsji/KX_Scene.cpp
   gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
   gameengine/Rasterizer/RAS_FramingManager.cpp
   gameengine/Rasterizer/RAS_Polygon.cpp
   gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Kent
2005-01-03 18:05:24 +00:00
Kent Mein
8055b5c247 Some of the Makefiles had CPPFLAGS += LEVEL_(X)_C_WARNINGS
I changed them so that they have CPPFLAGS += LEVEL(X)_CPP_WARNINGS
instead.

Kent
2005-01-03 17:57:16 +00:00
Ton Roosendaal
7e1fcb5c07 Bug fix 2047
FileWindow didnt sort the dirs "." and ".." correctly. Now these two are
always first.
2005-01-03 14:17:33 +00:00
Ton Roosendaal
610cec55c7 Biiig commit! Thanks to 2-3 weeks of cvs freeze...
Render:
- New; support for dual CPU render (SDL thread)
  Currently only works with alternating scanlines, but gives excellent
  performance. For both normal render as unified implemented.
  Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
  getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
  OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
  with chars or shorts.
- Made normal render and unified render use same code for sky and halo
  render, giving equal (and better) results for halo render. Old render
  now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
  after render. Using PostProcess menu you will note an immediate re-
  display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options

- Render module is still not having a "nice" API, but amount of dependencies
  went down a lot. Next todo: remove abusive "previewrender" code.
  The last main global in Render (struct Render) now can be re-used for fully
  controlling a render, to allow multiple "instances" of render to open.

- Renderwindow now displays a smal bar on top with the stats, and keeps the
  stats after render too. Including "spare" page support.
  Not only easier visible that way, but also to remove the awkward code that
  was drawing stats in the Info header (extreme slow on some ATIs too)

- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
  defines.

- I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-27 19:28:52 +00:00
Ton Roosendaal
1b4667b33f Errors in saving runtime, and fileops in file window; files were copied
or deleted without keeping track of spaces in names, causing in potential
loss of data.

Needs review!
2004-12-16 14:40:25 +00:00
Jean-Luc Peurière
d12960dd2d fix for potential crasher. we were returning pointer to a local var 2004-12-12 13:29:54 +00:00
Rob Haarsma
7434e91f7d Bugfix #1589
When the render output directory doesn't exist (on windows) the BLI_recurdir_fileops() function
tries to create a directory with no name. Added check if a name is specified..
2004-12-11 15:56:01 +00:00
Ton Roosendaal
c8c149281c Added winstuff.h for M_PI_2 define! 2004-11-11 13:47:06 +00:00
Ton Roosendaal
2e4a10253b Fix for bug #1756
This was caused by a very primitive method of interpolating quaternions.
It was converting quats to mat and back to quat, and then just doing
a linear interpolation. That whilst quaternions are renowned for having
good interpolation possible.

I've experimented with 2 quaternion interpolation methods, and can only
get one to work correctly... the "official" version from Watt brothers
I can't get working, both are in arithb.c now.

Will arrange *close* review with experienced NLAers for it! But testing
here gives fully predictable results.

Also changed;
- added pointer check in drawaction
- changed puldown menu for correct hotkeys for move NLA strips up/down
2004-11-11 13:17:32 +00:00
Ton Roosendaal
691302f28d Two fixes;
- The function "convex()" in editmesh_lib() actually did not deliver
a proper test for convex at all. It was checking only if a quad could
be subdivided into 2 trias. Code for adding face (FKEY) used this
call in total confusing manner. That code was there in 1.40 already,
cannot find any clue what it was supposed todo... :)
Recoded convex() to deliver a proper test. FKEY will give warning on
attempt to make convex faces now.

- Added undo-free for editmode undo on file load
2004-11-03 11:25:27 +00:00
Ton Roosendaal
e82d208b1c ESC during scanfill (triangulate) delivers corrupted memory
(well, not on OSX to be noticed :). Discovered thanks to adding filling
of curves in Solid display, and bugreport of intrr that ESC in grabbing
curve gives weird corruption.
2004-10-30 22:53:27 +00:00