" I represent a group of muscles in the human body. " Class { #name : 'MFTMuscleGroup', #superclass : 'MFTObject', #instVars : [ 'englishName', 'frenchName', 'muscles' ], #category : 'MyFitnessTracker-Core-Anatomy', #package : 'MyFitnessTracker-Core', #tag : 'Anatomy' } { #category : 'instance creation' } MFTMuscleGroup class >> abdominal [ ^ self newWithEnglishName muscles: { MFTMuscle rectusAbdominis. MFTMuscle obliquusExternusAbdominis. MFTMuscle obliquusInternusAbdominis. MFTMuscle transversusAbdominis }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> arm [ ^ self newWithEnglishName muscles: { MFTMuscle bicepsBrachii. MFTMuscle tricepsBrachii }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> back [ ^ self newWithEnglishName muscles: { MFTMuscle latissimusDorsi. MFTMuscle trapezius. MFTMuscle erectorSpinae }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> calf [ ^ self newWithEnglishName muscles: { MFTMuscle gastrocnemius. MFTMuscle soleus }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> chest [ ^ self newWithEnglishName muscles: { MFTMuscle pectoralisMajor. MFTMuscle pectoralisMinor }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> forearm [ ^ self newWithEnglishName muscles: { MFTMuscle brachioRadialis. MFTMuscle flexorCarpiRadialis. MFTMuscle flexorCarpiUlnaris. MFTMuscle extensorCarpiRadialisLongus. MFTMuscle extensorCarpiRadialiasBrevis. MFTMuscle extensorCarpiUlnaris }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> hips [ ^ self newWithEnglishName muscles: { MFTMuscle gluteusMaximus. MFTMuscle gluteusMedius. MFTMuscle gluteusMinimus }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> leg [ ^ self newWithEnglishName muscles: { MFTMuscle quadricepsFemoris. MFTMuscle hamstring }; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> newWithEnglishName [ "I return a MFTMuscle Group instance for which latinName is set to the calling method selector." ^ self new englishName: thisContext sender selector; yourself ] { #category : 'instance creation' } MFTMuscleGroup class >> shoulder [ ^ self newWithEnglishName muscles: { MFTMuscle deltoidAnterior. MFTMuscle deltoidMedial. MFTMuscle deltoidPosterior. MFTMuscle rotatorCuff }; yourself ] { #category : 'comparing' } MFTMuscleGroup >> = anObject [ "Answer whether the receiver and anObject represent the same object." self == anObject ifTrue: [ ^ true ]. self class = anObject class ifFalse: [ ^ false ]. ^ muscles asBag = anObject muscles asBag ] { #category : 'accessing' } MFTMuscleGroup >> canonicalName [ ^ englishName ] { #category : 'accessing' } MFTMuscleGroup >> englishName [ ^ englishName ] { #category : 'accessing' } MFTMuscleGroup >> englishName: aString [ englishName := aString ] { #category : 'accessing' } MFTMuscleGroup >> frenchName [ ^ frenchName ] { #category : 'accessing' } MFTMuscleGroup >> frenchName: anObject [ frenchName := anObject ] { #category : 'comparing' } MFTMuscleGroup >> hash [ "Answer an integer value that is related to the identity of the receiver." ^ muscles asBag hash ] { #category : 'testing' } MFTMuscleGroup >> includes: aMFTMuscle [ ^ muscles includes: aMFTMuscle ] { #category : 'initialization' } MFTMuscleGroup >> initialize [ super initialize. englishName := String new. frenchName := String new. muscles := OrderedCollection new ] { #category : 'accessing' } MFTMuscleGroup >> muscles [ ^ muscles ] { #category : 'accessing' } MFTMuscleGroup >> muscles: aMFTMuscleCollection [ muscles := aMFTMuscleCollection asOrderedCollection ]