+ bugfix in btAlignedObjectArray, not calling destructors on resize to smaller array.

Thanks Benoit for pointing this out, and bugfix: http://code.google.com/p/bullet/issues/detail?id=218

+ Added point to point, hinge, slider and generic 6dof constraints to Maya Dynamica plugin
Thanks to Herbert Law for the constribution: http://code.google.com/p/bullet/issues/detail?id=221
This commit is contained in:
erwin.coumans
2009-05-06 19:55:05 +00:00
parent f3c3d2f156
commit d9c4529a26
56 changed files with 5851 additions and 1237 deletions

View File

@@ -316,6 +316,19 @@ global proc string dynamicaUI_createMainTab()
string $createNailConstraintBtn = `iconTextButton -style "iconAndTextVertical" -label "Nail"
-width 100 -image1 "dynamicaCreateNailConstraint.xpm" -c ("dynamicaUI_createNailConstraint")
-ann "Create a nail constraint"`;
string $createHingeConstraintBtn = `iconTextButton -style "iconAndTextVertical" -label "Hinge"
-width 100 -image1 "dynamicaCreateHingeConstraint.xpm" -c ("dynamicaUI_createHingeConstraint")
-ann "Create a hinge constraint"`;
string $createSliderConstraintBtn = `iconTextButton -style "iconAndTextVertical" -label "Slider"
-width 100 -image1 "dynamicaCreateSliderConstraint.xpm" -c ("dynamicaUI_createSliderConstraint")
-ann "Create a slider constraint"`;
/* string $createConeTwistConstraintBtn = `iconTextButton -style "iconAndTextVertical" -label "ConeTwist"
-width 100 -image1 "dynamicaCreateConeTwistConstraint.xpm" -c ("dynamicaUI_createConeTwistConstraint")
-ann "Create a conetwist constraint"`;
*/ string $create6DofConstraintBtn = `iconTextButton -style "iconAndTextVertical" -label "6Dof"
-width 100 -image1 "dynamicaCreate6DofConstraint.xpm" -c ("dynamicaUI_create6DofConstraint")
-ann "Create a 6dof constraint"`;
setParent ..;
@@ -678,9 +691,8 @@ global proc dynamicaUI_createNailConstraint()
//create dSolver node if necessary
dSolver;
string $newConstraints[];
for($i = 0; $i < size($selection) / 2; $i++) {
if($selection[$i * 2 + 1] == "dRigidBody") {
string $constraintNode = `dNailConstraint`;
@@ -689,9 +701,73 @@ global proc dynamicaUI_createNailConstraint()
$newConstraints[$i] = $constraintTransforms[0];
}
}
select -r $newConstraints;
}
global proc dynamicaUI_createHingeConstraint()
{
string $selection[] = `ls -selection -dag -leaf -showType -type "geometry"`;
//create dSolver node if necessary
dSolver;
string $newConstraints[];
for($i = 0; $i < size($selection) / 2; $i++) {
if($selection[$i * 2 + 1] == "dRigidBody") {
string $constraintNode = `dHingeConstraint`;
connectAttr ($selection[$i * 2] + ".message") ($constraintNode + ".inRigidBody");
string $constraintTransforms[] = `listRelatives -parent $constraintNode`;
$newConstraints[$i] = $constraintTransforms[0];
}
}
select -r $newConstraints;
}
global proc dynamicaUI_createSliderConstraint()
{
string $selection[] = `ls -selection -dag -leaf -showType -type "geometry"`;
//create dSolver node if necessary
dSolver;
string $newConstraints[];
if (size($selection) < 4)
print("Requres 2 Rigid Body to create a Slider");
for($i = 0; $i < size($selection) / 4; $i++) {
if($selection[$i * 2 + 1] == "dRigidBody" && $selection[$i * 2 + 3] == "dRigidBody") {
string $constraintNode = `dSliderConstraint`;
connectAttr ($selection[$i * 2] + ".message") ($constraintNode + ".inRigidBodyA");
connectAttr ($selection[$i * 2 + 2] + ".message") ($constraintNode + ".inRigidBodyB");
string $constraintTransforms[] = `listRelatives -parent $constraintNode`;
$newConstraints[$i] = $constraintTransforms[0];
select -r $newConstraints;
} else
{
print("Requres 2 Rigid Body to create a slider constraint");
}
}
}
global proc dynamicaUI_create6DofConstraint()
{
string $selection[] = `ls -selection -dag -leaf -showType -type "geometry"`;
//create dSolver node if necessary
dSolver;
string $newConstraints[];
if (size($selection) < 4)
print("Requres 2 Rigid Body to create a 6Dof constraint");
for($i = 0; $i < size($selection) / 4; $i++) {
if($selection[$i * 2 + 1] == "dRigidBody" && $selection[$i * 2 + 3] == "dRigidBody") {
string $constraintNode = `dSixdofConstraint`;
connectAttr ($selection[$i * 2] + ".message") ($constraintNode + ".inRigidBodyA");
connectAttr ($selection[$i * 2 + 2] + ".message") ($constraintNode + ".inRigidBodyB");
string $constraintTransforms[] = `listRelatives -parent $constraintNode`;
$newConstraints[$i] = $constraintTransforms[0];
select -r $newConstraints;
} else
{
print("Requres 2 Rigid Body to create a 6Dof constraint");
}
}
}
global proc dyn_demo1()