
рдЖрдЬрдХрд▓, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдЦреЗрд▓, рдЕрдм рдЦрд░реЛрдВрдЪ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднреМрддрд┐рдХреА рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рдмреБрд▓реЗрдЯ рдПрдХ рдмрд╛рд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрдИ рдПрдПрдП рдЧреЗрдо, рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рдореБрд▓реЗрд╢рди рдФрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рдВ, рдФрд░ рдпрд╣ рдЖрдЬ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди рдФрд░ рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди 2 рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рддреЛ рдХреНрдпреЛрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдмреБрд▓реЗрдЯ рдХреА рдЬрд╛рдВрдЪ рди рдХрд░реЗрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИред рднреМрддрд┐рдХреА рд╕рд┐рдореБрд▓реЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рддред
рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп
рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддрд╛рдХрд┐ рд╣рд░ рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд┐рд▓реНрдо рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдЯрдХрд░рд╛рд╡ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЧрд╛рдп рд░рд┐рдЪреА рджреНрд╡рд╛рд░рд╛ рд╢рд░реНрд▓рдХ рд╣реЛрдореНрд╕ рдХреЗ рдлрд┐рд▓реНрдорд╛рдВрдХрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдереЗред
рдпрджрд┐ рдпрд╣ рдПрдХ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рдЖрдкрдХреА рдкрд╣рд▓реА рдореБрдарднреЗрдбрд╝ рд╣реИ рдЬрд╣рд╛рдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд░реВрдВрдЧрд╛ред
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реИ рдЬреЛ рд╕реА, рд╕реА ++, рд╕реА #, рдЬрд╛рд╡рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ, рдХрдорд┐рдпреЛрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдПрдХ рддрд░рд╣ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред
рд╡рд╛рд░реНрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг 1:рдЖрдЗрдП рдПрдХ рдЕрдЬреАрдм рдЧрд▓рддреА рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
V624 '3.141592538' рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рдПрдХ рдЧрд▓рдд
рдзрд╛рд░рдгрд╛ рд╣реИред <Math.h> рд╕реЗ M_PI рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред PhysicsClientC_API.cpp 4109
B3_SHARED_API void b3ComputeProjectionMatrixFOV(float fov, ....) { float yScale = 1.0 / tan((3.141592538 / 180.0) * fov / 2); .... }
рд╕рдВрдЦреНрдпрд╛ рдкрд╛рдИ (3.141592653 ...) рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдЯрд╛рдЗрдкреЛ, рдлреНрд░реИрдХреНрдЪрд░ рднрд╛рдЧ рдореЗрдВ 7 рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ "6" рдирдВрдмрд░ рдЧрд╛рдпрдм рд╣реИред
рд╢рд╛рдпрдж рджрд╕-рджрд╕рд╡реЗрдВ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдореВрд░реНрдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдмрд┐рдирд╛ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдХреЗ рдореМрдЬреВрджрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред Pi рдХреЗ рд▓рд┐рдП,
math.h рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд╕реЗ
M_PI рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИред
рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг 2:рдХрднреА-рдХрднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрдкрдХреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рддреАрди рд╕рдВрдмрдВрдзрд┐рдд рддрд░реНрдХ
рд╣рд╛рдлрдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕, рдЖрдзрд╛ рдЯреЗрдХреНрд╕реЗрдВрдЯреА, рд╣рд╛рдлрдПрдХреНрд╕рдЯреЗрдВрдЯрдЬреЗрдб рдлрдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм
addVertex рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЪрд░
рд╣рд╛рдлExtentsY рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рднреВрд▓ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
V751 рдкреИрд░рд╛рдореАрдЯрд░ 'halfExtentsZ' рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред TinyRenderer.cpp 375
void TinyRenderObjectData::createCube(float halfExtentsX, float halfExtentsY, float halfExtentsZ, ....) { .... m_model->addVertex(halfExtentsX * cube_vertices_textured[i * 9], halfExtentsY * cube_vertices_textured[i * 9 + 1], halfExtentsY * cube_vertices_textured[i * 9 + 2], cube_vertices_textured[i * 9 + 4], ....); .... }
рдЙрджрд╛рд╣рд░рдг 3:рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рдЯреБрдХрдбрд╝рд╛ рднреА рдкрд╛рдпрд╛, рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рдкрд╣рд▓реЗ рд▓рд╛рдКрдВрдЧрд╛ред
рдпрд╣ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рджреЗрдЦреЗрдВ?
рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЗрддрдиреА рд▓рдВрдмреА рд╕реНрдерд┐рддрд┐ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рдХрд┐ рдЗрд╕рдореЗрдВ рдЧрд▓рддреА рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╣реИ, рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреАред
V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'рд░реЛрдЯреИрдЯ.рдХреЙрд▓реНрдпреВрдореЗрдВрдЯ 1 ()ред рдиреЙрд░реНрдо () <1.0001' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред LinearR4.cpp 351
V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ '0.9999 <rotmat.Column1 ()ред Norm ()' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред LinearR4.cpp 351
рдпрджрд┐ рд╣рдо рдПрдХ рджреГрд╢реНрдп "рд╕рд╛рд░рдгреАрдмрджреНрдз" рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐
рдХреЙрд▓рдо 1 рдкрд░ рд╕рдорд╛рди рдЪреЗрдХ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рджреЛ рддреБрд▓рдирд╛рдПрдВ рдмрддрд╛рддреА рд╣реИрдВ рдХрд┐
Column1 рдФрд░
Column2 рд╣реИрдВ ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рддреАрд╕рд░реА рдФрд░ рдЪреМрдереА рддреБрд▓рдирд╛ рдореЗрдВ
рдХреЙрд▓рдо 2 рдХреЗ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
Column1().Norm() < 1.0001 && 0.9999 < Column1().Norm() && Column1().Norm() < 1.0001 && 0.9999 < Column1().Norm() &&(Column1() ^ Column2()) < 0.001 && (Column1() ^ Column2()) > -0.001
рдЗрд╕ рд░реВрдк рдореЗрдВ, рдПрдХ рд╣реА рддреБрд▓рдирд╛ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг 4:рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐:
V501 рд╕рдорд╛рди рдЙрдк-рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ 'cs.m_fJacCoeffInv [0] == 0' рдмрд╛рдИрдВ рдУрд░ рдФрд░ '&&' рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ред b3CpuRigidBodyPipeline.cpp 169
float m_fJacCoeffInv[2]; static inline void b3SolveFriction(b3ContactConstraint4& cs, ....) { if (cs.m_fJacCoeffInv[0] == 0 && cs.m_fJacCoeffInv[0] == 0) { return; } .... }
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдорд╛рди рдПрд░реЗ рддрддреНрд╡ рдХреЛ рдбрдмрд▓ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрд░рд╣
рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:
cs.m_fJacCoeffInv [0] == 0 && cs.m_fJacCoeffInv [1] == 0 ред рдпрд╣ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдЙрджрд╛рд╣рд░рдг 5:рдПрдХ рдФрд░ рдХрдореА рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рдереА:
V517 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ if (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 79, 112. main.cpp 79
int main(int argc, char* argv[]) { .... while (serviceResult > 0) { serviceResult = enet_host_service(client, &event, 0); if (serviceResult > 0) { .... } else if (serviceResult > 0) { puts("Error with servicing the client"); exit(EXIT_FAILURE); } .... } .... }
Enet_host_service рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо
serviceResult рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ -1 рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ,
рдФрд░ рдпрджрд┐ рд╢рд╛рдЦрд╛ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдереАред
рдкрд░рд┐рдгрд╛рдо , рд▓реЗрдХрд┐рди рд╕рддреНрдпрд╛рдкрди рдХреА рд╕реНрдерд┐рддрд┐ рджреЛрд╣рд░рд╛рдИ рдЧрдИ рдереАред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╣ рднреА рдПрдХ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐ рд╣реИред
рдПрдХ рд╕рдорд╛рди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА, рдЬрд┐рд╕рдХрд╛ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ:
V517 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ if (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 151, 190. PhysicsClientUDP.cpp 151
рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ: рд╕рд░рдгреА рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдЬрд╛рдирд╛
рдЙрджрд╛рд╣рд░рдг 6:рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд┐рдп рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕рд░рдгреА рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рд▓реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдВ, рд▓реВрдк рд╕реНрдерд┐рддрд┐ рдореЗрдВ,
рдбреЙрдлрд┐рдВрдбреЗрдХреНрд╕ рдЪрд░ рдКрдкрд░ рд╕реЗ 128 рддрдХ рд╕реАрдорд┐рдд
рд╣реИ , рдФрд░
рдбреЙрдл 4 рд╕реЗ рд╕рдорд╛рд╡реЗрд╢реА рд╣реИред рд▓реЗрдХрд┐рди
m_desiredState рдореЗрдВ рдХреЗрд╡рд▓ 128 рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдирддреАрдЬрддрди, рд╕реВрдЪрдХрд╛рдВрдХ
[dofIndex + dof] рд╕рд░рдгреА рдХреЗ
рдмрд╣рд┐рд░реНрд╡рд╛рд╣ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред
V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'DofIndex + dof' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 130 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред PhysicsClientC_API.cpp 968
#define MAX_DEGREE_OF_FREEDOM 128 double m_desiredState[MAX_DEGREE_OF_FREEDOM]; B3_SHARED_API int b3JointControl(int dofIndex, double* forces, int dofCount, ....) { .... if ( (dofIndex >= 0) && (dofIndex < MAX_DEGREE_OF_FREEDOM ) && dofCount >= 0 && dofCount <= 4) { for (int dof = 0; dof < dofCount; dof++) { command->m_sendState.m_desiredState[dofIndex+dof] = forces[dof]; .... } } .... }
рдЙрджрд╛рд╣рд░рдг 7:рдЗрд╕реА рддрд░рд╣ рдХреА рдПрдХ рддреНрд░реБрдЯрд┐, рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рд╕рд░рдгреА рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдПрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдорди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдпрдерд╛рд╕рдВрднрд╡ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣реИ, рддреЛ рдЯрд░реНрдорд┐рдирд▓ рд╢реВрдиреНрдп рдХреЛ рд╕рд░рдгреА (
рдСрдл-рдмрд╛рдп-рд╡рди рдПрд░рд░ ) рдХреЗ рдмрд╛рд╣рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ,
рд▓реЗрди рдЪрд░ рдХреЗрд╡рд▓ рдЕрд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ
MAX_FILENAME_LENGTH рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕рдХреА рдШрдЯрдирд╛ рдХреЛ рджреБрд░реНрд▓рдн рдмрдирд╛рддрд╛ рд╣реИред
V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реЗрди' рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдорд╛рди 1024 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред PhysicsClientC_API.cpp 5223
#define MAX_FILENAME_LENGTH MAX_URDF_FILENAME_LENGTH 1024 struct b3Profile { char m_name[MAX_FILENAME_LENGTH]; int m_durationInMicroSeconds; }; int len = strlen(name); if (len >= 0 && len < (MAX_FILENAME_LENGTH + 1)) { command->m_type = CMD_PROFILE_TIMING; strcpy(command->m_profile.m_name, name); command->m_profile.m_name[len] = 0; }
рдЙрдкрд╛рдп рдПрдХ рдмрд╛рд░ - рд╕рд╛рдд рдмрд╛рд░ рдХрд╛рдЯреЗрдВ
рдЙрджрд╛рд╣рд░рдг 8:рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдмрд╛рд░-рдмрд╛рд░ рдПрдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреЙрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдХреЛрдб рдореЗрдВ 100 рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рдорд┐рд▓реЗ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
V807 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореАред 'M_app-> m_renderer-> getActiveCamera () рдмрд╛рд░-рдмрд╛рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред InverseKinematicsExample.cpp 315
virtual void resetCamera() { .... if (....) { m_app->m_renderer->getActiveCamera()->setCameraDistance(dist); m_app->m_renderer->getActiveCamera()->setCameraPitch(pitch); m_app->m_renderer->getActiveCamera()->setCameraYaw(yaw); m_app->m_renderer->getActiveCamera()->setCameraPosition(....); } }
рдпрд╣рд╛рдВ рдЙрд╕реА рдХреЙрд▓ рдЪреЗрди рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд┐рдВрдЧрд▓ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг 9:V810 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореАред 'BtCos (euler_out.pitch)' рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдорд╛рди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдмрд╛рд░ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ рддрдм 'btAtan2' рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред btMatrix3x3.h 576
V810 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореАред рд╕рдорд╛рди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде 'btCos (euler_out2.pitch)' рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдХрдИ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ред рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрднрд╡рддрдГ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ рддрдм 'btAtan2' рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред btMatrix3x3.h 578
void getEulerZYX(....) const { .... if (....) { .... } else { .... euler_out.roll = btAtan2(m_el[2].y() / btCos(euler_out.pitch), m_el[2].z() / btCos(euler_out.pitch)); euler_out2.roll = btAtan2(m_el[2].y() / btCos(euler_out2.pitch), m_el[2].z() / btCos(euler_out2.pitch)); euler_out.yaw = btAtan2(m_el[1].x() / btCos(euler_out.pitch), m_el[0].x() / btCos(euler_out.pitch)); euler_out2.yaw = btAtan2(m_el[1].x() / btCos(euler_out2.pitch), m_el[0].x() / btCos(euler_out2.pitch)); } .... }
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рджреЛ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
btCos рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ
euler_out.pitch рдФрд░
euler_out2.pitch рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░рд┐рд╕рд╛рд╡
рдЙрджрд╛рд╣рд░рдг 10:рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╣реБрдд рд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИ рдЧрдИрдВ:
V773 'рдЖрдпрд╛рддрдХ' рдкреЙрдЗрдВрдЯрд░ рдХреА рджреГрд╢реНрдпрддрд╛ рдХрд╛ рджрд╛рдпрд░рд╛ рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд╕реИрдЯрдЕрдкред рд╕реАрдкреА 94
void SerializeSetup::initPhysics() { .... btBulletWorldImporter* importer = new btBulletWorldImporter(m_dynamicsWorld); .... fclose(file); m_guiHelper->autogenerateGraphicsObjects(m_dynamicsWorld); }
рдпрд╣рд╛рдВ рдХрд┐рд╕реА рднреА рдореЗрдореЛрд░реА рдХреЛ
рдЖрдпрд╛рддрдХ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдмреБрд░рд╛ рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рд░рд┐рд╕рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдЪрд░ рдХреЗ рдмрд╛рдж рдЕрдм
рд╣рдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрдпрд╛рддрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдХрд╛рдиреВрди рд╣реИрдВ
рдЙрджрд╛рд╣рд░рдг 11:рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХрд┐ C ++ рдирд┐рдпрдо рд╣рдореЗрд╢рд╛ рдЧрдгрд┐рддреАрдп рдирд┐рдпрдореЛрдВ рдпрд╛ "рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди" рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд▓рд┐рдП рдиреЛрдЯрд┐рд╕ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ рд╣реИ?
btAlignedObjectArray<btFractureBody*> m_fractureBodies; void btFractureDynamicsWorld::fractureCallback() { for (int i = 0; i < numManifolds; i++) { .... int f0 = m_fractureBodies.findLinearSearch(....); int f1 = m_fractureBodies.findLinearSearch(....); if (f0 == f1 == m_fractureBodies.size()) continue; .... } .... }
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
V709 рд╕рдВрджрд┐рдЧреНрдз рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛: 'f0 == f1 == m_fractureBodies.size ()'ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ 'a == b == c' 'a == b && b == c' рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред btFractureDynamicsWorld.cpp 483
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓рдд рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐
f0 f1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░
m_fractureBodies рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдБрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░
f0 рдФрд░
f1 m_fractureBodies рд╕рд░рдгреА рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ
findLinearSearch () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛
f0 рдФрд░
f1 рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдлрд┐рд░
m_fractureBodies.size () f0 == f1 рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдирддреАрдЬрддрди, рддреАрд╕рд░реЗ рдСрдкрд░реЗрдВрдб рдХреА рддреБрд▓рдирд╛ рдпрд╣рд╛рдВ 0 рдпрд╛ 1 рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИред
рд╕реБрдВрджрд░ рдЧрд▓рддреА! рдФрд░, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХрд╛рдлреА рджреБрд░реНрд▓рднред рдЕрдм рддрдХ рд╣рдо
рдЙрдирд╕реЗ рдХреЗрд╡рд▓ рджреЛ рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ
рдорд┐рд▓реЗ рд╣реИрдВ, рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рдХреЗрд╡рд▓ рдЦреЗрд▓ рдЗрдВрдЬрди рдереЗред
рдЙрджрд╛рд╣рд░рдг 12:рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд╕рд░
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рддреЛ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП
, рдХреНрд░рдорд╢рдГ
MyStr.length () рдФрд░
val.clear () рдХреЗ рд╕рд╛рде
strlen (MyStr.c_str ()) рдФрд░
val = "" рдХреЛ рдмрджрд▓рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
V806 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореАред Strlen (MyStr.c_str ()) рддрд░рд╣ рдХреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ MyStr.length () рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред RobotLoggingUtil.cpp 213
FILE* createMinitaurLogFile(const char* fileName, std::string& structTypes, ....) { FILE* f = fopen(fileName, "wb"); if (f) { .... fwrite(structTypes.c_str(), strlen(structTypes.c_str()), 1, f); .... } .... }
V815 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореАред 'Val.clear ()' рдХреЗ рд╕рд╛рде 'val = "" "рдХреА рдЬрдЧрд╣ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред b3CommandLineArgs.h 40
void addArgs(int argc, char **argv) { .... std::string val; .... val = ""; .... }
рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдереАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИ рдЧрдИрдВ
рдпрд╣ рд╣рд╛рд▓рд┐рдпрд╛ рд▓реЗрдЦ "
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛
рдХрд┐ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ " рдкрд╣рд▓реЗ рд╕реЗ рддрдп рдХрд┐рдП рдЧрдП рдмрдЧ рдпрд╛ рдХрдорд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдЬреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдереЗ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдЗрдВрдЬрди рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рд▓реЗрдХрд┐рди рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдереАрдВ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рдереЗред
рдЙрджрд╛рд╣рд░рдг 13: char m_deviceExtensions[B3_MAX_STRING_LENGTH]; void b3OpenCLUtils_printDeviceInfo(cl_device_id device) { b3OpenCLDeviceInfo info; b3OpenCLUtils::getDeviceInfo(device, &info); .... if (info.m_deviceExtensions != 0) { .... } }
рд╕рдВрдкрд╛рджрд┐рдд рдЯрд┐рдкреНрдкрдгреА рдХрд╣рддреА рд╣реИ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдпрд╣ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡реНрдпрд░реНрде рд╕реВрдЪрдХ рд╕реВрдЪрдХ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд▓реМрдЯрд╛ред рдпрд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреЗрдХ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
V600 рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред 'Info.m_deviceExtensions' рдкреЙрдЗрдВрдЯрд░ рд╣рдореЗрд╢рд╛ NULL рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред b3OpenCLUtils.cpp 551
рдЙрджрд╛рд╣рд░рдг 14:рдХреНрдпрд╛ рдЖрдк рддреБрд░рдВрдд рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ?
inline void Matrix4x4::SetIdentity() { m12 = m13 = m14 = m21 = m23 = m24 = m13 = m23 = m41 = m42 = m43 = 0.0; m11 = m22 = m33 = m44 = 1.0; }
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ:
V570 рд╕рдорд╛рди рдорд╛рди рджреЛ рдмрд╛рд░ 'm23' рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реАрдирд┐рдпрд░ 4.рдПрдЪ 627
V570 рдПрдХ рд╣реА рдорд╛рди 'm13' рдЪрд░ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реАрдирд┐рдпрд░ рек.рдПрдЪ ремреиh
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рдЗрд╕ рд░реВрдк рдХреЗ рд╕рд╛рде рдмрд╛рд░-рдмрд╛рд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдирдЧреНрди рдЖрдВрдЦреЛрдВ рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖред рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рд░рдгреАрдмрджреНрдз рд░реВрдк рдореЗрдВ рдареАрдХ рдХреА рдЧрдИ рдереА:
m12 = m13 = m14 = m21 = m23 = m24 = m31 = m32 = m34 = m41 = m42 = m43 = 0.0;
рдЙрджрд╛рд╣рд░рдг 15:BtSoftBody рдХреА рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐
:: addAeroForceToNode () рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрдЧ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмрд▓реЛрдВ рдХреЛ рдЧрд▓рдд рдкрдХреНрд╖ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
struct eAeroModel { enum _ { V_Point, V_TwoSided, .... END }; }; void btSoftBody::addAeroForceToNode(....) { .... if (....) { if (btSoftBody::eAeroModel::V_TwoSided) { .... } .... } .... }
PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рднреА рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
V768 рдПрдиреНрдпреВрдорд░реЗрд╢рди рд╕реНрдерд┐рд░рд╛рдВрдХ 'V_TwoSided' рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреВрд▓рд┐рдпрди-рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред btSoftBody.cpp 542
рд╕рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЪреЗрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
if (m_cfg.aeromodel == btSoftBody::eAeroModel::V_TwoSided) { .... }
рдПрдиреНрдпреВрдорд░реЗрдЯрд░реНрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рд╕рдорддреБрд▓реНрдпрддрд╛ рдХреЗ рдмрдЬрд╛рдп,
V_TwoSered рдПрдиреНрдпреВрдорд░реЗрдЯрд░ рдХреЛ рд╣реА рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕рднреА рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдереИрддрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред рд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ DevOps рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдмрдЧреНрд╕ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдлрд┐рд▓реНрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рд▓реЗрдЦ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ "
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдПрдореНрдмреЗрдб рдХрд░реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрдЧ рдХреА рддрд▓рд╛рд╢ рди рдХрд░реЗрдВ ред"
рдирд┐рд╖реНрдХрд░реНрд╖

рдХреБрдЫ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХрднреА-рдХрднреА рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдкрд╛рджрди рдзреАрд░реЗ-рдзреАрд░реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдФрд░ рдмрдбрд╝реЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╕рдордп рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ, рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдереЗред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдПрдХ рдирд┐рд░рдВрддрд░ рдЬрд╛рдВрдЪ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рддреБрд░рдВрдд рдареАрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдФрд░ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХреАрдбрд╝реЗ рджрд┐рдЦрд╛рдИ рди рджреЗрдВред
рдпрджрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реА рдЯреАрдо рдХреА рдЦрдмрд░реЛрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реА рд╕рд╛рдорд╛рдЬрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рдиреЗрдЯрд╡рд░реНрдХ:
рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо ,
рдЯреНрд╡рд┐рдЯрд░ ,
Vkontakte ,
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо ред

рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
PVS-Studio рдиреЗ рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди рдХреЗ рдмреБрд▓реЗрдЯ рдЗрдВрдЬрди рдореЗрдВ рджреЗрдЦрд╛