Added new vector math functions

This commit is contained in:
n00b87
2026-02-22 23:07:53 -06:00
parent c4d559f0d4
commit 902f0129f1
16 changed files with 2782 additions and 2270 deletions

View File

@@ -190,6 +190,30 @@ case FN_GetCircleLineIntersection: //Number Function
case FN_GetLinePlaneIntersection: //Number Function
rc_push_num(GetLinePlaneIntersection( &GETLINEPLANEINTERSECTION_LINE_POINT, &GETLINEPLANEINTERSECTION_LINE_DIRECTION, &GETLINEPLANEINTERSECTION_PLANE_POINT_1, &GETLINEPLANEINTERSECTION_PLANE_POINT_2, &GETLINEPLANEINTERSECTION_PLANE_POINT_3, &GETLINEPLANEINTERSECTION_INTERSECTION ));
break;
case FN_GetLineAngle: //Number Function
rc_push_num(rc_getLineAngle( GETLINEANGLE_X1, GETLINEANGLE_Y1, GETLINEANGLE_X2, GETLINEANGLE_Y2 ));
break;
case FN_DotProduct: //Number Function
rc_push_num(rc_dotProduct( DOTPRODUCT_X1, DOTPRODUCT_Y1, DOTPRODUCT_Z1, DOTPRODUCT_X2, DOTPRODUCT_Y2, DOTPRODUCT_Z2 ));
break;
case FN_InterpolateVector: //Sub Procedure
rc_interpolateVector( INTERPOLATEVECTOR_X1, INTERPOLATEVECTOR_Y1, INTERPOLATEVECTOR_Z1, INTERPOLATEVECTOR_X2, INTERPOLATEVECTOR_Y2, INTERPOLATEVECTOR_Z2, INTERPOLATEVECTOR_DISTANCE, &INTERPOLATEVECTOR_IX, &INTERPOLATEVECTOR_IY, &INTERPOLATEVECTOR_IZ );
break;
case FN_InterpolateVectorQ: //Sub Procedure
rc_interpolateVectorQ( INTERPOLATEVECTORQ_X1, INTERPOLATEVECTORQ_Y1, INTERPOLATEVECTORQ_Z1, INTERPOLATEVECTORQ_X2, INTERPOLATEVECTORQ_Y2, INTERPOLATEVECTORQ_Z2, INTERPOLATEVECTORQ_X3, INTERPOLATEVECTORQ_Y3, INTERPOLATEVECTORQ_Z3, INTERPOLATEVECTORQ_DISTANCE, &INTERPOLATEVECTORQ_IX, &INTERPOLATEVECTORQ_IY, &INTERPOLATEVECTORQ_IZ );
break;
case FN_VectorIsBetweenPoints: //Number Function
rc_push_num(rc_vectorIsBetweenPoints( VECTORISBETWEENPOINTS_X, VECTORISBETWEENPOINTS_Y, VECTORISBETWEENPOINTS_Z, VECTORISBETWEENPOINTS_START_X, VECTORISBETWEENPOINTS_START_Y, VECTORISBETWEENPOINTS_START_Z, VECTORISBETWEENPOINTS_END_X, VECTORISBETWEENPOINTS_END_Y, VECTORISBETWEENPOINTS_END_Z ));
break;
case FN_NormalizeVector: //Sub Procedure
rc_normalizeVector( NORMALIZEVECTOR_X, NORMALIZEVECTOR_Y, NORMALIZEVECTOR_Z, &NORMALIZEVECTOR_NX, &NORMALIZEVECTOR_NY, &NORMALIZEVECTOR_NZ );
break;
case FN_GetHorizontalAngle: //Sub Procedure
rc_getHorizontalAngle( GETHORIZONTALANGLE_X, GETHORIZONTALANGLE_Y, GETHORIZONTALANGLE_Z, &GETHORIZONTALANGLE_HX, &GETHORIZONTALANGLE_HY, &GETHORIZONTALANGLE_HZ );
break;
case FN_GetRotationToTarget: //Sub Procedure
rc_getRotationToTarget( GETROTATIONTOTARGET_X, GETROTATIONTOTARGET_Y, GETROTATIONTOTARGET_Z, GETROTATIONTOTARGET_TGT_X, GETROTATIONTOTARGET_TGT_Y, GETROTATIONTOTARGET_TGT_Z, &GETROTATIONTOTARGET_RX, &GETROTATIONTOTARGET_RY, &GETROTATIONTOTARGET_RZ );
break;
case FN_Asc: //Number Function
rc_push_num(rc_intern_asc( ASC_C$ ));
break;
@@ -2966,6 +2990,12 @@ case FN_SetPhysics3D: //Sub Procedure
case FN_GetPhysics3D: //Number Function
rc_push_num(rc_getPhysics3D( ));
break;
case FN_GetBillboardSize: //Sub Procedure
rc_getBillboardSize( GETBILLBOARDSIZE_ACTOR, &GETBILLBOARDSIZE_W, &GETBILLBOARDSIZE_H );
break;
case FN_SetBillboardSize: //Sub Procedure
rc_setBillboardSize( SETBILLBOARDSIZE_ACTOR, SETBILLBOARDSIZE_W, SETBILLBOARDSIZE_H );
break;
case FN_startParticleEmitter: //Sub Procedure
rc_startParticleEmitter( STARTPARTICLEEMITTER_ACTOR );
break;