рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ iPad рдЙрдард╛рдпрд╛ рдерд╛, рддреЛ рдЗрд╕рдХреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде iBooks рдРрдк рдиреЗ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЕрдиреНрдп рд╕рднреА "рдЯреНрд░рд┐рдХреНрд╕" рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ ... рдпрд╣ рдкреВрд░реНрдг рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рдЕрд╡рддрд╛рд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рдерд╛ред рдорд╛рдирдХ GUI рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, OpenGL рдПрдирд┐рдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрджрдо рд╣реИред
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ : рдЬреАрдпреВрдЖрдИ рдореЗрдВ рдПрдиреАрдореЗрд╢рди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╕рд┐рд▓рд┐рдХреЙрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реЗ рдЗрдВрдбреА рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рд╣реИрдВ, рдЬреЛ рдУрдкрдирдЧреНрд▓ рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рд╣реИрдВред рдЗрди рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдореЗрдВ рдереНрд░реА-рдбрд╛рдпрдореЗрдВрд╢рдирд▓ рдореЗрдиреНрдпреВ рдмрдЯрди рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдЬрдм 3 рдбреА рдореЗрдВ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рддреЛ рдПрдХ рд╣реА рдмрдЯрди рд╕реЗ рд╕рдмрдореЗрдирд╕ рдХреА рд▓рд┐рд╕реНрдЯ рдЦреБрд▓ рдЬрд╛рддреА рдереАред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдВрджрд░ рдерд╛ред рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╕рд┐рд▓рд┐рдХреЙрди рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЕрдиреБрдЪрд┐рдд рдкреНрд░рдмрдВрдзрди рдХреЗ рдХрд╛рд░рдг рдЧреБрдордирд╛рдореА рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рдпрд╣ рдХрдВрдкрдиреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдкрд╣рд▓реА рдереА (рдУрдкрдирдЬреАрдПрд▓, рдПрд╕рдЯреАрдПрд▓, рдЬрд░реНрдирд▓рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо)ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдРрдкреНрдкрд▓ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдирд╣реАрдВ рдЧрд╛рдКрдВрдЧрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЗрд╡рд▓ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдП рдкреБрд░рд╛рдиреЗ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рд╕рдлрд▓рддрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░рд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрд╕реНрдд рд╕реНрдерд┐рд░ рдЗрдВрдЯрд░рдлреЗрд╕, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ, рдЬрд▓реНрдж рд╣реА рдЕрддреАрдд рдореЗрдВ рд╣реЛрдЧрд╛ред
рддреЛ, OpenGL рдПрдиреАрдореЗрд╢рди рдФрд░ GUI ред
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреА рдкрдбрд╝реАрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореБрдЭреЗ рдЙрди рдПрдирд┐рдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдХрд╛рдЧрдЬ рдХреЗ рдкрдиреНрдиреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдереЗ:
тАв рд╢реАрдЯ рдкреНрд▓реЗрди рд╡рд┐рд░реВрдкрдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
тАв рдУрдкрдирдЬреАрдПрд▓ рдФрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдПрдХреАрдХрд░рдг
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореБрдЦреНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MacOS X рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреЗрдкрд░ рд╢реАрдЯ рд╡рд┐рд░реВрдкрдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдорд╡рд┐рдЪрд╛рд░
рдпрд╣реАрдВ рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред рд╡рд┐рд░реВрдкрдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╢рдВрдХреБ рд╕рдореАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ 2004 рдореЗрдВ рдЬрд╝реЗрд░реЙрдХреНрд╕ PARC рдХреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдУрдВ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреЗрдкрд░ рд╢реАрдЯ рдХрд╛ рдЭреБрдХрдирд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢рдВрдХреБ рдХреА рд╕рддрд╣ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рд╡рд╛рдВрдЫрд┐рдд рдПрдиреАрдореЗрд╢рди рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд╕реНрд╡рдпрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рддреНрд░рд┐рдХреЛрдгрдорд┐рддрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╣ рд╢реАрдЯ рдкреНрд▓реЗрди рдХреЗ рдХрд┐рд╕реА рднреА 2D рдмрд┐рдВрджреБ P (x, y) рдХреЛ 3D рдмрд┐рдВрджреБ T (x, y, z) рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЪрд░ рдорд╛рдкрджрдВрдбреЛрдВ A рдФрд░ ╬╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, iOS рдФрд░ OpenGL-ES рдХреЗ рд▓рд┐рдП
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ
рд╕реНрд░реЛрдд рд╣реИрдВред
рдУрдкрдирдЬреАрдПрд▓ рдФрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдПрдХреАрдХрд░рдгрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдиреАрдореЗрд╢рди рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИрдВ:
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ - рдПрдиреАрдореЗрд╢рди рдлрд╝реНрд░реЗрдо - рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐
рдпрд╣реА рд╣реИ, рдПрдирд┐рдореЗрдЯреЗрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рддреЛ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЕрд╡рд░реБрджреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд░реЗрдВрдбрд░рд░ рдлреНрд░реЗрдо рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдореБрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдкреБрд╕реНрддрдХ рдХреЗ рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреГрд╖реНрда рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреА рд╣реИред
рдЕрд░реНрдерд╛рддреН, рдПрдиреАрдореЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
- рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдмрд╛рд░реА рдХреЗ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓реЗрдВ
- рд╕реНрдХреНрд░реЙрд▓ рдСрдлрд╕реНрдХреНрд░реАрди рдкреЗрдЬ
- рдСрдлрд╕реНрдХреНрд░реАрди рдмрдлрд░ рд╕реЗ рдлреИрд▓реЗ рдЕрдЧрд▓реЗ рдкреЗрдЬ рдХреЗ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЛ рд▓реЗрдВ
- рдУрдкрди рдкреЗрдЬ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдкреЗрдЬ рдлреИрд▓ рдЧрдпрд╛
- рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ
- рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, OpenGL рд░реЗрдВрдбрд░рд░ рдЫрд┐рдкрд╛рдПрдВ рдФрд░ рдЕрдЧрд▓рд╛ рдкреНрд░рд╕рд╛рд░ рджрд┐рдЦрд╛рдПрдВ, рдЬреЛ рдСрдлрд╕реНрдХреНрд░реАрди рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
рдПрдХ OpenGL рд░реЗрдВрдбрд░рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
NSOpenGLView, рдЬрд┐рд╕рдХрд╛ рдЕрдкрдирд╛ OpenGL рд╕рдВрджрд░реНрдн рд╣реИ рдФрд░ рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╣реИрдВред
рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рджрд┐рд╢рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд░реЗрдВрдбрд░рд░ рдХреЛ рдЪрд╛рд░ рдкреЗрдЬ рдЯреЗрдХреНрд╕рдЪрд░ - рджреЛ рд╕реНрдЯреИрдЯрд┐рдХ рдЯреЗрдХреНрд╕рдЪрд░ рдФрд░ рджреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рдХреГрдд рд╣реИред
рдкреГрд╖реНрда рдХреЛ рджрд╛рдПрдБ рд╕реЗ рдмрд╛рдПрдБ рдореБрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕рд╛рд░: рдмрд╛рдпрд╛рдВ рдкреГрд╖реНрда рд╕реНрдерд┐рд░ рд╣реИ, рджрд╛рдпрд╛рдВ рдкреГрд╖реНрда рдЧрддрд┐рд╢реАрд▓ рд╣реИред
рдЕрдЧрд▓рд╛ рдкреНрд░рд╕рд╛рд░: рдмрд╛рдПрдВ рдкреГрд╖реНрда рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рджрд╛рдпрд╛рдВ рдкреГрд╖реНрда рд╕реНрдерд┐рд░ рд╣реИред
рдиреАрдЪреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ рдЬреЛ рдлреНрд▓рд┐рдкрд┐рдВрдЧ рдПрдиреАрдореЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рд╕рд░рд▓реАрдХреГрдд рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреГрд╖реНрда рдХреЗрд╡рд▓ рдПрдХ рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдореБрдбрд╝рддреЗ рд╣реИрдВред
@ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди PageAnimationController
# рдЫрд╛рдк рдЪрд┐рд╣реНрди -
# рдЫрд╛рдк рдЪрд┐рд╣реНрди *** рдПрдиреАрдореЗрд╢рди ***
// рдкреГрд╖реНрда рд░реЛрдЯреЗрд╢рди
- ( рд╡реНрдпрд░реНрде ) рдкрд▓рдЯрдирд╛
{
// рдкреЗрдЬ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ
[ рд╕реНрд╡рдпрдВ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ ] ;
// рдПрдХ рдПрдиреАрдореЗрд╢рди рдЯрд╛рдЗрдорд░ рдмрдирд╛рдПрдВ (рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдо)
// рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд░реЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдкрд╛рд╕ рдХрд░реЗрдВ
FlipAnimation * рдПрдиреАрдореЗрд╢рди = [ [ FlipAnimation рдЖрд╡рдВрдЯрди ] initWithDuration : 1.0f
рдПрдирд┐рдореЗрд╢рдирдХреНрд░рд╛рдЗрд╡ : NSAnimationEaseInOut
рджреГрд╢реНрдп : рд░реЗрдВрдбрд░рд░ рд╡реНрдпреВ ] ;
// рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди startAnimation рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рддрд╛ рд╣реИ
// рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ
[ рдПрдиреАрдореЗрд╢рди рд╕реЗрдЯрдПрдиреАрдореЗрд╢рдирдмреНрд▓реЙрдХрд┐рдВрдЧ : рдПрдирдПрд╕рдПрдиреАрдореЗрд╢рдирдмреНрд▓реЙрдХрд┐рдВрдЧ ] ;
[ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВрдЕрдиреАрдореЗрд╢рди ] ;
[ рдПрдиреАрдореЗрд╢рди рд░рд┐рд▓реАрдЬ ] ;
// рдПрдиреАрдореЗрд╢рди рд░реЗрдВрдбрд░ рдЫреБрдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛
[ рдЖрддреНрдо рд╕рдорд╛рдкреНрддрд┐ ] ;
}
- ( рд╡реНрдпрд░реНрде ) рддреИрдпрд╛рд░реА рдХрд░рдиреЗрд╡рд╛рд▓рд╛
{
// рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди OpenGL рд╕рдВрджрд░реНрдн рдЪрдпрдирд┐рдд рд╣реИ
[ [ рд░реЗрдВрдбрд░рд░ рджреЗрдЦреЗрдВ рдУрдкрдирдЧреНрд▓реЛрдирдЯреЗрдХреНрд╕реНрдЯ ] рдореЗрдХ рдХреЙрд░рдВрдЯрдХреЙрдиреНрдЯреЗрдХреНрд╕ ] ;
// рдкрд╣рд▓рд╛ рдкреЗрдЬ рдЯрд░реНрди
[ рд░реЗрдВрдбрд░рд░ рд╡реНрдпреВ рд╕реЗрдЯрдЕрдирд┐рдореЗрдЯреЗрдбрдлрд╝реЛрд░реНрд╕ : [ рд╕реНрд╡рдпрдВ getPageTexture : PAGE_RIGHT ] ] ;
[ рд░реЗрдВрдбрд░рд░ рджреЗрдЦреЗрдВ setStaticLeft : [ рд╕реНрд╡рдпрдВ getPageTexture : PAGE_LEFT ] ] ;
// рдкреЗрдЬ рдмреИрдХрд╕реНрдЯреЗрдЬ рдлреНрд▓рд┐рдк
[ bookView flipPageOffScreen ] ;
// рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдХреА рдмрд╛рд░реА рдХреЗ рдмрдирд╛рд╡рдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ
[ рд░реЗрдВрдбрд░рд░ рд╡реНрдпреВ рд╕реЗрдЯрдЕрдирд┐рдореЗрдЯреЗрдб рдмреИрдХ : [ рд╕реНрд╡рдпрдВ getPageTexture : PAGE_LEFT ] ] ;
[ рд░реЗрдВрдбрд░рд░ рджреЗрдЦреЗрдВ setStaticRight : [ рд╕реНрд╡рдпрдВ getPageTexture : PAGE_RIGHT ] ] ;
// рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рд░реЗрдВрдбрд░рд░ рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рдпреВ-рдЯрд░реНрди рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реБрдП
// рдПрдХ рд╣реА рдЪрд┐рддреНрд░ рд╡рд╛рд▓реА рдХрд┐рддрд╛рдмреЗрдВ, рдХреЗрд╡рд▓ рдУрдкрдирдЬреАрдПрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИрдВ
[ рд░реЗрдВрдбрд░рд░ рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ : NO ] ;
}
- ( рд╢реВрдиреНрдп ) рдЕрдВрддрдХрд░рдг
{
// OpenGL рд░реЗрдВрдбрд░рд░ рдХреЛ рдЫрд┐рдкрд╛рдПрдВ
[ рд░реЗрдВрдбрд░рд░ рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ : рд╣рд╛рдБ ] ;
}
@end
рдорд╛рдирдХ рдПрдиреАрдореЗрд╢рди рдЯрд╛рдЗрдорд░ред рдЕрджреНрдпрддрди рд╕рдордп рдХреЙрд▓: 0..1 рдХреА рд╕реАрдорд╛ рдореЗрдВ рдПрдХ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдПрдиреАрдореЗрд╢рди рд╕рдордп рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде
@interface FlipAnimation : NSAnimation
{
OpenGLPageCurlView * рд░реЗрдВрдбрд░рд░ рд╡реНрдпреВ;
}
@end
@ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди FlipAnimation
- ( рдЖрдИрдбреА ) initWithDuration : ( NSTimeInterval ) рдЕрд╡рдзрд┐
рдПрдирд┐рдореЗрд╢рди : ( NSAnimationCurve )
рджреЗрдЦреЗрдВ : ( OpenGLPageCurlView * ) рджреЗрдЦреЗрдВ
{
рдЖрддреНрдо = [ рд╕реБрдкрд░ initWithDuration : рдЕрд╡рдзрд┐ рдПрдиреАрдореЗрд╢рди рдХрд░реНрд╡ : рдПрдиреАрдореЗрд╢рди рдХрд░реНрд╡ ] ;
рдЕрдЧрд░ ( рд╕реНрд╡ ! = рдиреАрд▓ )
{
рд░реЗрдВрдбрд░рд░ рд╡реНрдпреВ = рджреГрд╢реНрдп;
}
рд╕реНрд╡ рд▓реМрдЯ рдЖрдУ;
}
- ( рд╢реВрдиреНрдп ) setCurrentProgress : ( NSAnimationProgress ) рдкреНрд░рдЧрддрд┐
{
// рд░реЗрдВрдбрд░ рдПрдиреАрдореЗрд╢рди, рдкреНрд░рдЧрддрд┐ рдорд╛рди 0 рд╕реЗ 1 рддрдХ рдмрджрд▓рддрд╛ рд╣реИ
[ rendererView рдЕрджреНрдпрддрди рд╕рдордп : рдкреНрд░рдЧрддрд┐ ] ;
}
@end
рдПрдирд┐рдореЗрд╢рди рдЯрд╛рдЗрдорд░ рдХреЗ рдмрд┐рдирд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдЙрд╕ рдпрд╛ рдЯрдЪрдкреИрдб рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣ рдкреГрд╖реНрда рдХреЛ "рдЦреАрдВрдЪрдиреЗ" рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЕрдкрдбреЗрдЯ рдЯрд╛рдЗрдордЯрд╛рдЗрдо рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ: рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рд░реЗрдВрдбрд░рд░ рддрдХ рд╕рдВрджреЗрд╢ред
рдореИрдВ OpenGL рд░реЗрдВрдбрд░рд░ рдХреЛрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдо рдмрд╛рдд рд╣реИред рд╕реНрдЯреНрд░рд┐рдк рдЯреНрд░рд╛рдЗрдПрдВрдЧрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЯреЗрдХреНрд╕рдЪрд░ рдореИрдкрд┐рдВрдЧ рдХреА рдЧрдИ рдереА, рдПрдиреАрдореЗрд╢рди рд╕реАрди рдХрд╛ рдЖрдХрд░реНрд╖рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдЦреИрд░, рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ (рдореИрдВ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ):