module Drasil.GamePhysics.Expressions where import Language.Drasil import Drasil.GamePhysics.Unitals (massj, velj, torquej, forcej, angAccj) import Data.Drasil.Quantities.Physics (time, momentOfInertia, gravitationalAccel, angularVelocity) transMotExpr :: PExpr transMotExpr :: PExpr transMotExpr = UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => c -> r forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk gravitationalAccel r -> r -> r forall r. ExprC r => r -> r -> r $+ (UnitalChunk -> UnitalChunk -> r forall r f a. (ExprC r, HasUID f, HasSymbol f, HasUID a, HasSymbol a) => f -> a -> r apply1 UnitalChunk forcej UnitalChunk time r -> r -> r forall r. ExprC r => r -> r -> r $/ UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => c -> r forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk massj) transMotExprDeriv1 :: (ModelExprC r, ExprC r) => r transMotExprDeriv1 :: forall r. (ModelExprC r, ExprC r) => r transMotExprDeriv1 = r -> r -> r forall r. ModelExprC r => r -> r -> r defines (UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => c -> r forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk angAccj) (r -> r) -> r -> r forall a b. (a -> b) -> a -> b $ r -> UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => r -> c -> r forall r c. (ModelExprC r, HasUID c, HasSymbol c) => r -> c -> r deriv (UnitalChunk -> UnitalChunk -> r forall r f a. (ExprC r, HasUID f, HasSymbol f, HasUID a, HasSymbol a) => f -> a -> r apply1 UnitalChunk velj UnitalChunk time) UnitalChunk time rotMotExpr :: PExpr rotMotExpr :: PExpr rotMotExpr = UnitalChunk -> UnitalChunk -> r forall r f a. (ExprC r, HasUID f, HasSymbol f, HasUID a, HasSymbol a) => f -> a -> r apply1 UnitalChunk torquej UnitalChunk time r -> r -> r forall r. ExprC r => r -> r -> r $/ UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => c -> r forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk momentOfInertia rotMotExprDeriv1 :: (ModelExprC r, ExprC r) => r rotMotExprDeriv1 :: forall r. (ModelExprC r, ExprC r) => r rotMotExprDeriv1 = r -> r -> r forall r. ModelExprC r => r -> r -> r defines (UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => c -> r forall r c. (ExprC r, HasUID c, HasSymbol c) => c -> r sy UnitalChunk angAccj) (r -> r) -> r -> r forall a b. (a -> b) -> a -> b $ r -> UnitalChunk -> r forall c. (HasUID c, HasSymbol c) => r -> c -> r forall r c. (ModelExprC r, HasUID c, HasSymbol c) => r -> c -> r deriv (UnitalChunk -> UnitalChunk -> r forall r f a. (ExprC r, HasUID f, HasSymbol f, HasUID a, HasSymbol a) => f -> a -> r apply1 UnitalChunk angularVelocity UnitalChunk time) UnitalChunk time