" I represent a muscle of the human body. " Class { #name : 'MFTMuscle', #superclass : 'MFTObject', #instVars : [ 'latinName', 'englishName', 'description' ], #category : 'MyFitnessTracker-Core-Anatomy', #package : 'MyFitnessTracker-Core', #tag : 'Anatomy' } { #category : 'as yet unclassified' } MFTMuscle class >> bicepsBrachii [ ^ self newWithLatinName englishName: 'biceps'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> brachioRadialis [ ^ self newWithLatinName englishName: 'brachioradialis'; description: 'Located in the forearm, it is responsible for flexing the forearm at the elbow joint.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> deltoidAnterior [ ^ self new englishName: 'deltoid (anterior)'; latinName: 'deltoideus'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> deltoidMedial [ ^ self new englishName: 'deltoid (medial)'; latinName: 'deltoideus'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> deltoidPosterior [ ^ self new englishName: 'deltoid (posterior)'; latinName: 'deltoideus'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> erectorSpinae [ ^ self newWithLatinName englishName: 'erectors'; description: 'This group of muscles runs along the spine and is responsible for extending the vertebral column and maintaining an upright posture.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> extensorCarpiRadialiasBrevis [ ^ self newWithLatinName englishName: 'Extensor Carpi Radialis Brevis'; description: 'Located in the forearm, it is responsible for extending the wrist and abducting the hand.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> extensorCarpiRadialisLongus [ ^ self newWithLatinName englishName: 'Extensor Carpi Radialis Longus'; description: 'Located in the forearm, it is responsible for extending the wrist and abducting the hand.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> extensorCarpiUlnaris [ ^ self newWithLatinName englishName: 'Extensor Carpi Ulnaris'; description: 'Located in the forearm, it is responsible for extending the wrist and adducting the hand.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> flexorCarpiRadialis [ ^ self newWithLatinName englishName: 'Flexor Carpi Radialis'; description: 'Located in the forearm, it is responsible for flexing the wrist and abducting the hand.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> flexorCarpiUlnaris [ ^ self newWithLatinName englishName: 'Flexor Carpi Ulnaris'; description: 'Located in the forearm, it is responsible for flexing the wrist and adducting the hand.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> gastrocnemius [ ^ self newWithLatinName englishName: 'calf'; description: 'Located in the calf, it is responsible for plantar flexion of the foot (pointing toes).'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> gluteusMaximus [ ^ self newWithLatinName englishName: 'glutes'; description: 'The largest muscle in the buttocks, responsible for hip extension, outward rotation, and abduction.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> gluteusMedius [ ^ self newWithLatinName englishName: 'glutes'; description: 'Located in the buttocks, it plays a role in hip abduction and medial rotation.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> gluteusMinimus [ ^ self newWithLatinName englishName: 'glutes'; description: 'Also located in the buttocks, it assists in hip abduction and medial rotation, working with the gluteus medius.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> hamstring [ ^ self newWithLatinName englishName: 'hamstrings'; description: 'This group of muscles includes the biceps femoris, semitendinosus, and semimembranosus. They are located in the back of the thigh and are responsible for knee flexion and hip extension.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> latissimusDorsi [ ^ self newWithLatinName englishName: 'lats'; description: 'Also known as the "lats," these muscles are located in the upper back and are responsible for shoulder adduction and extension.'; yourself ] { #category : 'instance creation' } MFTMuscle class >> newWithLatinName [ "I return a MFTMuscle instance for which latinName is set to the calling method selector, as a space-separated string." | latinNameFromSender | latinNameFromSender := (thisContext sender selector splitCamelCase collect: #asLowercase) joinUsing: Character space. ^ self new latinName: latinNameFromSender ] { #category : 'as yet unclassified' } MFTMuscle class >> obliquusExternusAbdominis [ ^ self newWithLatinName englishName: 'external oblique'; description: 'Located on the front and side of the abdomen.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> obliquusInternusAbdominis [ ^ self newWithLatinName englishName: 'internal oblique'; description: 'Located on the front and side of the abdomen.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> pectoralisMajor [ ^ self newWithLatinName englishName: 'pectoral'; description: 'Commonly known as the "pecs," these muscles are in the chest and are responsible for shoulder flexion and adduction.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> pectoralisMinor [ ^ self newWithLatinName englishName: 'pectoral'; description: 'Located beneath the pectoralis major, it plays a role in stabilizing the shoulder blade and assisting in deep breathing.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> quadricepsFemoris [ ^ self newWithLatinName englishName: 'quad'; description: 'A group of four muscles on the front of the thigh, responsible for knee extension.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> rectusAbdominis [ ^ self newWithLatinName englishName: 'six-pack'; description: 'Located along the front of the abdomen. Colloquially known as the "six-pack"'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> rotatorCuff [ ^ self newWithLatinName englishName: 'rotator cuff'; description: 'This group includes four muscles: supraspinatus, infraspinatus, teres minor, and subscapularis. They play a crucial role in stabilizing the shoulder joint and facilitating arm rotation.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> soleus [ ^ self newWithLatinName englishName: 'calf'; description: 'Also located in the calf, it assists the gastrocnemius in plantar flexion and helps maintain posture.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> transversusAbdominis [ ^ self newWithLatinName englishName: 'abs'; description: 'Deepest abdominal muscle. Wraps around the spine for protection and stability.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> trapezius [ ^ self newWithLatinName englishName: 'trap'; description: 'The trapezius muscles are located in the upper back and neck. They play a role in moving and stabilizing the shoulder blades.'; yourself ] { #category : 'as yet unclassified' } MFTMuscle class >> tricepsBrachii [ ^ self newWithLatinName englishName: 'triceps'; yourself ] { #category : 'comparing' } MFTMuscle >> = anObject [ "Answer whether the receiver and anObject represent the same object." self == anObject ifTrue: [ ^ true ]. self class = anObject class ifFalse: [ ^ false ]. ^ englishName = anObject englishName and: [ latinName = anObject latinName ] ] { #category : 'accessing' } MFTMuscle >> canonicalName [ ^ latinName ] { #category : 'accessing' } MFTMuscle >> description [ ^ description ] { #category : 'accessing' } MFTMuscle >> description: anObject [ description := anObject ] { #category : 'as yet unclassified' } MFTMuscle >> englishName [ ^ englishName ] { #category : 'as yet unclassified' } MFTMuscle >> englishName: aString [ englishName := aString ] { #category : 'comparing' } MFTMuscle >> hash [ "Answer an integer value that is related to the identity of the receiver." ^ englishName hash bitXor: latinName hash ] { #category : 'initialization' } MFTMuscle >> initialize [ super initialize. latinName := String new. englishName := String new. description := String new ] { #category : 'as yet unclassified' } MFTMuscle >> latinName [ ^ latinName ] { #category : 'as yet unclassified' } MFTMuscle >> latinName: aString [ latinName := aString ] { #category : 'as yet unclassified' } MFTMuscle >> linkTerminologiaAnatomica [ ^ 'http://terminologia-anatomica.org/en/Search?query=musculus {1}' format: { latinName } ]