GithubHelp home page GithubHelp logo

shiska / rotations Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 3.0 172 KB

Convert rotations into eachother

License: Mozilla Public License 2.0

Pawn 100.00%
sampctl rotation pawn sa-mp quaternion rotation-matrix euler-angles axis-angles

rotations's Introduction

rotations

sampctl

Installation

sampctl package install Shiska/rotations

Usage

For all basic functions use: #include <rotation>
For additional functions use: #include <rotation_misc>
And if you want the easy way use: #include <rotation_extra>
It applies the basic functions for players, objects and vehicles.
Note: Vehicle related function only work if occupied due to GetVehicleRotationQuat.
Note: If you want to use the DynamicObject functions you need to include rotation_extra after streamer

Check the reference for further information.

Testing

sampctl package ensure
sampctl package build
sampctl package run

Reference

rotations's People

Contributors

karimcambridge avatar shiska avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

rotations's Issues

Recursion

Hello developers, I ran into a recursion problem related to the inclusion of rotations, I think the fact is that emit is used in some parts of the code, but these are just assumptions. After compilation, it outputs too many warnings about recursion, I think it will be fixed.

#include <rotation_extra> //used

warnings -

recursion detected: function 0-40000004 directly calls itself recursion detected: function 40000004*0 directly calls itself recursion detected: function -40000004 directly calls itself recursion detected: function 40000004==40000004 directly calls itself recursion detected: function 40000004>40000004 directly calls itself recursion detected: function 40000004>=40000004 directly calls itself recursion detected: function 40000004<40000004 indirectly calls itself: 40000004<40000004 <- ac_OnPlayerKeyStateChange <- 40000004<40000004 recursion detected: function CombineMatrix indirectly calls itself: CombineMatrix <- CombineRotation <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- CombineMatrix recursion detected: function CombineQuat indirectly calls itself: CombineQuat <- CombineRotation <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- CombineQuat recursion detected: function CombineRotation indirectly calls itself: CombineRotation <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- CombineRotation recursion detected: function ConvertAxisAngleToEuler indirectly calls itself: ConvertAxisAngleToEuler <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertAxisAngleToEuler recursion detected: function ConvertAxisAngleToMatrix indirectly calls itself: ConvertAxisAngleToMatrix <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertAxisAngleToMatrix recursion detected: function ConvertAxisAngleToQuat indirectly calls itself: ConvertAxisAngleToQuat <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertAxisAngleToQuat recursion detected: function ConvertEulerToAxisAngle indirectly calls itself: ConvertEulerToAxisAngle <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertEulerToAxisAngle recursion detected: function ConvertEulerToEuler indirectly calls itself: ConvertEulerToEuler <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertEulerToEuler recursion detected: function ConvertEulerToMatrix indirectly calls itself: ConvertEulerToMatrix <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertEulerToMatrix recursion detected: function ConvertEulerToQuat indirectly calls itself: ConvertEulerToQuat <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertEulerToQuat recursion detected: function ConvertMatrixToAxisAngle indirectly calls itself: ConvertMatrixToAxisAngle <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertMatrixToAxisAngle recursion detected: function ConvertMatrixToEuler indirectly calls itself: ConvertMatrixToEuler <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertMatrixToEuler recursion detected: function ConvertMatrixToQuat indirectly calls itself: ConvertMatrixToQuat <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertMatrixToQuat recursion detected: function ConvertQuatToAxisAngle indirectly calls itself: ConvertQuatToAxisAngle <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertQuatToAxisAngle recursion detected: function ConvertQuatToEuler indirectly calls itself: ConvertQuatToEuler <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertQuatToEuler recursion detected: function ConvertQuatToMatrix indirectly calls itself: ConvertQuatToMatrix <- ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertQuatToMatrix recursion detected: function ConvertRotation indirectly calls itself: ConvertRotation <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- ConvertRotation recursion detected: function GetAttachedPos indirectly calls itself: GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetAttachedPos recursion detected: function GetAxisAngleFromRotation indirectly calls itself: GetAxisAngleFromRotation <- GetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetAxisAngleFromRotation recursion detected: function GetDynamicObjectAttachedPos directly calls itself recursion detected: function GetEulerFromRotation indirectly calls itself: GetEulerFromRotation <- GetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetEulerFromRotation recursion detected: function GetMatrixFromRotation indirectly calls itself: GetMatrixFromRotation <- GetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetMatrixFromRotation recursion detected: function GetPlayerAttachedPos indirectly calls itself: GetPlayerAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetPlayerAttachedPos recursion detected: function GetQuatFromRotation indirectly calls itself: GetQuatFromRotation <- GetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetQuatFromRotation recursion detected: function GetRotation indirectly calls itself: GetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetRotation recursion detected: function GetVehicleAttachedPos indirectly calls itself: GetVehicleAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- GetVehicleAttachedPos recursion detected: function NormalizeAxisAngle indirectly calls itself: NormalizeAxisAngle <- SetRotationFromAxisAngle <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- NormalizeAxisAngle recursion detected: function NormalizeMatrix indirectly calls itself: NormalizeMatrix <- SetRotationFromMatrix <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- NormalizeMatrix recursion detected: function NormalizeQuat indirectly calls itself: NormalizeQuat <- SetRotationFromQuat <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- NormalizeQuat recursion detected: function RotateAxisAngle indirectly calls itself: RotateAxisAngle <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- RotateAxisAngle recursion detected: function RotateMatrix indirectly calls itself: RotateMatrix <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- RotateMatrix recursion detected: function RotatePoint indirectly calls itself: RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- RotatePoint recursion detected: function RotateQuat indirectly calls itself: RotateQuat <- RotatePoint <- GetAttachedPos <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- RotateQuat recursion detected: function SetRotation indirectly calls itself: SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- SetRotation recursion detected: function SetRotationFromAxisAngle indirectly calls itself: SetRotationFromAxisAngle <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- SetRotationFromAxisAngle recursion detected: function SetRotationFromEuler indirectly calls itself: SetRotationFromEuler <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- SetRotationFromEuler recursion detected: function SetRotationFromMatrix indirectly calls itself: SetRotationFromMatrix <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- SetRotationFromMatrix recursion detected: function SetRotationFromQuat indirectly calls itself: SetRotationFromQuat <- SetRotation <- GetDynamicObjectAttachedPos <- GetDynamicObjectAttachedPos <- SetRotationFromQuat

--

Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.