Wrote a really simple vex script to translate P on vector, that is specified by angle, well have a look:
//Moving points along direction vector
//By: Kaspar Kallas 2002
sop
MoveAlongVector(vector angle={0,0,0};float mysize=1;) {
//set vars
vector radAngle = {0,0,0};
vector intNormal = {0,0,1};
vector newNormal = {0,0,0};
//convert angle to rad
radAngle.x = radians(angle.x);
radAngle.y = radians(angle.y);
radAngle.z = radians(angle.z);
//rotate normal
newNormal.x = (
intNormal.x*( (cos(radAngle.y)cos(radAngle.z))+(-sin(radAngle.y)-sin(radAngle.x)*-sin(radAngle.z)) )+
intNormal.y*( cos(radAngle.x)*-sin(radAngle.z) )+
intNormal.z*( (sin(radAngle.y)cos(radAngle.z))+(sin(radAngle.y)-sin(radAngle.x)*-sin(radAngle.z)) )
);
newNormal.y = (
intNormal.x*( (cos(radAngle.y)sin(radAngle.z))+(-sin(radAngle.y)-sin(radAngle.x)*cos(radAngle.z)) )+
intNormal.y*( cos(radAngle.x)*cos(radAngle.z) )+
intNormal.z*( (sin(radAngle.y)sin(radAngle.z))+(cos(radAngle.y)-sin(radAngle.x)*cos(radAngle.z)) )
);
newNormal.z = (
intNormal.x*( -sin(radAngle.y)*cos(radAngle.x) )+
intNormal.y*( sin(radAngle.x) )+
intNormal.z*( cos(radAngle.y)*cos(radAngle.x) )
);
//add vector to point
P += mysize*newNormal;
}
now, the problem is that when I use this ves sop repeatedly, ex 6 or 8 times (one after another as a long chain) I will get segmentation fault and houdini will die? I have looked through the script many times and still don't see the loop-hole where it will try to acess un-initialized variable or pointer?
Well I'm using houdini 4.0 on w2k machine and any help wpuld be aprichiated
thnx
-Kaspar