module Drasil.SglPend.Requirements where
import Language.Drasil
import qualified Language.Drasil.Sentence.Combinators as S
import Data.Drasil.Concepts.Documentation (funcReqDom, output_, value)
import Drasil.SglPend.IMods (angularDisplacementIM)
import Drasil.SglPend.Unitals (lenRod, pendDisplacementAngle)
import Data.Drasil.Quantities.Physics (angularDisplacement)
import Drasil.DblPend.Requirements(verifyInptValsDesc)
funcReqs :: [ConceptInstance]
funcReqs :: [ConceptInstance]
funcReqs = [ConceptInstance
verifyInptVals, ConceptInstance
calcAngPos, ConceptInstance
outputValues]
verifyInptVals, calcAngPos, outputValues :: ConceptInstance
verifyInptVals :: ConceptInstance
verifyInptVals = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic String
"verifyInptVals" Sentence
verifyInptValsDesc String
"Verify-Input-Values" ConceptChunk
funcReqDom
calcAngPos :: ConceptInstance
calcAngPos = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic String
"calcAngPos" Sentence
calcAngPosDesc String
"Calculate-Angular-Position-Of-Mass" ConceptChunk
funcReqDom
outputValues :: ConceptInstance
outputValues = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic String
"outputValues" Sentence
outputValuesDesc String
"Output-Values" ConceptChunk
funcReqDom
calcAngPosDesc, outputValuesDesc :: Sentence
calcAngPosDesc :: Sentence
calcAngPosDesc = [Sentence] -> Sentence
foldlSent [String -> Sentence
S String
"Calculate the following" Sentence -> Sentence -> Sentence
+: IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
plural IdeaDict
value,
UnitalChunk -> Sentence
forall c. (HasUID c, HasSymbol c) => c -> Sentence
ch UnitalChunk
angularDisplacement Sentence -> Sentence -> Sentence
`S.and_` UnitalChunk -> Sentence
forall c. (HasUID c, HasSymbol c) => c -> Sentence
ch UnitalChunk
pendDisplacementAngle,
Sentence -> Sentence
sParen (String -> Sentence
S String
"from" Sentence -> Sentence -> Sentence
+:+ InstanceModel -> Sentence
forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence
refS InstanceModel
angularDisplacementIM)]
outputValuesDesc :: Sentence
outputValuesDesc = [Sentence] -> Sentence
foldlSent [IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
atStart IdeaDict
output_, UnitalChunk -> Sentence
forall c. (HasUID c, HasSymbol c) => c -> Sentence
ch UnitalChunk
lenRod, Sentence -> Sentence
sParen (String -> Sentence
S String
"from" Sentence -> Sentence -> Sentence
+:+ InstanceModel -> Sentence
forall r.
(HasUID r, HasRefAddress r, HasShortName r) =>
r -> Sentence
refS InstanceModel
angularDisplacementIM)]