
рдЖрдЬрдХрд▓ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднреМрддрд┐рдХреА рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВред рдХрдИ рдПрдПрдП рдЧреЗрдореНрд╕, рдЖрднрд╛рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рдореБрд▓реЗрд╢рди рдФрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдореЗрдВ рдмреБрд▓реЗрдЯ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди рдФрд░ рд░реЗрдб рдбреЗрдб рд░рд┐рдбреЗрдореНрдкрд╢рди 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 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╢рд╛рдпрдж, рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рдж рджрд╕ рд▓рд╛рдЦрд╡реЗрдВ рдЕрдВрд╢ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд┐рд╕реА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рдирд╣реАрдВ рд╣реИред
Math.h рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд╕реЗ Pi рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП
M_PI рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИред
рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг 2:рдХрднреА-рдХрднреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрдкрдХреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреАрди рд╕рдВрдмрдВрдзрд┐рдд рддрд░реНрдХ рд╣рд╛рдлрдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕, рдЖрдзрд╛ рдЯреЗрдХреНрд╕рдЯреЗрд╢реА, рдЖрдзреЗрдЗрдХреНрд╕реЗрдВрдЯрдЬреЗрдб рдпрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
addVertex рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╣рд╛рдлрдПрдХреНрд╕реНрдЯреЗрдВрдЯреНрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдХреЙрдкреАрд░рд╛рдЗрдЯ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рднреВрд▓ рдЧрдП рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
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:рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рдЯреБрдХрдбрд╝реЗ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╢реБрд░реБрдЖрддреА рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдЗрд╕ looooooooooong рд▓рд╛рдЗрди рджреЗрдЦреЗрдВ?
рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдЗрддрдиреА рд▓рдВрдмреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдореЗрдВ рдлрд┐рд╕рд▓ рдЧрдИ рд╣реИред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рджреАред
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 рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ -1 рджреЗрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ,
рдЕрдЧрд░ рд╢рд╛рдЦрд╛ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рдВрднрд╡рддрдГ рдпрд╣ рдПрдХ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐ рднреА рд╣реИред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдПрдХ рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдиреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕реЗ рдФрд░ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
V517 'if (A) {...} рдХрд╛ рдЙрдкрдпреЛрдЧ if (A) {...}' рдкреИрдЯрд░реНрди рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЬрд╛рдБрдЪ рд▓рд╛рдЗрдиреЗрдВ: 151, 190. PhysicsClientUDP.cpp 151
рд╢реАрд░реНрд╖ рдкрд░: рд╕рд░рдгреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛
рдЙрджрд╛рд╣рд░рдг 6:рдЕрд░реБрдг рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд┐рдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд▓реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдХрд╛рд░рдг рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдБ, рд▓реВрдк рдХрдВрдбреАрд╢рди рдореЗрдВ,
dofIndex рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рдКрдкрд░реА рд╕реАрдорд╛ 128 рд╣реИ рдФрд░
dof''s 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)); } .... }
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рджреЛ рдЪрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
euler_out.pitch рдФрд░
euler_out2.pitch рдХреЗ рд▓рд┐рдП
btCos рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░рд┐рд╕рд╛рд╡
рдЙрджрд╛рд╣рд░рдг 10:рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╣реБрдд рд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
V773 'рдЖрдпрд╛рддрдХ' рдкреЙрдЗрдВрдЯрд░ рдХреА рджреГрд╢реНрдпрддрд╛ рдХрд╛ рджрд╛рдпрд░рд╛ рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд╕реИрдЯрдЕрдкред рд╕реАрдкреА 94
void SerializeSetup::initPhysics() { .... btBulletWorldImporter* importer = new btBulletWorldImporter(m_dynamicsWorld); .... fclose(file); m_guiHelper->autogenerateGraphicsObjects(m_dynamicsWorld); }
рдореЗрдореЛрд░реА рдХреЛ рдпрд╣рд╛рдВ
рдЖрдпрд╛рддрдХ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореЗрдореЛрд░реА рд░рд┐рд╕рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рд░рд┐рд╕рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж
рдбрд┐рд▓реАрдЯ рдЖрдпрд╛рддрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд▓реЗрдХрд┐рди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
C ++ рдЕрдкрдиреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд░рд╣рддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг 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 () рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛
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' рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реАрдирд┐рдпрд░ рек.рдПрдЪ ремреиh
V570 рдПрдХ рд╣реА рдорд╛рди 'm13' рдЪрд░ рдХреЗ рд▓рд┐рдП рджреЛ рдмрд╛рд░ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рд▓реАрдирд┐рдпрд░ 4.рдПрдЪ 627
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдирдЧреНрди рдЖрдВрдЦреЛрдВ рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рд░рдгреАрдмрджреНрдз рд░реВрдк рд╕реЗ рдареАрдХ рдХреА рдЧрдИ рдереА:
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 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреНрд░рд╛рдердорд┐рдХ рдмрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ "
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдкрд░рд┐рдЪрдп, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреАрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЦреЛрдЬ рди рдХрд░реЗрдВ ред"
рдирд┐рд╖реНрдХрд░реНрд╖

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