From Jimmy Hazevoet
i have updated my A.N.T.Landscape script,
new functions are:
_Thermal erosion
_Generate new grid mesh with Triangle faces
_Select Verts/Faces by slope angle ( for making vertexgroups
for particlesystems )
_VertexColour Slope Map, ( for use with MaterialNodes )
This will be the last update for this script in this form (if
no major bugs are found)... with blender 2.5 this script will
need a complete rewrite,
i have plans for it, but i need a lot of time to do it, so i
gues a new version will not come before blender 2.6
So, next year or so i will spend time rewriting my ant script,
also i have plans for a "ANTLandscape" website with
docs and tuts.
The new script will be fully documented, and with some tutorials
on landscape rendering in blender.
- flush face selection to the derived mesh where possible (if CD_ORIGINDEX is available).
- fixed border-select while painting which rarely worked.
- painting on a mesh with no UV's didn't free the derived mesh.
2.4x did an exact check on the name, 2.5 does a case insensitive search on the type.
This does a case insensitive check on both the name and type.
close the devices on exit too.
fixes 2.4-branch according to trunk:
update anim->curposition even if video frame decoding failed.
Fixes nasty issues with DV-decoding on broken frames.
Also: cleans up color conversion a little bit.
from Frank Papenmeier (hodka)
--- from the submission
Changing the distance and resetDistance Properties of a NearSensor from Python did only take effect, once there was
a collision within the old radius.
Reason:
The radius of the PHY_IPhysicsController was not set to the new values.
Solution:
It is set at the end of the CheckResetDistance function. I moved the relevant code snippet from the Evaluate function
into a new function called SetPhysCtrlRadius in order to avoid duplicating code doing the same thing.
Renamed BevPoint's members
* x,y,z -> vec[3]; compatible with other functions.
* f1 -> split_tag; used by displist to set the splitting flag.
* f2 -> dupe_tag; used in curve.c to remove duplicates.
BevList
* flag -> dupe_nr; was being used as a counter for duplicate points.
* use arithb.c functions where possible.
* arrays for coords, tilt and radius were being allocated, then copied into the BevPoint's, now write directly into the values without allocing/freeing arrays.
* correct function for reflection and moving it to arithb.c
* note: 2.5 has an already more elegant solution for it (still wrong, but the code is cleaner).
Therefore the merge may need to be manual in that case.
Specifically in 2.5 we are doing:
if(!BaseMath_ReadCallback(self) || !BaseMath_ReadCallback(value)) return NULL;
And there we don't need to create a VectorObject *mirrvec; only to get the values.
Code used to test it:
http://www.pasteall.org/7654/python
* YoFrankie script probably needs to be fixed too.
http://www.graphicall.org/ftp/ideasman42/curve_auto_twist.png
Access next to the "3D" edit button.
details...
- open curves use the first points orientation and minimize twist for each new segment.
- cyclic curves calculate the least twist in both directions and blend between them
- AxisAngleToQuat replaced inline code.
- Notice the model on the right now has more even corners. added Vec3ToTangent to arithb.c.
Surprising this wasn't noticed before. Any mix of quads/tris caused the face verts of either quads/tries (whichever comes last).
Tested by exporting the KX_MeshProxy and re-importing as an OBJ.
This fix assumes there are only 2 m_darray's per face array which is currently true, but wont be if edge support is added back.
shr->spec values could be greater then 1.0, causing negative color when using (1.0-shr->spec[i]) as a blending factor.
When shr->spec[i] is 1.0 the mircol is ignored, so only mix the mircol when needed (like clamping the spec).
from Alberto Santos (dnakhain)
This also adds the option to duplicate a particle system with an object.
--- description from the patch submission.
This patch includes my latest additions to the Python API developed for my Degree's Project.
It includes:
- Particle
- Vertex group dictionary in doc (to use with setvertexgroup/getvertexgroup)
- Particle.New return psys (not specified in doc)
- Draw As variable and dict
- Strand render toggle
- Object
- psys variable in duplicate
- Material
- Strand render variables
- Texture
- Use colorbands
- Lamp
- Spot buffer type selection
Previously the only way to detect if the mouse moved over a different object was to enable true-level-triggering and have a python script detect the change.
When the Pulse option is set, focusing on a different object pulses true.
Python attribute is focusSensor.usePulseFocus.
This is similar to the collision sensors pulse option where changes in the set of collision objects generates an event too.
Found this functionality missing when trying to make a logic demo that used mouse-over with overlapping objects.