Mr.doob 2 years ago
parent
commit
86c5e1046a
100 changed files with 14480 additions and 99 deletions
  1. 9 33
      build/three.cjs
  2. 9 33
      build/three.js
  3. 0 0
      build/three.min.js
  4. 9 33
      build/three.module.js
  5. 0 0
      build/three.module.min.js
  6. 53 0
      docs/api/ar/lights/AmbientLight.html
  7. 49 0
      docs/api/ar/lights/AmbientLightProbe.html
  8. 146 0
      docs/api/ar/lights/DirectionalLight.html
  9. 93 0
      docs/api/ar/lights/HemisphereLight.html
  10. 53 0
      docs/api/ar/lights/HemisphereLightProbe.html
  11. 80 0
      docs/api/ar/lights/Light.html
  12. 78 0
      docs/api/ar/lights/LightProbe.html
  13. 139 0
      docs/api/ar/lights/PointLight.html
  14. 111 0
      docs/api/ar/lights/RectAreaLight.html
  15. 190 0
      docs/api/ar/lights/SpotLight.html
  16. 101 0
      docs/api/ar/lights/shadows/DirectionalLightShadow.html
  17. 165 0
      docs/api/ar/lights/shadows/LightShadow.html
  18. 94 0
      docs/api/ar/lights/shadows/PointLightShadow.html
  19. 106 0
      docs/api/ar/lights/shadows/SpotLightShadow.html
  20. 91 0
      docs/api/ar/loaders/AnimationLoader.html
  21. 107 0
      docs/api/ar/loaders/AudioLoader.html
  22. 94 0
      docs/api/ar/loaders/BufferGeometryLoader.html
  23. 74 0
      docs/api/ar/loaders/Cache.html
  24. 71 0
      docs/api/ar/loaders/CompressedTextureLoader.html
  25. 93 0
      docs/api/ar/loaders/CubeTextureLoader.html
  26. 68 0
      docs/api/ar/loaders/DataTextureLoader.html
  27. 131 0
      docs/api/ar/loaders/FileLoader.html
  28. 117 0
      docs/api/ar/loaders/ImageBitmapLoader.html
  29. 100 0
      docs/api/ar/loaders/ImageLoader.html
  30. 138 0
      docs/api/ar/loaders/Loader.html
  31. 43 0
      docs/api/ar/loaders/LoaderUtils.html
  32. 106 0
      docs/api/ar/loaders/MaterialLoader.html
  33. 161 0
      docs/api/ar/loaders/ObjectLoader.html
  34. 104 0
      docs/api/ar/loaders/TextureLoader.html
  35. 68 0
      docs/api/ar/loaders/managers/DefaultLoadingManager.html
  36. 236 0
      docs/api/ar/loaders/managers/LoadingManager.html
  37. 104 0
      docs/api/ar/materials/LineBasicMaterial.html
  38. 69 0
      docs/api/ar/materials/LineDashedMaterial.html
  39. 447 0
      docs/api/ar/materials/Material.html
  40. 178 0
      docs/api/ar/materials/MeshBasicMaterial.html
  41. 125 0
      docs/api/ar/materials/MeshDepthMaterial.html
  42. 111 0
      docs/api/ar/materials/MeshDistanceMaterial.html
  43. 278 0
      docs/api/ar/materials/MeshLambertMaterial.html
  44. 160 0
      docs/api/ar/materials/MeshMatcapMaterial.html
  45. 121 0
      docs/api/ar/materials/MeshNormalMaterial.html
  46. 284 0
      docs/api/ar/materials/MeshPhongMaterial.html
  47. 266 0
      docs/api/ar/materials/MeshPhysicalMaterial.html
  48. 312 0
      docs/api/ar/materials/MeshStandardMaterial.html
  49. 235 0
      docs/api/ar/materials/MeshToonMaterial.html
  50. 116 0
      docs/api/ar/materials/PointsMaterial.html
  51. 70 0
      docs/api/ar/materials/RawShaderMaterial.html
  52. 463 0
      docs/api/ar/materials/ShaderMaterial.html
  53. 67 0
      docs/api/ar/materials/ShadowMaterial.html
  54. 97 0
      docs/api/ar/materials/SpriteMaterial.html
  55. 203 0
      docs/api/ar/math/Box2.html
  56. 303 0
      docs/api/ar/math/Box3.html
  57. 364 0
      docs/api/ar/math/Color.html
  58. 77 0
      docs/api/ar/math/Cylindrical.html
  59. 175 0
      docs/api/ar/math/Euler.html
  60. 111 0
      docs/api/ar/math/Frustum.html
  61. 68 0
      docs/api/ar/math/Interpolant.html
  62. 142 0
      docs/api/ar/math/Line3.html
  63. 208 0
      docs/api/ar/math/MathUtils.html
  64. 282 0
      docs/api/ar/math/Matrix3.html
  65. 493 0
      docs/api/ar/math/Matrix4.html
  66. 208 0
      docs/api/ar/math/Plane.html
  67. 322 0
      docs/api/ar/math/Quaternion.html
  68. 237 0
      docs/api/ar/math/Ray.html
  69. 177 0
      docs/api/ar/math/Sphere.html
  70. 90 0
      docs/api/ar/math/Spherical.html
  71. 155 0
      docs/api/ar/math/SphericalHarmonics3.html
  72. 184 0
      docs/api/ar/math/Triangle.html
  73. 353 0
      docs/api/ar/math/Vector2.html
  74. 523 0
      docs/api/ar/math/Vector3.html
  75. 392 0
      docs/api/ar/math/Vector4.html
  76. 62 0
      docs/api/ar/math/interpolants/CubicInterpolant.html
  77. 62 0
      docs/api/ar/math/interpolants/DiscreteInterpolant.html
  78. 62 0
      docs/api/ar/math/interpolants/LinearInterpolant.html
  79. 62 0
      docs/api/ar/math/interpolants/QuaternionLinearInterpolant.html
  80. 53 0
      docs/api/ar/objects/Bone.html
  81. 61 0
      docs/api/ar/objects/Group.html
  82. 172 0
      docs/api/ar/objects/InstancedMesh.html
  83. 118 0
      docs/api/ar/objects/LOD.html
  84. 114 0
      docs/api/ar/objects/Line.html
  85. 53 0
      docs/api/ar/objects/LineLoop.html
  86. 49 0
      docs/api/ar/objects/LineSegments.html
  87. 108 0
      docs/api/ar/objects/Mesh.html
  88. 90 0
      docs/api/ar/objects/Points.html
  89. 131 0
      docs/api/ar/objects/Skeleton.html
  90. 189 0
      docs/api/ar/objects/SkinnedMesh.html
  91. 87 0
      docs/api/ar/objects/Sprite.html
  92. 47 0
      docs/api/ar/renderers/WebGL1Renderer.html
  93. 51 0
      docs/api/ar/renderers/WebGL3DRenderTarget.html
  94. 61 0
      docs/api/ar/renderers/WebGLArrayRenderTarget.html
  95. 90 0
      docs/api/ar/renderers/WebGLCubeRenderTarget.html
  96. 75 0
      docs/api/ar/renderers/WebGLMultipleRenderTargets.html
  97. 131 0
      docs/api/ar/renderers/WebGLRenderTarget.html
  98. 647 0
      docs/api/ar/renderers/WebGLRenderer.html
  99. 24 0
      docs/api/ar/renderers/shaders/ShaderChunk.html
  100. 24 0
      docs/api/ar/renderers/shaders/ShaderLib.html

File diff suppressed because it is too large
+ 9 - 33
build/three.cjs


File diff suppressed because it is too large
+ 9 - 33
build/three.js


File diff suppressed because it is too large
+ 0 - 0
build/three.min.js


File diff suppressed because it is too large
+ 9 - 33
build/three.module.js


File diff suppressed because it is too large
+ 0 - 0
build/three.module.min.js


+ 53 - 0
docs/api/ar/lights/AmbientLight.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يضيء هذا الضوء جميع الأشياء في المشهد بشكل متساوٍ على مستوى العالم. <br /><br />
+			
+			لا يمكن استخدام هذا الضوء لرمي الظلال لأنه لا يحتوي على اتجاه.
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const light = new THREE.AmbientLight( 0x404040 ); // soft white light
+		scene.add( light );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Integer color], [param:Float intensity] )</h3>
+		<p>
+		[page:Integer color] - (اختياري) قيمة عددية لمكون RGB من
+		اللون. الافتراضي هو 0xffffff. <br />
+		[page:Float intensity] - (اختياري) قيمة عددية لـ
+		قوة / شدة الضوء. الافتراضي هو 1. <br /><br />
+		
+		ينشئ [name] جديدًا.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Light Light] للخصائص المشتركة.</p>
+		
+		<h3>[property:Boolean isAmbientLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Light Light] للطرق المشتركة.</p>
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 49 - 0
docs/api/ar/lights/AmbientLightProbe.html

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr; [page:LightProbe]
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تعتبر مسابير الضوء طريقة بديلة لإضافة الضوء إلى مشهد ثلاثي الأبعاد.
+			AmbientLightProbe هي بيانات تقدير الضوء لضوء محيط واحد
+			في المشهد. لمزيد من المعلومات حول مسابير الضوء ، انتقل إلى
+			[page:LightProbe].
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Color color], [param:Float intensity] )</h3>
+		<p>
+		[page:Color color] - (اختياري) مثيل من Color ، سلسلة تمثل
+		لون أو رقم يمثل لونًا. <br />
+		[page:Float intensity] - (اختياري) قيمة عددية لـ
+		شدة مسبار الضوء. الافتراضي هو 1. <br /><br />
+			
+		ينشئ [name] جديدًا.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر الفئة الأساسية [page:LightProbe LightProbe] للخصائص المشتركة.
+		</p>
+			
+		<h3>[property:Boolean isAmbientLightProbe]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:LightProbe LightProbe] للطرق المشتركة.</p>
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 146 - 0
docs/api/ar/lights/DirectionalLight.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ضوء ينبعث في اتجاه محدد. سيتصرف هذا الضوء كما لو كان بعيدًا لانهائيًا وأن الأشعة المنبعثة منه كلها
+			متوازية. الاستخدام الشائع لهذا هو محاكاة ضوء النهار ؛ الشمس
+			بعيد بما يكفي بحيث يمكن اعتبار موقعه لانهائيًا ، و
+			جميع أشعة الضوء القادمة منه متوازية. <br /> <br />
+			
+			يمكن لهذا الضوء إلقاء الظلال - انظر صفحة [page:DirectionalLightShadow]
+			للتفاصيل.
+		</p>
+			
+		<h2>ملاحظة حول الموقف والهدف والدوران</h2>
+		<p>
+			نقطة شائعة من الالتباس بالنسبة للأضواء الاتجاهية هي أن تحديد
+			لا يؤثر التدوير. هذا لأن DirectionalLight في three.js هو
+			ما يعادل ما يسمى بـ "Target Direct Light" في غيره
+			التطبيقات. <br /> <br />
+			
+			هذا يعني أن اتجاهه يتم حسابه كمؤشر من ضوء
+			[page:Object3D.position position] إلى [page:.target target] الموقف
+			(على عكس "Free Direct Light" التي لديها فقط دوران
+			مكون). <br /> <br />
+			
+			السبب في ذلك هو السماح للضوء بإلقاء الظلال - ال
+			[page:.shadow shadow] تحتاج الكاميرا إلى موقف لحساب الظلال
+			من. <br /> <br />
+			
+			انظر خاصية [page:.target target] أدناه للحصول على تفاصيل حول تحديث
+			الهدف.
+		</p>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		// ضوء اتجاهي أبيض بشدة نصفية يشرق من الأعلى.
+		const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 );
+		scene.add( directionalLight );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:misc_controls_fly controls / fly ]<br />
+		[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]<br />
+		[example:webgl_effects_stereo effects / stereo ]<br />
+		[example:webgl_geometry_extrude_splines geometry / extrude / splines ]<br />
+		[example:webgl_materials_bumpmap materials / bumpmap ]
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Color color], [param:Float intensity] )</h3>
+		<p>
+		[page:Color color] - (اختياري) مثيل من Color ، سلسلة تمثل
+		لون أو رقم يمثل لونًا. <br />
+		[page:Float intensity] - (اختياري) قيمة عددية لـ
+		شدة مسبار الضوء. الافتراضي هو 1. <br /><br />
+			
+		ينشئ [name] جديدًا.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<p>انظر قائمة [page:Light Light] الأساسية للخصائص المشتركة.</p>
+			
+		<h3>[property:Boolean castShadow]</h3>
+		<p>
+		إذا تم تعيينه على `true` فإن الضوء سيلقي ظلالًا ديناميكية. <b>تحذير</b>: هذا هو
+		باهظ الثمن ويتطلب التلاعب لجعل الظلال تبدو صحيحة. انظر
+		[page:DirectionalLightShadow] للتفاصيل. الافتراضي هو `false`.
+		</p>
+
+		<h3>[property:Boolean isDirectionalLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h3>[property:Vector3 position]</h3>
+		<p>
+		يتم تعيين هذا يساوي [page:Object3D.DEFAULT_UP] (0، 1، 0) ، بحيث
+		الضوء يشرق من الأعلى إلى الأسفل.
+		</p>
+		
+		<h3>[property:DirectionalLightShadow shadow]</h3>
+		<p>
+		[page:DirectionalLightShadow] يستخدم لحساب الظلال لهذا الضوء.
+		</p>
+		
+		<h3>[property:Object3D target]</h3>
+		<p>
+		يشير DirectionalLight من [page:.position position] إلى
+		target.position. الموضع الافتراضي للهدف هو `(0، 0، 0)`. <br />
+		
+		<b>ملاحظة</b>: لتغيير موضع الهدف إلى أي شيء آخر غير
+		الافتراضي ، يجب إضافته إلى [page:Scene scene] باستخدام
+		</p>
+		<code>
+		scene.add( light.target );
+		</code>
+		<p>
+		هذا حتى يتم تحديث [page:Object3D.matrixWorld matrixWorld] الخاص بالهدف
+		تلقائيًا كل إطار. <br /><br />
+		
+		من الممكن أيضًا تعيين الهدف ليكون كائنًا آخر في المشهد
+		(أي شيء يحتوي على خاصية [page:Object3D.position position]) ، مثل:
+		</p>
+		<code>
+		const targetObject = new THREE.Object3D(); 
+		scene.add(targetObject);
+		
+		light.target = targetObject;
+		</code>
+		<p>سيتبع directionalLight الكائن الهدف الآن.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<p>انظر الفئة الأساسية [page:Light Light] للطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير الموارد ذات الصلة بوحدة معالجة الرسومات التى تم تخصيصها من قبل هذه الحالة. استدعاء هذه
+		الطریقة كلما لم يعد يستخدم هذه الحال فى تطبیقك.
+		</p>
+		
+		<h3>[method:this copy]( [param:DirectionalLight source] )</h3>
+		<p>
+		ينسخ قيمة جمیع خصائص من [page:DirectionalLight source]
+		إلى هذا DirectionalLight.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 93 - 0
docs/api/ar/lights/HemisphereLight.html

@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			مصدر ضوء موضوع مباشرة فوق المشهد ، مع تلاشي اللون من
+			لون السماء إلى لون الأرض. <br /> <br />
+			لا يمكن استخدام هذا الضوء لإلقاء الظلال.
+		</p>
+			
+		<h2>مثال للكود</h2>
+		<code>
+		const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
+		scene.add( light );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+			
+		<p>
+		[example:webgl_animation_skinning_blending animation / skinning / blending ]<br />
+		[example:webgl_lights_hemisphere lights / hemisphere ]<br />
+		[example:misc_controls_pointerlock controls / pointerlock ]<br />
+		[example:webgl_loader_collada_kinematics loader / collada / kinematics ]<br />
+		[example:webgl_loader_stl loader / stl ]
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name]( [param:Integer skyColor], [param:Integer groundColor],
+		[param:Float intensity] )
+		</h3>
+		<p>
+		[page:Integer skyColor] - (optional) لون سداسي عشري للسماء. الافتراضي
+		هو 0xffffff.<br />
+		[page:Integer groundColor] - (optional) لون سداسي عشري للأرض.
+		الافتراضي هو 0xffffff.<br />
+		[page:Float intensity] - (optional) قيمة رقمية لـ
+		قوة / شدة الضوء. الافتراضي هو 1.<br /><br />
+			
+		يخلق جديد [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر قائمة [page:Light Light] الأساسية للخصائص المشتركة.</p>
+			
+		<h3>[property:Float color]</h3>
+		<p>
+		لون سماء الضوء ، كما تم تمريره في المُنشئ. الافتراضي هو جديد
+		[page:Color] محدد على الأبيض (0xffffff).
+		</p>
+			
+		<h3>[property:Float groundColor]</h3>
+		<p>
+		لون أرضية الضوء ، كما تم تمريره في المُنشئ. الافتراضي هو جديد
+		[page:Color] محدد على الأبيض (0xffffff).
+		</p>
+			
+		<h3>[property:Boolean isHemisphereLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:Vector3 position]</h3>
+		<p>
+		يتم تعيين هذا يساوي [page:Object3D.DEFAULT_UP] (0، 1، 0) ، بحيث
+		يشرق الضوء من أعلى إلى أسفل.
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+			
+		<p>انظر قائمة [page:Light Light] الأساسية للطرق المشتركة.</p>
+			
+		<h3>[method:this copy]( [param:HemisphereLight source] )</h3>
+		<p>
+		ينسخ قيمة [page:.color color] و[page:.intensity intensity] و
+		[page:.groundColor groundColor] من ضوء المصدر [page:Light source] إلى
+		هذا واحد.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 53 - 0
docs/api/ar/lights/HemisphereLightProbe.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr; [page:LightProbe]
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			مسابير الضوء هي طريقة بديلة لإضافة الضوء إلى مشهد ثلاثي الأبعاد.
+			HemisphereLightProbe هي بيانات تقدير الضوء لضوء نصف كرة واحد
+			في المشهد. لمزيد من المعلومات حول مسابير الضوء ، انتقل إلى
+			[page:LightProbe].
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:Color skyColor], [param:Color groundColor], [param:Float intensity] )
+		</h3>
+		<p>
+		[page:Color skyColor] - (اختياري) مثيل من Color ، سلسلة
+		يمثل لونًا أو رقمًا يمثل لونًا.<br />
+		[page:Color groundColor] - (اختياري) مثيل من Color ، سلسلة
+		يمثل لونًا أو رقمًا يمثل لونًا.<br />
+		[page:Float intensity] - (اختياري) قيمة رقمية لـ
+		شدة مسبار الضوء. الافتراضي هو 1.<br /><br />
+			
+		يخلق جديد [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر قائمة [page:LightProbe LightProbe] الأساسية للخصائص المشتركة.
+		</p>
+			
+		<h3>[property:Boolean isHemisphereLightProbe]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر قائمة [page:LightProbe LightProbe] الأساسية للطرق المشتركة.</p>
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 80 - 0
docs/api/ar/lights/Light.html

@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			الفئة الأساسية المجردة للأضواء - ترث جميع أنواع الأضواء الأخرى
+			الخصائص والطرق الموصوفة هنا.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Integer color], [param:Float intensity] )</h3>
+		<p>
+		[page:Integer color] - (اختياري) لون سداسي عشري للضوء. الافتراضي
+		هو 0xffffff (أبيض).<br />
+		[page:Float intensity] - (اختياري) قيمة رقمية لـ
+		قوة / شدة الضوء. الافتراضي هو 1.<br /><br />
+		يخلق جديد [name]. يرجى ملاحظة أنه لا يُقصد منه أن يتم استدعاؤه مباشرةً
+		(استخدم واحدًا من الفئات المشتقة بدلاً من ذلك).
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر قائمة [page:Object3D Object3D] الأساسية للخصائص المشتركة.</p>
+			
+		<h3>[property:Color color]</h3>
+		<p>
+		لون الضوء. يعود إلى جديد [page:Color] محدد على الأبيض ، إذا لم
+		تمرير في المُنشئ.<br />
+		</p>
+			
+		<h3>[property:Float intensity]</h3>
+		<p>
+		شدة الضوء ، أو قوته.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode] ،
+		وحدات الشدة تعتمد على نوع الضوء.<br />
+		الافتراضي - `1.0`.
+		</p>
+			
+		<h3>[property:Boolean isLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر قائمة [page:Object3D Object3D] الأساسية للطرق المشتركة.</p>
+			
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		طريقة التخلص المجردة للفئات التي تمتد هذه الفئة ؛ تنفذه
+		الفئات الفرعية التي لديها موارد قابلة للتصرف متعلقة بالجهاز.
+		</p>
+			
+		<h3>[method:this copy]( [param:Light source] )</h3>
+		<p>
+		ينسخ قيمة [page:.color color] و[page:.intensity intensity]
+		من ضوء المصدر [page:Light source] إلى
+		هذا واحد.
+		</p>
+			
+		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
+		<p>
+		meta - كائن يحتوي على بيانات تعريفية مثل المواد والقوام لـ
+		objects.<br />
+		حول الضوء إلى three.js
+		[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
+		</p>
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 78 - 0
docs/api/ar/lights/LightProbe.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			مسابير الضوء هي طريقة بديلة لإضافة الضوء إلى مشهد ثلاثي الأبعاد. على عكس
+			مصادر الضوء الكلاسيكية (على سبيل المثال الاتجاهية ، النقطية أو الأضواء الموجهة) ، الضوء
+			لا تنبعث المسابير. بدلاً من ذلك ، يخزنون معلومات حول الضوء
+			يمر عبر المساحة ثلاثية الأبعاد. أثناء التقديم ، يتم تقريب الضوء الذي يضرب 3D
+			الكائن باستخدام بيانات من مسبار الضوء.
+		</p>
+			
+		<p class="desc">
+			عادةً ما يتم إنشاء مسابير الضوء من خرائط البيئة (الإشعاع). جناح
+			[page:LightProbeGenerator] يمكن استخدامه لإنشاء مسابير ضوء من
+			مثيلات [page:CubeTexture] أو [page:WebGLCubeRenderTarget]. ومع ذلك،
+			يمكن توفير بيانات تقدير الضوء أيضًا في أشكال أخرى على سبيل المثال من قبل WebXR.
+			هذا يتيح تقديم محتوى الواقع المعزز الذي يتفاعل مع
+			إضاءة العالم الحقيقي.
+		</p>
+			
+		<p class="desc">
+			تدعم تطبيق المسبار الحالي في three.js ما يسمى بـ
+			مسابير ضوء ناعمة. هذا النوع من مسبار الضوء هو وظيفيًا مكافئ لـ
+			خريطة بيئة إشعاعية.
+		</p>
+			
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_lightprobe WebGL / light probe ]<br />
+			[example:webgl_lightprobe_cubecamera WebGL / light probe / cube camera ]
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:SphericalHarmonics3 sh], [param:Float intensity] )</h3>
+		<p>
+			[page:SphericalHarmonics3 sh] - (اختياري) مثيل من
+			[page:SphericalHarmonics3].<br />
+			[page:Float intensity] - (اختياري) قيمة رقمية لـ
+			شدة مسبار الضوء. الافتراضي هو 1.<br /><br />
+			
+			يخلق جديد [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>
+			انظر قائمة [page:Light Light] الأساسية للخصائص المشتركة. جناح
+			خاصية [page:Light.color color] لا يتم تقديرها حاليًا وبالتالي لديها
+			لا تأثير.
+		</p>
+			
+		<h3>[property:Boolean isLightProbe]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:SphericalHarmonics3 sh]</h3>
+		<p>
+			يستخدم مسبار الضوء التجانسات المجالية لتشفير معلومات التحديد.
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر قائمة [page:Light Light] الأساسية للطرق المشتركة.</p>
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 139 - 0
docs/api/ar/lights/PointLight.html

@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ضوء ينبعث من نقطة واحدة في جميع الاتجاهات. حالة استخدام شائعة لهذا هي تكرار الضوء الذي ينبعث من مصباح عاري
+			.<br /><br />
+			
+			يمكن لهذا الضوء إلقاء الظلال - انظر صفحة [page:PointLightShadow] للحصول على
+			تفاصيل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		const light = new THREE.PointLight( 0xff0000, 1, 100 );
+		light.position.set( 50, 50, 50 );
+		scene.add( light );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+			
+		<p>
+		[example:webgl_lights_pointlights lights / pointlights ]<br />
+		[example:webgl_effects_anaglyph effects / anaglyph ]<br />
+		[example:webgl_geometry_text geometry / text ]<br />
+		[example:webgl_lensflares lensflares ]
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:Integer color], [param:Float intensity], [param:Number distance], [param:Float decay] )
+		</h3>
+		<p>
+		[page:Integer color] - (اختياري) لون سداسي عشري للضوء. الافتراضي
+		هو 0xffffff (أبيض).<br />
+		[page:Float intensity] - (اختياري) قيمة رقمية لقوة / شدة الضوء.
+		الافتراضي هو 1.<br />
+		[page:Number distance] - المدى الأقصى للضوء. الافتراضي هو 0 (لا
+		حدود).<br />
+		[page:Float decay] - مقدار تضاؤل الضوء على طول مسافة الضوء.
+		الافتراضي هو 2.<br /><br />
+			
+		إنشاء جديد [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قائمة [page:Light Light] للخصائص المشتركة.</p>
+
+		<h3>[property:Boolean castShadow]</h3>
+		<p>
+		إذا تم تعيينه إلى `true`، ستلقي الضوء ظلالًا ديناميكية. <b>تحذير</b>: هذا مكلف ويتطلب التعديل للحصول على الظلال المناسبة. راجع [page:PointLightShadow] للحصول على التفاصيل. الافتراضي هو `false`.
+		</p>
+
+		<h3>[property:Float decay]</h3>
+		<p>
+		مقدار تضاؤل الضوء على طول مسافة الضوء. القيمة الافتراضية هي
+		`2`.<br />
+		في سياق التصيير الفعلي الصحيح ، يجب عدم تغيير القيمة الافتراضية.
+		</p>
+		
+		<h3>[property:Float distance]</h3>
+		<p>
+		`الوضع الافتراضي` - عندما تكون المسافة صفرًا ، لا يتلاشى الضوء. عندما
+		تكون المسافة غير صفرية ، سيتلاشى الضوء بشكل خطي من أقصى شدة
+		عند موقع الضوء إلى الصفر على هذه المسافة من الضوء.
+		</p>
+		<p>
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode] -
+		عندما تكون المسافة صفرًا ، سيتلاشى الضوء وفقًا لقانون المربع المعكوس
+		إلى مسافة لانهائية. عندما تكون المسافة غير صفرية ، سيتلاشى الضوء
+		وفقًا لقانون المربع المعكوس حتى قرب نقطة قطع المسافة ، حيث
+		سيتلاشى بسرعة وبسلاسة إلى 0. بطبعه، ليست نقطة القطع فيزيائية صحيحة.
+		</p>
+		<p>القيمة الافتراضية هي `0.0`.</p>
+		
+		<h3>[property:Float intensity]</h3>
+		<p>
+		شدة الضوء. القيمة الافتراضية هي `1`.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الشدة هي شدة إضاءة الضوء المقاسة بالشمعات
+		(cd).<br /><br />
+		
+		تغيير الشدة سيغير أيضًا قوة الضوء.
+		</p>
+		
+		<h3>[property:Float power]</h3>
+		<p>
+		قوة الضوء.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الطاقة هي قوة إضاءة الضوء المقاسة باللومن (lm).
+		<br /><br />
+		
+		تغيير الطاقة سيغير أيضًا شدة الضوء.
+		</p>
+		
+		<h3>[property:PointLightShadow shadow]</h3>
+		<p>
+		[page:PointLightShadow] يستخدم لحساب ظلال هذا الضوء.<br /><br />
+		
+		[page:LightShadow.camera كاميرا] lightShadow مُعَدَّلَهُ إلى
+		[page:PerspectiveCamera] مع [page:PerspectiveCamera.fov fov] من 90،
+		[page:PerspectiveCamera.aspect aspect] من 1، [page:PerspectiveCamera.near near]
+		clipping plane at 0.5 and [page:PerspectiveCamera.far far] clipping
+		plane at 500.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى قائمة [page:Light Light] للطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير المصادر المتعلقة بالجهاز GPU التي تم تخصيصها من قبل هذه المثيل. اتصل بهذه
+		الطريقة كلما لم يُستخدَم هذه المثيل في تطبيقك.
+		</p>
+		
+		<h3>[method:this copy]( [param:PointLight source] )</h3>
+		<p>
+		نسخ قِيَم جميع خصائص [page:PointLight source] إلى
+		هذه PointLight.
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/ar/lights/RectAreaLight.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ينبعث RectAreaLight بالضوء بشكل موحد عبر وجه سطح مستطيل. يمكن استخدام هذا النوع من الضوء لمحاكاة مصادر الضوء مثل النوافذ المشرقة أو الإضاءة المخططة.<br /><br />
+			
+			ملاحظات هامة:			
+		</p>
+		<ul>
+			<li>لا يوجد دعم للظلال.</li>
+			<li>
+			يتم دعم [page:MeshStandardMaterial MeshStandardMaterial] و
+			[page:MeshPhysicalMaterial MeshPhysicalMaterial] فقط.
+			</li>
+			<li>
+			يجب عليك تضمين
+			[link:https://threejs.org/examples/jsm/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] في مشهدك واستدعاء `init()`.
+			</li>
+		</ul>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		const width = 10;
+		const height = 10;
+		const intensity = 1;
+		const rectLight = new THREE.RectAreaLight( 0xffffff, intensity, width, height );
+		rectLight.position.set( 5, 5, 0 );
+		rectLight.lookAt( 0, 0, 0 );
+		scene.add( rectLight )
+			
+		const rectLightHelper = new RectAreaLightHelper( rectLight );
+		rectLight.add( rectLightHelper );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+			
+		<p>[example:webgl_lights_rectarealight WebGL / rectarealight ]</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:Integer color], [param:Float intensity], [param:Float width], [param:Float height] )
+		</h3>
+		<p>
+		[page:Integer color] - (اختياري) لون سداسي عشري للضوء. الافتراضي
+		هو 0xffffff (أبيض).<br />
+		[page:Float intensity] - (اختياري) شدة الضوء ، أو سطوعه.
+		الافتراضي هو 1.<br />
+		[page:Float width] - (اختياري) عرض الضوء. الافتراضي هو 10.<br />
+		[page:Float height] - (اختياري) ارتفاع الضوء. الافتراضي هو 10.<br /><br />
+			
+		إنشاء جديد [name].
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قائمة [page:Light Light] للخصائص المشتركة.</p>
+		
+		<h3>[property:Float height]</h3>
+		<p>ارتفاع الضوء.</p>
+		
+		<h3>[property:Float intensity]</h3>
+		<p>
+		شدة الضوء. القيمة الافتراضية هي `1`.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الشدة هي الإضاءة (السطوع) للضوء المقاسة بالنيتات
+		(cd/m^2).<br /><br />
+		
+		تغيير الشدة سيغير أيضًا قوة الضوء.
+		</p>
+		
+		<h3>[property:Boolean isRectAreaLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		
+		<h3>[property:Float power]</h3>
+		<p>
+		قوة الضوء.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الطاقة هي قوة إضاءة الضوء المقاسة باللومن (lm).
+		<br /><br />
+		
+		تغيير الطاقة سيغير أيضًا شدة الضوء.
+		</p>
+		
+		<h3>[property:Float width]</h3>
+		<p>عرض الضوء.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى قائمة [page:Light Light] للطرق المشتركة.</p>
+		
+		<h3>[method:this copy]( [param:RectAreaLight source] )</h3>
+		<p>
+		نسخ قِيَم جميع خصائص [page:RectAreaLight source] إلى
+		هذه RectAreaLight.
+		</p>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 190 - 0
docs/api/ar/lights/SpotLight.html

@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Light] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتم إصدار هذا الضوء من نقطة واحدة في اتجاه واحد ، على طول مخروط
+			يزداد حجمه كلما ابتعد عن الضوء. <br /><br />
+			يمكن لهذا الضوء إلقاء الظلال - انظر صفحة [page:SpotLightShadow] للحصول على
+			تفاصيل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+		<code>
+		// مصباح كاشف أبيض يشرق من الجانب ، يتم تعديله بواسطة ملمس ، يلقي ظلاً
+			
+		const spotLight = new THREE.SpotLight( 0xffffff );
+		spotLight.position.set( 100, 1000, 100 );
+		spotLight.map = new THREE.TextureLoader().load( url );
+			
+		spotLight.castShadow = true;
+			
+		spotLight.shadow.mapSize.width = 1024;
+		spotLight.shadow.mapSize.height = 1024;
+			
+		spotLight.shadow.camera.near = 500;
+		spotLight.shadow.camera.far = 4000;
+		spotLight.shadow.camera.fov = 30;
+			
+		scene.add( spotLight );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_lights_spotlight lights / spotlight ]<br />
+		[example:webgl_lights_spotlights lights / spotlights ]
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name]( [param:Integer color], [param:Float intensity], [param:Float distance], [param:Radians angle], [param:Float penumbra], [param:Float decay] )
+		</h3>
+		<p>
+		[page:Integer color] - (اختياري) لون سداسي عشري للضوء. الافتراضي
+		هو 0xffffff (أبيض).<br />
+		[page:Float intensity] - (اختياري) قيمة رقمية لقوة / شدة الضوء.
+		الافتراضي هو 1.<br />
+		[page:Float distance] - المدى الأقصى للضوء. الافتراضي هو 0 (لا
+		حدود).<br />
+		[page:Radians angle] - أقصى زاوية لانتشار الضوء من
+		اتجاهه الذي يعتبر حدًا أعلى Math.PI/2.<br />
+		[page:Float penumbra] - نسبة مخروط الضوء الذي يتلاشى
+		بسبب الظلال الجانبية. يأخذ قيم بين الصفر و 1. الافتراضي هو صفر.<br />
+		[page:Float decay] - مقدار تضاؤل الضوء على طول مسافة ال
+		ضوء.<br /><br />
+		إنشاء جديد [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قائمة [page:Light Light] للخصائص المشتركة.</p>
+		
+		<h3>[property:Float angle]</h3>
+		<p>
+		أقصى مدى للضوء الكاشف ، بالراديان ، من اتجاهه. يجب أن يكون
+		لا يزيد عن `Math.PI/2`. القيمة الافتراضية هي `Math.PI/3`.
+		</p>
+		
+		<h3>[property:Boolean castShadow]</h3>
+		<p>
+		إذا تم تعيينه على `true` ، فسيقوم الضوء بإلقاء ظلال ديناميكية. <b>تحذير</b>: هذا
+		مكلف ويتطلب التعديل لجعل الظلال تبدو صحيحة. انظر
+		[page:SpotLightShadow] للحصول على التفاصيل. الافتراضي هو `false`.
+		</p>
+		
+		<h3>[property:Float decay]</h3>
+		<p>
+		مقدار تضاؤل الضوء على طول مسافة الضوء. القيمة الافتراضية هي
+		`2`.<br />
+		في سياق التصيير الفعلي الصحيح ، يجب عدم تغيير القيمة الافتراضية.
+		</p>
+		
+		<h3>[property:Float distance]</h3>
+		<p>
+		`الوضع الافتراضي` - عندما تكون المسافة صفرًا ، لا يتلاشى الضوء. عندما
+		تكون المسافة غير صفرية ، سيتلاشى الضوء بشكل خطي من أقصى شدة
+		عند موقع الضوء إلى الصفر على هذه المسافة من الضوء.
+		</p>
+		<p>
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode] -
+		عندما تكون المسافة صفرًا ، سيتلاشى الضوء وفقًا لقانون المربع المعكوس
+		إلى مسافة لانهائية. عندما تكون المسافة غير صفرية ، سيتلاشى الضوء
+		وفقًا لقانون المربع المعكوس حتى قرب نقطة قطع المسافة ، حيث
+		سيتلاشى بسرعة وبسلاسة إلى `0`. بطبعه، ليست نقطة القطع فيزيائية صحيحة.
+		</p>
+		<p>القيمة الافتراضية هى `0.0`.</p>
+		
+		<h3>[property:Float intensity]</h3>
+		<p>
+		شدة الضوء. القيمة الافتراضية هي `1`.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الشدة هى شدة إضاءة الضوء المقاسة بالشمعات
+		(cd).<br /><br />
+		تغيير الشدة سيغير أيضًا قوة الضوء.
+		</p>
+		
+		<h3>[property:Boolean isSpotLight]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+
+		<h3>[property:Float penumbra]</h3>
+		<p>
+		نسبة مخروط الضوء الذي يتلاشى بسبب الظلال الجانبية. يأخذ
+		قيم بين الصفر و 1. القيمة الافتراضية هي `0.0`.
+		</p>
+		
+		<h3>[property:Vector3 position]</h3>
+		<p>
+		يتم تعيين هذا مساويًا لـ [page:Object3D.DEFAULT_UP] (0، 1، 0) ، بحيث
+		الضوء يشرق من الأعلى إلى الأسفل.
+		</p>
+		
+		<h3>[property:Float power]</h3>
+		<p>
+		قوة الضوء.<br />
+		عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+		الطاقة هي قوة إضاءة الضوء المقاسة باللومن (lm).
+		<br /><br />
+		تغيير الطاقة سيغير أيضًا شدة الضوء.
+		</p>
+		
+		<h3>[property:SpotLightShadow shadow]</h3>
+		<p>[page:SpotLightShadow] يستخدم لحساب ظلال هذا الضوء.</p>
+		
+		<h3>[property:Object3D target]</h3>
+		<p>
+		يشير Spotlight من [page:.position position] إلى
+		target.position. موقع الهدف الافتراضي هو `(0، 0، 0)`.<br />
+		<b>ملاحظة</b>: لتغيير موقع الهدف إلى أي شيء آخر غير
+		الافتراضي ، يجب إضافته إلى [page:Scene scene] باستخدام
+		<code> scene.add( light.target ); </code>
+		هذا حتى يتم تحديث [page:Object3D.matrixWorld matrixWorld] للهدف
+		تلقائيًا في كل إطار.<br /><br />
+		من الممكن أيضًا تعيين الهدف لكونه كائنًا آخر في المشهد
+		(أي شيء لديه خاصية [page:Object3D.position position]) ، مثل:
+		<code>
+		const targetObject = new THREE.Object3D(); 
+		scene.add(targetObject);
+		
+		light.target = targetObject;
+		</code>
+		سوف يتبع المصباح الكاشف الآن كائن الهدف.
+		</p>
+		
+		<h3>[property:Texture map]</h3>
+		<p>
+		[page:Texture] يستخدم لتعديل لون الضوء. يتم خلط لون المصباح
+		مع قيمة RGB لهذه الملمس ، بنسبة
+		تتوافق مع قيمة ألفا. يتم تكرار التأثير المشابه للكعكة باستخدام قِيَم بكسل (0، 0، 0، 1-قِيَم_الكعكة). <b>تحذير</b>:
+		[param:SpotLight map] مُعَطَّلَ إذا كان [param:SpotLight castShadow]
+		<b>خطأ</b>.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<p>انظر إلى قائمة [page:Light Light] للطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير المصادر المتعلقة بالجهاز GPU التي تم تخصيصها من قبل هذه المثيل. اتصل بهذه
+		الطريقة كلما لم يُستخدَم هذه المثيل في تطبيقك.
+		</p>
+		
+		<h3>[method:this copy]( [param:SpotLight source] )</h3>
+		<p>
+		نسخ قِيَم جميع خصائص [page:SpotLight source] إلى
+		هذه SpotLight.
+		</p>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 101 - 0
docs/api/ar/lights/shadows/DirectionalLightShadow.html

@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:LightShadow] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتم استخدام هذا داخليًا من قبل [page:DirectionalLight DirectionalLights] لـ
+			حساب الظلال. <br /><br />
+			
+			على عكس فئات الظلال الأخرى ، يستخدم هذا [page:OrthographicCamera] لـ
+			حساب الظلال ، بدلاً من [page:PerspectiveCamera]. هذا هو
+			لأن أشعة الضوء من [page:DirectionalLight] متوازية.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		//Create a WebGLRenderer and turn on shadows in the renderer
+		const renderer = new THREE.WebGLRenderer();
+		renderer.shadowMap.enabled = true;
+		renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap
+
+		//Create a DirectionalLight and turn on shadows for the light
+		const light = new THREE.DirectionalLight( 0xffffff, 1 );
+		light.position.set( 0, 1, 0 ); //default; light shining from top
+		light.castShadow = true; // default false
+		scene.add( light );
+
+		//Set up shadow properties for the light
+		light.shadow.mapSize.width = 512; // default
+		light.shadow.mapSize.height = 512; // default
+		light.shadow.camera.near = 0.5; // default
+		light.shadow.camera.far = 500; // default
+
+		//Create a sphere that cast shadows (but does not receive them)
+		const sphereGeometry = new THREE.SphereGeometry( 5, 32, 32 );
+		const sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } );
+		const sphere = new THREE.Mesh( sphereGeometry, sphereMaterial );
+		sphere.castShadow = true; //default is false
+		sphere.receiveShadow = false; //default
+		scene.add( sphere );
+
+		//Create a plane that receives shadows (but does not cast them)
+		const planeGeometry = new THREE.PlaneGeometry( 20, 20, 32, 32 );
+		const planeMaterial = new THREE.MeshStandardMaterial( { color: 0x00ff00 } )
+		const plane = new THREE.Mesh( planeGeometry, planeMaterial );
+		plane.receiveShadow = true;
+		scene.add( plane );
+
+		//Create a helper for the shadow camera (optional)
+		const helper = new THREE.CameraHelper( light.shadow.camera );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( )</h3>
+		<p>
+		ينشئ [name] جديدًا. لا يُقصد من هذا الاتصال مباشرة - هو
+		يتم استدعاؤه داخليًا من قبل [page:DirectionalLight].
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر الفئة الأساسية [page:LightShadow LightShadow] للخصائص المشتركة.
+		</p>
+		
+		<h3>[property:Camera camera]</h3>
+		<p>
+		رؤية الضوء للعالم. يتم استخدام هذا لإنشاء خريطة عمق لـ
+		المشهد ؛ الأشياء خلف الأشياء الأخرى من منظور الضوء ستكون
+		في الظل. <br /><br />
+		
+		الافتراضي هو [page:OrthographicCamera] مع
+		[page:OrthographicCamera.left left] و [page:OrthographicCamera.bottom bottom]
+		مضبوط على -5 ، [page:OrthographicCamera.right right] و
+		[page:OrthographicCamera.top top] مضبوط على 5 ،
+		[page:OrthographicCamera.near near] كليبينغ بلان عند 0.5 و
+		[page:OrthographicCamera.far far] كليبينغ بلان عند 500.
+		</p>
+		
+		<h3>[property:Boolean isDirectionalLightShadow]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:LightShadow LightShadow] للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
+		</p>
+	</body>
+</html>

+ 165 - 0
docs/api/ar/lights/shadows/LightShadow.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">يعمل كفئة أساسية لفئات الظلال الأخرى.</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>[name]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] - رؤية الضوء للعالم. <br /><br />
+		
+		إنشاء [name] جديد. لا يُقصد من هذا الاتصال مباشرة - هو
+		يستخدم كفئة أساسية من قبل ظلال الضوء الأخرى.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Boolean autoUpdate]</h3>
+		<p>
+		يتيح التحديثات التلقائية لظل الضوء. الافتراضي هو `true`. إذا كنت
+		لا تتطلب إضاءة / ظلال ديناميكية ، يمكنك تعيين هذا على `false`.
+		</p>
+		
+		<h3>[property:Camera camera]</h3>
+		<p>
+		رؤية الضوء للعالم. يتم استخدام هذا لإنشاء خريطة عمق لـ
+		المشهد ؛ الأشياء خلف الأشياء الأخرى من منظور الضوء ستكون
+		في الظل.
+		</p>
+		
+		<h3>[property:Float bias]</h3>
+		<p>
+		انحياز خريطة الظل ، كم يجب إضافة أو طرح من العمق المعاد تدويره
+		عند تحديد ما إذا كانت سطحًا في الظل. <br />
+		الافتراضي هو 0. قد تساعد التعديلات الصغيرة جدًا هنا (بترتيب 0.0001)
+		تقليل التحف في الظلال
+		</p>
+		
+		<h3>[property:Integer blurSamples]</h3>
+		<p>عدد العينات المستخدمة عند طمس خريطة ظل VSM.</p>
+		
+		<h3>[property:WebGLRenderTarget map]</h3>
+		<p>
+		خريطة العمق التي تم إنشاؤها باستخدام الكاميرا الداخلية ؛ موقع خارج
+		عمق بكسل في الظل. يتم حسابه داخليًا أثناء التقديم.
+		</p>
+		
+		<h3>[property:WebGLRenderTarget mapPass]</h3>
+		<p>
+		خريطة التوزيع التي تم إنشاؤها باستخدام الكاميرا الداخلية ؛ يتم حساب احتجاب
+		بناءً على توزيع الأعماق. يتم حسابه داخليًا أثناء
+		التقديم.
+		</p>
+		
+		<h3>[property:Vector2 mapSize]</h3>
+		<p>
+		[Page:Vector2] يحدد عرض وارتفاع خريطة الظل. <br /><br />
+		
+		تعطي قيم أعلى جودة أفضل للظلال بتكلفة وقت الحساب.
+		يجب أن تكون قيم قوى 2 ، حتى
+		[page:WebGLRenderer.capabilities].maxTextureSize لجهاز معين,
+		على الرغم من أنه لا يجب أن يكون نفسه (ولذلك ، على سبيل المثال ،
+		(512، 1024) صالح). الافتراضي هو * (512، 512) *.
+		</p>
+
+		<h3>[property:Matrix4 matrix]</h3>
+		<p>
+		نموذج لمساحة الكاميرا الظلية ، لحساب الموقع والعمق في خريطة الظل.
+		تخزين في [page:Matrix4 Matrix4]. يتم حساب هذا داخليًا أثناء
+		التقديم.
+		</p>
+		
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		عند تعيينه على `true` ، سيتم تحديث خرائط الظل في الاتصال التالي `render`.
+		الافتراضي هو `false`. إذا قمت بتعيين [page:.autoUpdate] على `false` ، فأنت
+		سوف تحتاج إلى تعيين هذه الخاصية على `true` ثم إجراء مكالمة تقديم لـ
+		تحديث ظل الضوء.
+		</p>
+		
+		<h3>[property:Float normalBias]</h3>
+		<p>
+		يحدد كمية الموضع المستخدم للاستعلام عن خريطة الظل معوضًا عن
+		الكائن الطبيعي. الافتراضي هو 0. يمكن استخدام زيادة هذه القيمة لـ
+		تقليل حب الشباب في الظلال خاصة في المشاهد الكبيرة التي يضيء فيها الضوء
+		الهندسة بزاوية ضحلة. التكلفة هي أن الظلال قد تبدو
+		مشوه.
+		</p>
+		
+		<h3>[property:Float radius]</h3>
+		<p>
+		إعداد هذه القيم إلى قيم أكبر من 1 ستطمس حواف
+		الظل. <br />
+		
+		ستسبب قيم عالية تأثيرات تجزئة غير مرغوب فيها في الظلال - أكبر
+		[page:.mapSize mapSize] ستسمح بقيمة أعلى للاستخدام هنا
+		قبل أن تصبح هذه التأثيرات مرئية. <br />
+		إذا تم تعيين [page:WebGLRenderer.shadowMap.type] على [page:Renderer PCFSoftShadowMap]، 
+		لا يوجد لـ radius أثر و يُفضل زيادة
+		النعومة عن طريق تقليل [page:.mapSize mapSize] بدلاً من ذلك. <br /><br />
+		
+		لاحظ أن هذا لا يؤثر إذا كان [page:WebGLRenderer.shadowMap.type] هو
+		تعيين إلى [page:Renderer BasicShadowMap].
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Vector2 getFrameExtents]()</h3>
+		<p>
+		تستخدم داخليًا من قبل المصور لتوسيع خريطة الظل لتحتوى على جميع
+		viewports
+		</p>
+		
+		<h3>[method:undefined updateMatrices]( [param:Light light] )</h3>
+		<p>
+		تحديث المصفوفات للكاميرا والظل ، يستخدم داخليًا من قبل المصور. <br /><br />
+		
+		light -- الضوء الذي يتم تقديم الظل له.
+		</p>
+		
+		<h3>[method:Frustum getFrustum]()</h3>
+		<p>
+		تحصل على فروستوم كاميرات الظل. يستخدم داخليًا من قبل المصور لإزالة
+		الأشياء.
+		</p>
+		
+		<h3>[method:number getViewportCount]()</h3>
+		<p>
+		تستخدم داخليًا من قبل المصور للحصول على عدد viewports التى تحتاج
+		إلى التقديم لهذا الظل.
+		</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير الموارد ذات الصلة بوحدة معالجة الرسومات التى تم تخصيصها من قبل هذه الحالة. استدعاء هذه
+		الطریقة كلما لم يعد يستخدم هذه الحال فى تطبیقك.
+		</p>
+		
+		<h3>[method:this copy]( [param:LightShadow source] )</h3>
+		<p>
+		ينسخ قيمة جميع الخصائص من [page:LightShadow source] إلى
+		هذا الضوء.
+		</p>
+		
+		<h3>[method:LightShadow clone]()</h3>
+		<p>ينشئ LightShadow جديد بنفس خصائص هذا.</p>
+		
+		<h3>[method:Object toJSON]()</h3>
+		<p>سيريالايز هذا LightShadow.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
+		</p>
+	</body>
+</html>

+ 94 - 0
docs/api/ar/lights/shadows/PointLightShadow.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:LightShadow] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتم استخدام هذا داخليًا من قبل [page:PointLight PointLights] لحساب
+			الظلال.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		//Create a WebGLRenderer and turn on shadows in the renderer
+		const renderer = new THREE.WebGLRenderer();
+		renderer.shadowMap.enabled = true;
+		renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap
+
+		//Create a PointLight and turn on shadows for the light
+		const light = new THREE.PointLight( 0xffffff, 1, 100 );
+		light.position.set( 0, 10, 4 );
+		light.castShadow = true; // default false
+		scene.add( light );
+
+		//Set up shadow properties for the light
+		light.shadow.mapSize.width = 512; // default
+		light.shadow.mapSize.height = 512; // default
+		light.shadow.camera.near = 0.5; // default
+		light.shadow.camera.far = 500; // default
+
+		//Create a sphere that cast shadows (but does not receive them)
+		const sphereGeometry = new THREE.SphereGeometry( 5, 32, 32 );
+		const sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } );
+		const sphere = new THREE.Mesh( sphereGeometry, sphereMaterial );
+		sphere.castShadow = true; //default is false
+		sphere.receiveShadow = false; //default
+		scene.add( sphere );
+
+		//Create a plane that receives shadows (but does not cast them)
+		const planeGeometry = new THREE.PlaneGeometry( 20, 20, 32, 32 );
+		const planeMaterial = new THREE.MeshStandardMaterial( { color: 0x00ff00 } )
+		const plane = new THREE.Mesh( planeGeometry, planeMaterial );
+		plane.receiveShadow = true;
+		scene.add( plane );
+
+		//Create a helper for the shadow camera (optional)
+		const helper = new THREE.CameraHelper( light.shadow.camera );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( )</h3>
+		<p>
+		ينشئ [name] جديدًا. لا يُقصد من هذا الاتصال مباشرة - هو
+		يتم استدعاؤه داخليًا من قبل [page:PointLight].
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر الفئة الأساسية [page:LightShadow LightShadow] للخصائص المشتركة.
+		</p>
+		
+		<h3>[property:Boolean isPointLightShadow]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<p>انظر الفئة الأساسية [page:LightShadow LightShadow] للطرق المشتركة.</p>
+		
+		<h3>
+		[method:undefined updateMatrices]( [param:Light light], [param:number viewportIndex])
+		</h3>
+		<p>
+		تحديث المصفوفات للكاميرا والظل ، يستخدم داخليًا من قبل المصور. <br /><br />
+		
+		light -- الضوء الذي يتم تقديم الظل له. <br />
+		viewportIndex -- يحسب المصفوفة لهذا viewport
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
+		</p>
+	</body>
+</html>

+ 106 - 0
docs/api/ar/lights/shadows/SpotLightShadow.html

@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:LightShadow] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتم استخدام هذا داخليًا من قبل [page:SpotLight SpotLights] لحساب
+			الظلال.
+		</p>
+			
+		<h2>مثال الكود</h2>
+		<code>
+		//Create a WebGLRenderer and turn on shadows in the renderer
+		const renderer = new THREE.WebGLRenderer();
+		renderer.shadowMap.enabled = true;
+		renderer.shadowMap.type = THREE.PCFSoftShadowMap; // default THREE.PCFShadowMap
+
+		//Create a SpotLight and turn on shadows for the light
+		const light = new THREE.SpotLight( 0xffffff );
+		light.castShadow = true; // default false
+		scene.add( light );
+
+		//Set up shadow properties for the light
+		light.shadow.mapSize.width = 512; // default
+		light.shadow.mapSize.height = 512; // default
+		light.shadow.camera.near = 0.5; // default
+		light.shadow.camera.far = 500; // default
+		light.shadow.focus = 1; // default
+
+		//Create a sphere that cast shadows (but does not receive them)
+		const sphereGeometry = new THREE.SphereGeometry( 5, 32, 32 );
+		const sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } );
+		const sphere = new THREE.Mesh( sphereGeometry, sphereMaterial );
+		sphere.castShadow = true; //default is false
+		sphere.receiveShadow = false; //default
+		scene.add( sphere );
+
+		//Create a plane that receives shadows (but does not cast them)
+		const planeGeometry = new THREE.PlaneGeometry( 20, 20, 32, 32 );
+		const planeMaterial = new THREE.MeshStandardMaterial( { color: 0x00ff00 } )
+		const plane = new THREE.Mesh( planeGeometry, planeMaterial );
+		plane.receiveShadow = true;
+		scene.add( plane );
+
+		//Create a helper for the shadow camera (optional)
+		const helper = new THREE.CameraHelper( light.shadow.camera );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<p>
+		ينشئ المنشئ [param:PerspectiveCamera PerspectiveCamera] لـ
+		إدارة رؤية الظل للعالم.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر الفئة الأساسية [page:LightShadow LightShadow] للخصائص المشتركة.
+		</p>
+		
+		<h3>[property:Camera camera]</h3>
+		<p>
+		رؤية الضوء للعالم. يتم استخدام هذا لإنشاء خريطة عمق لـ
+		المشهد ؛ الأشياء خلف الأشياء الأخرى من منظور الضوء ستكون
+		في الظل. <br /><br />
+		
+		الافتراضي هو [page:PerspectiveCamera] مع
+		[page:PerspectiveCamera.near near] كليبينغ بلان عند `0.5`. ال
+		[page:PerspectiveCamera.fov fov] ستتبع [page:SpotLight.angle angle]
+		خاصية [page:SpotLight SpotLight] المملوكة عبر
+		[page:SpotLightShadow.update update] طريقة. بالمثل ،
+		[page:PerspectiveCamera.aspect aspect] خاصية ستتبع نسبة
+		[page:LightShadow.mapSize mapSize]. إذا تم تعيين [page:SpotLight.distance distance]
+		خاصية الضوء ، فستتبع [page:PerspectiveCamera.far far]
+		كليبينغ بلان ذلك ، وإلا فإنه يفترض `500`.
+		</p>
+		
+		<h3>[property:Number focus]</h3>
+		<p>
+		تستخدم لتركيز كاميرا الظل. يتم تعيين حقل رؤية الكاميرا كـ
+		نسبة مئوية من حقل رؤية المصباح. المدى هو `[0، 1]`. الافتراضي هو
+		`1.0`. <br />
+		</p>
+		
+		<h3>[property:Boolean isSpotLightShadow]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:LightShadow LightShadow] للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
+		</p>
+	</body>
+</html>

+ 91 - 0
docs/api/ar/loaders/AnimationLoader.html

@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			فئة لتحميل [page:AnimationClip AnimationClips] بتنسيق JSON. هذا
+			يستخدم [page:FileLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>			
+		// instantiate a loader
+		const loader = new THREE.AnimationLoader();
+	
+		// load a resource
+		loader.load(
+			// resource URL
+			'animations/animation.js',
+	
+			// onLoad callback
+			function ( animations ) {
+				// animations is an array of AnimationClips
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحميل. الحجة
+		ستكون المقاطع المحملة [page:AnimationClip animation].<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء التقدم في التحميل
+		يتقدم. الحجة ستكون نسخة ProgressEvent، والتي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		.[page:Integer total] سيكون 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br /><br />
+		ابدأ التحميل من url وأرسل المقطع المحمل إلى onLoad.
+		</p>
+		 
+		<h3>[method:Array parse]( [param:JSON json] )</h3>
+		<p>
+		[page:JSON json] — مطلوب<br /><br />
+		قم بتحليل كائن JSON وإرجاع مصفوفة من مقاطع الرسوم المتحركة. فردي
+		سيتم تحليل المقاطع في الكائن باستخدام [page:AnimationClip.parse].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 107 - 0
docs/api/ar/loaders/AudioLoader.html

@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			فئة لتحميل
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer AudioBuffer].
+			يستخدم هذا [page:FileLoader] داخليًا لتحميل
+			الملفات.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		// instantiate a listener
+		const audioListener = new THREE.AudioListener();
+	
+		// add the listener to the camera
+		camera.add( audioListener );
+	
+		// instantiate audio object
+		const oceanAmbientSound = new THREE.Audio( audioListener );
+	
+		// add the audio object to the scene
+		scene.add( oceanAmbientSound );
+	
+		// instantiate a loader
+		const loader = new THREE.AudioLoader();
+	
+		// load a resource
+		loader.load(
+			// resource URL
+			'audio/ambient_ocean.ogg',
+	
+			// onLoad callback
+			function ( audioBuffer ) {
+				// set the audio object buffer to the loaded object
+				oceanAmbientSound.setBuffer( audioBuffer );
+	
+				// play the audio
+				oceanAmbientSound.play();
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحميل. الحجة
+		ستكون الاستجابة المحملة للنص.<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء التقدم في التحميل
+		يتقدم. الحجة ستكون نسخة ProgressEvent، والتي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		.[page:Integer total] سيكون 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url وأرسل المحمَّل [page:String AudioBuffer] إلى
+		onLoad.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 94 - 0
docs/api/ar/loaders/BufferGeometryLoader.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			محمل لتحميل [page:BufferGeometry]. يستخدم هذا
+			[page:FileLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		// instantiate a loader
+		const loader = new THREE.BufferGeometryLoader();
+	
+		// load a resource
+		loader.load(
+			// resource URL
+			'models/json/pressure.json',
+	
+			// onLoad callback
+			function ( geometry ) {
+				const material = new THREE.MeshLambertMaterial( { color: 0xF5F5F5 } );
+				const object = new THREE.Mesh( geometry, material );
+				scene.add( object );
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>ينشئ جديدًا [name].</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].d<br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحميل. الحجة
+		ستكون المحمَّلة [page:BufferGeometry].<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء التقدم في التحميل
+		يتقدم. الحجة ستكون نسخة ProgressEvent، والتي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		.[page:Integer total] سيكون 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url واتصل بـ onLoad مع محتوى الاستجابة المحلَّل.
+		</p>
+		 
+		<h3>[method:BufferGeometry parse]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — هيكل `JSON` للتحليل.<br /><br />
+		قم بتحليل هيكل `JSON` وإرجاع [page:BufferGeometry].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 74 - 0
docs/api/ar/loaders/Cache.html

@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			نظام تخزين مؤقت بسيط، يستخدم داخليًا من قبل [page:FileLoader].
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<p>لتمكين التخزين المؤقت عبر جميع المحملات التي تستخدم [page:FileLoader]، قم بتعيين</p>
+		<code> THREE.Cache.enabled = true. </code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>
+		[example:webgl_geometry_text WebGL / geometry / text ]<br />
+		[example:webgl_interactive_instances_gpu WebGL / interactive / instances / gpu]<br />
+		[example:webgl_loader_ttf WebGL / loader / ttf]
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean enabled]</h3>
+		<p>هل التخزين المؤقت ممكَّن. الافتراضي هو `false`.</p>
+		 
+		<h3>[property:Object files]</h3>
+		<p>[page:Object object] يحتوي على الملفات المخزنة مؤقتًا.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:undefined add]( [param:String key], [param:Object file] )</h3>
+		<p>
+		[page:String key] — [page:String key] للإشارة إلى الملف المخزن مؤقتًا
+		بواسطته.<br />
+		[page:Object file] — الملف الذي سيتم تخزينه مؤقتًا.<br /><br />
+		 
+		يضيف إدخال تخزين مؤقت بمفتاح للإشارة إلى الملف. إذا كان هذا المفتاح بالفعل
+		يحمل ملفًا، يتم استبداله.
+		</p>
+		 
+		<h3>[method:Any get]( [param:String key] )</h3>
+		<p>
+		[page:String key] — مفتاح نصي <br /><br />
+		 
+		احصل على قيمة [page:String key]. إذا لم يكن المفتاح موجودًا `undefined`
+		يتم إرجاعه.
+		</p>
+		 
+		<h3>[method:undefined remove]( [param:String key] )</h3>
+		<p>
+		[page:String key] — مفتاح نصي يشير إلى ملف مخزن مؤقتًا.<br /><br />
+		 
+		قم بإزالة الملف المخزن مؤقتًا المرتبط بالمفتاح.
+		</p>
+		 
+		<h3>[method:undefined clear]()</h3>
+		<p>إزالة جميع القيم من التخزين المؤقت.</p>
+		 
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 71 - 0
docs/api/ar/loaders/CompressedTextureLoader.html

@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			الفئة الأساسية المجردة لمحمل القوام المستندة إلى الكتل (dds، pvr، ...). هذا
+			يستخدم [page:FileLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>
+		انظر
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/DDSLoader.js DDSLoader]
+		و [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PVRLoader.js PVRLoader]
+		لأمثلة على الفئات المشتقة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] (اختياري) — سيتم استدعاؤه عند اكتمال التحميل.
+		الحجة ستكون القوام المحمَّل.<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء التقدم في التحميل
+		يتقدم. الحجة ستكون نسخة ProgressEvent، والتي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		.[page:Integer total] سيكون 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url وأرسل القوام المحمَّل إلى onLoad. تعود الطريقة
+		أيضًا كائن قوام جديد يمكن استخدامه مباشرةً لإنشاء مادة
+		.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 93 - 0
docs/api/ar/loaders/CubeTextureLoader.html

@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمكن استخدام [name] لتحميل خرائط المكعب. يُرجع محمل نسخة من [page:CubeTexture] ويتوقع تعريف خريطة المكعب
+			على أنها ستة صور منفصلة تمثل جوانب المكعب. لا يتم دعم تعاريف خريطة المكعب الأخرى مثل الصليب العمودي والأفقي والتصميم بالأعمدة والصفوف.
+		</p>
+		<p>
+			[page:CubeTexture] المحملة موجودة في مساحة الألوان sRGB. يعني ذلك أن [page:Texture.colorSpace colorSpace]
+			تم تعيين الخاصية إلى `THREE.SRGBColorSpace` افتراضيًا.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+const scene = new THREE.Scene();
+scene.background = new THREE.CubeTextureLoader()
+	.setPath( 'textures/cubeMaps/' )
+	.load( [
+				'px.png',
+				'nx.png',
+				'py.png',
+				'ny.png',
+				'pz.png',
+				'nz.png'
+			] );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>
+		[example:webgl_materials_cubemap materials / cubemap]<br />
+		[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic]<br />
+		[example:webgl_materials_cubemap_refraction materials / cubemap / refraction]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:CubeTexture load]( [param:String urls], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String urls] — مصفوفة من 6 عناوين URL للصور، واحدة لكل جانب من
+		CubeTexture. يجب تحديد عناوين URL بالترتيب التالي: pos-x،
+		neg-x، pos-y، neg-y، pos-z، neg-z. يمكن أن يكونوا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URIs].<br />
+		يجب ملاحظة أنه بالاتفاقية، تتم تحديد خرائط المكعب في نظام إحداثيات
+		فيه x الموجب إلى اليمين عند النظر إلى محور z الموجب - بعبارة أخرى، باستخدام نظام إحداثيات ذو يد يسرى. نظرًا لأن three.js يستخدم
+		نظام إحداثيات ذو يد يمنى، ستكون خرائط البيئة المستخدمة في three.js
+		pos-x و neg-x مبادلتان.<br />
+		[page:Function onLoad] (اختياري) — سيتم استدعاؤه عند اكتمال التحميل.
+		الحجة ستكون القوام المحمَّلة [page:CubeTexture texture].<br />
+		[page:Function onProgress] (اختياري) — هذه الدالة التابعة للرد
+		غير معتمد حاليًا.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url وأرسل القوام المحمَّلة [page:CubeTexture texture] إلى
+		onLoad. تعود الطريقة أيضًا كائن قوام جديد يمكن استخدامه مباشرةً لإنشاء مادة
+		.
+		</p>
+		 
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 68 - 0
docs/api/ar/loaders/DataTextureLoader.html

@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			الفئة الأساسية المجردة لتحميل تنسيقات القوام الثنائية العامة (rgbe، hdr،
+			...). يستخدم هذا [page:FileLoader] داخليًا لتحميل الملفات، و
+			ينشئ جديدًا [page:DataTexture].
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		انظر
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/RGBELoader.js RGBELoader]
+		لمثال على فئة مشتقة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+		 
+		<h3>
+		[method:DataTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] (اختياري) — سيتم استدعاؤه عند اكتمال التحميل.
+		الحجة ستكون القوام المحمَّلة.<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء التقدم في التحميل
+		يتقدم. الحجة ستكون نسخة ProgressEvent، والتي تحتوي على
+		.[page:Boolean lengthComputable]، .[page:Integer total] و .[page:Integer loaded].
+		 إذا لم يضبط الخادم رأس Content-Length؛
+		.[page:Integer total] سيكون 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه إذا حدث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url وأرسل القوام المحمَّلة إلى onLoad. تعود الطريقة
+		أيضًا كائن قوام جديد يمكن استخدامه مباشرةً لإنشاء مادة
+		.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 131 - 0
docs/api/ar/loaders/FileLoader.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			فئة منخفضة المستوى لتحميل الموارد باستخدام Fetch ، يتم استخدامها داخليًا من قبل
+			معظم المحملات. يمكن أيضًا استخدامها مباشرة لتحميل أي نوع ملف لا يحتوي على
+			محمل.			
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		<code>
+		const loader = new THREE.FileLoader();
+	
+		//load a text file and output the result to the console
+		loader.load(
+			// resource URL
+			'example.txt',
+	
+			// onLoad callback
+			function ( data ) {
+				// output the text to the console
+				console.log( data )
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened' );
+			}
+		);
+		</code>
+		 
+		<p>
+		* ملاحظة: * يجب تمكين ذاكرة التخزين المؤقت باستخدام
+		<code>THREE.Cache.enabled = true;</code>
+		هذه خاصية عالمية ولا يحتاج إلى تعيينها مرة واحدة فقط لتستخدمها جميع
+		المحملات التي تستخدم FileLoader داخليًا. [page:Cache Cache] هو وحدة ذاكرة التخزين المؤقت
+		التي تحتوي على الاستجابة من كل طلب يتم من خلال هذا المحمل ،
+		لذلك يتم طلب كل ملف مرة واحدة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name] ( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] - [page:LoadingManager loadingManager]
+		للمحمل الذي سيستخدمه. الافتراضي هو [page:DefaultLoadingManager].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للخصائص المشتركة.</p>
+		 
+		<h3>[property:String mimeType]</h3>
+		<p>
+		المتوقع
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types mimeType].
+		انظر [page:.setMimeType]. الافتراضي هو `undefined`.
+		</p>
+		 
+		<h3>[property:String responseType]</h3>
+		<p>
+		نوع الاستجابة المتوقع. انظر [page:.setResponseType]. الافتراضي هو
+		`undefined`.
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] - المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] (اختياري) - سيتم استدعاؤه عند اكتمال التحميل.
+		الوسيطة ستكون الاستجابة المحملة.<br />
+		[page:Function onProgress] (اختياري) - سيتم استدعاؤه أثناء تقدم التحميل.
+		الوسيطة ستكون مثيل ProgressEvent ، والذي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضع الخادم رأس Content-Length
+		؛ .[page:Integer total] ستكون 0.<br />
+		[page:Function onError] (اختياري) - سيتم استدعاؤه في حالة حدوث خطأ.<br /><br />
+	 
+		قم بتحميل عنوان URL وإرسال الاستجابة إلى وظيفة onLoad.
+		</p>
+	 
+		<h3>[method:this setMimeType]( [param:String mimeType] )</h3>
+		<p>
+		قم بتعيين
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types mimeType]
+		المتوقع للملف الذي يتم تحميله. لاحظ أنه في كثير من الحالات سيتم
+		تحديده تلقائيًا ، لذلك بشكل افتراضي هو `undefined`.
+		</p>
+	 
+		<h3>[method:this setResponseType]( [param:String responseType] )</h3>
+		<p>
+		قم بتغيير نوع الاستجابة. القيم المقبولة هي:<br />
+		[page:String text] أو سلسلة فارغة (افتراضية) - تعود بالبيانات كـ
+		[page:String String].<br />
+		[page:String arraybuffer] - يحمل البيانات في
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer ArrayBuffer]
+		ويرجع ذلك.<br />
+		[page:String blob] - يعود بالبيانات كـ
+		[link:https://developer.mozilla.org/en/docs/Web/API/Blob Blob].<br />
+		[page:String document] - يحلل الملف باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/DOMParser DOMParser].<br />
+		[page:String json] - يحلل الملف باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse JSON.parse].<br />
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 117 - 0
docs/api/ar/loaders/ImageBitmapLoader.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			محمل لتحميل صورة [page:Image] كـ
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap]. يوفر ImageBitmap مسارًا غير متزامن وفعال من حيث الموارد
+			لإعداد القوام للتقديم في WebGL.<br />
+			على عكس [page:FileLoader]، [name] لا يتجنب الطلبات المتعددة المتزامنة
+			إلى نفس عنوان URL.
+		</p>
+		 
+		<p>
+		لاحظ أن [page:Texture.flipY] و [page:Texture.premultiplyAlpha] مع
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap] يتم تجاهلهم.
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap ImageBitmap]
+		يحتاج هذه التكوينات على إنشاء الخريطة البيانية على عكس الصور العادية التي تحتاجها عند تحميلها على وحدة معالجة الرسومات. تحتاج إلى تعيين الخيارات المكافئة عبر [page:ImageBitmapLoader.setOptions] بدلاً من ذلك. راجع
+		[link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.10 WebGL specification] للحصول على التفاصيل.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const loader = new THREE.FileLoader();
+	
+		//load a text file and output the result to the console
+		loader.load(
+			// resource URL
+			'example.txt',
+	
+			// onLoad callback
+			function ( data ) {
+				// output the text to the console
+				console.log( data )
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened' );
+			}
+		);
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_loader_imagebitmap WebGL / loader / ImageBitmap]</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] - [page:LoadingManager loadingManager]
+		للمحمل الذي سيستخدمه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+	 
+		ينشئ جديد [name].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Boolean isImageBitmapLoader]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+	 
+		<h3>[property:String options]</h3>
+		<p>
+		كائن اختياري يضع خيارات لـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap createImageBitmap]
+		طريقة المصنع المستخدمة داخليًا. الافتراضي هو `undefined`.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] - المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] - سيتم استدعاؤه عند اكتمال التحميل. الوسيطة
+		ستكون الصورة المحملة [page:Image image].<br />
+		[page:Function onProgress] (اختياري) - هذه وظيفة رد الاتصال
+		غير مدعوم حاليًا.<br />
+		[page:Function onError] (اختياري) - سيتم استدعاؤه عند حدوث خطأ في التحميل.<br />
+		</p>
+		<p>
+		قم ببدء التحميل من عنوان URL وإرجاع كائن الصورة [page:ImageBitmap image]
+		الذي سيحتوي على البيانات.
+		</p>
+	 
+		<h3>[method:this setOptions]( [param:Object options] )</h3>
+		<p>
+		يضع كائن الخيارات لـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap createImageBitmap].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 100 - 0
docs/api/ar/loaders/ImageLoader.html

@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			محمل لتحميل صورة [page:Image]. يتم استخدام هذا داخليًا من قبل
+			[page:CubeTextureLoader]، [page:ObjectLoader] و [page:TextureLoader].
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		// instantiate a loader
+		const loader = new THREE.ImageLoader();
+	
+		// load a image resource
+		loader.load(
+			// resource URL
+			'textures/skyboxsun25degtest.png',
+	
+			// onLoad callback
+			function ( image ) {
+				// use the image, e.g. draw part of it on a canvas
+				const canvas = document.createElement( 'canvas' );
+				const context = canvas.getContext( '2d' );
+				context.drawImage( image, 100, 100 );
+			},
+	
+			// onProgress callback currently not supported
+			undefined,
+	
+			// onError callback
+			function () {
+				console.error( 'An error happened.' );
+			}
+		);
+		</code>
+		 
+		<p>
+		يرجى ملاحظة أن three.js r84 قام بإسقاط دعم أحداث التقدم لـ ImageLoader.
+		لـ ImageLoader يدعم أحداث التقدم ، انظر
+		[link:https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639 هذا الموضوع].
+		</p>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+		[example:webgl_loader_obj WebGL / loader / obj]<br />
+		[example:webgl_shaders_ocean WebGL / shaders / ocean]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] - [page:LoadingManager loadingManager]
+		للمحمل الذي سيستخدمه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+	 
+		ينشئ جديد [name].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للخصائص المشتركة.</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الصفحة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:HTMLImageElement load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] - المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] - سيتم استدعاؤه عند اكتمال التحميل. الوسيطة
+		ستكون الصورة المحملة [page:Image image].<br />
+		[page:Function onProgress] (اختياري) - هذه وظيفة رد الاتصال
+		غير مدعوم حاليًا.<br />
+		[page:Function onError] (اختياري) - سيتم استدعاؤه عند حدوث خطأ في التحميل.<br />
+		</p>
+		<p>
+		قم ببدء التحميل من عنوان URL وإرجاع كائن الصورة [page:Image image]
+		الذي سيحتوي على البيانات.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 138 - 0
docs/api/ar/loaders/Loader.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">الفئة الأساسية لتنفيذ المحملات.</p>
+
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].
+		</p>
+		<p>ينشئ [name] جديد.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:String crossOrigin]</h3>
+		<p>
+		السلسلة crossOrigin لتنفيذ CORS لتحميل عنوان url من
+		نطاق مختلف يسمح بـ CORS. الافتراضي هو `anonymous`.
+		</p>
+	 
+		<h3>[property:Boolean withCredentials]</h3>
+		<p>
+		ما إذا كان XMLHttpRequest يستخدم بيانات الاعتماد. انظر
+		[page:.setWithCredentials]. الافتراضي هو `false`.
+		</p>
+	 
+		<h3>[property:LoadingManager manager]</h3>
+		<p>
+		[page:LoadingManager loadingManager] الذي يستخدمه المحمل. الافتراضي هو
+		[page:DefaultLoadingManager].
+		</p>
+	 
+		<h3>[property:String path]</h3>
+		<p>
+		المسار الأساسي الذي سيتم منه تحميل الأصل. الافتراضي هو
+		سلسلة فارغة.
+		</p>
+	 
+		<h3>[property:String resourcePath]</h3>
+		<p>
+		المسار الأساسي الذي سيتم منه تحميل الموارد الإضافية مثل الملمسات.
+		الافتراضي هو سلسلة فارغة.
+		</p>
+	 
+		<h3>[property:Object requestHeader]</h3>
+		<p>
+		[link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header رأس الطلب]
+		المستخدم في طلب HTTP. انظر [page:.setRequestHeader].
+		الافتراضي هو كائن فارغ.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:undefined load]()</h3>
+		<p>
+		يجب تنفيذ هذه الطريقة من قبل جميع المحملات الخرسانية. يحتوي على
+		المنطق لتحميل الأصل من الخلفية.
+		</p>
+	 
+		<h3>
+		[method:Promise loadAsync]( [param:String url], [param:Function onProgress] )
+		</h3>
+		<p>
+		[page:String url] — سلسلة تحتوي على مسار / عنوان URL للملف المراد
+		تحميله.<br />
+		[page:Function onProgress] (اختياري) — وظيفة يتم استدعاؤها أثناء
+		التحميل قيد التقدم. ستكون الوسيطة هي مثيل ProgressEvent ،
+		الذي يحتوي على .[page:Boolean lengthComputable] ، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يقم الخادم بتعيين رأس Content-Length ؛
+		.[page:Integer total] ستكون 0.<br />
+		</p>
+		<p>
+		هذه الطريقة مكافئة لـ [page:.load] ، ولكنها تعود بـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise Promise].
+		</p>
+		<p>
+		يتم التعامل مع [page:Function onLoad] من قبل
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve Promise.resolve]
+		ويتم التعامل مع [page:Function onError] من قبل
+		[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject Promise.reject].
+		</p>
+	 
+		<h3>[method:undefined parse]()</h3>
+		<p>
+		يجب تنفيذ هذه الطريقة من قبل جميع المحملات الخرسانية. يحتوي على
+		المنطق لتحليل الأصول إلى كائنات three.js.
+		</p>
+	 
+		<h3>[method:this setCrossOrigin]( [param:String crossOrigin] )</h3>
+		<p>
+		[page:String crossOrigin] — سلسلة crossOrigin لتطبيق CORS لـ
+		تحميل عنوان url من نطاق مختلف يسمح بـ CORS.
+		</p>
+	 
+		<h3>[method:this setWithCredentials]( [param:Boolean value] )</h3>
+		<p>
+		ما إذا كان XMLHttpRequest يستخدم بيانات اعتماد مثل ملفات تعريف الارتباط ، ورؤوس التفويض
+		أو شهادات عميل TLS. انظر
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials XMLHttpRequest.withCredentials].<br />
+		لاحظ أن هذا لا يؤثر إذا كنت تقوم بتحميل الملفات محليًا أو من
+		نفس المجال.
+		</p>
+	 
+		<h3>[method:this setPath]( [param:String path] )</h3>
+		<p>[page:String path] — حدد المسار الأساسي للأصول.</p>
+	 
+		<h3>[method:this setResourcePath]( [param:String resourcePath] )</h3>
+		<p>
+		[page:String resourcePath] — حدد المسار الأساسي للموارد التابعة
+		مثل الملمس.
+		</p>
+	 
+		<h3>[method:this setRequestHeader]( [param:Object requestHeader] )</h3>
+		<p>
+		[page:Object requestHeader] - key: اسم الرأس الذي ستُضبط قيمته.
+		value: القيمة التى ستضبط كجسم للرأس.<br /><br />
+	 
+		حدد
+		[link:https://developer.mozilla.org/en-US/docs/Glossary/Request_header request header] المستخدم في طلب HTTP.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 43 - 0
docs/api/ar/loaders/LoaderUtils.html

@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">كائن يحتوي على العديد من وظائف المحمل المساعدة.</p>
+
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:String decodeText]( [param:TypedArray array] )</h3>
+		<p>[page:TypedArray array] — تدفق بايتات كمصفوفة مكتوبة.</p>
+		<p>
+		تأخذ الوظيفة تدفق بايتات كمدخل وتعيد تمثيلًا للسلسلة
+		</p>
+	 
+		<h3>[method:String extractUrlBase]( [param:String url] )</h3>
+		<p>[page:String url] — عنوان url الذي سيتم استخراج العنوان الأساسي منه.</p>
+		<p>استخراج الأساس من عنوان URL.</p>
+	 
+		<h3>
+		[method:String resolveURL]( [param:String url], [param:String path] )
+		</h3>
+		<p>
+		[page:String url] — عنوان url المطلق أو النسبي للحل. [page:String path] — المسار الأساسي لحل عناوين url النسبية ضده.
+		</p>
+		<p>
+		يحل عناوين url النسبية ضد المسار المعطى. ستعاد المسارات المطلقة وعناوين url للبيانات
+		وعناوين url للكتل كما هي. ستعود عناوين url غير صالحة
+		سلسلة فارغة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 106 - 0
docs/api/ar/loaders/MaterialLoader.html

@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			محمل لتحميل [page:Material] بتنسيق JSON. يستخدم هذا
+			[page:FileLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		// instantiate a loader
+		const loader = new THREE.MaterialLoader();
+		
+		// load a resource
+		loader.load(
+			// resource URL
+			'path/to/material.json',
+		
+			// onLoad callback
+			function ( material ) {
+				object.material = material;
+			},
+		
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+		
+			// onError callback
+			function ( err ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		ينشئ [name] جديد.
+		</p>
+		 
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object textures]</h3>
+		<p>
+		كائن يحمل أي نسيج يستخدمه المواد. انظر [page:.setTextures].
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحميل. الحجة
+		سيكون ال [page:Material] المحمّل.<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء تقدم التحميل. الحجة ستكون مثيل ProgressEvent، والذي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		؛ سيكون .[page:Integer total] 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه عند حدوث خطأ في التحميل.<br /><br />
+	 
+		ابدأ التحميل من url.
+		</p>
+	 
+		<h3>[method:Material parse]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — كائن json الذي يحتوي على معلمات
+		Material.<br /><br />
+	 
+		قم بتحليل هيكل `JSON` وإنشاء جديد [page:Material] من نوع
+		[page:String json.type] مع المعلمات المحددة في كائن json.
+		</p>
+	 
+		<h3>[method:this setTextures]( [param:Object textures] )</h3>
+		<p>
+		[page:Object textures] — كائن يحتوي على أي نسيج يستخدمه
+		المادة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 161 - 0
docs/api/ar/loaders/ObjectLoader.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			محمل لتحميل مورد JSON في
+			[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].<br /><br />
+			يستخدم هذا [page:FileLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const loader = new THREE.ObjectLoader();
+	
+		loader.load(
+			// resource URL
+			"models/json/example.json",
+	
+			// onLoad callback
+			// Here the loaded data is assumed to be an object
+			function ( obj ) {
+				// Add the loaded object to the scene
+				scene.add( obj );
+			},
+	
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+	
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened' );
+			}
+		);
+	
+	
+		// Alternatively, to parse a previously loaded JSON structure
+		const object = loader.parse( a_json_object );
+	
+		scene.add( object );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>[example:webgl_materials_lightmap WebGL / materials / lightmap]</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+		ينشئ [name] جديد.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحميل. الحجة
+		سيكون ال [page:Object3D object] المحمّل.<br />
+		[page:Function onProgress] (اختياري) — سيتم استدعاؤه أثناء تقدم التحميل. الحجة ستكون مثيل ProgressEvent، والذي
+		يحتوي على .[page:Boolean lengthComputable]، .[page:Integer total] و
+		.[page:Integer loaded]. إذا لم يضبط الخادم رأس Content-Length
+		؛ سيكون .[page:Integer total] 0.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه عند حدوث خطأ في التحميل.<br />
+		</p>
+		<p>
+		ابدأ التحميل من url واستدعِ onLoad مع محتوى الاستجابة المحلل.
+		</p>
+	 
+		<h3>
+		[method:Object3D parse]( [param:Object json], [param:Function onLoad] )
+		</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		[page:Function onLoad] — سيتم استدعاؤه عند اكتمال التحليل. ال
+		الحجة ستكون ال [page:Object3D object] المحلل.<br /><br />
+		قم بتحليل هيكل `JSON` وإرجاع كائن three.js. يستخدم هذا
+		داخليًا بواسطة [page:.load]() ولكن يمكن أيضًا استخدامه مباشرة لتحليل
+		هيكل JSON محمّل مسبقًا.
+		</p>
+		 
+		<h3>[method:Object parseGeometries]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي [page:BufferGeometry geometries] في هيكل JSON.
+		</p>
+		 
+		<h3>[method:Object parseMaterials]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي مواد في ال JSON
+		هيكل باستخدام [page:MaterialLoader].
+		</p>
+		 
+		<h3>[method:Object parseAnimations]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي رسوم متحركة في ال JSON
+		هيكل، باستخدام [page:AnimationClip.parse]().
+		</p>
+		 
+		<h3>[method:Object parseImages]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي صور في هيكل JSON،
+		باستخدام [page:ImageLoader].
+		</p>
+		 
+		<h3>[method:Object parseTextures]( [param:Object json] )</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي نسيج في ال JSON
+		هيكل.
+		</p>
+		 
+		<h3>
+		[method:Object3D parseObject]( [param:Object json], [param:BufferGeometry geometries], [param:Material materials], [param:AnimationClip animations] )
+		</h3>
+		<p>
+		[page:Object json] — مطلوب. مصدر JSON للتحليل.<br />
+		[page:BufferGeometry geometries] — مطلوب. الهندسات الخاصة بـ
+		JSON.<br />
+		[page:Material materials] — مطلوب. المواد الخاصة بـ JSON.<br />
+		[page:AnimationClip animations] — مطلوب. الرسوم المتحركة الخاصة بـ JSON.<br /><br />
+		 
+		يستخدم هذا بواسطة [page:.parse]() لتحليل أي كائنات ثُنائية الأبعاد في ال JSON
+		هيكل.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 104 - 0
docs/api/ar/loaders/TextureLoader.html

@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Loader] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			فئة لتحميل [page:Texture texture]. يستخدم هذا
+			[page:ImageLoader] داخليًا لتحميل الملفات.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const texture = new THREE.TextureLoader().load('textures/land_ocean_ice_cloud_2048.jpg' ); 
+		// immediately use the texture for material creation 
+			
+		const material = new THREE.MeshBasicMaterial( { map:texture } );
+		</code>
+		 
+		<h2>مثال الكود مع الردود  (Code Example with Callbacks)</h2>
+		 
+		<code>
+		// instantiate a loader
+		const loader = new THREE.TextureLoader();
+	
+		// load a resource
+		loader.load(
+			// resource URL
+			'textures/land_ocean_ice_cloud_2048.jpg',
+	
+			// onLoad callback
+			function ( texture ) {
+				// in this example we create the material when the texture is loaded
+				const material = new THREE.MeshBasicMaterial( {
+					map: texture
+					} );
+			},
+	
+			// onProgress callback currently not supported
+			undefined,
+	
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened.' );
+			}
+		);
+		</code>
+		 
+		<p>
+		يرجى ملاحظة أن three.js r84 قام بإسقاط دعم حدث التقدم لـ TextureLoader
+		. لـ TextureLoader يدعم أحداث التقدم، انظر
+		[link:https://github.com/mrdoob/three.js/issues/10439#issuecomment-293260145 هذا الموضوع].
+		</p>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>[example:webgl_geometry_cube geometry / cube]</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:LoadingManager manager] )</h3>
+		<p>
+		[page:LoadingManager manager] — [page:LoadingManager loadingManager]
+		للمحمل الذي سيتم استخدامه. الافتراضي هو [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+	 
+		ينشئ [name] جديد.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للخصائص المشتركة.</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Loader] للطرق المشتركة.</p>
+	 
+		<h3>
+		[method:Texture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )
+		</h3>
+		<p>
+		[page:String url] — المسار أو عنوان URL للملف. يمكن أن يكون هذا أيضًا
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
+		[page:Function onLoad] (اختياري) — سيتم استدعاؤه عند اكتمال التحميل.
+		الحجة ستكون ال [page:Texture texture] المحمّل.<br />
+		[page:Function onProgress] (اختياري) — هذه الدالة الرجعية
+		غير مدعومة حاليًا.<br />
+		[page:Function onError] (اختياري) — سيتم استدعاؤه عند حدوث خطأ في التحميل.<br /><br />
+	 
+		ابدأ التحميل من عنوان URL المعطى وأرسل الـ[page:Texture texture] المحمّل بالكامل
+		إلى onLoad. تعيد الطريقة أيضًا كائن نسيج جديد يمكن
+		استخدامه مباشرة لإنشاء المادة. إذا قمت بذلك بهذه الطريقة، فقد يظهر النسيج
+		في مشهدك بمجرد انتهاء عملية التحميل المعنية.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 68 - 0
docs/api/ar/loaders/managers/DefaultLoadingManager.html

@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			نسخة عالمية من [page:LoadingManager LoadingManager]، يستخدمها
+			معظم المحملات عندما لم يتم تحديد مدير مخصص. <br /><br />
+		 
+			هذا سيكون كافيًا لمعظم الأغراض، ولكن قد يكون هناك أوقات عندما
+			ترغب في مديري تحميل منفصلين للقول، القوام والنماذج.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<p>
+		يمكنك تعيين [page:LoadingManager.onStart onStart]،
+		[page:LoadingManager.onLoad onLoad]، [page:LoadingManager.onProgress onProgress]،
+		[page:LoadingManager.onStart onError] وظائف لل
+		مدير. ستطبق هذه على أي محملات تستخدم
+		DefaultLoadingManager.<br /><br />
+		 
+		يجب عدم الخلط بين هذه الوظائف المسماة بشكل مشابه
+		من المحملات الفردية، لأنها مخصصة لعرض المعلومات
+		حول الحالة العامة للتحميل، بدلاً من التعامل مع البيانات
+		التي تم تحميلها.
+		</p>
+		<code>
+THREE.DefaultLoadingManager.onStart = function ( url, itemsLoaded, itemsTotal ) {
+	console.log( 'Started loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
+};
+				
+THREE.DefaultLoadingManager.onLoad = function ( ) {
+	console.log( 'Loading Complete!');
+};
+				
+THREE.DefaultLoadingManager.onProgress = function ( url, itemsLoaded, itemsTotal ) {
+	console.log( 'Loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
+};
+				
+THREE.DefaultLoadingManager.onError = function ( url ) {
+	console.log( 'There was an error loading ' + url );
+};
+		</code>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر صفحة [page:LoadingManager LoadingManager] لتفاصيل
+		الخصائص.
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>
+		انظر صفحة [page:LoadingManager LoadingManager] لتفاصيل الطرق.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]
+		</p>
+	</body>
+</html>

+ 236 - 0
docs/api/ar/loaders/managers/LoadingManager.html

@@ -0,0 +1,236 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتعامل ويتتبع البيانات المحملة والمعلقة. يتم إنشاء نسخة عالمية افتراضية
+			من هذه الفئة واستخدامها من قبل المحملات إذا لم يتم توفيرها
+			يدويًا - انظر [page:DefaultLoadingManager].<br /><br />
+		 
+			بشكل عام يجب أن يكون ذلك كافيًا، ولكن هناك أوقات يمكن أن تكون فيها
+			مفيدًا لديك محملات منفصلة - على سبيل المثال إذا كنت ترغب في عرض
+			شرائط تحميل منفصلة للأشياء والقوام.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<p>
+		يوضح هذا المثال كيفية استخدام LoadingManager لتتبع التقدم
+		[page:OBJLoader].
+		</p>
+		 
+		<code>
+		const manager = new THREE.LoadingManager();
+		manager.onStart = function ( url, itemsLoaded, itemsTotal ) {
+			console.log( 'Started loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
+		};
+	
+		manager.onLoad = function ( ) {
+			console.log( 'Loading complete!');
+		};
+	
+		manager.onProgress = function ( url, itemsLoaded, itemsTotal ) {
+			console.log( 'Loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
+		};
+	
+		manager.onError = function ( url ) {
+			console.log( 'There was an error loading ' + url );
+		};
+	
+		const loader = new THREE.OBJLoader( manager );
+		loader.load( 'file.obj', function ( object ) {
+			//
+		} );
+		</code>
+		 
+		<p>
+		بالإضافة إلى مراقبة التقدم، يمكن استخدام LoadingManager ل
+		تجاوز عناوين URL للموارد أثناء التحميل. قد يكون ذلك مفيدًا للأصول
+		القادمة من أحداث السحب والإفلات، WebSockets، WebRTC، أو غيرها من واجهات برمجة التطبيقات. A
+		مثال يظهر كيفية تحميل نموذج في الذاكرة باستخدام عناوين URL لـ Blob أدناه.
+		</p>
+		 
+		<code>
+		// Blob or File objects created when dragging files into the webpage.
+		const blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};
+	
+		const manager = new THREE.LoadingManager();
+	
+		// Initialize loading manager with URL callback.
+		const objectURLs = [];
+		manager.setURLModifier( ( url ) => {
+	
+			url = URL.createObjectURL( blobs[ url ] );
+			objectURLs.push( url );
+			return url;
+	
+		} );
+	
+		// Load as usual, then revoke the blob URLs.
+		const loader = new THREE.GLTFLoader( manager );
+		loader.load( 'fish.gltf', (gltf) => {
+	
+			scene.add( gltf.scene );
+			objectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );
+	
+		});
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+		[example:webgl_loader_obj WebGL / loader / obj]<br />
+		[example:webgl_postprocessing_outline WebGL / postprocesing / outline]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name]( [param:Function onLoad], [param:Function onProgress],
+		[param:Function onError] )
+		</h3>
+		<p>
+		[page:Function onLoad] — (اختياري) سيتم استدعاء هذه الدالة عندما يتم
+		جميع المحملات.<br />
+		[page:Function onProgress] — (اختياري) سيتم استدعاء هذه الدالة عند
+		اكتمال عنصر.<br />
+		[page:Function onError] — (اختياري) سيتم استدعاء هذه الدالة عندما يواجه المحمل
+		أخطاء. <br />
+	 
+		ينشئ جديدًا [name].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Function onStart]</h3>
+		<p>
+		سيتم استدعاء هذه الدالة عند بدء التحميل. المعاملات هي:<br />
+		[page:String url] — عنوان url للعنصر المحمل للتو.<br />
+		[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
+		[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
+	 
+		بشكل افتراضي هذا غير محدد.
+		</p>
+
+		<h3>[property:Function onLoad]</h3>
+		<p>
+		سيتم استدعاء هذه الدالة عند اكتمال جميع التحميلات. بشكل افتراضي
+		هذا غير محدد، ما لم يتم تمريره في المنشئ.
+		</p>
+	 
+		<h3>[property:Function onProgress]</h3>
+		<p>
+		سيتم استدعاء هذه الدالة عند اكتمال عنصر. المعاملات
+		هي:<br />
+		[page:String url] — عنوان url للعنصر المحمل للتو.<br />
+		[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
+		[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
+	 
+		بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
+		</p>
+	 
+		<h3>[property:Function onError]</h3>
+		<p>
+		سيتم استدعاء هذه الدالة عند حدوث خطأ في أي عنصر، مع الحجة:<br />
+		[page:String url] — عنوان url للعنصر الذي حدث فيه خطأ.<br /><br />
+	 
+		بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>
+		[method:this addHandler]( [param:Object regex], [param:Loader loader] )
+		</h3>
+		<p>
+		[page:Object regex] — تعبير منتظم.<br />
+		[page:Loader loader] — المحمل.
+		</p>
+	 
+		<p>
+		يسجل محملًا مع التعبير المنتظم المعطى. يمكن استخدامه ل
+		تحديد أي محمل يجب استخدامه لتحميل ملفات معينة. A
+		حالة استخدام نموذجية هي الكتابة فوق المحمل الافتراضي للقوام.
+		</p>
+		<code>
+// add handler for TGA textures 
+manager.addHandler( /\.tga$/i, new TGALoader() );
+		</code>
+	 
+		<h3>[method:Loader getHandler]( [param:String file] )</h3>
+		<p>[page:String file] — مسار الملف.</p>
+	 
+		<p>
+		يمكن استخدامه لاسترجاع المحمل المسجل لمسار الملف المعطى.
+		</p>
+	 
+		<h3>[method:this removeHandler]( [param:Object regex] )</h3>
+		<p>[page:Object regex] — تعبير منتظم.</p>
+	 
+		<p>يزيل المحمل للتعبير المنتظم المعطى.</p>
+
+		<h3>[method:String resolveURL]( [param:String url] )</h3>
+		<p>
+		[page:String url] — عنوان url للتحميل<br /><br />
+	 
+		بالنظر إلى عنوان URL، يستخدم رد الاتصال بتعديل URL (إن وجد) ويعيد
+		عنوان URL المحلول. إذا لم يتم تعيين تعديل URL، فسيتم إرجاع العنوان الأصلي.
+		</p>
+	 
+		<h3>[method:this setURLModifier]( [param:Function callback] )</h3>
+		<p>
+		[page:Function callback] — رد اتصال تعديل URL. يتم استدعاؤه مع [page:String url] الحجة،
+		ويجب أن يعود [page:String resolvedURL].<br /><br />
+	 
+		إذا تم توفيره، سيتم تمرير رد الاتصال لكل عنوان URL للمورد قبل
+		يتم إرسال طلب. قد يعود الرد الاتصال بالعنوان الأصلي، أو عنوان URL جديد ل
+		تجاوز سلوك التحميل. يمكن استخدام هذا السلوك لتحميل الأصول من
+		ملفات .ZIP، واجهات برمجة التطبيقات السحب والإفلات، وعناوين URI البيانات.
+		</p>
+	 
+		<br />
+	 
+		<p>
+		<em>
+		ملاحظة: تم تصميم الطرق التالية ليتم استدعاؤها داخليًا من قبل
+		المحملات. يجب ألا تستدعيها مباشرة.
+		</em>
+		</p>
+	 
+		<h3>[method:undefined itemStart]( [param:String url] )</h3>
+		<p>
+		[page:String url] — عنوان url للتحميل<br /><br />
+	 
+		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عندما يبدأ المحمل
+		تحميل عنوان url.
+		</p>
+	 
+		<h3>[method:undefined itemEnd]( [param:String url] )</h3>
+		<p>
+		[page:String url] — عنوان url المحمَّل<br /><br />
+	 
+		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند انتهاء المحمل
+		تحميل عنوان url.
+		</p>
+	 
+		<h3>[method:undefined itemError]( [param:String url] )</h3>
+		<p>
+		[page:String url] — عنوان url المحمَّل<br /><br />
+	 
+		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند حدوث خطأ في المحمل
+		تحميل عنوان url.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]
+		</p>
+	</body>
+</html>

+ 104 - 0
docs/api/ar/materials/LineBasicMaterial.html

@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">مادة لرسم الهندسة على طريقة الإطار السلكي.</p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const material = new THREE.LineBasicMaterial( {
+			color: 0xffffff,
+			linewidth: 1,
+			linecap: 'round', //ignored by WebGLRenderer
+			linejoin: 'round' //ignored by WebGLRenderer
+		} );
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_buffergeometry_drawrange WebGL / buffergeometry / drawrange]<br />
+		[example:webgl_buffergeometry_lines WebGL / buffergeometry / lines]<br />
+		[example:webgl_buffergeometry_lines_indexed WebGL / buffergeometry / lines / indexed]<br />
+		[example:webgl_decals WebGL / decals]<br />
+		[example:webgl_geometry_nurbs WebGL / geometry / nurbs]<br />
+		[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
+		[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor]<br />
+		[example:webgl_interactive_buffergeometry WebGL / interactive / buffergeometry]<br />
+		[example:webgl_interactive_voxelpainter WebGL / interactive / voxelpainter]<br />
+		[example:webgl_lines_colors WebGL / lines / colors]<br />
+		[example:webgl_lines_dashed WebGL / lines / dashed]<br />
+		[example:physics_ammo_rope physics / ammo / rope]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Object parameters] )</h3>
+	 
+		<p>
+		[page:Object parameters] - (اختياري) كائن به خاصية واحدة أو أكثر
+		تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+	 
+		الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للحصول على خصائص شائعة.</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] للمادة ، الافتراضي هو الأبيض (0xffffff).</p>
+		
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+		
+		<h3>[property:Float linewidth]</h3>
+		<p>
+		يتحكم في سمك الخط. الافتراضي هو `1`.<br /><br />
+		
+		بسبب قيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات سيكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+		
+		<h3>[property:String linecap]</h3>
+		<p>
+		تحديد مظهر نهايات الخط. القيم الممكنة هي 'butt' و 'round' و
+		'square'. الافتراضي هو 'round'.<br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+		خاصية ويتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:String linejoin]</h3>
+		<p>
+		تحديد مظهر مفاصل الخط. القيم الممكنة هي 'round' و 'bevel' و
+		'miter'. الافتراضي هو 'round'. <br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+		خاصية ويتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:Texture map]</h3>
+		<p>يحدد لون الخطوط باستخدام بيانات من [page:Texture].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى قاعدة [page:Material] class للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 69 - 0
docs/api/ar/materials/LineDashedMaterial.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr; [page:LineBasicMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			مادة لرسم الهندسة على طريقة الإطار السلكي بخطوط متقطعة.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const material = new THREE.LineDashedMaterial( {
+			color: 0xffffff,
+			linewidth: 1,
+			scale: 1,
+			dashSize: 3,
+			gapSize: 1,
+		} );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>[example:webgl_lines_dashed WebGL / lines / dashed]<br /></p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن به خاصية واحدة أو أكثر
+		تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:LineBasicMaterial])
+		هنا.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineBasicMaterial] للحصول على خصائص شائعة.</p>
+		 
+		<h3>[property:number dashSize]</h3>
+		<p>
+		حجم الشَرطة. هذا هو كل من الفجوة مع الضربة. الافتراضي هو
+		`3`.
+		</p>
+		 
+		<h3>[property:number gapSize]</h3>
+		<p>حجم الفجوة. الافتراضي هو `1`.</p>
+		 
+		<h3>[property:Boolean isLineDashedMaterial]</h3>
+		<p>علامة قراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		 
+		<h3>[property:number scale]</h3>
+		<p>مقياس الجزء المتقطع من الخط. الافتراضي هو `1`.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineBasicMaterial] للحصول على طرق شائعة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 447 - 0
docs/api/ar/materials/Material.html

@@ -0,0 +1,447 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		الفئة الأساسية المجردة للمواد.<br /><br />
+			
+		تصف المواد مظهر [page:Object objects]. هم
+		محددة بطريقة (غالبًا) مستقلة عن المصور ، لذلك لا تضطر إلى
+		إعادة كتابة المواد إذا قررت استخدام مصور مختلف.<br /><br />
+			
+		تمتلك الخصائص والطرق التالية من جميع أنواع المواد الأخرى
+		(على الرغم من أنها قد تكون لها افتراضات مختلفة).
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]()</h3>
+		<p>هذا ينشئ مادة عامة.</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Float alphaTest]</h3>
+		<p>
+		يحدد قيمة ألفا التي يجب استخدامها عند تشغيل اختبار ألفا. المادة
+		لن يتم عرضه إذا كانت الشفافية أقل من هذه القيمة. الافتراضي هو
+		`0`.
+		</p>
+			
+		<h3>[property:Boolean alphaToCoverage]</h3>
+		<p>
+		يمكّن ألفا للتغطية. يمكن استخدامه فقط مع سياقات MSAA-enabled
+		(وهذا يعني عند إنشاء المصور بمعامل `antialias` مضبوطًا على
+		`true`). الافتراضي هو `false`.
+		</p>
+			
+		<h3>[property:Integer blendDst]</h3>
+		<p>
+		وجهة المزج. الافتراضي هو [page:CustomBlendingEquation OneMinusSrcAlphaFactor]. 
+		انظر عوامل الوجهة [page:CustomBlendingEquation constants] لجميع القِيَم المحتملة.<br />
+		يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending] 
+		لهذا لديه أي تأثير.
+		</p>
+
+		<h3>[property:Integer blendDstAlpha]</h3>
+		<p>
+		شفافية [page:.blendDst]. يستخدم قيمة [page:.blendDst] إذا
+		null. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Integer blendEquation]</h3>
+		<p>
+		معادلة المزج للاستخدام عند تطبيق المزج. الافتراضي هو
+		[page:CustomBlendingEquation AddEquation]. انظر معادلة المزج
+		[page:CustomBlendingEquation constants] لجميع القيم الممكنة.<br />
+		يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending] 
+		لهذا لديه أي تأثير.
+		</p>
+		
+		<h3>[property:Integer blendEquationAlpha]</h3>
+		<p>
+		شفافية [page:.blendEquation]. يستخدم قيمة [page:.blendEquation]
+		إذا كان null. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Blending blending]</h3>
+		<p>
+		أي مزج للاستخدام عند عرض الكائنات بهذه المادة. <br />
+		يجب تعيين هذا على [page:Materials CustomBlending] لاستخدام مخصص
+		[page:Constant blendSrc]، [page:Constant blendDst] أو [page:Constant blendEquation].<br />
+		انظر وضع المزج [page:Materials constants] لجميع القيم الممكنة.
+		الافتراضي هو [page:Materials NormalBlending].
+		</p>
+		
+		<h3>[property:Integer blendSrc]</h3>
+		<p>
+		مصدر المزج. الافتراضي هو [page:CustomBlendingEquation SrcAlphaFactor].
+		انظر عوامل المصدر [page:CustomBlendingEquation constants] للكل
+		القِيَم المحتملة.<br />
+		يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending] 
+		لهذا لديه أي تأثير.
+		</p>
+		
+		<h3>[property:Integer blendSrcAlpha]</h3>
+		<p>
+		شفافية [page:.blendSrc]. يستخدم قيمة [page:.blendSrc] إذا
+		null. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Boolean clipIntersection]</h3>
+		<p>
+		تغير سلوك مستويات القطع بحيث يتم قطع تقاطعها فقط
+		، بدلاً من اتحادهم. الافتراضي هو `false`.
+		</p>
+		
+		<h3>[property:Array clippingPlanes]</h3>
+		<p>
+		مستويات القطع المحددة من قبل المستخدم محددة كـ THREE.Plane objects في العالم
+		الفضاء. تنطبق هذه المستويات على الكائنات التي يتم إرفاق هذه المادة بها.
+		يتم قطع النقاط في الفضاء التي يكون مسافتها الموقعة إلى المستوى سلبية
+		(غير معروض). هذا يتطلب [page:WebGLRenderer.localClippingEnabled] إلى
+		كن `true`. انظر [example:webgl_clipping_intersection WebGL / clipping /intersection] مثال. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Boolean clipShadows]</h3>
+		<p>
+		يحدد ما إذا كان يجب قطع الظلال وفقًا للمستويات القطع المحددة
+		على هذه المادة. الافتراضي هو `false`.
+		</p>
+		
+		<h3>[property:Boolean colorWrite]</h3>
+		<p>
+		سواء كان يجب عرض لون المادة. يمكن استخدام هذا بالتزامن
+		مع خاصية [page:Integer renderOrder] لشبكة لإنشاء غير مرئية
+		الأشياء التي تحجب الأشياء الأخرى. الافتراضي هو `true`.
+		</p>
+		
+		<h3>[property:Object defines]</h3>
+		<p>
+		تعريفات مخصصة لإدخالها في المظلل. يتم تمرير هذه في شكل
+		محدد كائن حرفي ، بأزواج من المفتاح / القيمة. `{ MY_CUSTOM_DEFINE: '' , PI2:
+		Math.PI * 2 }`. يتم تعريف الأزواج في كل من قمة وشظية المظللات.
+		الافتراضي هو `undefined`.
+		</p>
+		
+		<h3>[property:Integer depthFunc]</h3>
+		<p>
+		أي دالة عمق للاستخدام. الافتراضي هو [page:Materials LessEqualDepth].
+		انظر وضع العمق [page:Materials constants] لجميع القيم الممكنة.
+		</p>
+		
+		<h3>[property:Boolean depthTest]</h3>
+		<p>
+		سواء كان يجب تمكين اختبار العمق عند عرض هذه المادة. افتراضي
+		هو `true`.
+		</p>
+		
+		<h3>[property:Boolean depthWrite]</h3>
+		<p>
+		سواء كان عرض هذه المادة له أي تأثير على مخزن العمق.
+		الافتراضي هو `true`.<br /><br />
+		
+		عند رسم تراكبات 2D ، يمكن أن يكون من المفيد تعطيل كتابة العمق في
+		لطبقة عدة أشياء معًا دون إنشاء فنون فهرس z.
+		</p>
+
+		<h3>[property:Boolean forceSinglePass]</h3>
+		<p>
+		سواء كان يجب عرض الأشياء الشفافة ذات الجانبين بمرور واحد
+		أم لا. الافتراضي هو `false`.<br /><br />
+		
+		يعرض المحرك الأشياء الشفافة ذات الجانبين بمكالمتين رسم
+		(الوجوه الخلفية أولاً ، ثم الوجوه الأمامية) للتخفيف من التحولات الشفافة.
+		هناك سيناريوهات ومع ذلك حيث لا ينتج هذا النهج عن مكاسب في الجودة
+		ولكن لا يزال يضاعف المكالمات الرسمية على سبيل المثال عند عرض نباتات مسطحة مثل
+		رشات العشب. في هذه الحالات ، قم بتعيين علامة `forceSinglePass` على `true` إلى
+		تعطيل التقديم المزدوج لتجنب مشاكل الأداء.
+		</p>
+		
+		<h3>[property:Boolean isMaterial]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		
+		<h3>[property:Boolean stencilWrite]</h3>
+		<p>
+		سواء كانت تتم عمليات الشبكة ضد مخزن الشبكة. في
+		لإجراء كتابات أو مقارنات ضد مخزن الشبكة هذه
+		القيمة يجب أن تكون `true`. الافتراضي هو `false`.
+		</p>
+		
+		<h3>[property:Integer stencilWriteMask]</h3>
+		<p>
+		قناع البت المستخدم عند الكتابة إلى مخزن الشبكة. الافتراضي هو `0xFF`.
+		</p>
+		
+		<h3>[property:Integer stencilFunc]</h3>
+		<p>
+		دالة المقارنة بالشبكة التي يجب استخدامها. الافتراضي هو [page:Materials AlwaysStencilFunc]. 
+		انظر دالة شبكية [page:Materials constants] لـ
+		جميع القيم الممكنة.
+		</p>
+		
+		<h3>[property:Integer stencilRef]</h3>
+		<p>
+		القيمة المستخدمة عند إجراء مقارنات شبكية أو شبكية
+		عمليات. الافتراضي هو `0`.
+		</p>
+		
+		<h3>[property:Integer stencilFuncMask]</h3>
+		<p>
+		قناع البت المستخدم عند المقارنة مع مخزن الشبكة. الافتراضي هو
+		`0xFF`.
+		</p>
+		
+		<h3>[property:Integer stencilFail]</h3>
+		<p>
+		العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة
+		خطأ. الافتراضي هو [page:Materials KeepStencilOp]. انظر شبكية
+		عمليات [page:Materials constants] لجميع القيم الممكنة.
+		</p>
+		
+		<h3>[property:Integer stencilZFail]</h3>
+		<p>
+		العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة
+		صحيح ولكن اختبار العمق يفشل. الافتراضي هو [page:Materials KeepStencilOp].
+		انظر عمليات شبكية [page:Materials constants] لجميع المحتمل
+		القِيَم.
+		</p>
+
+		<h3>[property:Integer stencilZPass]</h3>
+		<p>
+		العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة
+		صحيح واختبار العمق يمر. الافتراضي هو [page:Materials KeepStencilOp].
+		انظر عمليات الشبكة [page:Materials constants] لجميع القيم الممكنة
+		</p>
+		
+		<h3>[property:Integer id]</h3>
+		<p>رقم فريد لهذه المادة.</p>
+		
+		<h3>[property:String name]</h3>
+		<p>
+		اسم اختياري للكائن (لا يحتاج إلى أن يكون فريدًا). الافتراضي هو
+		سلسلة فارغة.
+		</p>
+		
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>يحدد أن المادة تحتاج إلى إعادة التجميع.</p>
+		
+		<h3>[property:Float opacity]</h3>
+		<p>
+		عائم في نطاق `0.0` - `1.0` يشير إلى مدى شفافية
+		المادة. قيمة `0.0` تشير إلى الشفافية الكاملة ، `1.0` هو كامل
+		غير شفاف.<br />
+		إذا لم يتم تعيين خاصية [page:Boolean transparent] للمادة على
+		`true`، ستظل المادة غير شفافة تمامًا وسيؤثر هذا القيمة فقط
+		تأثير لونه. <br />
+		الافتراضي هو `1.0`.
+		</p>
+		
+		<h3>[property:Boolean polygonOffset]</h3>
+		<p>
+		سواء كان يجب استخدام إزاحة المضلع. الافتراضي هو `false`. هذا يتوافق مع
+		`GL_POLYGON_OFFSET_FILL` ميزة WebGL.
+		</p>
+		
+		<h3>[property:Integer polygonOffsetFactor]</h3>
+		<p>تعيين عامل إزاحة المضلع. الافتراضي هو `0`.</p>
+		
+		<h3>[property:Integer polygonOffsetUnits]</h3>
+		<p>تعيين وحدات إزاحة المضلع. الافتراضي هو `0`.</p>
+		
+		<h3>[property:String precision]</h3>
+		<p>
+		تجاوز دقة المصور الافتراضية لهذه المادة. يمكن أن يكون
+		`"highp"`، `"mediump"` أو `"lowp"`. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Boolean premultipliedAlpha]</h3>
+		<p>
+		سواء كان يجب ضرب قيمة ألفا (الشفافية). انظر
+		[Example:webgl_materials_physical_transmission WebGL / Materials / Physical / Transmission] 
+		لمثال على الفرق. الافتراضي هو `false`.
+		</p>
+		
+		<h3>[property:Boolean dithering]</h3>
+		<p>
+		سواء كان يجب تطبيق التدرج على اللون لإزالة مظهر
+		الفرقة. الافتراضي هو `false`.
+		</p>
+
+		<h3>[property:Integer shadowSide]</h3>
+		<p>
+		يحدد أي جانب من الوجوه يلقي الظلال. عند التعيين، يمكن أن يكون [page:Materials THREE.FrontSide]،
+		[page:Materials THREE.BackSide]، أو [page:Materials THREE.DoubleSide].
+		الافتراضي هو `null`. <br />
+		إذا كان `null`، يتم تحديد الجانب الذي يلقي الظلال على النحو التالي: <br />
+		</p>
+	 
+		<table>
+			<thead>
+				<tr>
+					<th>[page:Material.side]</th>
+					<th>Side casting shadows</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tr>
+					<td>THREE.FrontSide</td>
+					<td>back side</td>
+				</tr>
+				<tr>
+					<td>THREE.BackSide</td>
+					<td>front side</td>
+				</tr>
+				<tr>
+					<td>THREE.DoubleSide</td>
+					<td>both sides</td>
+				</tr>
+			</tbody>
+		</table>
+	 
+		<h3>[property:Integer side]</h3>
+		<p>
+		يحدد أي جانب من الوجوه سيتم عرضه - الأمامية، الخلفية أو كلاهما.
+		الافتراضي هو [page:Materials THREE.FrontSide]. خيارات أخرى هي
+		[page:Materials THREE.BackSide] أو [page:Materials THREE.DoubleSide].
+		</p>
+	 
+		<h3>[property:Boolean toneMapped]</h3>
+		<p>
+		يحدد ما إذا كانت هذه المادة معدلة نغمة وفقًا لإعدادات [page:WebGLRenderer.toneMapping toneMapping] للمُصير.
+		الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Boolean transparent]</h3>
+		<p>
+		يحدد ما إذا كانت هذه المادة شفافة. له تأثير على
+		التصيير كما تحتاج الأشياء الشفافة إلى معاملة خاصة وتُصاغ
+		بعد الأشياء غير الشفافة. <br />
+		عند تعيينه على true، يتم التحكم في مدى شفافية المادة
+		عن طريق تعيين خاصية [page:Float opacity] الخاصة به. <br />
+		الافتراضي هو `false`.
+		</p>
+
+		<h3>[property:String type]</h3>
+		<p>
+		القيمة هي السلسلة 'Material'. يجب عدم تغيير هذا، ويمكن استخدامه
+		للعثور على جميع الكائنات من هذا النوع في المشهد.
+		</p>
+	 
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
+		هذه الحالة المادية. يتم تعيين هذا تلقائيًا، لذلك يجب عدم تحريره.
+		</p>
+	 
+		<h3>[property:Integer version]</h3>
+		<p>
+		يبدأ هذا في `0` ويحسب كم مرة يتم تعيين [page:Material.needsUpdate .needsUpdate] إلى `true`.
+		</p>
+	 
+		<h3>[property:Boolean vertexColors]</h3>
+		<p>
+		يحدد ما إذا كان يتم استخدام تلوين الرأس. الافتراضي هو `false`. يدعم المحرك
+		ألوان RGB و RGBA للرأس اعتمادًا على ما إذا كان يتم استخدام سمة مخزنة لونية
+		ذات ثلاثة (RGB) أو أربعة (RGBA) مكونات.
+		</p>
+	 
+		<h3>[property:Boolean visible]</h3>
+		<p>يحدد ما إذا كانت هذه المادة مرئية. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Object userData]</h3>
+		<p>
+		كائن يمكن استخدامه لتخزين بيانات مخصصة حول المادة. يجب ألا يحتوي على
+		مراجع إلى الوظائف لأنها لن تتم نسخها.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>
+		طرق [page:EventDispatcher EventDispatcher] متاحة على هذه
+		الفئة.
+		</p>
+	 
+		<h3>[method:Material clone]( )</h3>
+		<p>يرجع مادة جديدة بنفس المعلمات كهذه المادة.</p>
+	 
+		<h3>[method:this copy]( [param:material material] )</h3>
+		<p>انسخ المعلمات من المادة المارة إلى هذه المادة.</p>
+	 
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يحرر الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها بواسطة هذه الحالة. اتصل بهذه
+		الطريقة كلما لم يعد هذه الحالة مستخدمة في التطبيق الخاص بك.
+		</p>
+		<p>
+		يجب التخلص من نسج المادة من خلال طريقة dispose() من
+		[page:Texture Texture].
+		</p>
+
+		<h3>
+			[method:undefined onBeforeCompile]( [param:Shader shader], [param:WebGLRenderer renderer] )
+		</h3>
+		<p>
+		رد الاتصال الاختياري الذي يتم تنفيذه مباشرة قبل تجميع برنامج الشادر. يتم استدعاء هذه الدالة مع شفرة مصدر الشادر كمعلمة. مفيد لتعديل المواد المدمجة.
+		</p>
+		<p>
+		على عكس الخصائص، لا يتم دعم رد الاتصال بواسطة [page:Material.clone .clone]()، 
+		[page:Material.copy .copy]() و [page:Material.toJSON .toJSON]().
+		</p>
+		 
+		<h3>[method:String customProgramCacheKey]()</h3>
+		<p>
+		في حالة استخدام onBeforeCompile، يمكن استخدام هذا الرد الاتصال لتحديد
+		قيم إعدادات المستخدمة في onBeforeCompile، بحيث يمكن لـ three.js إعادة استخدام
+		شادر مخزن في ذاكرة التخزين المؤقت أو إعادة تجميع شادر لهذه المادة حسب الحاجة.
+		</p>
+		 
+		<p>
+		على سبيل المثال، إذا كان onBeforeCompile يحتوي على جملة شرطية مثل:<br />
+		 
+		<code>
+		if ( black ) { 
+			shader.fragmentShader = shader.fragmentShader.replace('gl_FragColor = vec4(1)', 
+			'gl_FragColor = vec4(0)') 
+		}
+		</code>
+		 
+		فيجب تعيين customProgramCacheKey مثل هذا:<br />
+		 
+		<code>
+		material.customProgramCacheKey = function() { 
+			return black ? '1' : '0';
+		}
+		</code>
+		</p>
+		 
+		<p>
+		على عكس الخصائص، لا يتم دعم رد الاتصال بواسطة [page:Material.clone .clone]()، 
+		[page:Material.copy .copy]() و [page:Material.toJSON .toJSON]().
+		</p>
+		 
+		<h3>[method:undefined setValues]( [param:Object values] )</h3>
+		<p>
+		values - حاوية بالمعلمات.<br />
+		يضبط الخصائص بناءً على `values`.
+		</p>
+		 
+		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
+		<p>
+		meta - كائن يحتوي على بيانات تعريفية مثل الملمس أو الصور للمادة.<br />
+		تحويل المادة إلى three.js
+		[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 178 - 0
docs/api/ar/materials/MeshBasicMaterial.html

@@ -0,0 +1,178 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة لرسم الهندسة بطريقة مظللة بسيطة (مسطحة أو إطار سلكي)
+		طريقة. <br /> <br />
+		 
+		هذه المادة لا تتأثر بالأضواء.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshBasicMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+		تمريرها هنا. <br /> <br />
+
+		الاستثناء هو خاصية [page:Hexadecimal color] ، والتي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+		السطح (أسود: شفاف تمامًا ؛ أبيض: غير شفاف تمامًا). الافتراضي هو
+		null. <br /> <br />
+	 
+		يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+		موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+		قناة اللون الأخضر عند أخذ عينات من هذا النسيج بسبب البت الإضافي
+		من الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة
+		التنسيقات. ستعمل القوام المضاء فقط والقوام المضاء / ألفا أيضًا كما هو متوقع.
+		</p>
+	 
+		<h3>[property:Texture aoMap]</h3>
+		<p>
+		يتم استخدام قناة اللون الأحمر من هذه القوام كخريطة إضاءة محيطية.
+		الافتراضي هو null. يتطلب aoMap مجموعة ثانية من UVs.
+		</p>
+	 
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>
+		شدة تأثير الإضاءة المحيطة. الافتراضي هو 1. صفر لا
+		تأثير انعكاس.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p> [page:Color] المادة ، بشكل افتراضي محدد كأبيض (0xffffff).</p>
+	 
+		<h3>[property:Integer combine]</h3>
+		<p>
+		كيفية دمج نتيجة لون السطح مع خريطة البيئة ، إن وجدت.<br /> <br />
+	 
+		الخيارات هي [page:Materials THREE.MultiplyOperation] (الافتراضية)،
+		[page:Materials THREE.MixOperation]، [page:Materials THREE.AddOperation].
+		إذا تم اختيار المزج ، يتم استخدام [page:.reflectivity] للمزج بين
+		اللونان.
+		</p>
+	 
+		<h3>[property:Texture envMap]</h3>
+		<p>خريطة البيئة. الافتراضي هو null.</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p>هل يتأثر المادة بالضباب. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Texture lightMap]</h3>
+		<p>
+		خريطة الإضاءة. الافتراضي هو null. يتطلب lightMap مجموعة ثانية من UVs.
+		</p>
+	 
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>شدة الإضاءة المخبوزة. الافتراضي هو 1.</p>
+
+		<h3>[property:Texture map]</h3>
+		<p>
+	 	خريطة اللون. قد تتضمن قناة ألفا اختياريًا ، عادةً ما يتم دمجها
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest]. الافتراضي هو null.
+		</p>
+	 
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+	 	مدى تأثير خريطة البيئة على السطح ؛ انظر أيضًا
+		[page:.combine]. القيمة الافتراضية هي 1 والنطاق الصحيح هو بين 0
+		(لا انعكاسات) و 1 (انعكاسات كاملة).
+		</p>
+	 
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+	 	مؤشر انكسار (IOR) الهواء (حوالي 1) مقسومًا على
+		مؤشر انكسار المادة. يستخدم مع وسائط تعيين البيئة
+		[page:Textures THREE.CubeRefractionMapping] و [page:Textures THREE.EquirectangularRefractionMapping].
+		نسبة الانكسار لا يجب أن تتجاوز 1. الافتراضي هو `0.98`.
+		</p>
+	 
+		<h3>[property:Texture specularMap]</h3>
+		<p>خريطة التألق المستخدمة من قبل المادة. الافتراضي هو null.</p>
+	 
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+	 	عرض الهندسة كإطار سلكي. الافتراضي هو `false` (أي عرض كـ
+		مضلعات مسطحة).
+		</p>
+	 
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+		تحديد مظهر نهاية الخط. القيم الممكنة هي "butt" و "round" و
+		"square". الافتراضي هو 'round'.<br /><br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+		خاصية وهو يتجاهل من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+	 	تحديد مظهر مفصلات الخط. القيم الممكنة هي "round" و "bevel" و
+		"miter". الافتراضي هو 'round'.<br /><br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+		خاصية وهو يتجاهل من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+	 	التحكم في سمك الإطار السلكي. الافتراضي هو 1.<br /><br />
+	 
+		بسبب قصور
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم المنصات ستظل linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 125 - 0
docs/api/ar/materials/MeshDepthMaterial.html

@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة لرسم الهندسة بالعمق. يعتمد العمق على الكاميرا
+		قريب وبعيد. الأبيض هو الأقرب ، الأسود هو الأبعد.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshDepthMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>[name]( [param:Object parameters] )</h3>
+ 		<p>
+ 		[page:Object parameters] - (اختياري) كائن به واحد أو أكثر
+ 		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ 		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+ 		تمريرها هنا.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Texture alphaMap]</h3>
+ 		<p>
+ 		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+ 		السطح (أسود: شفاف تمامًا ؛ أبيض: غير شفاف تمامًا). الافتراضية هى
+ 		null. <br /> <br />
+
+ 		يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+ 		موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+ 		قناة اللون الأخضر عند عيّنة هذا القوام بسبب البت الإضافي
+ 		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+ 		التنسيقات. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+ 		</p>
+
+ 		<h3>[property:Constant depthPacking]</h3>
+ 		<p> نوع التعبئة العميقة. الافتراضية هى [page:Textures BasicDepthPacking]. </p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		يؤثر خريطة التشويه على موضع رؤوس الشبكة. على عكس
+		الخرائط الأخرى التي تؤثر فقط على الضوء والظل من المادة
+		يمكن للرؤوس المشوهة أن تلقي ظلالًا ، وتحجب الأشياء الأخرى ، وغيرها
+		يعمل كهندسة حقيقية. نسيج التشويه هو صورة حيث القيمة
+		من كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد ، و
+		إعادة تحديد مواقع ، رؤوس الشبكة.
+		</p>
+	 
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		مدى تأثير خريطة التشويه على الشبكة (حيث الأسود هو لا
+		التشويه ، والأبيض هو التشويه الأقصى). بدون تشويه
+		تم تعيين خريطة ، لا يتم تطبيق هذه القيمة. الافتراضية هي 1.
+		</p>
+	 
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشويه على رؤوس شبكة المصفوفات.
+		بدون تعيين خريطة التشويه ، لا يتم تطبيق هذه القيمة. الافتراضية هى 0.
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p> ما إذا كانت المادة متأثرة بالضباب. الافتراضية هى `false`. </p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد يتضمن اختيارًا قناة ألفا ، عادةً مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		الافتراضية هى null.
+		</p>
+	 
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		عرض الهندسة كإطار سلكي. الافتراضية هى false (أى
+		عرض كظل ملساء).
+		</p>
+	 
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		يتحكم في سُمك الإطار السلكى. الافتراضية هى 1. <br /> <br />
+	 
+		نظرًا للقصور في
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطُرُق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/ar/materials/MeshDistanceMaterial.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يتم استخدام [name] داخليًا لتنفيذ تعيين الظلال مع
+		[page:PointLight]s. <br /> <br />
+		 
+		يمكن أيضًا استخدامه لتخصيص رمي الظل لكائن عن طريق تعيين
+		مثيل من [name] إلى [page:Object3D.customDistanceMaterial]. ال
+		يوضح الأمثلة التالية هذا النهج لضمان
+		أجزاء شفافة من الأشياء لا تلقي ظلالًا.
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>[example:webgl_shadowmap_pointlight WebGL / shadowmap / pointlight]</p>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>[name]( [param:Object parameters] )</h3>
+ 		<p>
+ 		[page:Object parameters] - (اختياري) كائن به واحد أو أكثر
+ 		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ 		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+ 		تمريرها هنا.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Texture alphaMap]</h3>
+ 		<p>
+ 		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+ 		السطح (أسود: شفاف تمامًا ؛ أبيض: غير شفاف تمامًا). الافتراضية هى
+ 		null. <br /> <br />
+
+ 		يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+ 		موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+ 		قناة اللون الأخضر عند عيّنة هذا القوام بسبب البت الإضافي
+ 		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+ 		التنسيقات. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+ 		</p>
+
+ 		<h3>[property:Texture displacementMap]</h3>
+ 		<p>
+ 		يؤثر خريطة التشوه على موضع رؤوس الشبكة. على عكس
+ 		الخرائط الأخرى التي تؤثر فقط على الضوء والظل من المادة
+ 		يمكن للرؤوس المشوهة أن تلقي ظلالًا ، وتحجب الأشياء الأخرى ، وغيرها
+ 		يعمل كهندسة حقيقية. نسيج التشوه هو صورة حيث القيمة
+ 		من كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد ، و
+ 		إعادة تحديد مواقع ، رؤوس الشبكة.
+ 		</p>
+
+ 		<h3>[property:Float displacementScale]</h3>
+ 		<p>
+ 		مدى تأثير خريطة التشوه على الشبكة (حيث الأسود هو لا
+ 		التشوه ، والأبيض هو التشوه الأقصى). بدون تشوه
+ 		تم تعيين خريطة ، لا يتم تطبيق هذه القيمة. الافتراضية هى 1.
+ 		</p>
+
+ 		<h3>[property:Float displacementBias]</h3>
+ 		<p>
+ 		إزاحة قيم خريطة التشوه على رؤوس شبكة المصفوفات.
+ 		بدون تعيين خريطة التشوه ، لا يتم تطبيق هذه القيمة. الافتراضية هى 0.
+ 		</p>
+
+ 		<h3>[property:Boolean fog]</h3>
+ 		<p> ما إذا كانت المادة متأثرة بالضباب. الافتراضية هى `false`. </p>
+
+ 		<h3>[property:Texture map]</h3>
+ 		<p>
+ 		خريطة اللون. قد يتضمن اختيارًا قناة ألفا ، عادةً مجتمعة
+ 		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+ 		الافتراضية هى null.
+ 		</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر فئة [page:Material] الأساسية للطُرُق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 278 - 0
docs/api/ar/materials/MeshLambertMaterial.html

@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة للأسطح غير اللامعة ، بدون تسليط الضوء اللامع. <br /> <br />
+		 
+		تستخدم المادة نموذجًا غير قائم على الفيزياء
+		[link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]
+		لحساب الانعكاس. يمكن أن يحاكي هذا بعض الأسطح (مثل
+		الخشب غير المعالج أو الحجر) بشكل جيد ، ولكن لا يمكن محاكاة الأسطح اللامعة مع
+		تسليط الضوء اللامع (مثل الخشب المصقول). [name] يستخدم لكل قطعة
+		التظليل. <br /> <br />
+		 
+		نظرًا لبساطة نماذج الانعكاس والإضاءة ،
+		ستكون الأداء أكبر عند استخدام هذه المادة على
+		[page:MeshPhongMaterial] ، [page:MeshStandardMaterial] أو
+		[page:MeshPhysicalMaterial] ، على حساب بعض الدقة الرسومية.
+		</p>
+		 
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshLambertMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>[name]( [param:Object parameters] )</h3>
+ 		<p>
+ 		[page:Object parameters] - (اختياري) كائن به واحد أو أكثر
+ 		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ 		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+ 		تمريرها هنا. <br /> <br />
+
+ 		الاستثناء هو خاصية [page:Hexadecimal color] ، التي يمكن
+ 		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) افتراضيًا.
+ 		يتم استدعاء [page:Color.set]( color ) داخليًا.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+		السطح (أسود: شفاف تمامًا ؛ أبيض: غير شفاف تمامًا). الافتراضية هى
+		null. <br /> <br />
+	 
+		يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+		موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+		قناة اللون الأخضر عند عيّنة هذا القوام بسبب البت الإضافي
+		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+		التنسيقات. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+		</p>
+	 
+		<h3>[property:Texture aoMap]</h3>
+		<p>
+		يتم استخدام قناة اللون الأحمر من هذه القوام كخريطة التظليل المحيط.
+		الافتراضية هى null. يتطلب aoMap مجموعة ثانية من UVs.
+		</p>
+	 
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>
+		شدة تأثير التظليل المحيط. الافتراضية هى 1. صفر هو لا
+		تأثير التظليل.
+		</p>
+	 
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		القوام لإنشاء خريطة بروز. تُعيَّن قِيَمُ الأبْيَضِ والأسْوَدِ إلى
+		عُمْقٍ مُدْرَكٍ بالنسبة للأضواء. لا يؤثر Bump في الواقع
+		هندسة الكائن ، فقط الإضاءة. إذا تم تعريف خريطة طبيعية
+		سيتم تجاهل هذا.
+		</p>
+	 
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		مدى تأثير خريطة البروز على المادة. المدى النموذجي هو 0-1.
+		الافتراضية هى 1.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p> [page:Color] المادة ، افتراضيًا مضبوط على أبيض (0xffffff). </p>
+
+		<h3>[property:Integer combine]</h3>
+		<p>
+		كيفية دمج نتيجة لون السطح مع خريطة البيئة ،
+		إن وجد. <br /> <br />
+	 
+		الخيارات هي [page:Materials THREE.MultiplyOperation] (الافتراضية) ،
+		[page:Materials THREE.MixOperation] ، [page:Materials THREE.AddOperation].
+		إذا تم اختيار المزج ، يتم استخدام [page:.reflectivity] للمزج بين
+		اللونين.
+		</p>
+	 
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		يؤثر خريطة التشوه على موضع رؤوس الشبكة. على عكس
+		الخرائط الأخرى التي تؤثر فقط على الضوء والظل من المادة
+		يمكن للرؤوس المشوهة أن تلقي ظلالًا ، وتحجب الأشياء الأخرى ، وغيرها
+		يعمل كهندسة حقيقية. نسيج التشوه هو صورة حيث القيمة
+		من كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد ، و
+		إعادة تحديد مواقع ، رؤوس الشبكة.
+		</p>
+	 
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		مدى تأثير خريطة التشوه على الشبكة (حيث الأسود هو لا
+		التشوه ، والأبيض هو التشوه الأقصى). بدون تشوه
+		تم تعيين خريطة ، لا يتم تطبيق هذه القيمة. الافتراضية هى 1.
+		</p>
+	 
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشوه على رؤوس شبكة المصفوفات.
+		بدون تعيين خريطة التشوه ، لا يتم تطبیق هذه القیمۀ. الافتراضیۀ هى 0.
+		</p>
+	 
+		<h3>[property:Color emissive]</h3>
+		<p>
+		لون المادة المُضِئ (الضوء) ، في الأساس لون صلب
+		لا يتأثر بإضاءة أخرى. الافتراضية هى black.
+		</p>
+	 
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		قم بتعیین خریطۀ emissive (glow). الافتراضیۀ هى null. لون خریطۀ emissive
+		یتم تعدیلہ بلون emissive و شدۀ emissive. إذا كان لدیك
+		خریطۀ emissive، تأكد من تعیین لون emissive على شیء غیر
+		black.
+		</p>
+	 
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>
+		شدۀ الضوء المُضِئ. یعدل لون emissive. الافتراضیۀ هى
+		1.
+		</p>
+	 
+		<h3>[property:Texture envMap]</h3>
+		<p>خریطۀ البیئۀ. الافتراضیۀ هى null.</p>
+
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		تحديد ما إذا كان يتم عرض المادة بتظليل مسطح. الافتراضية هى
+		false.
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p> ما إذا كانت المادة متأثرة بالضباب. الافتراضية هى `true`. </p>
+	 
+		<h3>[property:Texture lightMap]</h3>
+		<p>
+		خريطة الضوء. الافتراضية هى null. يتطلب lightMap مجموعة ثانية من UVs.
+		</p>
+	 
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p> شدة الضوء المخبوز. الافتراضية هى 1. </p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد يتضمن اختيارًا قناة ألفا ، عادةً مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		الافتراضية هى null.
+		</p>
+	 
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		القوام لإنشاء خريطة طبيعية. تؤثر قيم RGB على سطح
+		الطبيعي لكل قطعة بكسل وتغير طريقة إضاءة اللون. الخرائط الطبيعية
+		لا تغير شكل السطح الفعلي ، فقط الإضاءة. في
+		في حال كانت المادة تحتوي على خريطة طبيعية باستخدام التقليد المستخدم باليد اليسرى
+		يجب إنكار مكون y من normalScale للتعويض
+		للاختلاف في التوجه.
+		</p>
+	 
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع خريطة الطبيعية. <br /> <br />
+	 
+		الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (الافتراضية) ، و
+		[page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+	 
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		مدى تأثير خريطة الطبيعية على المادة. المدى النموذجي هو 0-1.
+		الافتراضية هى [page:Vector2] مضبوط على (1،1).
+		</p>
+	 
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+		مدى تأثير خريطة البيئة على السطح ؛ انظر أيضًا
+		[page:.combine].
+		</p>
+
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+		مؤشر الانكسار (IOR) للهواء (حوالي 1) مقسومًا على
+		مؤشر الانكسار للمادة. يتم استخدامه مع وضعيات تعيين البيئة
+		[page:Textures THREE.CubeRefractionMapping] و [page:Textures THREE.EquirectangularRefractionMapping].
+		نسبة الانكسار لا يجب أن
+		تتجاوز 1. الافتراضية هى `0.98`.
+		</p>
+	 
+		<h3>[property:Texture specularMap]</h3>
+		<p>خريطة التسليط المستخدمة من قبل المادة. الافتراضية هى null.</p>
+	 
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		عرض الهندسة كإطار سلكي. الافتراضية هى `false` (أى عرض كمضلعات
+		مسطحة).
+		</p>
+	 
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+		تحديد مظهر نهايات الخطوط. القيم الممكنة هي "butt" و "round" و
+		"square". الافتراضية هى 'round'. <br /> <br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+		خاصية ويتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+		تحديد مظهر مفاصل الخطوط. القيم الممكنة هي "round" و "bevel" و
+		"miter". الافتراضية هى 'round'. <br /> <br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+		خاصية ويتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		يتحكم في سُمك الإطار السلكى. الافتراضية هى 1. <br /> <br />
+	 
+		نظرًا للقصور في
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطُرُق المشتركة.</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 160 - 0
docs/api/ar/materials/MeshMatcapMaterial.html

@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يتم تحديد [name] بواسطة نسيج MatCap (أو Lit Sphere) ، الذي يشفر لون المادة والظلال. <br /><br />
+			لا يستجيب [name] للأضواء لأن ملف صورة matcap يشفر الإضاءة المخبوزة. سيطرح ظلًا على كائن يتلقى الظلال (ويعمل قص الظلال) ، ولكنه لن يظلل نفسه أو يتلقى الظلال.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshMatcapMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على خاصية واحدة أو أكثر تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا. <br /><br />
+
+		الاستثناء هو الخاصية [page:Hexadecimal color] ، التي يمكن تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي. يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للحصول على الخصائص المشتركة.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي نسيج رمادي يتحكم في التعتيم عبر
+		السطح (أسود: شفاف تمامًا ؛ أبيض: غير شفاف تمامًا). الافتراضية هى
+		null. <br /> <br />
+	 
+		يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+		موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+		قناة اللون الأخضر عند عيّنة هذا القوام بسبب البت الإضافي
+		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+		التنسيقات. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+		</p>
+	 
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		القوام لإنشاء خريطة بروز. تُعيَّن قِيَمُ الأبْيَضِ والأسْوَدِ إلى
+		عُمْقٍ مُدْرَكٍ بالنسبة للأضواء. لا يؤثر Bump في الواقع
+		هندسة الكائن ، فقط الإضاءة. إذا تم تعريف خريطة طبيعية
+		سيتم تجاهل هذا.
+		</p>
+	 
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		مدى تأثير خريطة البروز على المادة. المدى النموذجي هو 0-1.
+		الافتراضية هى 1.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p> [page:Color] المادة ، افتراضيًا مضبوط على أبيض (0xffffff). </p>
+	 
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		يؤثر خريطة التشوه على موضع رؤوس الشبكة. على عكس
+		الخرائط الأخرى التي تؤثر فقط على الضوء والظل من المادة
+		يمكن للرؤوس المشوهة أن تلقي ظلالًا ، وتحجب الأشياء الأخرى ، وغيرها
+		يعمل كهندسة حقيقية. نسيج التشوه هو صورة حيث القيمة
+		من كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد ، و
+		إعادة تحديد مواقع ، رؤوس الشبكة.
+		</p>
+
+		<h3>[خاصية:Float displacementScale]</h3>
+		<p>
+		كم يؤثر خريطة التشويه على الشبكة (حيث اللون الأسود لا يوجد تشويه ، واللون الأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه ، لا يتم تطبيق هذه القيمة. الافتراضي هو 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشوه على رؤوس شبكة المصفوفات.
+		بدون تعيين خريطة التشوه ، لا يتم تطبيق هذه القيمة. الافتراضية هى 0.
+		</p>
+	 
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		تحديد ما إذا كان يتم عرض المادة بتظليل مسطح. الافتراضية هى
+		false.
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p> ما إذا كانت المادة متأثرة بالضباب. الافتراضية هى `true`. </p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد يتضمن اختيارًا قناة ألفا ، عادةً مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		الافتراضية هى null. يتم تعديل لون خريطة القوام بواسطة
+		diffuse [page:.color].
+		</p>
+	 
+		<h3>[property:Texture matcap]</h3>
+		<p>خريطة matcap. الافتراضية هى null.</p>
+	 
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		القوام لإنشاء خريطة طبيعية. تؤثر قيم RGB على سطح
+		الطبيعي لكل قطعة بكسل وتغير طريقة إضاءة اللون. الخرائط الطبيعية
+		لا تغير شكل السطح الفعلي ، فقط الإضاءة. في
+		في حال كانت المادة تحتوي على خريطة طبيعية باستخدام التقليد المستخدم باليد اليسرى
+		يجب إنكار مكون y من normalScale للتعويض
+		للاختلاف في التوجه.
+		</p>
+	 
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع خريطة الطبيعية. <br /> <br />
+	 
+		الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (الافتراضية) ، و
+		[page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+	 
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		مدى تأثير خريطة الطبيعية على المادة. المدى النموذجي هو 0-1.
+		الافتراضية هى [page:Vector2] مضبوط على (1،1).
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطُرُق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 121 - 0
docs/api/ar/materials/MeshNormalMaterial.html

@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">مادة تقوم بتعيين المتجهات الطبيعية إلى ألوان RGB.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshNormalMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على خاصية واحدة أو أكثر تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للحصول على الخصائص المشتركة.</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		النسيج لإنشاء خريطة بامب. تقوم القيم السوداء والبيضاء بتعيين العمق المتصور فيما يتعلق بالأضواء. لا يؤثر البامب فعليًا على هندسة الكائن ، فقط على الإضاءة. إذا تم تعريف خريطة طبيعية ، سيتم تجاهل هذا.
+		</p>
+
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		كم يؤثر خريطة البامب على المادة. المدى النموذجي هو 0-1. الافتراضي هو 1.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		تؤثر خريطة التشويه على موضع رؤوس الشبكة. على عكس الخرائط الأخرى التي تؤثر فقط على ضوء وظل المادة ، يمكن للرؤوس المزحزحة أن تلقي ظلالًا وتحجب كائنات أخرى وتتصرف بطرق أخرى كهندسة حقيقية. نسيج التشويه هو صورة حيث يتم تعيين قيمة كل بكسل (الأبيض هو الأعلى) ضد وإعادة تحديد موضع رؤوس الشبكة.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		كم يؤثر خريطة التشوه على الشبكة (حيث اللون الأسود لا يوجد تشويه ، واللون الأبيض هو التشويه الأقصى). بدون تعیین خریطۀ تشویه، لا یتم تطبیق هذه القیمۀ. الافتراضی هو 1.
+		</p>
+
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشويه على رؤوس الشبكة. بدون تعيين خريطة تشويه ، لا يتم تطبيق هذه القيمة. الافتراضي هو 0.
+		</p>
+		
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		تحديد ما إذا كان يتم عرض المادة بظلال مسطحة. الافتراضي هو خطأ.
+		</p>
+		
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `false`.</p>
+		
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		النسيج لإنشاء خريطة طبيعية. تؤثر قيم RGB على السطح الطبيعي لكل قطعة بكسل وتغير طريقة إضاءة اللون. لا تغير خرائط العادية شكل السطح الفعلي ، فقط الإضاءة. في حال كانت المادة تحتوي على خريطة طبيعية مؤلفة باستخدام اتفاقية اليد اليسرى ، يجب إنكار مكون y من normalScale للتعويض عن اختلاف التوجه.
+		</p>
+		
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع خريطة العادية. <br /><br />
+		
+		الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (افتراضي) ، و [page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+		
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		كم يؤثر خريطة العادية على المادة. المدى النموذجي هو 0-1. الافتراضي هو [page:Vector2] مضبوط على (1،1).
+		</p>
+		
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		عرض الهندسة كإطار سلكي. الافتراضي هو false (أي عرض كظلال ناعمة).
+		</p>
+		
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		التحكم في سمك الإطار السلكى. الافتراضى هو 1.<br /><br />
+		
+		بسبب قصور
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى فئة [page:Material] الأساسية للحصول على طرق شائعة.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 284 - 0
docs/api/ar/materials/MeshPhongMaterial.html

@@ -0,0 +1,284 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة للأسطح اللامعة مع تسليط الضوء على التجمعات. <br /><br />
+			
+		تستخدم المادة نموذجًا غير مستندًا إلى الفيزياء
+		[link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]
+		لحساب الانعكاس. على عكس نموذج Lambertian المستخدم في
+		[page:MeshLambertMaterial] يمكن لهذا محاكاة الأسطح اللامعة مع تسليط الضوء على التجمعات (مثل الخشب المصقول). يستخدم [name] تظليل لكل قطعة. <br /><br />
+			
+		سيكون الأداء عمومًا أكبر عند استخدام هذه المادة على
+		[page:MeshStandardMaterial] أو [page:MeshPhysicalMaterial] ، بتكلفة بعض الدقة الرسومية.
+		</p>
+			
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshPhongMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن بواحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+
+		الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي قوام رمادي يتحكم في التعتيم عبر
+		السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضي هو
+		null.<br /><br />
+		
+		يتم استخدام لون القوام فقط، مع تجاهل قناة الألفا إذا كانت موجودة
+		. بالنسبة لقوام RGB و RGBA، سيستخدم [page:WebGLRenderer WebGL] renderer
+		قناة اللون الأخضر عند أخذ عينات من هذا القوام بسبب البت الإضافي
+		من الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة
+		. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+		</p>
+		
+		<h3>[property:Texture aoMap]</h3>
+		<p>
+		يتم استخدام قناة اللون الأحمر من هذه القوام كخريطة التظليل المحيط.
+		الافتراضي هو null. يتطلب aoMap مجموعة ثانية من UVs.
+		</p>
+		
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>
+		شدة تأثير التظليل المحيط. الافتراضي هو 1. صفر هو لا
+		تأثير التظليل.
+		</p>
+		
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		القوام لإنشاء خريطة بروز. تُعيَّن قِيَمُ الأبْيَضِ والأسْودِ إلى
+		العُمْقِ المُدْرَكِ في علاقة بالأضْواءِ. لا يؤثر التَّبَّرُ فِعْلِيًّا على
+		هندسة الكائن، فقط على الإضاءة. إذا تم تعريف خريطة عادية
+		سيتم تجاهل هذا.
+		</p>
+		
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		مدى تأثير خريطة التببر على المادة. المدى النموذجى هو 0-1.
+		الافتراضى هو 1.
+		</p>
+		
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] المادة، بشكل افتراضى مضبوط على أبيض (0xffffff).</p>
+		
+		<h3>[property:Integer combine]</h3>
+		<p>
+		كيفية دمج نتائج لون السطح مع خرائط البيئة، إذا كانت موجودة.<br /><br />
+		
+		الخيارات هى [page:Materials THREE.MultiplyOperation] (الافتراضى)،
+		[page:Materials THREE.MixOperation]، [page:Materials THREE.AddOperation].
+		إذا تم اختيار mix، يُستخدَم [page:.reflectivity] للدمج بين
+		اللونَيْنِ.
+		</p>
+
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		تؤثر خريطة التشويه على موضع رؤوس الشبكة. على عكس
+		الخرائط الأخرى التي تؤثر فقط على الضوء والظل للمادة
+		يمكن للرؤوس المشوهة أن تلقي ظلالًا، وتحجب كائنات أخرى، وغير ذلك
+		تعمل كهندسة حقيقية. خريطة التشويه هي صورة حيث قيمة
+		كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد، و
+		إعادة تحديد مواقع، رؤوس الشبكة.
+		</p>
+		
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		مدى تأثير خريطة التشويه على الشبكة (حيث الأسود هو لا
+		تشويه، والأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه،
+		لا يتم تطبيق هذه القيمة. الافتراضي هو 1.
+		</p>
+		
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشويه على رؤوس شبكة المادة.
+		بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضي هو 0.
+		</p>
+		
+		<h3>[property:Color emissive]</h3>
+		<p>
+		لون المادة المُضاء (الضوء)، في الأساس لون صلب
+		غير متأثر بالإضاءة الأخرى. الافتراضي هو أسود.
+		</p>
+		
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		تعيين خريطة المُضاء (التوهج). الافتراضي هو null. يتم تعديل لون خريطة المُضاء بواسطة
+		اللون المُضاء وشدة المُضاء. إذا كان لديك خريطة مُضاء، تأكد من تعديل
+		اللون المُضاء إلى شئ غير أسود.
+		</p>
+		
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>
+		شدة الضوء المُضاء. يعدل اللون المُضاء. الافتراضي هو
+		1.
+		</p>
+		
+		<h3>[property:Texture envMap]</h3>
+		<p>خريطة البيئة. الافتراضية هى null.</p>
+		
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		تحديد ما إذا كان يتم تصدير المادة بظلال مسطحة. الافتراضى هو
+		false.
+		</p>
+		
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضى هو `true`.</p>
+		
+		<h3>[property:Texture lightMap]</h3>
+		<p>
+		خرائط الإضاءة. الافتراضى هى null. يتطلب lightMap مجموعة ثانية من UVs.
+		</p>
+
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>شدة الضوء المخبوز. الافتراضي هو 1.</p>
+		
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد تشمل اختياريًا قناة ألفا، عادةً ما تكون مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		الافتراضي هو null. يتم تعديل لون خريطة القوام بواسطة
+		اللون المنتشر [page:.color].
+		</p>
+		
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		القوام لإنشاء خريطة عادية. تؤثر قيم RGB على السطح
+		العادي لكل جزء بكسل وتغير طريقة إضاءة اللون. لا تغير خرائط العادية
+		شكل السطح الفعلي، فقط الإضاءة. في حال كانت المادة تحتوي على خريطة عادية مصممة باستخدام المعايير
+		اليد اليسرى، يجب إنكار مكون y من normalScale للتعويض
+		عن اختلاف المعايير.
+		</p>
+		
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع خريطة العادية.<br /><br />
+		
+		الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (الافتراضي)، و
+		[page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+		
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		مدى تأثير خريطة العادية على المادة. المدى النموذجي هو 0-1.
+		الافتراضي هو [page:Vector2] مضبوط على (1,1).
+		</p>
+		
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+		مدى تأثير خريطة البيئة على السطح؛ انظر أيضًا
+		[page:.combine]. قيمة الافتراضية هي 1 والمدى الصحيح هو بين 0
+		(لا انعكاسات) و 1 (انعكاسات كاملة).
+		</p>
+		
+		<h3>[property:Float refractionRatio]</h3>
+		<p>
+		مؤشر انكسار (IOR) الهواء (حوالى 1) مقسومًا على
+		مؤشر انكسار المادة. يستخدم مع وضع خرائط البيئة [page:Textures THREE.CubeRefractionMapping] و [page:Textures THREE.EquirectangularRefractionMapping].
+		لا يجب أن يتجاوز نسبة الانكسار 1. الافتراضي هو `0.98`.
+		</p>
+		
+		<h3>[property:Float shininess]</h3>
+		<p>
+		مدى لمعان [page:.specular] highlight؛ قيمة أعلى تعطي
+		highlight أكثر حدة. الافتراضي هو `30`.
+		</p>
+
+		<h3>[property:Color specular]</h3>
+		<p>
+		لون المواد العاكس. الافتراضي هو [page:Color] مضبوط على
+		`0x111111` (رمادي داكن جدًا).<br /><br />
+		
+		هذا يحدد مدى لمعان المادة ولون لمعانها.
+		</p>
+		
+		<h3>[property:Texture specularMap]</h3>
+		<p>
+		قيمة خريطة العاكس تؤثر على كل من مدى مساهمة تسليط الضوء على السطح العاكس ومدى تأثير خريطة البيئة على السطح. الافتراضي هو null.
+		</p>
+		
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		تصيير الهندسة كإطار سلكي. الافتراضي هو `false` (أي تصيير كمضلعات مسطحة).
+		</p>
+		
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+		تحديد مظهر نهايات الخطوط. القيم الممكنة هي "butt" و "round" و "square". الافتراضي هو 'round'.<br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap خاصية lineCap لـ 2D Canvas]
+		ويتم تجاهله من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+		تحديد مظهر مفاصل الخطوط. القيم الممكنة هي "round" و "bevel" و "miter". الافتراضي هو 'round'.<br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin خاصية lineJoin لـ 2D Canvas]
+		ويتم تجاهله من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		التحكم في سُمك الإطار السلكي. الافتراضي هو 1.<br /><br />
+		
+		بسبب قيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى فئة [page:Material] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 266 - 0
docs/api/ar/materials/MeshPhysicalMaterial.html

@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr; [page:MeshStandardMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		تمديد لـ [page:MeshStandardMaterial]، يوفر خصائص تقديم
+		أكثر تقدمًا على أساس الفيزياء:
+		</p>
+			
+		<ul>
+			<li>
+				<b>طلاء شفاف:</b> بعض المواد - مثل طلاءات السيارات والألياف الكربونية و
+				الأسطح الرطبة - تتطلب طبقة شفافة عاكسة فوق طبقة أخرى
+				قد تكون غير منتظمة أو خشنة. يقرب الطلاء الشفاف هذا التأثير،
+				دون الحاجة إلى سطح شفاف منفصل.
+			</li>
+			<li>
+				<b>الشفافية المستندة إلى الفيزياء:</b> إحدى قيود
+				[page:Material.opacity .opacity] هو أن المواد شديدة الشفافية
+				أقل انعكاسية. يوفر [page:.transmission] المستند إلى الفيزياء
+				خيارًا أكثر واقعية للأسطح الشفافة الرقيقة مثل الزجاج.
+			</li>
+			<li>
+				<b>انعكاسية متقدمة:</b> انعكاسية أكثر مرونة للمواد غير المعدنية.
+			</li>
+			<li>
+				<b>اللمعان:</b> يمكن استخدامه لتمثيل مواد القماش والأقمشة.
+			</li>
+		</ul>
+			
+		<p>
+		نتيجة لهذه الميزات المعقدة للظلال، يحتوي MeshPhysicalMaterial على
+		تكلفة أداء أعلى، لكل بكسل، من مواد three.js الأخرى. معظم
+		التأثيرات معطلة افتراضيًا، وتضيف التكلفة كما يتم تمكينها. للحصول على أفضل النتائج، حدد دائمًا [page:.envMap خريطة بيئة] عند استخدام
+		هذه المادة.
+		</p>
+			
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshPhysicalMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_materials_physical_clearcoat materials / physical / clearcoat]<br />
+		[example:webgl_loader_gltf_sheen loader / gltf / sheen]<br />
+		[example:webgl_materials_physical_transmission materials / physical / transmission]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن بواحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material] و
+		[page:MeshStandardMaterial]) هنا.<br /><br />
+
+		الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر إلى فئات [page:Material] و [page:MeshStandardMaterial] الأساسية للخصائص المشتركة.
+		</p>
+
+		<h3>[property:Color attenuationColor]</h3>
+		<p>
+		اللون الذي يتحول إليه الضوء الأبيض بسبب الامتصاص عند الوصول إلى
+		مسافة التخفيف. الافتراضى هو `white` (0xffffff).
+		</p>
+
+		<h3>[property:Float attenuationDistance]</h3>
+		<p>
+		كثافة الوسط المعطاة كمتوسط ​​المسافة التي يسافرها الضوء في
+		الوسط قبل التفاعل مع جزيئة. يتم إعطاء القيمة في وحدات مساحة العالم
+		، ويجب أن تكون أكبر من الصفر. الافتراضي هو `Infinity`.
+		</p>
+		
+		<h3>[property:Float clearcoat]</h3>
+		<p>
+		يمثل شدة طبقة الطلاء الشفاف، من `0.0` إلى `1.0`. استخدم
+		خصائص طلاء شفاف ذات الصلة لتمكين المواد متعددة الطبقات التي لديها
+		طبقة رقيقة شفافة فوق الطبقة الأساسية. الافتراضى هو `0.0`.
+		</p>
+		
+		<h3>[property:Texture clearcoatMap]</h3>
+		<p>
+		تتم ضرب قناة اللون الأحمر من هذه القوام ضد [page:.clearcoat]،
+		للتحكم في شدة طلاء لكل بكسل. الافتراضى هى `null`.
+		</p>
+		
+		<h3>[property:Texture clearcoatNormalMap]</h3>
+		<p>
+		يمكن استخدامه لتمكين المعايير المستقلة لطبقة الطلاء الشفاف.
+		الافتراضى هى `null`.
+		</p>
+		
+		<h3>[property:Vector2 clearcoatNormalScale]</h3>
+		<p>
+		مدى تأثير [page:.clearcoatNormalMap] على طبقة الطلاء الشفاف، من
+		`(0,0)` إلى `(1,1)`. الافتراضى هو `(1,1)`.
+		</p>
+		
+		<h3>[property:Float clearcoatRoughness]</h3>
+		<p>
+		خشونة طبقة الطلاء الشفاف، من `0.0` إلى `1.0`. الافتراضى هو `0.0`.
+		</p>
+		
+		<h3>[property:Texture clearcoatRoughnessMap]</h3>
+		<p>
+		تتم ضرب قناة اللون الأخضر من هذه القوام ضد
+		[page:.clearcoatRoughness]، للتحكم في خشونة طلاء لكل بكسل.
+		الافتراضى هى `null`.
+		</p>
+		
+		<h3>[property:Object defines]</h3>
+		<p>
+		كائن من نوع:
+		<code>
+		{ 
+			'STANDARD': '',
+			'PHYSICAL': '', 
+		};
+		</code>
+		
+		يستخدم هذا بواسطة [page:WebGLRenderer] لتحديد المُظَهِّرات.
+		</p>
+		
+
+		<h3>[property:Float ior]</h3>
+		<p>
+			Index-of-refraction for non-metallic materials, from `1.0` to `2.333`.
+			Default is `1.5`.<br />
+		</p>
+
+		<h3>[property:Float reflectivity]</h3>
+		<p>
+		درجة الانعكاسية، من `0.0` إلى `1.0`. الافتراضي هو `0.5`، الذي
+		يتوافق مع مؤشر انكسار 1.5.<br />
+		
+		هذا ينمذج انعكاسية المواد غير المعدنية. ليس له تأثير
+		عندما يكون [page:MeshStandardMaterial.metalness metalness] هو `1.0`
+		</p>
+		
+		<h3>[property:Float sheen]</h3>
+		<p>
+		شدة طبقة اللمعان، من `0.0` إلى `1.0`. الافتراضي هو `0.0`.
+		</p>
+		
+		<h3>[property:Float sheenRoughness]</h3>
+		<p>خشونة طبقة اللمعان، من `0.0` إلى `1.0`. الافتراضي هو `1.0`.</p>
+		
+		<h3>[property:Texture sheenRoughnessMap]</h3>
+		<p>
+		تتم ضرب قناة الألفا من هذه القوام ضد
+		[page:.sheenRoughness]، للتحكم في خشونة اللمعان لكل بكسل.
+		الافتراضى هى `null`.
+		</p>
+		
+		<h3>[property:Color sheenColor]</h3>
+		<p>لون اللمعان. الافتراضي هو `0xffffff`، أبيض.</p>
+		
+		<h3>[property:Texture sheenColorMap]</h3>
+		<p>
+		تتم ضرب قنوات RGB من هذه القوام ضد
+		[page:.sheenColor]، للتحكم في لون اللمعان لكل بكسل. الافتراضي
+		هو `null`.
+		</p>
+		
+		<h3>[property:Float specularIntensity]</h3>
+		<p>
+		عدد عائم يُقيِّس كمية الانعكاس العاكس للأشياء غير المعدنية فقط.
+		عند تعيينه على صفر، يصبح النموذج فعالًا كـ Lambertian. من `0.0` إلى
+		`1.0`. الافتراضى هو `0.0`.
+		</p>
+		
+		<h3>[property:Texture specularIntensityMap]</h3>
+		<p>
+		تتم ضرب قناة الألفا من هذه القوام ضد
+		[page:.specularIntensity]، للتحكم في شدة الانعكاس العاكس لكل بكسل.
+		الافتراضى هى `null`.
+		</p>
+
+		<h3>[property:Color specularColor]</h3>
+		<p>
+		[page:Color] يلون الانعكاس العاكس عند التعرض الطبيعي للأشياء غير المعدنية فقط. الافتراضي هو `0xffffff`، أبيض.
+		</p>
+		
+		<h3>[property:Texture specularColorMap]</h3>
+		<p>
+		تتم ضرب قنوات RGB من هذه القوام ضد
+		[page:.specularColor]، للتحكم في لون العاكس لكل بكسل. الافتراضي
+		هو `null`.
+		</p>
+		
+		<h3>[property:Float thickness]</h3>
+		<p>
+		سُمْكُ الحجمِ تحتَ السطحِ. يُعطى القيمةُ في
+		مساحة التنسيق للشبكة. إذا كانت القيمة 0 فإن المادة
+		رقيقة الجدران. وإلا فإن المادة هي حدود حجم. الافتراضي هو `0`.
+		</p>
+		
+		<h3>[property:Texture thicknessMap]</h3>
+		<p>
+		قوام يحدد السُمْكَ، مخزن في قناة G. سيتم ضرب هذا بـ
+		[page:.thickness]. الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Float transmission]</h3>
+		<p>
+		درجة الإرسال (أو الشفافية البصرية)، من `0.0` إلى `1.0`.
+		الافتراضي هو `0.0`.<br />
+		
+		المواد البلاستيكية أو الزجاجية رقيقة أو شفافة أو نصف شفافة تظل
+		عاكسة إلى حد كبير حتى لو كانت مُرسِلَة بالكامل. يمكن استخدام خاصية الإرسال لنمذجة هذه المواد.<br />
+		
+		عندما يكون الإرسال غير صفر، يجب تعيين [page:Material.opacity opacity] إلى `0`.
+		</p>
+		
+		<h3>[property:Texture transmissionMap]</h3>
+		<p>
+		تتم ضرب قناة اللون الأحمر من هذه القوام ضد
+		[page:.transmission]، للتحكم في الشفافية البصرية لكل بكسل.
+		الافتراضى هى `null`.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>
+		انظر إلى فئات [page:Material] و [page:MeshStandardMaterial] الأساسية للطرق المشتركة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 312 - 0
docs/api/ar/materials/MeshStandardMaterial.html

@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة قائمة على الفيزياء القياسية، باستخدام سير عمل Metallic-Roughness.<br /><br />
+			
+		أصبح التقديم القائم على الفيزياء (PBR) مؤخرًا المعيار في العديد من
+		تطبيقات 3D، مثل
+		[link:https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/ Unity]،
+		[link:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/ Unreal] و
+		[link:http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017 3D Studio Max].<br /><br />
+			
+		هذا النهج يختلف عن النهج الأقدم في أنه بدلاً من استخدام
+		تقريبات لطريقة تفاعل الضوء مع سطح، يتم استخدام نموذج صحيح فيزيائيًا. الفكرة هي أنه، بدلاً من تعديل
+		المواد لتبدو جيدة تحت إضاءة محددة، يمكن إنشاء مادة
+		سوف تتفاعل 'بشكل صحيح' تحت جميع سيناريوهات الإضاءة.<br /><br />
+			
+		عمليًا يعطي هذا نتيجة أكثر دقة وواقعية من
+		[page:MeshLambertMaterial] أو [page:MeshPhongMaterial]، بتكلفة
+		أن يكون أكثر تكلفة حسابية قليلًا. يستخدم [name] التظليل لكل جزء.<br /><br />
+			
+		لاحظ أنه للحصول على أفضل النتائج يجب دائمًا تحديد [page:.envMap خريطة بيئة]
+		عند استخدام هذه المادة.<br /><br />
+			
+		لمقدمة غير فنية لمفهوم PBR وكيفية إعداد مادة PBR، تحقق من هذه المقالات من قِبَل الأشخاص في
+		[link:https://www.marmoset.co marmoset]:
+		</p>
+		<ul>
+			<li>
+			[link:https://www.marmoset.co/posts/basic-theory-of-physically-based-rendering/ Basic Theory of Physically Based Rendering]
+			</li>
+			<li>
+			[link:https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/ Physically Based Rendering and You Can Too]
+			</li>
+		</ul>
+		<p>
+		التفاصيل الفنية للنهج المستخدم في three.js (ومعظم نظم PBR الأخرى)
+		يمكن العثور على هذا
+		[link:https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf ورقة من Disney]
+		(pdf)، بواسطة Brent Burley.
+		</p>
+			
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshStandardMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن بواحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+
+		الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة الألفا هي قوام رمادي يتحكم في الشفافية عبر
+		السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضى هى null.<br /><br />
+
+		يُستخدَم فقط لون القوام، متجاهلاً قناة الألفا إذا كانت واحدة
+		موجود. بالنسبة لقوام RGB و RGBA، سوف يستخدم [page:WebGLRenderer WebGL] renderer
+		قناة اللون الأخضر عند أخذ عينات من هذه القوام بسبب البت الإضافي
+		الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة.
+		ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+		</p>
+
+		<h3>[property:Texture aoMap]</h3>
+		<p>
+		يُستخدَم قناة اللون الأحمر من هذه القوام كخريطة احتجاب محيط.
+		الافتراضى هى null. يتطلب aoMap مجموعة ثانية من UVs.
+		</p>
+		
+		<h3>[property:Float aoMapIntensity]</h3>
+		<p>
+		شدة تأثير الاحتجاب المحيط. الافتراضى هو 1. الصفر هو لا
+		تأثير احتجاب.
+		</p>
+		
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		القوام لإنشاء خريطة بروز. تُعين قِيَمُ الأبيض والأسود إلى
+		العمق المدرك فيما يتعلق بالأضواء. لا يؤثر البروز فعليًا
+		على هندسة الكائن، فقط الإضاءة. إذا تم تعريف خريطة عادية
+		سيتم تجاهل هذا.
+		</p>
+		
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		مدى تأثير خريطة البروز على المادة. المدى النموذجى هو 0-1.
+		الافتراضى هو 1.
+		</p>
+		
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] المادة، بشكل افتراضى مضبوط على أبيض (0xffffff).</p>
+		
+		<h3>[property:Object defines]</h3>
+		<p>
+		كائن من نوع:
+		<code> { 'STANDARD': '' }; </code>
+		
+		يستخدم هذا بواسطة [page:WebGLRenderer] لتحديد المُظَهِّرات.
+		</p>
+		
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		تؤثر خريطة التشويه على موضع رؤوس شبكة المادة. على عكس
+		خرائط أخرى التي تؤثر فقط على الضوء والظل للمادة
+		الرؤوس المشوهة يمكن أن تلقي ظلالًا، وتحجب كائنات أخرى، وغير ذلك
+		العمل كهندسة حقيقية. خريطة التشويه هي صورة حيث قِيَمَةُ كل بكسل (الأبيض هو الأعلى) مُعَيَّنَةٌ ضد، و
+		إعادة تحديد مواقع، رؤوس الشبكة.
+		</p>
+
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		مدى تأثير خريطة التشويه على الشبكة (حيث اللون الأسود هو لا
+		التشويه، والأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه،
+		لا يتم تطبيق هذه القيمة. الافتراضى هو 1.
+		</p>
+		
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قِيَمِ خريطة التشويه على رؤوس شبكة المادة.
+		بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضى هو 0.
+		</p>
+		
+		<h3>[property:Color emissive]</h3>
+		<p>
+		لون المادة المُضِيءِ (الضوء)، عبارة عن لون صلب
+		غير متأثر بإضاءة أخرى. الافتراضى هو أسود.
+		</p>
+		
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		تعيين خريطة مُضِيئَة (مُضِيئَة). الافتراضى هى null. يتم تعديل لون خريطة المُضِيئَة
+		بواسطة اللون المُضِيئَ وشدة المُضِيئَ. إذا كان لديك
+		خريطة مُضِيئَ، تأكد من تعيين اللون المُضِيئَ إلى شيء آخر
+		غير أسود.
+		</p>
+		
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>
+		شدة الضوء المُضِيئَ. يعدل اللون المُضِيئَ. الافتراضى هو
+		1.
+		</p>
+		
+		<h3>[property:Texture envMap]</h3>
+		<p>
+		خريطة البيئة. لضمان التقديم الصحيح فيزيائًا، يجب عليك
+		فقط إضافة خرائط بيئية تم معالجتها مسبقًا بـ
+		[page:PMREMGenerator]. الافتراضى هى null.
+		</p>
+		
+		<h3>[property:Float envMapIntensity]</h3>
+		<p>تقوم بتحجيم تأثير خريطة البيئة عن طريق ضرب لونها.</p>
+		
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		تحديد ما إذا كان يتم تصدير المادة بظلال مسطحة. الافتراضى هو
+		false.
+		</p>
+
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضى هو `true`.</p>
+		
+		<h3>[property:Boolean isMeshStandardMaterial]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين من نوع [name].</p>
+		
+		<h3>[property:Texture lightMap]</h3>
+		<p>
+		خريطة الضوء. الافتراضى هى null. يتطلب lightMap مجموعة ثانية من UVs.
+		</p>
+		
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>شدة الضوء المخبوز. الافتراضى هو 1.</p>
+		
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد تشمل اختياريًا قناة ألفا، عادةً مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		الافتراضى هى null. يتم تعديل لون خريطة القوام بواسطة اللون المُشْتَتِّ [page:.color].
+		</p>
+		
+		<h3>[property:Float metalness]</h3>
+		<p>
+		مدى شبه المادة بالمعدن. المواد غير المعدنية مثل الخشب
+		أو الحجر استخدم 0.0، المعدن استخدم 1.0، مع عدم وجود شيء (عادة) في الوسط.
+		الافتراضى هو 0.0. يمكن استخدام قيمة بين 0.0 و 1.0 للحصول على مظهر معدن صدئ.
+		إذا تم توفير metalnessMap أيضًا، تتم ضرب كلا القيمتين.
+		</p>
+		
+		<h3>[property:Texture metalnessMap]</h3>
+		<p>
+		يُستخدَم قناة اللون الأزرق من هذه القوام لتغيير شبه المادة
+		بالمعدن.
+		</p>
+		
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		القوام لإنشاء خريطة عادية. تؤثر قِيَمُ RGB على سطح
+		الطبيعية لكل جزء بكسل وتغير طريقة إضاءة اللون. خرائط عادية
+		لا تغير شكل السطح الفعلي، فقط الإضاءة. في حال كانت المادة لديها خريطة عادية باستخدام التقليد
+		الذي يستخدم يدًا يسرى، يجب إنكار مكوِّن y من normalScale للتعويض
+		على التفاوت في التسلسل.
+		</p>
+		
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع خريطة عادية.<br /><br />
+		
+		الخيارات هى [page:constant THREE.TangentSpaceNormalMap] (الافتراضى)، و
+		[page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+		
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		مدى تأثير خريطة عادية على المادة. المدى النموذجى هو 0-1.
+		الافتراضى هو [page:Vector2] مضبوط على (1,1).
+		</p>
+
+		<h3>[property:Float roughness]</h3>
+		<p>
+		مدى خشونة المادة. 0.0 يعني انعكاس مرآة ناعم، 1.0
+		يعني تشتت كامل. الافتراضي هو 1.0. إذا تم توفير roughnessMap أيضًا،
+		تتم ضرب كلا القيمتين.
+		</p>
+		
+		<h3>[property:Texture roughnessMap]</h3>
+		<p>
+		يُستخدَم قناة اللون الأخضر من هذه القوام لتغيير خشونة
+		المادة.
+		</p>
+		
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		تصدير الهندسة كإطار سلكي. الافتراضى هو `false` (أي تصدير كأشكال مسطحة).
+		</p>
+		
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+		تحديد مظهر نهايات الخطوط. القيم الممكنة هى "butt"، "round" و
+		"square". الافتراضى هو 'round'.<br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
+		خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+		تحديد مظهر مفاصل الخطوط. القيم الممكنة هى "round"، "bevel" و
+		"miter". الافتراضى هو 'round'.<br /><br />
+		
+		هذا يتوافق مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
+		خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.
+		</p>
+		
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		يتحكم في سُمْكِ الإطارِ السلكِيِّ. الافتراضى هو 1.<br /><br />
+		
+		بسبب قيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات سيظل linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى فئة [page:Material] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 235 - 0
docs/api/ar/materials/MeshToonMaterial.html

@@ -0,0 +1,235 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">مادة تنفذ التظليل الكرتوني.</div>
+
+		<iframe
+			id="scene"
+			src="scenes/material-browser.html#MeshToonMaterial"
+		></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>أمثلة (Examples)</h2>
+ 		<p>
+ 		[example:webgl_materials_toon materials / toon]
+ 		</p>
+
+ 		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>[name]( [param:Object parameters] )</h3>
+ 		<p>
+ 		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+ 		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ 		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+ 		تمريرها هنا.<br /><br />
+
+ 		الاستثناء هو خاصية [page:Hexadecimal color] ، التي يمكن
+ 		تمريرها كسلسلة ست عشرية وهي `0xffffff` (الأبيض) بشكل افتراضي.
+ 		يتم استدعاء [page:Color.set]( color ) داخليًا.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Texture alphaMap]</h3>
+ 		<p>
+ 		خريطة ألفا هي ملمس رمادي يتحكم في التعتيم عبر
+ 		السطح (الأسود: شفافية كاملة ؛ الأبيض: غير شفاف تمامًا). الافتراضي هو
+ 		null.<br /><br />
+
+ 		يتم استخدام لون الملمس فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+ 		موجود. بالنسبة لقوام RGB و RGBA ، سوف [page:WebGLRenderer WebGL] renderer
+ 		استخدام القناة الخضراء عند أخذ عينات من هذه الملمس بسبب البت الإضافي
+ 		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+ 		التنسيقات. ستعمل الملمسات التي تحتوي على إضاءة فقط وإضاءة / ألفا أيضًا
+ 		كما هو متوقع.
+ 		</p>
+
+ 		<h3>[property:Texture aoMap]</h3>
+ 		<p>
+ 		يستخدم القناة الحمراء من هذه الملمس كخريطة احتجاب الجو.
+ 		الافتراضي هو null. يتطلب aoMap مجموعة ثانية من UVs.
+ 		</p>
+
+ 		<h3>[property:Float aoMapIntensity]</h3>
+ 		<p>
+ 		شدة تأثير احتجاب الجو. الافتراضي هو 1. صفر لا
+ 		تأثير احتجاب.
+ 		</p>
+
+		<h3>[property:Texture bumpMap]</h3>
+		<p>
+		الملمس لإنشاء خريطة البثرة. تتوافق القيم السوداء والبيضاء مع
+		العمق المتصور فيما يتعلق بالأضواء. لا يؤثر البثرة فعليًا
+		هندسة الكائن ، فقط الإضاءة. إذا تم تحديد خريطة طبيعية
+		سيتم تجاهل هذا.
+		</p>
+	 
+		<h3>[property:Float bumpScale]</h3>
+		<p>
+		مدى تأثير خريطة البثرة على المادة. المدى النموذجي هو 0-1.
+		الافتراضي هو 1.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] المادة ، بشكل افتراضي مضبوط على الأبيض (0xffffff).</p>
+	 
+		<h3>[property:Texture displacementMap]</h3>
+		<p>
+		تؤثر خريطة التشوه على موضع رؤوس شبكة الشبكة. على عكس
+		خرائط أخرى التي تؤثر فقط على الضوء والظل للمادة
+		يمكن للرؤوس المشتتة أن تلقي ظلالًا ، وتحجب كائنات أخرى ، وغيرها
+		يعمل كهندسة حقيقية. خريطة التشوه هي صورة حيث قيمة
+		كل بكسل (الأبيض هو الأعلى) يتم تعيينه ضد ، و
+		إعادة تحديد مواقع رؤوس الشبكة.
+		</p>
+	 
+		<h3>[property:Float displacementScale]</h3>
+		<p>
+		مدى تأثير خريطة التشوه على الشبكة (حيث يكون الأسود لا
+		التشوه ، والأبيض هو التشوه الأقصى). بدون تشوه
+		تعيين خريطة ، لا يتم تطبيق هذه القيمة. الافتراضي هو 1.
+		</p>
+	 
+		<h3>[property:Float displacementBias]</h3>
+		<p>
+		إزاحة قيم خريطة التشوه على رؤوس شبكة الشبكات.
+		بدون تعيين خريطة التشوه ، لا يتم تطبيق هذه القيمة. الافتراضية هى 0.
+		</p>
+	 
+		<h3>[property:Color emissive]</h3>
+		<p>
+		لون المادة المنبعث (الضوء) ، في جوهره لون صلب
+		غير متأثر بإضاءة أخرى. الافتراضية هى سوداء.
+		</p>
+
+		<h3>[property:Texture emissiveMap]</h3>
+		<p>
+		تعيين الخريطة الانبعاثية (التوهج). الافتراضي هو null. يتم تعديل لون الخريطة الانبعاثية
+		بواسطة اللون الانبعاثي وشدة الانبعاث. إذا كان لديك خريطة انبعاثية ، تأكد من تعيين اللون الانبعاثي على شيء آخر
+		من الأسود.
+		</p>
+	 
+		<h3>[property:Float emissiveIntensity]</h3>
+		<p>
+		شدة الضوء المنبعث. يعدل اللون المنبعث. الافتراضي هو
+		1.
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Texture gradientMap]</h3>
+		<p>
+		خريطة التدرج للتظليل الكرتوني. يجب تعيين
+		[page:Texture.minFilter] و [page:Texture.magFilter] إلى [page:Textures THREE.NearestFilter] 
+		عند استخدام هذا النوع من الملمس. الافتراضي هو `null`.
+		</p>
+	 
+		<h3>[property:Texture lightMap]</h3>
+		<p>
+		خريطة الضوء. الافتراضي هو null. يتطلب lightMap مجموعة ثانية من UVs.
+		</p>
+	 
+		<h3>[property:Float lightMapIntensity]</h3>
+		<p>شدة الضوء المخبوز. الافتراضي هو 1.</p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد تشمل اختياريًا قناة ألفا ، عادةً مجتمعة
+		مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest]. 
+		الافتراضي هو null. يتم تعديل لون خريطة الملمس باللون المنتشر [page:.color].
+		</p>
+	 
+		<h3>[property:Texture normalMap]</h3>
+		<p>
+		الملمس لإنشاء خريطة طبيعية. تؤثر قيم RGB على سطح
+		normal لكل جزء بكسل وتغير طريقة إضاءة اللون. لا تغير خرائط normal شكل السطح فعلًا ، فقط الإضاءة. في
+		في حال كانت المادة تحتوي على خريطة طبيعية باستخدام التقاليد التي يستخدمها يدًا يسارىً
+		يجب إنكار مكوِّن y من normalScale للتعويض عن اختلاف التقاليد.
+		</p>
+	 
+		<h3>[property:Integer normalMapType]</h3>
+		<p>
+		نوع الخريطة الطبيعية. <br /><br />
+	 
+		الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (الافتراضي) ، و
+		[page:constant THREE.ObjectSpaceNormalMap].
+		</p>
+	 
+		<h3>[property:Vector2 normalScale]</h3>
+		<p>
+		مدى تأثير الخريطة الطبيعية على المادة. المدى النموذجي هو 0-1.
+		الافتراضي هو [page:Vector2] مضبوط على (1،1).
+		</p>
+	 
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		تقديم الهندسة كإطار سلكي. الافتراضي هو `false` (أي تقديم كمضلعات مسطحة).
+		</p>
+	 
+		<h3>[property:String wireframeLinecap]</h3>
+		<p>
+		تحديد مظهر نهايات الخط. القيم الممكنة هي "butt" و "round" و
+		"square". الافتراضي هو 'round'.<br /><br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap] 
+		خاصية و يتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:String wireframeLinejoin]</h3>
+		<p>
+		تحديد مظهر مفاصل الخط. القيم الممكنة هي "round" و "bevel" و
+		"miter". الافتراضي هو 'round'.<br /><br />
+	 
+		يتوافق هذا مع
+		[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin] 
+		خاصية و يتم تجاهلها من قبل [page:WebGLRenderer WebGL] renderer.
+		</p>
+	 
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		التحكم في سمك الإطار السلكي. الافتراضي هو 1.<br /><br />
+	 
+		بسبب قيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile] 
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 116 - 0
docs/api/ar/materials/PointsMaterial.html

@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">المادة الافتراضية المستخدمة بواسطة [page:Points].</p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const vertices = [];
+	 
+		for ( let i = 0; i < 10000; i ++ ) {
+			const x = THREE.MathUtils.randFloatSpread( 2000 );
+			const y = THREE.MathUtils.randFloatSpread( 2000 );
+			const z = THREE.MathUtils.randFloatSpread( 2000 );
+	 
+			vertices.push( x, y, z );
+		}
+	 
+		const geometry = new THREE.BufferGeometry();
+		geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
+		const material = new THREE.PointsMaterial( { color: 0x888888 } );
+		const points = new THREE.Points( geometry, material );
+		scene.add( points );
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:misc_controls_fly misc / controls / fly]<br />
+		[example:webgl_buffergeometry_drawrange WebGL / BufferGeometry / drawrange]<br />
+		[example:webgl_buffergeometry_points WebGL / BufferGeometry / points]<br />
+		[example:webgl_buffergeometry_points_interleaved WebGL / BufferGeometry / points / interleaved]<br />
+		[example:webgl_camera WebGL / camera ]<br />
+		[example:webgl_geometry_convex WebGL / geometry / convex]<br />
+		[example:webgl_geometry_shapes WebGL / geometry / shapes]<br />
+		[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points]<br />
+		[example:webgl_multiple_elements_text WebGL / multiple / elements / text]<br />
+		[example:webgl_points_billboards WebGL / points / billboards]<br />
+		[example:webgl_points_dynamic WebGL / points / dynamic]<br />
+		[example:webgl_points_sprites WebGL / points / sprites]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) يمكن
+		تمريرها هنا.<br /><br />
+	 
+		الاستثناء هو خاصية [page:Hexadecimal color] ، التي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (الأبيض) بشكل افتراضي.
+		يتم استدعاء [page:Color.set]( color ) داخليًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:Material] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		خريطة ألفا هي ملمس رمادي يتحكم في التعتيم عبر
+		السطح (الأسود: شفافية كاملة ؛ الأبيض: غير شفاف تمامًا). الافتراضي هو
+		null.<br /><br />
+	 
+		يتم استخدام لون الملمس فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+		موجود. بالنسبة لقوام RGB و RGBA ، سوف [page:WebGLRenderer WebGL] renderer
+		استخدام القناة الخضراء عند أخذ عينات من هذه الملمس بسبب البت الإضافي
+		من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+		التنسيقات. ستعمل الملمسات التي تحتوي على إضاءة فقط وإضاءة / ألفا أيضًا
+		كما هو متوقع.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] المادة ، بشكل افتراضي مضبوط على الأبيض (0xffffff).</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		يحدد لون النقاط باستخدام بيانات من [page:Texture]. قد
+		اختیاریًا تشمل قناة ألفا ، عادةً مجتمعة مع
+		[page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+		</p>
+	 
+		<h3>[property:Number size]</h3>
+		<p>
+		يحدد حجم النقط بالبكسل. الافتراضي هو 1.0.<br />
+		سيتم قطعه إذا تجاوز المعامل المستقل عن الأجهزة
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getParameter gl.ALIASED_POINT_SIZE_RANGE].
+		</p>
+	 
+		<h3>[property:Boolean sizeAttenuation]</h3>
+		<p>
+		حدد ما إذا كان حجم النقط يُخفَّف بعمق الكاميرا.
+		(كاميرات التصوير فقط.) الافتراضي هو true.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:Material] الأساسية للطرق المشتركة.</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 70 - 0
docs/api/ar/materials/RawShaderMaterial.html

@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr; [page:ShaderMaterial] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		هذه الفئة تعمل تمامًا مثل [page:ShaderMaterial]، باستثناء أن التعريفات
+		من الموحدات والسمات المدمجة لا يتم إلحاقها تلقائيًا بـ
+		كود GLSL shader.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		<code>
+		const material = new THREE.RawShaderMaterial( {
+		 
+			uniforms: {
+			time: { value: 1.0 }
+			},
+			vertexShader: document.getElementById( 'vertexShader' ).textContent,
+			fragmentShader: document.getElementById( 'fragmentShader' ).textContent,
+		 
+		} );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_buffergeometry_rawshader WebGL / buffergeometry / rawshader]<br />
+		[example:webgl_buffergeometry_instancing_billboards WebGL / buffergeometry / instancing / billboards]<br />
+		[example:webgl_buffergeometry_instancing WebGL / buffergeometry / instancing]<br />
+		[example:webgl_raymarching_reflect WebGL / raymarching / reflect]<br />
+		[example:webgl2_volume_cloud WebGL 2 / volume / cloud]<br />
+		[example:webgl2_volume_instancing WebGL 2 / volume / instancing]<br />
+		[example:webgl2_volume_perlin WebGL 2 / volume / perlin]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material] و
+		[page:ShaderMaterial]) هنا.<br /><br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>
+		انظر إلى الفئات الأساسية [page:Material] و [page:ShaderMaterial] للخصائص المشتركة.
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>
+		انظر إلى الفئات الأساسية [page:Material] و [page:ShaderMaterial] للطرق المشتركة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 463 - 0
docs/api/ar/materials/ShaderMaterial.html

@@ -0,0 +1,463 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مادة يتم عرضها بشيدرات مخصصة. الشيدر هو برنامج صغير
+		مكتوب في
+		[link:https://www.khronos.org/files/opengles_shading_language.pdf GLSL]
+		يعمل على GPU. قد ترغب في استخدام شيدر مخصص إذا كنت بحاجة إلى:
+		</p>
+		 
+		<ul>
+			<li>
+			تنفيذ تأثير غير مضمن في أي من المواد المدمجة [page:Material materials]
+			</li>
+			<li>
+			دمج العديد من الكائنات في [page:BufferGeometry] واحد لكي
+			تحسين الأداء
+			</li>
+		</ul>
+			هناك الملاحظات التالية التي يجب مراعاتها عند استخدام `ShaderMaterial`:
+		<ul>
+			<li>
+			سيتم عرض `ShaderMaterial` بشكل صحيح فقط من قِبَل
+			[page:WebGLRenderer]، نظرًا لأن كود GLSL في
+			[link:https://en.wikipedia.org/wiki/Shader#Vertex_shaders vertexShader]
+			و [link:https://en.wikipedia.org/wiki/Shader#Pixel_shaders fragmentShader] 
+			يجب تجميعه وتشغيله على GPU باستخدام WebGL.
+			</li>
+			<li>
+			اعتبارًا من THREE r72، لم يعد يتم دعم تعيين السمات مباشرة في ShaderMaterial. يجب استخدام نسخة [page:BufferGeometry] بدلاً من ذلك،
+			باستخدام [page:BufferAttribute] instances لتعريف السمات المخصصة.
+			</li>
+			<li>
+			اعتبارًا من THREE r77، لم يعد من المفترض استخدام نسخ [page:WebGLRenderTarget] أو
+			[page:WebGLCubeRenderTarget] كموحدات. يجب استخدام خاصية [page:Texture texture] بدلاً من ذلك.
+			</li>
+			<li>
+			يتم تمرير السمات والموحدات المضمنة إلى الشيدرات جنبًا إلى جنب
+			مع كودك. إذا كنت لا ترغب في أن يضيف [page:WebGLProgram] أي شيء إلى
+			كود شيدرك، يمكنك استخدام [page:RawShaderMaterial] بدلاً من هذه
+			الفئة.
+			</li>
+			<li>
+				يمكنك استخدام التوجيه #pragma unroll_loop_start و #pragma
+				unroll_loop_end لفك حلقة `for` في GLSL بواسطة معالج شيدر
+				قبل التشغيل. يجب وضع التوجيه فوق الحلقة مباشرة. يجب أن يتطابق تنسيق الحلقة مع معيار محدد.
+				<ul>
+					<li>
+					يجب أن تكون الحلقة
+					[link:https://en.wikipedia.org/wiki/Normalized_loop normalized].
+					</li>
+					<li>يجب أن يكون متغير الحلقة *i*.</li>
+					<li>
+					ستستبدل قِبَال `UNROLLED_LOOP_INDEX` بالقِبَال المُعَبرَة لـ *i* للتكرار المُعَبرَ ويمكن استخدامها في بيانات قِبَال التشغيل.
+					</li>
+				</ul>
+				<code>
+				#pragma unroll_loop_start 
+				for ( int i = 0; i < 10; i ++ ) {
+					// ... 
+				}
+				#pragma unroll_loop_end
+				</code>
+			</li>
+		</ul>
+		 
+		<h2>مثال الكود</h2>
+
+		<code>
+		const material = new THREE.ShaderMaterial( {
+	 
+			uniforms: {
+				time: { value: 1.0 },
+				resolution: { value: new THREE.Vector2() }
+			},
+	 
+			vertexShader: document.getElementById( 'vertexShader' ).textContent,
+			fragmentShader: document.getElementById( 'fragmentShader' ).textContent
+	 
+		} );
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+	 
+		<p>
+		[example:webgl_buffergeometry_custom_attributes_particles webgl / buffergeometry / custom / attributes / particles]<br />
+		[example:webgl_buffergeometry_selective_draw webgl / buffergeometry / selective / draw]<br />
+		[example:webgl_custom_attributes webgl / custom / attributes]<br />
+		[example:webgl_custom_attributes_lines webgl / custom / attributes / lines]<br />
+		[example:webgl_custom_attributes_points webgl / custom / attributes / points]<br />
+		[example:webgl_custom_attributes_points2 webgl / custom / attributes / points2]<br />
+		[example:webgl_custom_attributes_points3 webgl / custom / attributes / points3]<br />
+		[example:webgl_depth_texture webgl / depth / texture]<br />
+		[example:webgl_gpgpu_birds webgl / gpgpu / birds]<br />
+		[example:webgl_gpgpu_protoplanet webgl / gpgpu / protoplanet]<br />
+		[example:webgl_gpgpu_water webgl / gpgpu / water]<br />
+		[example:webgl_interactive_points webgl / interactive / points]<br />
+		[example:webgl_video_kinect webgl / video / kinect]<br />
+		[example:webgl_lights_hemisphere webgl / lights / hemisphere]<br />
+		[example:webgl_marchingcubes webgl / marchingcubes]<br />
+		[example:webgl_materials_envmaps webgl / materials / envmaps]<br />
+		[example:webgl_materials_lightmap webgl / materials / lightmap]<br />
+		[example:webgl_materials_wireframe webgl / materials / wireframe]<br />
+		[example:webgl_modifier_tessellation webgl / modifier / tessellation]<br />
+		[example:webgl_postprocessing_dof2 webgl / postprocessing / dof2]<br />
+		[example:webgl_postprocessing_godrays webgl / postprocessing /
+		godrays]
+		</p>
+
+		<h2>شيدرات الرأس وشيدرات الجزء (Vertex shaders and fragment shaders)</h2>
+
+		<div>
+		<p>يمكنك تحديد نوعين مختلفين من الشيدرات لكل مادة:</p>
+		<ul>
+			<li>
+			يعمل شيدر الرأس أولاً؛ يتلقى `attributes`، يحسب /
+			يعدل موضع كل رأس فردي، ويمرر
+			بيانات إضافية (`varying`s) إلى شيدر الجزء.
+			</li>
+			<li>
+			يعمل شيدر الجزء (أو البكسل) ثانيًا؛ يضبط لون
+			كل "جزء" فردي (بكسل) يتم عرضه على الشاشة.
+			</li>
+		</ul>
+		<p>
+		هناك ثلاثة أنواع من المتغيرات في الشيدرات: الموحدات، والسمات، و
+		varyings:
+		</p>
+		<ul>
+			<li>
+			`Uniforms` هي متغيرات لها نفس القيمة لجميع الرؤوس -
+			الإضاءة، والضباب، وخرائط الظل هي أمثلة على البيانات التي ستكون
+			مخزنة في الموحدات. يمكن الوصول إلى الموحدات من قبل كل من شيدر الرأس
+			وشيدر الجزء.
+			</li>
+			<li>
+			`Attributes` هي متغيرات مرتبطة بكل رأس - على سبيل المثال،
+			موضع الرأس، والوجه الطبيعي، ولون الرأس هي جميعها أمثلة على
+			البيانات التي ستكون مخزنة في السمات. يمكن `فقط` الوصول إلى السمات
+			داخل شيدر الرأس.
+			</li>
+			<li>
+			`Varyings` هي متغيرات تُمَرَّر من شيدر الرأس إلى
+			شيدر الجزء. لكل جزء، ستتم تقديم قيمة كل varying بشكل سلس من قِبَال رؤوس مجاورة.
+			</li>
+		</ul>
+		<p>
+		يجب ملاحظة أن `within` الشيدر نفسه، تعمل الموحدات والسمات مثل
+		المستمرات؛ يمكنك فقط تعديل قِبَالها بتمرير قِبَال مختلفة
+		إلى المخازن من كود JavaScript الخاص بك.
+		</p>
+		</div>
+	 
+		<h2>السمات والموحدات المدمجة (Built-in attributes and uniforms)</h2>
+
+		<div>
+		<p>
+		يوفر [page:WebGLRenderer] العديد من السمات والموحدات إلى
+		الشيدرات افتراضيًا؛ يتم إلحاق تعريفات هذه المتغيرات بكود
+		`fragmentShader` و `vertexShader` الخاص بك من قبل [page:WebGLProgram] عندما
+		يتم تجميع الشيدر؛ ليس عليك إعلانها بنفسك. انظر
+		[page:WebGLProgram] للحصول على تفاصيل هذه المتغيرات.
+		</p>
+		<p>
+		بعض هذه الموحدات أو السمات (على سبيل المثال تلك المتعلقة بالإضاءة،
+		الضباب، إلخ) تتطلب تعيين خصائص على المادة لكي
+		[page:WebGLRenderer] لنسخ القيم المناسبة إلى GPU - تأكد من تعيين هذه العلامات إذا كنت ترغب في استخدام هذه الميزات في شيدرك الخاص.
+		</p>
+		<p>
+		إذا كنت لا ترغب في أن يضيف [page:WebGLProgram] أي شيء إلى كود شيدرك
+		، يمكنك استخدام [page:RawShaderMaterial] بدلاً من هذه الفئة.
+		</p>
+		</div>
+	 
+		<h2>السمات والموحدات المخصصة (Custom attributes and uniforms)</h2>
+	 
+		<div>
+			<p>
+			يجب إعلان كل من السمات والموحدات المخصصة في كود GLSL shader
+			(داخل `vertexShader` و / أو `fragmentShader`). يجب تعريف الموحدات المخصصة
+			في `both` خاصية `uniforms` لـ
+			`ShaderMaterial`، في حين يجب تعريف أي سمات مخصصة عبر
+			[page:BufferAttribute] instances. يجب ملاحظة أن `varying`s يجب فقط أن
+			يتم إعلانها داخل كود الشيدر (وليس داخل المادة).
+			</p>
+			<p>
+			لإعلان سمة مخصصة، يرجى الإشارة إلى
+			[page:BufferGeometry] للحصول على نظرة عامة، و
+			[page:BufferAttribute] للحصول على نظرة مفصلة على API `BufferAttribute`.
+			</p>
+			<p>
+			عند إنشاء سماتك، يجب أن يكون كل مجموعة مُطَبَّقَة التي تقوم بإنشائها لحفظ بيانات سمتك مضروبًا في حجم نوع بياناتك. على سبيل المثال، إذا كانت سمتك من نوع [page:Vector3 THREE.Vector3] ، وكان لديك 3000 رأس في [page:BufferGeometry] ، فيجب إنشاء قيمة مجموعتك المُطَبَّقَة بطول 3000 * 3 ، أو 9000 (قيمة واحدة
+			لكل مُكَوِّن). يظهر جدول حجم كل نوع من أنواع البيانات أدناه للإشارة:
+			</p>
+	 
+			<table>
+				<caption>
+					<a id="attribute-sizes">Attribute sizes</a>
+				</caption>
+				<thead>
+					<tr>
+						<th>GLSL type</th>
+						<th>JavaScript type</th>
+						<th>Size</th>
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td>float</td>
+						<td>[page:Number]</td>
+						<td>1</td>
+					</tr>
+					<tr>
+						<td>vec2</td>
+						<td>[page:Vector2 THREE.Vector2]</td>
+						<td>2</td>
+					</tr>
+					<tr>
+						<td>vec3</td>
+						<td>[page:Vector3 THREE.Vector3]</td>
+						<td>3</td>
+					</tr>
+					<tr>
+						<td>vec3</td>
+						<td>[page:Color THREE.Color]</td>
+						<td>3</td>
+					</tr>
+					<tr>
+						<td>vec4</td>
+						<td>[page:Vector4 THREE.Vector4]</td>
+						<td>4</td>
+					</tr>
+				</tbody>
+			</table>
+
+			<p>
+				يجب ملاحظة أن مخازن السمات `ليست` تتحدث تلقائيًا عندما تتغير قيمها. لتحديث السمات المخصصة، قم بتعيين علامة `needsUpdate`
+				إلى true على [page:BufferAttribute] للهندسة (انظر
+				[page:BufferGeometry] لمزيد من التفاصيل).
+				</p>
+			 
+				<p>
+				لإعلان [page:Uniform] مخصص، استخدم خاصية `uniforms`:
+					<code>
+uniforms: { 
+	time: { value: 1.0 },
+	resolution: { value: new THREE.Vector2() } 
+}
+					</code>
+			</p>
+			 
+			<p>
+			يوصى بتحديث قيم [page:Uniform] المخصصة اعتمادًا على
+			[page:Object3D object] و [page:Camera camera] في
+			[page:Object3D.onBeforeRender] لأن [page:Material] يمكن أن يتم مشاركته
+			بين [page:Mesh meshes]، يتم تحديث [page:Matrix4 matrixWorld] لـ [page:Scene] و
+			[page:Camera] في [page:WebGLRenderer.render]، وبعض
+			المؤثرات تعرض [page:Scene scene] باستخدام خاصة بهم [page:Camera cameras].
+			</p>
+		</div>
+			 
+		<h2>المنشئ (Constructor)</h2>
+			 
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.
+		</p>
+			 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للخصائص المشتركة.</p>
+			 
+		<h3>[property:Boolean clipping]</h3>
+		<p>
+		يحدد ما إذا كانت هذه المادة تدعم القطع؛ صحيح للسماح للعارض
+		بتمرير الزي الرسمي clippingPlanes. الافتراضي هو false.
+		</p>
+			 
+		<h3>[property:Object defaultAttributeValues]</h3>
+		<p>
+		عندما لا تتضمن الهندسة المعروضة هذه السمات ولكن المادة تفعل ذلك، سيتم تمرير هذه القيم الافتراضية إلى الشيدرات. هذا يتجنب الأخطاء عندما تكون بيانات المخزن المؤقت مفقودة.
+	 
+		<code>
+this.defaultAttributeValues = { 
+	'color': [ 1, 1, 1 ], 
+	'uv': [ 0, 0 ],
+	'uv1': [ 0, 0 ] 
+};
+		</code>
+		</p>
+	 
+		<h3>[property:Object defines]</h3>
+		<p>
+		يحدد ثوابت مخصصة باستخدام توجيهات `#define` داخل كود GLSL
+		لكل من شيدر الرأس وشيدر الجزء؛ كل زوج من المفتاح / القيمة
+		يولد توجيهًا آخر:
+			<code> 
+				defines: { 
+					FOO: 15, 
+					BAR: true 
+				} 
+			</code>
+			يولد الأسطر
+			<code> 
+			#define FOO 15 
+			#define BAR true 
+			</code>
+			في كود GLSL.
+			</p>
+	 
+			<h3>[property:Object extensions]</h3>
+			<p>
+			كائن يحتوي على الخصائص التالية:
+			<code>
+this.extensions = { 
+	derivatives: false, // set to use derivatives
+	fragDepth: false, // set to use fragment depth values 
+	drawBuffers: false, // set to use draw buffers 
+	shaderTextureLOD: false // set to use
+	shader texture LOD 
+};
+			</code>
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p>
+		تحدد ما إذا كان يتم التأثير على لون المادة بإعدادات الضباب العالمية؛ صحيح
+		لتمرير موحدات الضباب إلى الشيدر. الافتراضي هو false.
+		</p>
+	 
+		<h3>[property:String fragmentShader]</h3>
+		<p>
+		كود GLSL لشيدر الجزء. هذا هو الكود الفعلي للشيدر. في
+		المثال أعلاه، يتم استخراج كود `vertexShader` و `fragmentShader` من
+		DOM؛ يمكن تمريره كسلسلة مباشرة أو تحميله عبر AJAX
+		بدلاً من ذلك.
+		</p>
+	 
+		<h3>[property:String glslVersion]</h3>
+		<p>
+		يحدد إصدار GLSL لكود الشيدر المخصص. ذو صلة فقط لـ WebGL 2
+		لتحديد ما إذا كان يجب تحديد GLSL 3.0 أم لا. القيم المتاحة هي
+		`THREE.GLSL1` أو `THREE.GLSL3`. الافتراضي هو `null`.
+		</p>
+	 
+		<h3>[property:String index0AttributeName]</h3>
+		<p>
+		إذا تم تعيينه، يستدعي هذا
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bindAttribLocation gl.bindAttribLocation] 
+		لربط فهرس رأس عام بمتغير سمة. الافتراضي هو غير معرف.
+		</p>
+	 
+		<h3>[property:Boolean isShaderMaterial]</h3>
+		<p>علامة قراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+	 
+		<h3>[property:Boolean lights]</h3>
+		<p>
+		يحدد ما إذا كانت هذه المادة تستخدم الإضاءة؛ صحيح لتمرير بيانات الموحدات
+		المتعلقة بالإضاءة إلى هذا الشيدر. الافتراضي هو false.
+		</p>
+	 
+		<h3>[property:Float linewidth]</h3>
+		<p>
+		يتحكم في سُمك الإطار السلكي. الافتراضي هو 1.<br /><br />
+	 
+		نظرًا للقيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile] 
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المُعَدَّة.
+		</p>
+	 
+		<h3>[property:Boolean flatShading]</h3>
+		<p>
+		حدد ما إذا كان يتم عرض المادة بظلال مسطحة. 
+		الافتراضي هو false.
+		</p>
+
+		<h3>[property:Object uniforms]</h3>
+		<p>
+		كائن من الشكل:
+		<code> 
+			{ 
+				"uniform1": { value: 1.0 }, 
+				"uniform2": { value: 2 } 
+			}
+		</code>
+		يحدد الموحدات التي يتم تمريرها إلى كود الشيدر؛ المفاتيح هي أسماء الموحدات
+		، والقيم هي تعريفات من الشكل
+		<code> 
+			{
+				value: 1.0 
+			}
+		</code>
+		حيث `value` هو قيمة الموحد. يجب أن تتطابق الأسماء مع اسم
+		الموحد، كما هو محدد في كود GLSL. يجب ملاحظة أن الموحدات يتم تحديثها
+		في كل إطار، لذلك تحديث قيمة الموحد سيؤدي فورًا إلى
+		تحديث القيمة المتاحة لكود GLSL.
+		</p>
+	 
+		<h3>[property:Boolean uniformsNeedUpdate]</h3>
+		<p>
+		يمكن استخدامه لإجبار تحديث الموحدات أثناء تغيير الموحدات في
+		[page:Object3D.onBeforeRender](). الافتراضي هو `false`.
+		</p>
+	 
+		<h3>[property:Boolean vertexColors]</h3>
+		<p>يعرف ما إذا كان يتم استخدام تلوين الرأس. الافتراضي هو `false`.</p>
+	 
+		<h3>[property:String vertexShader]</h3>
+		<p>
+		كود GLSL لشيدر الرأس. هذا هو الكود الفعلي للشيدر. في
+		المثال أعلاه، يتم استخراج كود `vertexShader` و `fragmentShader` من
+		DOM؛ يمكن تمريره كسلسلة مباشرة أو تحميله عبر AJAX
+		بدلاً من ذلك.
+		</p>
+	 
+		<h3>[property:Boolean wireframe]</h3>
+		<p>
+		عرض الهندسة كإطار سلكي (باستخدام GL_LINES بدلاً من GL_TRIANGLES).
+		الافتراضي هو false (أي عرض كأشكال مسطحة).
+		</p>
+	 
+		<h3>[property:Float wireframeLinewidth]</h3>
+		<p>
+		يتحكم في سُمك الإطار السلكي. الافتراضي هو 1.<br /><br />
+	 
+		نظرًا للقيود
+		[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile] 
+		مع [page:WebGLRenderer WebGL] renderer على معظم
+		المنصات ستكون linewidth دائمًا 1 بغض النظر عن القيمة المُعَدَّة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للطرق المشتركة.</p>
+	 
+		<h3>[method:ShaderMaterial clone]()</h3>
+		<p>
+		يولِّد نسخة طبقية من هذه المادة. يجب ملاحظة أن vertexShader و
+		fragmentShader يتم نسخهم `by reference`، كذلك تعاريف
+		`attributes`؛ هذا يعني أن نسخ المادة ستشارك نفس
+		[page:WebGLProgram] المُجَمَّع. ومع ذلك، فإن `uniforms` يتم نسخها `by
+		value`، مما يتيح لك امتلاك مجموعات مختلفة من الموحدات لنسخ مختلفة من
+		المادة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 67 - 0
docs/api/ar/materials/ShadowMaterial.html

@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمكن لهذه المادة تلقي الظلال، ولكنها في الوقت نفسه شفافة تمامًا.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const geometry = new THREE.PlaneGeometry( 2000, 2000 );
+		geometry.rotateX( - Math.PI / 2 );
+		 
+		const material = new THREE.ShadowMaterial();
+		material.opacity = 0.2;
+		 
+		const plane = new THREE.Mesh( geometry, material );
+		plane.position.y = -200;
+		plane.receiveShadow = true;
+		scene.add( plane );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>[example:webgl_geometry_spline_editor geometry / spline / editor]</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئات الأساسية [page:Material] للخصائص المشتركة.</p>
+		 
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] المادة، بشكل افتراضي مضبوط على الأسود (0x000000).</p>
+		 
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+		 
+		<h3>[property:Boolean transparent]</h3>
+		<p>يحدد ما إذا كانت هذه المادة شفافة. الافتراضي هو `true`.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئات الأساسية [page:Material] للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 97 - 0
docs/api/ar/materials/SpriteMaterial.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Material] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">A material for a use with a [page:Sprite].</p>
+
+		<h2>مثال للكود</h2>
+
+		<code>
+		const map = new THREE.TextureLoader().load( 'textures/sprite.png' );
+		const material = new THREE.SpriteMaterial( { map: map, color: 0xffffff } );
+
+		const sprite = new THREE.Sprite( material );
+		sprite.scale.set(200, 200, 1)
+		scene.add( sprite );
+		</code>
+
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_raycaster_sprite WebGL / raycast / sprite]<br />
+			[example:webgl_sprites WebGL / sprites]<br />
+			[example:svg_sandbox SVG / sandbox]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+		خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+		المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+	 
+		الاستثناء هو خاصية [page:Hexadecimal color]، التي يمكن
+		تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) افتراضيًا.
+		يتم استدعاء [page:Color.set]( color ) داخليًا. لا يتم قطع SpriteMaterials باستخدام [page:Material.clippingPlanes].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Material] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Texture alphaMap]</h3>
+		<p>
+		الخريطة الألفية هي نسيج رمادي يتحكم في التعتيم عبر السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضي هو
+		null.<br /><br />
+	 
+		يتم استخدام لون النسيج فقط، متجاهلاً قناة الألفا إذا كانت موجودة. بالنسبة للقوام RGB و RGBA، سيستخدم [page:WebGLRenderer WebGL] renderer
+		قناة الأخضر عند عينة هذا النسيج بسبب البت الإضافي من الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة. ستعمل القوام المُضِئَة فقط والقوام المُضِئَة / الألفية أيضًا كما هو متوقع.
+		</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p>
+		[page:Color] المادة، بشكل افتراضي مضبوط على الأبيض (0xffffff). The
+		[page:.map] مضروب باللون.
+		</p>
+	 
+		<h3>[property:Boolean fog]</h3>
+		<p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Boolean isSpriteMaterial]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+	 
+		<h3>[property:Texture map]</h3>
+		<p>
+		خريطة اللون. قد تشمل اختيارًا قناة ألفا، عادةً مُجَمَّعَةً مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest]. 
+		الافتراضي هو null.
+		</p>
+	 
+		<h3>[property:Radians rotation]</h3>
+		<p>دوران الرذاذ بالراديان. الافتراضي هو 0.</p>
+	 
+		<h3>[property:Boolean sizeAttenuation]</h3>
+		<p>
+		ما إذا كان حجم الرذاذ يُخَفَّف بعمق الكاميرات.
+		(كاميرات المنظور فقط.) الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Boolean transparent]</h3>
+ 		<p>يحدد ما إذا كانت هذه المادة شفافة. الافتراضي هو `true`.</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر إلى الفئة الأساسية [page:Material] للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 203 - 0
docs/api/ar/math/Box2.html

@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمثل مربعًا محدودًا بمحاور (AABB) في الفضاء ثنائي الأبعاد.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector2 min], [param:Vector2 max] )</h3>
+		<p>
+		[page:Vector2 min] - (اختياري) [page:Vector2] يمثل الحد السفلي (x، y) للمربع. الافتراضي هو (+ Infinity، + Infinity).<br />
+			
+		[page:Vector2 max] - (اختياري) [page:Vector2] يمثل الحد العلوي (x، y) للمربع. الافتراضي هو (- Infinity، - Infinity).<br /><br />
+			
+		ينشئ [name] محدودًا بواسطة min و max.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Vector2 min]</h3>
+		<p>
+		[page:Vector2] يمثل الحد السفلي (x، y) للمربع.<br />
+		الافتراضي هو (+ Infinity، + Infinity).
+		</p>
+			
+		<h3>[property:Vector2 max]</h3>
+		<p>
+		[page:Vector2] يمثل الحد العلوي (x، y) للمربع.<br />
+		الافتراضي هو (- Infinity، - Infinity).
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+			
+		<h3>
+		[method:Vector2 clampPoint]( [param:Vector2 point], [param:Vector2 target] )
+		</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] للتثبيت. <br />
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+			
+		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) يثبت] [page:Vector2 point] داخل حدود هذا المربع.<br />
+		</p>
+			
+		<h3>[method:Box2 clone]()</h3>
+		<p>
+		يعود بـ [page:Box2] جديد مع نفس [page:.min min] و [page:.max max] كهذا المربع.
+		</p>
+			
+		<h3>[method:Boolean containsBox]( [param:Box2 box] )</h3>
+		<p>
+		[page:Box2 box] - [page:Box2 Box2] للاختبار للتضمين.<br /><br />
+			
+		يعود بـ true إذا كان هذا المربع يشمل كامل [page:Box2 box]. إذا كان هذا و [page:Box2 box] متطابقان، <br />
+		فإن هذه الوظيفة تعود أيضًا بـ true.
+		</p>
+			
+		<h3>[method:Boolean containsPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] للاختبار للتضمين.<br /><br />
+			
+		يعود بـ true إذا كانت [page:Vector2 point] المحددة تقع داخل أو على حدود هذا المربع.
+		</p>
+
+		<h3>[method:this copy]( [param:Box2 box] )</h3>
+		<p>
+		ينسخ [page:.min min] و [page:.max max] من [page:Box2 box] إلى هذا المربع.
+		</p>
+		
+		<h3>[method:Float distanceToPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] لقياس المسافة إليها.<br /><br />
+		
+		يعود بالمسافة من أي حافة لهذا المربع إلى النقطة المحددة. إذا كانت [page:Vector2 point] داخل هذا المربع، فستكون المسافة 0.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Box2 box] )</h3>
+		<p>
+		[page:Box2 box] - مربع للمقارنة مع هذا المربع.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع و [page:Box2 box] يشتركان في نفس الحدود السفلى والعليا.
+		</p>
+		
+		<h3>[method:this expandByPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] التي يجب تضمينها في المربع.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Vector2 point].
+		</p>
+		
+		<h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] - المسافة التي يتم توسيع المربع بها.<br /><br />
+		
+		يوسع كل بُعد من أبعاد المربع بواسطة [page:Float scalar]. إذا كانت سالبة، فستتقلص أبعاد المربع.
+		</p>
+		
+		<h3>[method:this expandByVector]( [param:Vector2 vector] )</h3>
+		<p>
+		[page:Vector2 vector] - [page:Vector2] لتوسيع المربع بها.<br /><br />
+		
+		يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector2 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector2 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector2 vector] في كلا الاتجاهين.
+		</p>
+
+		<h3>[method:Vector2 getCenter] ([param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود نقطة المركز للصندوق كـ [page:Vector2].
+		</p>
+		
+		<h3>[method:Vector2 getParameter] ([param:Vector2 point], [param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2].<br />
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود نقطة كنسبة من عرض وارتفاع هذا الصندوق.
+		</p>
+		
+		<h3>[method:Vector2 getSize] ([param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود عرض وارتفاع هذا الصندوق.
+		</p>
+		
+		<h3>[method:this intersect] ([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع للتقاطع معه.<br /><br />
+		
+		يعود تقاطع هذا و [page:Box2 box]، محددًا الحد الأعلى لهذا المربع إلى أقل من حدود المربعين الأعلى والحد الأدنى لهذا المربع إلى أكبر من حدود المربعين الأدنى.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox] ([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Box2 box].
+		</p>
+		
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يُرجَع صوابًا إذا كان هذا المربع يشمل صفر نقط داخل حدوده.<br />
+		لاحظ أن المربع الذي يحتوي على حدود سفلى وعلوية متساوية لا يزال يشمل نقطة واحدة، وهي التي تشترك فيها كلا الحدود.
+		</p>
+		
+		<h3>[method:this makeEmpty]()</h3>
+		<p> يجعل هذا المربع فارغًا. </p>
+		
+
+		<h3>[method:this set]([param:Vector2 min], [param:Vector2 max])</h3>
+		<p>
+		[page:Vector2 min] - (مطلوب) [page:Vector2] يمثل الحد الأدنى (x، y) للمربع. <br />
+		[page:Vector2 max] - (مطلوب) [page:Vector2] يمثل الحد الأعلى (x، y) للمربع. <br /><br />
+		
+		يضع الحدود العليا والسفلى (x، y) لهذا المربع.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+		
+		<h3>[method:this setFromCenterAndSize]([param:Vector2 center], [param:Vector2 size])</h3>
+		<p>
+		[page:Vector2 center] - الموضع المركزي المطلوب للمربع ([page:Vector2]). <br />
+		[page:Vector2 size] - أبعاد x و y المطلوبة للمربع ([page:Vector2]).<br /><br />
+		
+		يضع هذا المربع في مركز [page:Vector2 center] ويضع عرض وارتفاع هذا المربع إلى القيم المحددة في [page:Vector2 size].
+		</p>
+		
+		<h3>[method:this setFromPoints]([param:Array points])</h3>
+		<p>
+		[page:Array points] - مصفوفة من [page:Vector2 Vector2s] التي ستحتوي عليها المربعات الناتجة.<br /><br />
+		
+		يضع الحدود العليا والسفلى لهذا المربع لتشمل جميع النقاط في [page:Array points].
+		</p>
+		
+		<h3>[method:this translate]([param:Vector2 offset])</h3>
+		<p>
+		[page:Vector2 offset] - اتجاه ومسافة التحويل.<br /><br />
+		
+		يضيف [page:Vector2 offset] إلى كلاً من الحدود العليا والسفلى لهذا المربع، مما يؤدي بشكل فعال إلى نقل هذا المربع [page:Vector2 offset] وحدات في مسافة 2D.
+		</p>
+		
+		<h3>[method:this union]([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+		
+		يجمع هذا المربع مع [page:Box2 box]، حيث يضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 303 - 0
docs/api/ar/math/Box3.html

@@ -0,0 +1,303 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمثل مربعًا محدودًا بمحاور (AABB) في الفضاء ثلاثي الأبعاد.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		const box = new THREE.Box3();
+			
+		const mesh = new THREE.Mesh(
+			new THREE.SphereGeometry(),
+			new THREE.MeshBasicMaterial()
+		);
+			
+		// تأكد من حساب مربع التحديد لهندسته
+		// يجب القيام بذلك مرة واحدة فقط (باستخدام هندسات ثابتة)
+		mesh.geometry.computeBoundingBox();
+			
+		// ...
+			
+		// في حلقة الرسوم المتحركة، احسب المربع الحالي مع المصفوفة العالمية
+		box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );
+		</code>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - (اختياري) [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع. الافتراضي هو (+ Infinity، + Infinity، + Infinity).<br />
+			
+		[page:Vector3 max] - (اختياري) [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع. الافتراضي هو (- Infinity، - Infinity، - Infinity).<br /><br />
+			
+		ينشئ [name] محدودًا بواسطة min و max.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Boolean isBox3]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:Vector3 min]</h3>
+		<p>
+		[page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.<br />
+		الافتراضي هو (+ Infinity، + Infinity، + Infinity).
+		</p>
+			
+		<h3>[property:Vector3 max]</h3>
+		<p>
+		[page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.<br />
+		الافتراضي هو (- Infinity، - Infinity، - Infinity).
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - [page:Matrix4] للتطبيق<br /><br />
+		
+		يحول هذا Box3 مع المصفوفة الموردة.
+		</p>
+		
+		<h3>
+		[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للتثبيت. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) يثبت] [page:Vector3 point] داخل حدود هذا المربع.<br />
+		</p>
+		
+		<h3>[method:Box3 clone]()</h3>
+		<p>
+		يعود بـ [page:Box3] جديد مع نفس [page:.min min] و [page:.max max] كهذا المربع.
+		</p>
+		
+		<h3>[method:Boolean containsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3 Box3] للاختبار للتضمين.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع يشمل كامل [page:Box3 box]. إذا كان هذا و [page:Box3 box] متطابقان، <br />
+		فإن هذه الوظيفة تعود أيضًا بـ true.
+		</p>
+		
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للاختبار للتضمين.<br /><br />
+		
+		يعود بـ true إذا كانت [page:Vector3 point] المحددة تقع داخل أو على حدود هذا المربع.
+		</p>
+		
+		<h3>[method:this copy]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للنسخ.<br /><br />
+		
+		ينسخ [page:.min min] و [page:.max max] من [page:Box3 box] إلى هذا المربع.
+		</p>
+		
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] لقياس المسافة إليها.<br /><br />
+		
+		يعود بالمسافة من أي حافة لهذا المربع إلى النقطة المحددة. إذا كانت [page:Vector3 point] داخل هذا المربع، فستكون المسافة 0.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للمقارنة مع هذا المربع.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع و [page:Box3 box] يشتركان في نفس الحدود السفلى والعليا.
+		</p>
+		
+		<h3>
+		[method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )
+		</h3>
+		<p>
+		[page:Object3D object] - [page:Object3D] لتوسيع المربع به.<br />
+		precise - (اختياري) توسيع مربع التحديد بأقل ما يمكن على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Object3D object] وأطفاله، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم (ما لم يتم تحديد معلمة precise على true).
+		</p>
+		
+		<h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] التي يجب تضمينها في المربع.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Vector3 point].
+		</p>
+		
+		<h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] - المسافة التي يتم توسيع المربع بها.<br /><br />
+		
+		يوسع كل بُعد من أبعاد المربع بواسطة [page:Float scalar]. إذا كانت سالبة، فستتقلص أبعاد المربع.
+		</p>
+		
+		<h3>[method:this expandByVector]( [param:Vector3 vector] )</h3>
+		<p>
+		[page:Vector3 vector] - [page:Vector3] لتوسيع المربع به.<br /><br />
+		
+		يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector3 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع عمق هذا المربع بمكون z من `vector` في كلا الاتجاهين.
+		</p>
+
+		<h3>[method:Sphere getBoundingSphere]( [param:Sphere target] )</h3>
+		<p>
+		[page:Sphere target] — سيتم نسخ النتيجة في هذا الكرة.<br /><br />
+		
+		يحصل على [page:Sphere] يحد المربع.
+		</p>
+		
+		<h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بنقطة المركز للمربع كـ [page:Vector3].
+		</p>
+		
+		<h3>
+		[method:Vector3 getParameter]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3].<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بنقطة كنسبة من عرض وارتفاع وعمق هذا المربع.
+		</p>
+		
+		<h3>[method:Vector3 getSize]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بعرض وارتفاع وعمق هذا المربع.
+		</p>
+		
+		<h3>[method:this intersect]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتقاطع معه.<br /><br />
+		
+		يحسب تقاطع هذا و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أقل حدود علوية للمربعين والحد الأدنى لهذا المربع على أكبر حدود سفلى للمربعين. إذا لم يكن هناك تداخل، يجعل هذا المربع فارغًا.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Box3 box] أم لا.
+		</p>
+
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - [page:Plane] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Plane plane] أم لا.
+		</p>
+		
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Sphere sphere] أم لا.
+		</p>
+		
+		<h3>[method:Boolean intersectsTriangle]( [param:Triangle triangle] )</h3>
+		<p>
+		[page:Triangle triangle] - [page:Triangle] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Triangle triangle] أم لا.
+		</p>
+		
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يعود بـ true إذا كان هذا المربع يشمل صفر نقطة داخل حدوده.<br />
+		يرجى ملاحظة أن المربع الذي يحتوي على حدود سفلى وعلوية متساوية لا يزال يشمل نقطة واحدة، وهي النقطة التي تشترك فيها كلا الحدود.
+		</p>
+		
+		<h3>[method:this makeEmpty]()</h3>
+		<p>يجعل هذا المربع فارغًا.</p>
+		
+		<h3>[method:this set]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.<br />
+		[page:Vector3 max] - [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.<br /><br />
+		
+		يضع الحدود السفلى والعلوية (x، y، z) لهذا المربع.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المحددة.
+		</p>
+		
+		<h3>[method:this setFromArray]( [param:Array array] )</h3>
+		<p>
+		array -- مجموعة من بيانات الموضع التي سيغلفها المربع الناتج.<br /><br />
+		
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في `array`.
+		</p>
+		
+		<h3>
+			[method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - سمة مخزنة لبيانات الموضع التي سيغلفها المربع الناتج.<br /><br />
+			
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في [page:BufferAttribute attribute].
+		</p>
+			
+		<h3>
+		[method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )
+		</h3>
+		<p>
+		[page:Vector3 center], - الموضع المركزي المطلوب للمربع. <br />
+		[page:Vector3 size] - الأبعاد المطلوبة x و y و z للمربع.<br /><br />
+			
+		يضع هذا المربع في مركز [page:Vector3 center] ويضع عرض وارتفاع وعمق هذا المربع على القيم المحددة <br />
+		في [page:Vector3 size]
+		</p>
+			
+		<h3>
+		[method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )
+		</h3>
+		<p>
+		[page:Object3D object] - [page:Object3D] لحساب مربع التحديد الخاص به.<br />
+		precise - (اختياري) حساب أصغر مربع تحديد محدود بمحاور العالم على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+			
+		يحسب مربع التحديد المحدود بمحاور العالم لـ [page:Object3D] (بما في ذلك أطفاله)، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم.
+		</p>
+			
+		<h3>[method:this setFromPoints]( [param:Array points] )</h3>
+		<p>
+		[page:Array points] - مجموعة من [page:Vector3 Vector3s] التي سيحتوي عليها المربع الناتج.<br /><br />
+			
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل النقاط في [page:Array points].
+		</p>
+			
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>
+		[page:Vector3 offset] - اتجاه ومسافة التحويل.<br /><br />
+			
+		يضيف [page:Vector3 offset] إلى كلا من الحدود العلوية والسفلى لهذا المربع، بشكل فعال ينقل هذا المربع [page:Vector3 offset] وحدات في الفضاء ثلاثي الأبعاد.
+		</p>
+			
+		<h3>[method:this union]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+			
+		يحسب اتحاد هذا المربع و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+		</p>
+			
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 364 - 0
docs/api/ar/math/Color.html

@@ -0,0 +1,364 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">فئة تمثل لونًا.</p>
+
+		<p>
+		التكرار عبر مثيل [name] سيعود بمكوناته (r، g، b) بالترتيب المقابل.
+		</p>
+		
+		<h2>أمثلة الكود</h2>
+		
+		<p>يمكن تهيئة Color بأي من الطرق التالية:</p>
+		<code>
+		// المُنشئ الفارغ - سيكون الافتراضي أبيض
+		const color1 = new THREE.Color();
+		
+		// لون سداسي عشري (مستحسن)
+		const color2 = new THREE.Color( 0xff0000 );
+		
+		// سلسلة RGB
+		const color3 = new THREE.Color("rgb(255، 0، 0)");
+		const color4 = new THREE.Color("rgb(100٪، 0٪، 0٪)");
+		
+		// اسم لون X11 - يتم دعم جميع أسماء الألوان الـ 140.
+		// يرجى ملاحظة عدم وجود CamelCase في الاسم
+		const color5 = new THREE.Color( 'skyblue' );
+		
+		// سلسلة HSL
+		const color6 = new THREE.Color("hsl(0، 100٪، 50٪)");
+		
+		// قيم RGB منفصلة بين 0 و 1
+		const color7 = new THREE.Color( 1، 0، 0 );
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>
+		[name]( [param:Color_Hex_or_String r]، [param:Float g]، [param:Float b] )
+		</h3>
+		<p>
+		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+		
+		يرجى ملاحظة أن الطريقة القياسية لتحديد اللون في three.js هي باستخدام [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثية سداسية عشرية]، وتستخدم هذه الطريقة في جميع أنحاء المستندات المتبقية.<br /><br />
+		
+		عند تعريف جميع المعاملات ثم [page:Color_Hex_or_String r] هو المكوِّن الأحمر و [page:Float g] هو المكوِّن الأخضر و [page:Float b] هو المكوِّن الأزرق للون.<br />
+		عند تعريف [page:Color_Hex_or_String r] فقط:<br />
+		</p>
+		
+		<ul>
+			<li>
+			يمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] يمثل اللون (مستحسن).
+			</li>
+			<li>يمكن أن يكون مثيل Color آخر.</li>
+			<li>
+				يمكن أن يكون سلسلة على طراز CSS. على سبيل المثال:
+				<ul>
+					<li>'rgb(250، 0،0)'</li>
+					<li>'rgb(100٪،0٪،0٪)'</li>
+					<li>'hsl(0، 100٪، 50٪)'</li>
+					<li>'#ff0000'</li>
+					<li>'#f00'</li>
+					<li>'red'</li>
+				</ul>
+			</li>
+		</ul>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Boolean isColor]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:Float r]</h3>
+		<p>قيمة قناة حمراء بين 0 و 1. الافتراضي هو 1.</p>
+			
+		<h3>[property:Float g]</h3>
+		<p>قيمة قناة خضراء بين 0 و 1. الافتراضي هو 1.</p>
+			
+		<h3>[property:Float b]</h3>
+		<p>قيمة قناة زرقاء بين 0 و 1. الافتراضي هو 1.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Color color] )</h3>
+		<p>
+		يضيف قيم RGB لـ [page:Color color] إلى قيم RGB لهذا اللون.
+		</p>
+		
+		<h3>
+		[method:this addColors]( [param:Color color1], [param:Color color2] )
+		</h3>
+		<p>
+		يضع قيم RGB لهذا اللون على مجموع قيم RGB لـ [page:Color color1] و [page:Color color2].
+		</p>
+		
+		<h3>[method:this addScalar]( [param:Number s] )</h3>
+		<p>يضيف [page:Number s] إلى قيم RGB لهذا اللون.</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		يطبق التحول [page:Matrix3 m] على مكونات RGB لهذا اللون.
+		</p>
+		
+		<h3>[method:Color clone]()</h3>
+		<p>
+		يعود بـ Color جديد مع نفس قيم [page:.r r] و [page:.g g] و [page:.b b] كهذا المربع.
+		</p>
+		
+		<h3>[method:this copy]( [param:Color color] )</h3>
+		<p>
+		ينسخ معاملات [page:.r r] و [page:.g g] و [page:.b b] من [page:Color color] في هذا اللون.
+		</p>
+		
+		<h3>[method:this convertLinearToSRGB]()</h3>
+		<p>يحول هذا اللون من مساحة خطية إلى مساحة sRGB.</p>
+		
+		<h3>[method:this convertSRGBToLinear]()</h3>
+		<p>يحول هذا اللون من مساحة sRGB إلى مساحة خطية.</p>
+		
+		<h3>[method:this copyLinearToSRGB]( [param:Color color] )</h3>
+		<p>
+		[page:Color color] — لون للنسخ.<br />
+		
+		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة خطية إلى مساحة sRGB.
+		</p>
+		
+
+		<h3>[method:this copySRGBToLinear]( [param:Color color] )</h3>
+		<p>
+		[page:Color color] — لون للنسخ.<br />
+		
+		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة sRGB إلى مساحة خطية.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Color color] )</h3>
+		<p>
+		يقارن قيم RGB لـ [page:Color color] مع تلك الموجودة في هذا الكائن. يعود بـ true إذا كانت متطابقة، و false في حالة عدم التطابق.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - [page:Array] من الأرقام العشرية على شكل [[page:Float r]، [page:Float g]، [page:Float b]].<br />
+		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
+		
+		يضع مكونات هذا اللون بناءً على مجموعة مهيأة مثل [[page:Float r]، [page:Float g]، [page:Float b]].
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - فهرس في السمة.<br /><br />
+		
+		يضع مكونات هذا اللون من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>
+		[method:Integer getHex]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>يعود بالقيمة السداسية عشرية لهذا اللون.</p>
+		
+		<h3>
+		[method:String getHexString]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		يعود بالقيمة السداسية عشرية لهذا اللون كسلسلة (على سبيل المثال، 'FFFFFF').
+		</p>
+
+		<h3>
+			[method:Object getHSL]( [param:Object target], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Object target] — سيتم نسخ النتيجة في هذا الكائن. يضيف مفاتيح h و s و l إلى الكائن (إذا لم يكن موجودًا بالفعل).<br /><br />
+			
+		يحول قيم [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون إلى تنسيق [link:https://en.wikipedia.org/wiki/HSL_and_HSV HSL] ويعود بكائن على الشكل:
+			
+		<code>
+		{ 
+			h: 0, 
+			s: 0, 
+			l: 0 
+		} 
+		</code>
+		</p>
+			
+		<h3>
+		[method:Color getRGB]( [param:Color target], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Color target] — سيتم نسخ النتيجة في هذا الكائن.<br /><br />
+			
+		يعود بقيم RGB لهذا اللون كمثيل من [page:Color].
+		</p>
+			
+		<h3>
+		[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		يعود بقيمة هذا اللون كسلسلة على طراز CSS. مثال: `rgb(255،0،0)`.
+		</p>
+			
+		<h3>[method:this lerp]( [param:Color color], [param:Float alpha] )</h3>
+		<p>
+		[page:Color color] - لون للاقتراب منه.<br />
+		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يتداخل بشكل خطي قيم RGB لهذا اللون نحو قيم RGB للحجة الممررة. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث `0.0` هذا اللون و `1.0` هو الحجة الأولى.
+		</p>
+			
+
+		<h3>
+			[method:this lerpColors]( [param:Color color1], [param:Color color2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Color color1] - اللون الابتدائي [page:Color].<br />
+		[page:Color color2] - [page:Color] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يضع هذا اللون ليكون اللون المتداخل بشكل خطي بين [page:Color color1] و [page:Color color2] حيث يكون alpha هو نسبة المسافة على الخط الذي يربط بين اللونين - سيكون alpha = 0 [page:Color color1]، وسيكون alpha = 1 [page:Color color2].
+		</p>
+			
+		<h3>[method:this lerpHSL]( [param:Color color], [param:Float alpha] )</h3>
+		<p>
+		[page:Color color] - لون للاقتراب منه.<br />
+		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يتداخل بشكل خطي قيم HSL لهذا اللون نحو قيم HSL للحجة الممررة. يختلف عن [page:.lerp] الكلاسيكية بعدم التداخل مباشرة من لون إلى آخر، ولكن بدلاً من ذلك يمر عبر جميع الألوان الموجودة بين تلك الألوان. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث 0.0 هذا اللون و 1.0 هو الحجة الأولى.
+		</p>
+			
+		<h3>[method:this multiply]( [param:Color color] )</h3>
+		<p>
+		يضرب قيم RGB لهذا اللون بقيم RGB لـ [page:Color color] المعطى.
+		</p>
+			
+		<h3>[method:this multiplyScalar]( [param:Number s] )</h3>
+		<p>يضرب قيم RGB لهذا اللون بـ [page:Number s].</p>
+			
+		<h3>
+		[method:this offsetHSL]( [param:Float h], [param:Float s], [param:Float l] )
+		</h3>
+		<p>
+		يضيف [page:Float h] و [page:Float s] و [page:Float l] المعطى إلى قيم هذا اللون. داخليًا، يحول هذا اللون قيم [page:.r r] و [page:.g g] و [page:.b b] إلى HSL، يضيف [page:Float h] و [page:Float s] و [page:Float l]، ثم يحول اللون مرة أخرى إلى RGB.
+		</p>
+			
+		<h3>[method:this set]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )</h3>
+		<p>
+		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+		
+		انظر المُنشئ أعلاه للحصول على التفاصيل الكاملة حول الوسائط الممكنة. يفوض إلى [page:.copy]،
+		[page:.setStyle]، [page:.setRGB] أو [page:.setHex] اعتمادًا على نوع الإدخال.
+		</p>
+		
+		<h3>[method:this setFromVector3]( [param:Vector3 vector] )</h3>
+		<p>
+		يضع مكونات [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون من مكونات x و y و z لـ [page:Vector3 vector] المحدد.
+		</p>
+		
+		<h3>
+		[method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:Integer hex] —
+		[link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet شكل ثلاثي سداسي عشر].<br /><br />
+		
+		يضع هذا اللون من قيمة سداسية عشرية.
+		</p>
+		
+		<h3>
+		[method:this setHSL]( [param:Float h], [param:Float s], [param:Float l], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Float h] — قيمة اللون بين 0.0 و 1.0 <br />
+		[page:Float s] — قيمة التشبع بين 0.0 و 1.0 <br />
+		[page:Float l] — قيمة الإضاءة بين 0.0 و 1.0<br /><br />
+		
+		يضع اللون من قيم HSL.
+		</p>
+		
+		<h3>
+		[method:this setRGB]( [param:Float r], [param:Float g], [param:Float b], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Float r] — قيمة قناة حمراء بين 0.0 و 1.0.<br />
+		[page:Float g] — قيمة قناة خضراء بين 0.0 و 1.0.<br />
+		[page:Float b] — قيمة قناة زرقاء بين 0.0 و 1.0.<br /><br />
+		
+		يضع هذا اللون من قيم RGB.
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] — قيمة بين 0.0 و 1.0.<br /><br />
+		
+		تضع جميع مكونات اللون الثلاثة على قيمة [page:Float scalar].
+		</p>
+		
+		<h3>
+			[method:this setStyle]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:String style] — اللون كسلسلة على طراز CSS.<br /><br />
+			
+		يضع هذا اللون من سلسلة على طراز CSS. على سبيل المثال، "rgb(250، 0،0)"، "rgb(100٪، 0٪، 0٪)"، "hsl(0، 100٪، 50٪)"، "#ff0000"، "#f00" أو "red" (أو أي [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart اسم لون X11] - يتم دعم جميع أسماء الألوان الـ 140).<br />
+			
+		يتم قبول الألوان شفافة مثل "rgba(255، 0، 0، 0.5)" و "hsla(0، 100٪، 50٪، 0.5)" أيضًا، ولكن سيتم تجاهل إحداثية قناة ألفا.<br /><br />
+			
+		يرجى ملاحظة أنه بالنسبة لأسماء الألوان X11، تصبح الكلمات المتعددة مثل Dark Orange السلسلة 'darkorange'.
+		</p>
+			
+		<h3>
+		[method:this setColorName]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:String style] — اسم اللون (من [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart أسماء الألوان X11]).<br /><br />
+			
+		يضع هذا اللون من اسم لون. أسرع من طريقة [page:.setStyle] إذا كنت لا تحتاج إلى التنسيقات الأخرى على طراز CSS.<br /><br />
+			
+		للراحة، يتم عرض قائمة الأسماء في Color.NAMES كتجزئة:
+		<code>
+		Color.NAMES.aliceblue // returns 0xF0F8FF
+		</code>
+		</p>
+			
+		<h3>[method:this sub]( [param:Color color] )</h3>
+		<p>
+		يطرح مكونات RGB للون المحدد من مكونات RGB لهذا اللون. إذا نتج عن ذلك مكون سالب، يتم تعيين هذا المكون إلى صفر.
+		</p>
+			
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مجموعة اختيارية لتخزين اللون فيها. <br />
+		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
+			
+		يعود بمجموعة على شكل [r, g, b].
+		</p>
+			
+		<h3>[method:Number toJSON]()</h3>
+		<p>
+		هذه الطرق تحدد نتيجة التسلسل لـ [name]. يعود باللون كقيمة سداسية عشرية.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 77 - 0
docs/api/ar/math/Cylindrical.html

@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		نقطة
+		[link:https://en.wikipedia.org/wiki/Cylindrical_coordinate_system الإحداثيات الاسطوانية].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		[page:Float radius] - المسافة من المبدأ إلى نقطة في المستوى x-z. الافتراضي هو `1.0`.<br />
+		[page:Float theta] - الزاوية عكس عقارب الساعة في المستوى x-z مقاسة بالراديان من المحور z الموجب. الافتراضي هو `0`.<br />
+		[page:Float y] - الارتفاع فوق المستوى x-z. الافتراضي هو `0`.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Float radius]</h3>
+		 
+		<h3>[property:Float theta]</h3>
+		 
+		<h3>[property:Float y]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Cylindrical clone]()</h3>
+		<p>
+		يعيد اسطواني جديد بنفس خصائص [page:.radius radius],
+		[page:.theta theta] و [page:.y y] كهذا.
+		</p>
+		 
+		<h3>[method:this copy]( [param:Cylindrical other] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.radius radius],
+		[page:.theta theta] و [page:.y y] للإسطواني الممرر إلى هذا الإسطواني.
+		</p>
+		 
+		<h3>
+		[method:this set]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta] و [page:.y y].
+		</p>
+		 
+		<h3>[method:this setFromVector3]( [param:Vector3 vec3] )</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta]
+		و [page:.y y] من الـ[page:Vector3 Vector3].
+		</p>
+		 
+		<h3>
+		[method:this setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta] و
+		[page:.y y] من الإحداثيات الديكارتية.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 175 - 0
docs/api/ar/math/Euler.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل [link:http://en.wikipedia.org/wiki/Euler_angles زوايا أويلر].<br /><br />
+		 
+		تصف زوايا أويلر التحول الدوار بتدوير كائن على
+		محاوره المختلفة بمقادير محددة لكل محور، وترتيب محور محدد.
+		</p>
+		 
+		<p>
+		التكرار عبر نسخة [name] سيعود بمكوناته (x، y، z،
+		order) في الترتيب المقابل.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );
+		const b = new THREE.Vector3( 1, 0, 1 );
+		b.applyEuler(a);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:String order] )
+		</h3>
+		<p>
+		[page:Float x] - (اختياري) زاوية المحور x بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:Float y] - (اختياري) زاوية المحور y بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:Float z] - (اختياري) زاوية المحور z بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:String order] - (اختياري) سلسلة تمثل الترتيب الذى يتم فيه تطبیق
+		التدویرات، الافتراضی هو 'XYZ' (یجب أن تكون بحروف كبیرة).<br /><br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isEuler]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:String order]</h3>
+		<p>
+		الترتيب الذي يتم فيه تطبيق التدويرات. الافتراضي هو 'XYZ'، مما يعني أن
+		الكائن سيتم تدويره أولاً حول محور X الخاص به، ثم محور Y الخاص به وأخيرًا
+		محور Z الخاص به. الإمكانيات الأخرى هي: 'YZX'، 'ZXY'، 'XZY'، 'YXZ'
+		و'ZYX'. يجب أن تكون هذه بحروف كبيرة.<br /><br />
+	 
+		يستخدم Three.js زوايا Tait-Bryan `intrinsic`. هذا يعني أن التدويرات
+		يتم تنفيذها بالنسبة إلى نظام الإحداثيات `local`. أي للترتيب 'XYZ'، يتم
+		التدوير أولاً حول محور local-X (وهو نفسه محور world-X)، ثم حول local-Y
+		(الذي قد يكون الآن مختلفًا عن محور world Y)، ثم local-Z (الذي قد يكون
+		مختلفًا عن محور world Z).<br /><br />
+		</p>
+	 
+		<h3>[property:Float x]</h3>
+		<p>القيمة الحالية للمكون x.<br /><br /></p>
+	 
+		<h3>[property:Float y]</h3>
+		<p>القيمة الحالية للمكون y.<br /><br /></p>
+	 
+		<h3>[property:Float z]</h3>
+		<p>القيمة الحالية للمكون z.<br /><br /></p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this copy]( [param:Euler euler] )</h3>
+		<p>ينسخ قيمة [page:Euler euler] إلى هذه الزاوية الأويلر.</p>
+	 
+		<h3>[method:Euler clone]()</h3>
+		<p>يعود إلى أويلر جديد بنفس المعلمات كهذا.</p>
+	 
+		<h3>[method:Boolean equals]( [param:Euler euler] )</h3>
+		<p>يتحقق من المساواة الصارمة لهذه الزاوية الأويلر و[page:Euler euler].</p>
+	 
+		<h3>[method:this fromArray]( [param:Array array] )</h3>
+		<p>
+		[page:Array array] من طول 3 أو 4. يتوافق السجل 4 اختياريًا
+		إلى [page:.order order].<br /><br />
+	 
+		يعيّن زاوية [page:.x x] لهذه الزاوية الأويلر إلى `array[0]`. <br />
+		يعيّن زاوية [page:.y y] لهذه الزاوية الأويلر إلى `array[1]`. <br />
+		يعيّن زاوية [page:.z z] لهذه الزاوية الأويلر إلى `array[2]`. <br />
+		اختیاریًا یعین ترتیب هذه الزاویة الأویلر [page:.order order] إلى `array[3]`.
+		</p>
+	 
+		<h3>[method:this reorder]( [param:String newOrder] )</h3>
+		<p>
+		يعيد تعيين زاوية الأويلر بترتيب جديد عن طريق إنشاء رباعية من هذه
+		زاوية الأويلر ثم تعيين هذه الزاوية الأويلر مع الرباعية والترتيب
+		الجديد. <br /><br />
+	 
+		<em>*تحذير*: هذا يتجاهل معلومات الثورة.</em>
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:String order] )
+		</h3>
+		<p>
+		[page:.x x] - زاوية المحور x بالراديان.<br />
+		[page:.y y] - زاوية المحور y بالراديان.<br />
+		[page:.z z] - زاوية المحور z بالراديان.<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذي يتم فيه تطبيق
+		التدويرات.<br /><br />
+	 
+		يضبط زوايا هذا التحول الأويلر واختياريًا الترتيب [page:.order order].
+		</p>
+	 
+		<h3>
+		[method:this setFromRotationMatrix]( [param:Matrix4 m], [param:String order] )
+		</h3>
+		<p>
+		[page:Matrix4 m] - a [page:Matrix4] منها 3x3 العلوية من المصفوفة هي
+		مصفوفة دوران نقية
+		(أي غير مقاسة).<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذي يتم فيه تطبيق
+		التدويرات.<br />
+	 
+		يضبط زوايا هذا التحول الأويلر من مصفوفة دوران نقية بناءً على
+		التوجه المحدد بالترتيب.
+		</p>
+	 
+		<h3>
+		[method:this setFromQuaternion]( [param:Quaternion q], [param:String order] )
+		</h3>
+		<p>
+		[page:Quaternion q] - رباعية معدلة.<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذى يتم فيه تطبیق
+		التدويرات.<br />
+	 
+		يضبط زوايا هذا التحول الأويلر من رباعية معدلة بناءً على
+		التوجه المحدد بـ[page:.order order].
+		</p>
+	 
+		<h3>
+		[method:this setFromVector3]( [param:Vector3 vector], [param:String order] )
+		</h3>
+		<p>
+		[page:Vector3 vector] - [page:Vector3].<br />
+		[page:.order order] - (اختیاری) سلسلة تمثل الترتیب الذى يتم فيه تطبیق
+		التدویرات.<br /><br />
+	 
+		قم بضبط [page:.x x], [page:.y y] و[page:.z z]، وقم اختیاریًا بتحديث
+		الترتیب[page:.order order].
+		</p>
+	 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (optional) array to store the euler in.<br />
+		[page:Integer offset] (optional) offset in the array.<br />
+	 
+		يعود إلى مصفوفة من شكل [[page:.x x], [page:.y y], [page:.z z],
+	 	[page:.order order ]].
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/ar/math/Frustum.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يتم استخدام [link:http://en.wikipedia.org/wiki/Frustum الهرم] لتحديد
+		ما هو داخل مجال رؤية الكاميرا. يساعدون في تسريع عملية التصيير - يمكن استبعاد
+		الكائنات التي تقع خارج هرم الكاميرا بأمان من التصيير.<br /><br />
+		 
+		هذه الفئة مخصصة بشكل رئيسي للاستخدام داخليًا من قبل محرك التصيير لحساب
+		هرم [page:Camera camera] أو [page:LightShadow.camera shadowCamera].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]([param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5])
+		</h3>
+		<p>
+		[page:Plane p0] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p1] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p2] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p3] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p4] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p5] - (اختياري) الافتراضي هو [page:Plane] جديد.<br /><br />
+		 
+		ينشئ [name] جديد.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Array planes]</h3>
+		<p>مصفوفة من 6 مستويات [page:Plane].</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Frustum clone]()</h3>
+		<p>أعد هرمًا جديدًا بنفس المعلمات كهذا.</p>
+		 
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للاختبار.<br /><br />
+		 
+		يتحقق مما إذا كان الهرم يحتوي على نقطة[page:Vector3].
+		</p>
+		 
+		<h3>[method:this copy]( [param:Frustum frustum] )</h3>
+		<p>
+		[page:Frustum frustum] - الهرم الذي يتم نسخه<br /><br />
+	 
+		ينسخ خصائص [page:Frustum frustum] الممررة إلى هذا.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتحقق من التقاطع.<br /><br />
+	 
+		يعود بـtrue إذا كان [page:Box3 box] يتقاطع مع هذا الهرم.
+		</p>
+	 
+		<h3>[method:Boolean intersectsObject]( [param:Object3D object] )</h3>
+		<p>
+		يتحقق مما إذا كانت [page:Object3D object]
+		[page:BufferGeometry.boundingSphere bounding sphere] تتقاطع مع
+		الهرم.<br /><br />
+	 
+		لاحظ أن الكائن يجب أن يحتوي على [page:BufferGeometry geometry] حتى
+		يمكن حساب الكرة المحيطة.
+		</p>
+	 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتحقق من التقاطع.<br /><br />
+	 
+		يعود بـtrue إذا كان [page:Sphere sphere] يتقاطع مع هذا الهرم.
+		</p>
+	 
+		<h3>[method:Boolean intersectsSprite]( [param:Sprite sprite] )</h3>
+		<p>
+		يتحقق مما إذا كان [page:Sprite sprite] يتقاطع مع الهرم.<br /><br />
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5] )
+		</h3>
+		<p>
+		يضبط الهرم من المستويات الممررة. لا يوجد ترتيب مستوى ضمني.<br />
+		لاحظ أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+	 
+		<h3>[method:this setFromProjectionMatrix]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - Projection [page:Matrix4] used to set the
+	 	[page:.planes planes]<br /><br />
+		يضبط مستويات الهرم من مصفوفة الإسقاط.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 68 - 0
docs/api/ar/math/Interpolant.html

@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		الفئة الأساسية المجردة للمتداخلات على العينات المعلمية.<br /><br />
+		 
+		مجال المعلمة هو أحادي البعد، عادةً الوقت أو مسار على طول منحنى
+		محدد بالبيانات.<br /><br />
+		 
+		يمكن أن تكون قيم العينات ذات أبعاد مختلفة وقد تطبق الفئات المشتقة
+		تفسيرات خاصة للبيانات.<br /><br />
+		 
+		توفر هذه الفئة البحث عن الفاصل في طريقة قالب، مؤجلًا التداخل الفعلي
+		إلى الفئات المشتقة.<br /><br />
+		 
+		تعقيد الوقت هو `O(1)` للوصول الخطي المتقاطع في نقطتين على الأكثر
+		و`O(log N)` للوصول العشوائي، حيث *N* هو عدد المواضع.<br /><br />
+		 
+		المراجع: [link:http://www.oodesign.com/template-method-pattern.html http://www.oodesign.com/template-method-pattern.html]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )
+		</h3>
+		<p>
+		parameterPositions -- مصفوفة من المواضع<br />
+		sampleValues -- مصفوفة من العينات<br />
+		sampleSize -- عدد العينات<br />
+		resultBuffer -- مخزن لتخزين نتائج التداخل.<br /><br />
+		 
+		ملاحظة: هذا غير مصمم ليتم استدعاؤه مباشرة.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:null parameterPositions]</h3>
+		 
+		<h3>[property:null resultBuffer]</h3>
+		 
+		<h3>[property:null sampleValues]</h3>
+		 
+		<h3>[property:Object settings]</h3>
+		<p>هيكل إعدادات اختياري خاص بالفئة الفرعية.</p>
+		 
+		<h3>[property:null valueSize]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Array evaluate]( [param:Number t] )</h3>
+		<p>تقيم المتداخل في الموضع *t*.</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 142 - 0
docs/api/ar/math/Line3.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		قطعة خطية هندسية ممثلة بنقطة البداية والنهاية.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 start], [param:Vector3 end] )</h3>
+		<p>
+		[page:Vector3 start] - بداية القطعة الخطية. الافتراضي هو `(0, 0,
+		0)`.<br />
+		[page:Vector3 end] - نهاية القطعة الخطية. الافتراضي هو `(0, 0, 0)`.<br /><br />
+		 
+		ينشئ [name] جديد.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Vector3 start]</h3>
+		<p>[page:Vector3] يمثل نقطة بداية الخط.</p>
+		 
+		<h3>[property:Vector3 end]</h3>
+		<p>[page:Vector3] يمثل نقطة نهاية الخط.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>يطبق تحويل المصفوفة على القطعة الخطية.</p>
+		 
+		<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] )</h3>
+		<p>
+		[page:Float t] - استخدم قيم 0-1 لإرجاع موضع على طول القطعة
+		الخطية. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		 
+		يعود بمتجه في موضع معين على طول الخط. عندما يكون [page:Float t]
+		= 0، يعود بالمتجه البدائي، وعندما يكون [page:Float t] = 1 يعود
+		بالمتجه النهائي.<br />
+		</p>
+		 
+		<h3>[method:Line3 clone]()</h3>
+		<p>
+		يعود بـ[page:Line3] جديد مع نفس المتجهات [page:.start start] و
+		[page:.end end] كهذا.
+		</p>
+		 
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Boolean clampToLine], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - أعد أقرب نقطة على الخط إلى هذه
+		نقطة.<br />
+		[page:Boolean clampToLine] - ما إذا كان يجب تثبيت القيمة المرجعة على
+		قطعة خطية.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		 
+		يعود بأقرب نقطة على الخط. إذا كان [page:Boolean clampToLine]
+		صحيحًا، فإن القيمة المرجعة ستكون مثبتة على قطعة خطية.
+		</p>
+		 
+		<h3>
+		[method:Float closestPointToPointParameter]( [param:Vector3 point], [param:Boolean clampToLine] )
+		</h3>
+		<p>
+		[page:Vector3 point] - نقطة لإرجاع معلم نقطة له.
+		<br />
+		[page:Boolean clampToLine] - ما إذا كان يجب تثبيت النتيجة في المدى `[0,
+		1]`.<br /><br />
+		 
+		يعود بمعلم نقطة بناءً على أقرب نقطة كما تم توصيلها على
+		قطعة خطية. إذا كان [page:Boolean clampToLine] صحيحًا، فإن القيمة المرجعة
+		ستكون بين 0 و 1.
+		</p>
+
+		<h3>[method:this copy]( [param:Line3 line] )</h3>
+		<p>
+		ينسخ متجهات [page:.start start] و [page:.end end] للخط الممرر
+		إلى هذا الخط.
+		</p>
+	 
+		<h3>[method:Vector3 delta]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يعود بمتجه دلتا القطعة الخطية (متجه [page:.end end]
+		ناقص متجه [page:.start start]).
+		</p>
+	 
+		<h3>[method:Float distance]()</h3>
+		<p>
+		يعود بـ[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) بين نقاط [page:.start start] و [page:.end end] للخط.
+		</p>
+	 
+		<h3>[method:Float distanceSq]()</h3>
+		<p>
+		يعود بمربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) بين متجهات [page:.start start] و
+		[page:.end end] للخط.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Line3 line] )</h3>
+		<p>
+		[page:Line3 line] - [page:Line3] للمقارنة مع هذا.<br /><br />
+	 
+		يعود بـtrue إذا كانت نقاط [page:.start start] و [page:.end end] لكلا الخطين
+		متساوية.
+		</p>
+	 
+		<h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يعود بمركز القطعة الخطية.
+		</p>
+	 
+		<h3>[method:this set]( [param:Vector3 start], [param:Vector3 end] )</h3>
+		<p>
+		[page:Vector3 start] - قم بضبط نقطة البدء[page:.start ] للخط.<br />
+		[page:Vector3 end] - قم بضبط نقطة النهاية[page:.end ] للخط.<br /><br />
+	 
+		يضبط قيم البدء والنهاية عن طريق نسخ المتجهات الموفرة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 208 - 0
docs/api/ar/math/MathUtils.html

@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">كائن مع عدة وظائف مساعدة للرياضيات.</p>
+
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>
+		[method:Float clamp]( [param:Float value], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float value] — القيمة التي يتم تثبيتها.<br />
+		[page:Float min] — الحد الأدنى.<br />
+		[page:Float max] — الحد الأقصى.<br /><br />
+	 
+		يثبت[page:Float value ] ليكون بين[page:Float min ] و
+	 [page:Float max ].
+		</p>
+	 
+		<h3>[method:Float degToRad]( [param:Float degrees] )</h3>
+		<p>تحويل الدرجات إلى راديان.</p>
+	 
+		<h3>
+		[method:Integer euclideanModulo]( [param:Integer n], [param:Integer m] )
+		</h3>
+		<p>
+		[page:Integer n]،[page:Integer m ] - أعداد صحيحة<br /><br />
+	 
+		يحسب نمط إقليدي لـ[page:Integer m ] % [page:Integer n ]، هذا
+		هو:
+		<code>( ( n % m ) + m ) % m</code>
+		</p>
+	 
+		<h3>[method:UUID generateUUID]( )</h3>
+		<p>
+		توليد
+	 	[link:https://en.wikipedia.org/wiki/Universally_unique_identifier UUID]
+		(معرف فريد عالميًا).
+		</p>
+	 
+		<h3>[method:Boolean isPowerOfTwo]( [param:Number n] )</h3>
+		<p>يعود بـ`true` إذا كان [page:Number n] قوة لـ2.</p>
+	 
+		<h3>
+		[method:Float inverseLerp]( [param:Float x], [param:Float y], [param:Float value] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة البداية.<br />
+		[page:Float y] - نقطة النهاية.<br />
+		[page:Float value] - قيمة بين البداية والنهاية.<br /><br />
+	 
+		يعود بالنسبة المئوية في الفترة المغلقة `[0، 1]` للقيمة المعطاة
+		بين نقطة البداية والنهاية.
+		</p>
+	 
+		<h3>
+		[method:Float lerp]( [param:Float x], [param:Float y], [param:Float t] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة البداية. <br />
+		[page:Float y] - نقطة النهاية. <br />
+		[page:Float t] - عامل التداخل في الفترة المغلقة `[0، 1]`.<br /><br />
+	 
+		يعود بقيمة[link:https://en.wikipedia.org/wiki/Linear_interpolation متداخلة خطيًا ] 
+		من نقطتين معروفتين بناءً على الفترة المعطاة -
+	 	[page:Float t ] = 0 سيعود بـ[page:Float x ] و[page:Float t ] = 1 سوف
+		يعود بـ[page:Float y ].
+		</p>
+	 
+		<h3>
+		[method:Float damp]( [param:Float x], [param:Float y], [param:Float lambda], [param:Float dt] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة حالية. <br />
+		[page:Float y] - نقطة الهدف. <br />
+		[page:Float lambda] - قيمة lambda أعلى ستجعل الحركة أكثر
+		فجأة، وقيمة أقل ستجعل الحركة أكثر تدرجًا. <br />
+		[page:Float dt] - وقت دلتا بالثواني.<br /><br />
+	 
+		تداخل عدد من[page:Float x ] نحو[page:Float y ] بطريقة
+		ربيعية باستخدام[page:Float dt ] للحفاظ على حركة مستقلة عن معدل
+		الإطارات. للحصول على التفاصيل، راجع
+	 	[link:http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/ تخميد مستقل عن معدل الإطارات باستخدام lerp].
+		</p>
+	 
+
+		<h3>
+			[method:Float mapLinear]( [param:Float x], [param:Float a1], [param:Float a2], [param:Float b1], [param:Float b2] )
+		</h3>
+		<p>
+		[page:Float x] — القيمة التي يتم تعيينها.<br />
+		[page:Float a1] — الحد الأدنى للنطاق A.<br />
+		[page:Float a2] — الحد الأقصى للنطاق A.<br />
+		[page:Float b1] — الحد الأدنى للنطاق B.<br />
+		[page:Float b2] — الحد الأقصى للنطاق B.<br /><br />
+		 
+		تعيين خطي لـ[page:Float x ] من النطاق [[page:Float a1 ], [page:Float a2 ]] إلى النطاق [[page:Float b1 ], [page:Float b2 ]].
+		</p>
+		 
+		<h3>[method:Float pingpong]( [param:Float x], [param:Float length] )</h3>
+		<p>
+		[page:Float x] — القيمة التي يتم تعيينها.<br />
+		[page:Float length] — القيمة الموجبة التي ستتعامل معها الوظيفة.
+		الافتراضي هو 1.<br /><br />
+		 
+		يعود بقيمة تتبادل بين 0 و[param:Float length ].
+		</p>
+		 
+		<h3>[method:Integer ceilPowerOfTwo]( [param:Number n] )</h3>
+		<p>
+		يعود بأصغر قوة من 2 أكبر من أو يساوي
+		[page:Number n ].
+		</p>
+		 
+		<h3>[method:Integer floorPowerOfTwo]( [param:Number n] )</h3>
+		<p>
+		يعود بأكبر قوة من 2 أقل من أو يساوي[page:Number n ].
+		</p>
+		 
+		<h3>[method:Float radToDeg]( [param:Float radians] )</h3>
+		<p>تحويل الراديان إلى درجات.</p>
+		 
+		<h3>[method:Float randFloat]( [param:Float low], [param:Float high] )</h3>
+		<p>عشوائية عائمة في الفترة [[page:Float low ], [page:Float high ]].</p>
+		 
+		<h3>[method:Float randFloatSpread]( [param:Float range] )</h3>
+		<p>
+		عشوائية عائمة في الفترة [-[page:Float range ] / 2،[page:Float range ]
+		/ 2].
+		</p>
+		 
+		<h3>
+		[method:Integer randInt]( [param:Integer low], [param:Integer high] )
+		</h3>
+		<p>عشوائية صحيحة في الفترة [[page:Float low ],[page:Float high ]].</p>
+		 
+		<h3>[method:Float seededRandom]( [param:Integer seed] )</h3>
+		<p>
+		عشوائية زائفة محددة عائمة في الفترة `[0، 1]`. هو اختیاری
+		[page:Integer seed ].
+		</p>
+		 
+		<h3>
+			[method:Float smoothstep]( [param:Float x], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float x] - القيمة التي يتم تقييمها بناءً على موقعها بين الحد
+		الأدنى والأقصى. <br />
+		[page:Float min] - أي قيمة x أدنى من الحد الأدنى ستكون 0.<br />
+		[page:Float max] - أي قيمة x أعلى من الحد الأقصى ستكون 1.<br /><br />
+		 
+		يعود بقيمة بين 0-1 تمثل النسبة المئوية التي انتقلت فيها x بين الحد
+		الأدنى والأقصى، ولكن تم تجانسها أو تبطئها كلما اقترب X من
+		الحد الأدنى والأقصى.<br /><br />
+		 
+		راجع [link:http://en.wikipedia.org/wiki/Smoothstep Smoothstep] للحصول على التفاصيل.
+		</p>
+		 
+		<h3>
+		[method:Float smootherstep]( [param:Float x], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float x] - القيمة التي يتم تقييمها بناءً على موقعها بين الحد
+		الأدنى والأقصى. <br />
+		[page:Float min] - أي قيمة x أدنى من الحد الأدنى ستكون 0.<br />
+		[page:Float max] - أي قيمة x أعلى من الحد الأقصى ستكون 1.<br /><br />
+		 
+		يعود بقيمة بين 0-1. تغير على smoothstep
+		يحتوي على مشتقات من الطلب 1st و 2nd صفر في x=0 و x=1.
+		</p>
+		 
+		<h3>
+		[method:undefined setQuaternionFromProperEuler]( [param:Quaternion q], [param:Float a], [param:Float b], [param:Float c], [param:String order] )
+		</h3>
+		<p>
+		[page:Quaternion q] - رباعية لضبطها<br />
+		[page:Float a] - التدوير المطبق على المحور الأول، بالراديان <br />
+		[page:Float b] - التدوير المطبق على المحور الثاني، بالراديان
+		<br />
+		[page:Float c] - التدوير المطبق على المحور الثالث، بالراديان <br />
+		[page:String order] - سلسلة تحدد ترتيب المحاور: 'XYX'، 'XZX'،
+		'YXY'، 'YZY'، 'ZXZ'، أو 'ZYZ'<br /><br />
+		 
+		يضبط رباعية[page:Quaternion q ] من
+		[link:http://en.wikipedia.org/wiki/Euler_angles زوايا أويلر Proper intrinsic ] 
+		المعرفة بزوايا[page:Float a ]،[page:Float b ]، و[page:Float c ]، 
+		والترتیب[page:String order].<br />
+		 
+		يتم تطبیق التدویرات على المحاور بالترتیب المحدد بـ[page:String order]: 
+		يتم تطبیق التدویر بزاویة[page:Float a ] أولًا، ثم بزاویة
+		[page:Float b ]، ثم بزاویة[page:Float c ]. زوایا هی فی رادیان.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 282 - 0
docs/api/ar/math/Matrix3.html

@@ -0,0 +1,282 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل 3x3
+		[link:https://en.wikipedia.org/wiki/Matrix_(mathematics) مصفوفة].
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		<code>
+const m = new Matrix3(); 
+		</code>
+		 
+		<h2>ملاحظة حول الترتيب الرئيسي للصف والعمود الرئيسي</h2>
+		<p>
+			يأخذ المنشئ وطريقة [page:set]() الوسائط في
+			[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order ترتيب الصف الرئيسي]
+			، في حين أنها مخزنة داخليًا في مصفوفة [page:.elements elements]
+			بترتيب العمود الرئيسي.<br /><br />
+		 
+			هذا يعني أن استدعاء
+			<code>
+m.set( 11, 12, 13,
+		21, 22, 23,
+		31, 32, 33 );
+		</code>
+			ستؤدي إلى مصفوفة [page:.elements elements] التي تحتوي على:
+			<code> 
+m.elements = [ 11, 21, 31,
+				12, 22, 32, 
+				13, 23, 33 ];
+			</code>
+			وداخليًا يتم تنفيذ جميع الحسابات باستخدام ترتيب العمود الرئيسي.
+			ومع ذلك ، نظرًا لأن الترتيب الفعلي لا يحدث فرقًا رياضيًا و
+			معظم الناس معتادون على التفكير في المصفوفات بترتيب الصف الرئيسي ، فإن
+			وثائق three.js تظهر المصفوفات بترتيب الصف الرئيسي. فقط تحمل في
+			اذهانك أنه إذا كنت تقرأ التعليمات البرمجية المصدرية ، فستضطر إلى أخذ
+			[link:https://en.wikipedia.org/wiki/Transpose عكس] لأية مصفوفات
+			الموضحة هنا لجعل المحاسبات منطقية.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Number n11], [param:Number n12], [param:Number n13],
+		[param:Number n21], [param:Number n22], [param:Number n22],
+		[param:Number n31], [param:Number n32], [param:Number n33] )</h3>
+		<p>
+		ينشئ مصفوفة 3x3 بالوسائط المعطاة بترتيب الصف الرئيسي. إذا لم يتم توفير أية وسائط ، يقوم المنشئ بتهيئة
+		[name] إلى مصفوفة هوية 3x3 [link:https://en.wikipedia.org/wiki/Identity_matrix].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Array elements]</h3>
+		<p>
+		قائمة [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order بالعمود الرئيسي] من قيم المصفوفة.
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Matrix3 clone]()</h3>
+		<p>ينشئ Matrix3 جديدًا وبعناصر متطابقة مع هذا.</p>
+	 
+		<h3>[method:this copy]( [param:Matrix3 m] )</h3>
+		<p>ينسخ عناصر المصفوفة [page:Matrix3 m] في هذه المصفوفة.</p>
+	 
+		<h3>[method:Float determinant]()</h3>
+		<p>
+		يحسب ويعيد [link:https://en.wikipedia.org/wiki/Determinant المحدد] لهذه المصفوفة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Matrix3 m] )</h3>
+		<p>يرجع صحيحًا إذا كانت هذه المصفوفة و [page:Matrix3 m] متساويتين.</p>
+	 
+		<h3>
+		[method:this extractBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		يستخرج [link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) الأساس]
+		لهذه المصفوفة في ثلاثة متجهات محورية مقدمة. إذا كانت هذه المصفوفة
+		هي:
+		<code>
+	 a, b, c, 
+	 d, e, f, 
+	 g, h, i 
+		</code>
+		ثم سيتم تعيين [page:Vector3 xAxis] ، [page:Vector3 yAxis] ، [page:Vector3 zAxis]
+		إلى:
+		<code>
+	 xAxis = (a, d, g) 
+	 yAxis = (b, e, h) 
+	 zAxis = (c, f, i) 
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي يتم قراءة العناصر منها.<br />
+		[page:Integer offset] - (اختياري) فهرس العنصر الأول في المصفوفة.
+		الافتراضي هو 0.<br /><br />
+	 
+		يضع عناصر هذه المصفوفة بناءً على مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+	 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذه المصفوفة ، باستخدام
+		[link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution الطريقة التحليلية].
+		لا يمكنك العكس مع محدد صفر. إذا قمت بمحاولة هذا ، فإن الطريقة تنتج مصفوفة صفرية بدلاً من ذلك.
+		</p>
+	 
+		<h3>[method:this getNormalMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - [page:Matrix4]<br /><br />
+	 
+		يضع هذه المصفوفة كـ 3x3 العلوي الأيسر من
+		[link:https://en.wikipedia.org/wiki/Normal_matrix المصفوفة الطبيعية] لل
+		مرور [page:Matrix4 matrix4].
+		المصفوفة الطبيعية هي
+		[link:https://en.wikipedia.org/wiki/Invertible_matrix العكس]
+		[link:https://en.wikipedia.org/wiki/Transpose عكس] للمصفوفة
+		[page:Matrix4 m].
+		</p>
+	 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يعيد هذه المصفوفة إلى مصفوفة الهوية 3x3:
+		<code> 
+	 1, 0, 0 
+	 0, 1, 0 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotation]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. تدور القيم الموجبة
+		عكس عقارب الساعة.<br /><br />
+	 
+		يضع هذه المصفوفة كتحول دوران ثنائي الأبعاد بـ [page:Float theta]
+		راديان. المصفوفة الناتجة ستكون:
+		<code>
+	 cos(θ) -sin(θ) 0 
+	 sin(θ) cos(θ) 0 
+	 0 0 1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeScale]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Float x] - المبلغ الذي يتم قياسه في المحور X.<br />
+		[page:Float y] - المبلغ الذي يتم قياسه في المحور Y.<br />
+	 
+		يضع هذه المصفوفة كتحول قياس ثنائي الأبعاد:
+		<code> 
+	 x, 0, 0, 
+	 0, y, 0, 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this makeTranslation]( [param:Vector2 v] )</h3>
+		<h3>[method:this makeTranslation]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Vector2 v] تحويل الترجمة من المتجه.<br />
+		أو<br />
+		[page:Float x] - المبلغ الذي يتم ترجمته في المحور X.<br />
+		[page:Float y] - المبلغ الذي يتم ترجمته في المحور Y.<br />
+	 
+		يضع هذه المصفوفة كتحويل ترجمة ثنائي الأبعاد:
+		<code>
+	 1, 0, x, 
+	 0, 1, y, 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this multiply]( [param:Matrix3 m] )</h3>
+		<p>يضرب هذه المصفوفة بعد [page:Matrix3 m].</p>
+	 
+		<h3>
+		[method:this multiplyMatrices]( [param:Matrix3 a], [param:Matrix3 b] )
+		</h3>
+		<p>يضع هذه المصفوفة على [page:Matrix3 a] x [page:Matrix3 b].</p>
+	 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب كل مكون من مكونات المصفوفة بالقيمة العددية *s*.</p>
+	 
+		<h3>[method:this rotate]( [param:Float theta] )</h3>
+		<p>يدور هذه المصفوفة بالزاوية المعطاة (بالراديان).</p>
+	 
+		<h3>[method:this scale]( [param:Float sx], [param:Float sy] )</h3>
+		<p>يقيس هذه المصفوفة بالقيم العددية المعطاة.</p>
+	 
+		<h3>
+		[method:this set]( [param:Float n11], [param:Float n12], [param:Float n13], [param:Float n21], [param:Float n22], [param:Float n23], [param:Float n31], [param:Float n32], [param:Float n33] )
+		</h3>
+		<p>
+		[page:Float n11] - القيمة التي يتم وضعها في الصف 1 ، العمود 1.<br />
+		[page:Float n12] - القيمة التي يتم وضعها في الصف 1 ، العمود 2.<br />
+		...<br />
+		...<br />
+		[page:Float n32] - القيمة التي يتم وضعها في الصف 3 ، العمود 2.<br />
+		[page:Float n33] - القيمة التي يتم وضعها في الصف 3 ، العمود 3.<br /><br />
+	 
+		يضع قيم المصفوفة 3x3 على
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order تسلسل قيم رئيسية للصف].
+		</p>
+	 
+		<h3>[method:this premultiply]( [param:Matrix3 m] )</h3>
+		<p>Pre-multiplies this matrix by [page:Matrix3 m].</p>
+	 
+		<h3>[method:this setFromMatrix4]( [param:Matrix4 m] )</h3>
+		<p>
+		قم بتعيين هذه المصفوفة إلى مصفوفة 3x3 العلوية من Matrix4
+	 	[page:Matrix4 m].
+		</p>
+	 
+		<h3>
+		[method:this setUvTransform]( [param:Float tx], [param:Float ty], [param:Float sx], [param:Float sy], [param:Float rotation], [param:Float cx], [param:Float cy] )
+		</h3>
+		<p>
+		[page:Float tx] - الإزاحة x<br />
+		[page:Float ty] - الإزاحة y<br />
+		[page:Float sx] - تكرار x<br />
+		[page:Float sy] - تكرار y<br />
+		[page:Float rotation] - الدوران ، بالراديان. تدور القيم الموجبة
+		عكس عقارب الساعة<br />
+		[page:Float cx] - مركز x للدوران<br />
+		[page:Float cy] - مركز y للدوران<br /><br />
+		 
+		يضع مصفوفة التحويل UV من الإزاحة والتكرار والدوران والمركز.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين المتجه الناتج فيها. إذا
+		لم يتم إعطاء مصفوفة جديدة سيتم إنشاؤها.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة التي يجب وضعها فيها
+		النتيجة.<br /><br />
+		 
+		يكتب عناصر هذه المصفوفة في مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+		 
+		<h3>[method:this translate]( [param:Float tx], [param:Float ty] )</h3>
+		<p>يترجم هذه المصفوفة بالقيم العددية المعطاة.</p>
+		 
+		<h3>[method:this transpose]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في
+		مكان.
+		</p>
+		 
+		<h3>[method:this transposeIntoArray]( [param:Array array] )</h3>
+		<p>
+		[page:Array array] - مصفوفة لتخزين المتجه الناتج فيها.<br /><br />
+		 
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في
+		المصفوفة الموردة ، ويرجع نفسه دون تغيير.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 493 - 0
docs/api/ar/math/Matrix4.html

@@ -0,0 +1,493 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل 4x4
+		[link:https://en.wikipedia.org/wiki/Matrix_(mathematics) matrix].<br /><br />
+		 
+		أكثر استخدامات مصفوفة 4x4 شيوعًا في الرسومات الحاسوبية ثلاثية الأبعاد هي كـ
+		[link:https://en.wikipedia.org/wiki/Transformation_matrix Transformation Matrix]. 
+		لمقدمة عن مصفوفات التحول كما هو مستخدم في WebGL ،
+		تحقق من
+		[link:http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices هذا البرنامج التعليمي].<br /><br />
+		 
+		يسمح هذا لـ[page:Vector3] يمثل نقطة في الفضاء ثلاثي الأبعاد بالخضوع
+		التحولات مثل الترجمة والدوران والقص والتحجيم والانعكاس و
+		الإسقاط المتعامد أو المنظور وهكذا ، عن طريق ضربه بـ
+		المصفوفة. يُعرف هذا باسم `تطبيق` المصفوفة على المتجه. <br /><br />
+		 
+		كل [page:Object3D] لديه ثلاث Matrix4s مرتبطة:
+		</p>
+		<ul>
+			<li>
+			[page:Object3D.matrix]: يخزن هذا التحول المحلي للكائن.
+			هذا هو تحول الكائن نسبةً إلى والده.
+			</li>
+			<li>
+			[page:Object3D.matrixWorld]: التحول العالمي أو العالمي لـ
+			الكائن. إذا لم يكن للكائن والد ، فإن هذا مطابق للتحول المحلي
+			المخزن في [page:Object3D.matrix matrix].
+			</li>
+			<li>
+			[page:Object3D.modelViewMatrix]: يمثل هذا تحول الكائن
+			نسبةً إلى نظام إحداثيات الكاميرا. مصفوفة modelViewMatrix للكائن هي
+			matrixWorld للكائن مضروبًا بـ
+			matrixWorldInverse للكاميرا.
+			</li>
+		</ul>
+		 
+		[page:Camera Cameras] لديها ثلاث Matrix4s إضافية:
+		<ul>
+			<li>
+			[page:Camera.matrixWorldInverse]: مصفوفة العرض - عكس
+			Camera's [page:Object3D.matrixWorld matrixWorld].
+			</li>
+			<li>
+			[page:Camera.projectionMatrix]: يمثل المعلومات حول كيفية
+			إسقاط المشهد على مسافة قص.
+			</li>
+			<li>
+			[page:Camera.projectionMatrixInverse]: عكس projectionMatrix.
+			</li>
+		</ul>
+		 
+		ملاحظة: [page:Object3D.normalMatrix] ليست Matrix4 ، ولكنها [page:Matrix3].
+
+		<h2>ملاحظة حول ترتيب الصف الرئيسي والعمود الرئيسي</h2>
+		<p>
+		يأخذ الباني وطريقة [page:set]() المعاملات في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order row-major] 
+		ترتيب ، في حين يتم تخزينها داخليًا في مصفوفة [page:.elements elements] بترتيب العمود الرئيسي. <br /><br />
+	 
+		هذا يعني أن الاتصال
+		<code>
+	 const m = new THREE.Matrix4(); 
+	 m.set( 11، 12، 13، 14، 
+		21، 22، 23، 24,
+		31، 32، 33، 34، 
+		41، 42، 43، 44 );
+		</code>
+		ستؤدي إلى مصفوفة [page:.elements elements] التي تحتوي على:
+		<code>
+	 m.elements = [ 11, 21, 31, 41, 
+		12, 22, 32, 42, 
+		13, 23, 33, 43, 
+		14, 24, 34, 44 ];
+		</code>
+		وداخليًا يتم إجراء جميع الحسابات باستخدام ترتيب العمود الرئيسي.
+		ومع ذلك ، نظرًا لأن الترتيب الفعلي لا يحدث فرقًا رياضيًا و
+		معظم الناس معتادون على التفكير في المصفوفات بترتيب الصف الرئيسي ،
+		توثق three.js المصفوفات بترتيب الصف الرئيسي. فقط تذكر أنه إذا كنت
+		قراءة شفرة المصدر ، ستضطر إلى أخذ
+		[link:https://en.wikipedia.org/wiki/Transpose transpose] من أية مصفوفات
+		الموضح هنا لجعل المحاسبات منطقية.
+		</p>
+	 
+
+		<h2>استخراج الموضع والدوران والمقياس</h2>
+		<p>
+		هناك العديد من الخيارات المتاحة لاستخراج الموضع والدوران و
+		المقياس من Matrix4.
+		</p>
+		<ul>
+			<li>
+			[page:Vector3.setFromMatrixPosition]: يمكن استخدامه لاستخراج
+			مكون الترجمة.
+			</li>
+			<li>
+			[page:Vector3.setFromMatrixScale]: يمكن استخدامه لاستخراج المقياس
+			مكون.
+			</li>
+			<li>
+			[page:Quaternion.setFromRotationMatrix] ،
+			[page:Euler.setFromRotationMatrix] أو [page:.extractRotation extractRotation] 
+			يمكن استخدامه لاستخراج مكون الدوران من مصفوفة نقية (غير متساوية القياس).
+			</li>
+			<li>
+			[page:.decompose decompose] يمكن استخدامه لاستخراج الموضع والدوران
+			والمقياس كلهم في آن واحد.
+			</li>
+		</ul>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Number n11], [param:Number n12], [param:Number n13], [param:Number n14],
+		[param:Number n21], [param:Number n22], [param:Number n23], [param:Number n24],
+		[param:Number n31], [param:Number n32], [param:Number n33], [param:Number n34],
+		[param:Number n41], [param:Number n42], [param:Number n43], [param:Number n44] )</h3>
+	 
+		<p>
+		ينشئ مصفوفة 4x4 بالمعاملات المعطاة بترتيب الصف. إذا لم يتم توفير أي معاملات ، فإن الباني يقوم بتهيئة 
+		الـ[name] إلى مصفوفة 4x4[link:https://en.wikipedia.org/wiki/Identity_matrix identity matrix].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Array elements]</h3>
+		<p>
+		قائمة
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] من قيم المصفوفة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:Matrix4 clone]()</h3>
+		<p>
+		ينشئ Matrix4 جديدًا بـ[page:.elements elements] متطابقة لهذه
+		واحد.
+		</p>
+	 
+		<h3>
+		[method:this compose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )
+		</h3>
+		<p>
+		يضع هذه المصفوفة على التحول المكون من[page:Vector3 position] ، 
+		[page:Quaternion quaternion] و[page:Vector3 scale].
+		</p>
+	 
+
+		<h3>[method:this copy]( [param:Matrix4 m] )</h3>
+		<p>
+		ينسخ [page:.elements elements] من المصفوفة [page:Matrix4 m] في هذه
+		المصفوفة.
+		</p>
+	 
+		<h3>[method:this copyPosition]( [param:Matrix4 m] )</h3>
+		<p>
+		ينسخ مكون الترجمة من المصفوفة المعطاة [page:Matrix4 m]
+		في مكون الترجمة لهذه المصفوفة.
+		</p>
+	 
+		<h3>
+		[method:this decompose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )
+		</h3>
+		<p>
+		يقوم بتحليل هذه المصفوفة إلى مكوناتها[page:Vector3 position] ،[page:Quaternion quaternion] 
+		و[page:Vector3 scale].<br /><br />
+		ملاحظة: ليست جميع المصفوفات قابلة للتحليل بهذه الطريقة. على سبيل المثال ، إذا كان
+		كائن لديه والد غير متساوي القياس ، فقد لا تكون مصفوفة العالم الخاصة بالكائن
+		قابلة للتحليل ، وقد لا تكون هذه الطريقة مناسبة.
+		</p>
+	 
+		<h3>[method:Float determinant]()</h3>
+		<p>
+		يحسب ويعيد[link:https://en.wikipedia.org/wiki/Determinant determinant] لهذه المصفوفة. <br /><br />
+	 
+		بناءً على الطريقة المبينة
+		[link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.html هنا].
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Matrix4 m] )</h3>
+		<p>يرجع صحيحًا إذا كانت هذه المصفوفة و[page:Matrix4 m] متساويتين.</p>
+	 
+		<h3>
+		[method:this extractBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		يستخرج[link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) basis] 
+		من هذه المصفوفة في المتجهات الثلاثة المحورية المقدمة. إذا كانت هذه المصفوفة
+		:
+		<code>
+	 a، b، c، d، 
+	 e، f، g، h، 
+	 i، j، k، l، 
+	 m، n، o، p 
+		</code>
+		ثم سيتم تعيين[page:Vector3 xAxis] ،[page:Vector3 yAxis] ،[page:Vector3 zAxis]
+		إلى:
+		<code>
+	 xAxis = (a, e, i) 
+	 yAxis = (b, f, j) 
+	 zAxis = (c, g, k) 
+		</code>
+		</p>
+
+		<h3>[method:this extractRotation]( [param:Matrix4 m] )</h3>
+		<p>
+		يستخرج مكون الدوران من المصفوفة المعطاة [page:Matrix4 m]
+		في مكون الدوران لهذه المصفوفة.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي يتم قراءة العناصر منها. <br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة. الافتراضي هو
+		0. <br /><br />
+	 
+		يضع عناصر هذه المصفوفة بناءً على [page:Array array] في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] تنسيق.
+		</p>
+	 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذه المصفوفة ، باستخدام
+		[link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution الطريقة التحليلية]. 
+		لا يمكنك عكس مع محدد صفر. إذا
+		حاولت ذلك ، فإن الطريقة تنتج مصفوفة صفرية بدلاً من ذلك.
+		</p>
+	 
+		<h3>[method:Float getMaxScaleOnAxis]()</h3>
+		<p>يحصل على أقصى قيمة مقياس للمحاور الثلاثة.</p>
+	 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يعيد تعيين هذه المصفوفة إلى
+		[link:https://en.wikipedia.org/wiki/Identity_matrix مصفوفة الهوية].
+		</p>
+	 
+		<h3>
+		[method:this lookAt]( [param:Vector3 eye], [param:Vector3 target], [param:Vector3 up] )
+		</h3>
+		<p>
+		يبني مصفوفة دوران ، تبحث من[page:Vector3 eye] نحو
+		[page:Vector3 target] متجهًا بالمتجه[page:Vector3 up].
+		</p>
+	 
+		<h3>
+		[method:this makeRotationAxis]( [param:Vector3 axis], [param:Float theta] )
+		</h3>
+		<p>
+		[page:Vector3 axis] - محور الدوران ، يجب تطبيعه. <br />
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول[page:Vector3 axis] بـ
+		[page:Float theta] راديان. <br />
+	 
+		هذا بديل مثير للجدل نوعًا ما ولكنه صحيح رياضيًا للدوران عبر[page:Quaternion Quaternions]. انظر المناقشة
+		[link:https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199 هنا].
+		</p>
+	 
+		<h3>
+			[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		قم بتعيين هذا إلى [link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) basis] 
+		مصفوفة تتكون من المتجهات الأساسية الثلاثة المقدمة:
+		<code>
+		xAxis.x، yAxis.x، zAxis.x، 0، 
+		xAxis.y، yAxis.y، zAxis.y، 0، 
+		xAxis.z، yAxis.z، zAxis.z، 0، 
+		0, 		0, 		0, 	   1
+		</code>
+		</p>
+		 
+		<h3>
+		[method:this makePerspective]( [param:Float left], [param:Float right], [param:Float top], [param:Float bottom], [param:Float near], [param:Float far] )
+		</h3>
+		<p>
+		ينشئ
+		[link:https://en.wikipedia.org/wiki/3D_projection#Perspective_projection perspective projection] 
+		مصفوفة. يتم استخدام هذا داخليًا بواسطة
+		[page:PerspectiveCamera.updateProjectionMatrix]()
+		</p>
+		 
+		<h3>
+		[method:this makeOrthographic]( [param:Float left], [param:Float right], [param:Float top], [param:Float bottom], [param:Float near], [param:Float far] )
+		</h3>
+		<p>
+		ينشئ مصفوفة اسقاط متعامدة[link:https://en.wikipedia.org/wiki/Orthographic_projection orthographic projection]. يتم استخدام هذا داخليًا بواسطة
+		[page:OrthographicCamera.updateProjectionMatrix]().
+		</p>
+		 
+		<h3>[method:this makeRotationFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضع مكون الدوران (المصفوفة العلوية اليسرى 3x3) من هذه المصفوفة على
+		الدوران المحدد بالزاوية المعطاة[page:Euler Euler Angle]. باقي
+		المصفوفة يتم تعيينها على المعرف. اعتمادًا على[page:Euler.order order] 
+		من[page:Euler euler] ، هناك ست نتائج محتملة. راجع
+		[link:https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix هذه الصفحة] للحصول على قائمة كاملة.
+		</p>
+		 
+		<h3>[method:this makeRotationFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+		يضع مكون الدوران من هذه المصفوفة على الدوران المحدد بـ
+		[page:Quaternion q] ، كما هو مبين
+		[link:https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion هنا]. ال
+		باقي من المصفوفة يتم تعيينه إلى المعرف. لذلك ، بالنظر إلى[page:Quaternion q] =
+		w + xi + yj + zk ، فإن المصفوفة الناتجة ستكون:
+		<code>
+1-2y²-2z² 	2xy-2zw 	2xz+2yw 	0 
+2xy+2zw   	1-2x²-2z² 	2yz-2xw 	0 
+2xz-2yw   	2yz+2xw   	1-2x²-2y²   0
+	0 			0	 		0 		1
+			</code>
+		</p>
+
+		<h3>[method:this makeRotationX]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور X بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+1 		0	 		0 			0 
+0 	cos(&theta;) -sin(&theta;) 	0 
+0 	sin(&theta;) cos(&theta;) 	0 
+0 		0			0 			1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotationY]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور Y بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+		cos(&theta;) 0 sin(&theta;) 0 0 1 0 0 -sin(&theta;) 0 cos(&theta;) 0 0 0
+		0 1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotationZ]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور Z بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+cos(&theta;) -sin(&theta;) 0 0 
+sin(&theta;) cos(&theta;)  0 0 
+0 		0 	1   0 
+0 		0	0   1
+				</code>
+		</p>
+	 
+		<h3>
+		[method:this makeScale]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		[page:Float x] - المقدار الذي يجب تغييره في محور X. <br />
+		[page:Float y] - المقدار الذي يجب تغييره في محور Y. <br />
+		[page:Float z] - المقدار الذي يجب تغييره في محور Z. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل قياس:
+		<code>
+	 x، 0، 0، 0، 
+	 0، y، 0، 0، 
+	 0، 0، z، 0، 
+	 0، 0، 0، 1 
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this makeShear]( [param:Float xy], [param:Float xz], [param:Float yx], 
+		[param:Float yz], [param:Float zx], [param:Float zy] )
+		</h3>
+		<p>
+		[page:Float xy] - المقدار الذي يجب قصه X بواسطة Y. <br />
+		[page:Float xz] - المقدار الذي يجب قصه X بواسطة Z. <br />
+		[page:Float yx] - المقدار الذي يجب قصه Y بواسطة X. <br />
+		[page:Float yz] - المقدار الذي يجب قصه Y بواسطة Z. <br />
+		[page:Float zx] - المقدار الذي يجب قصه Z بواسطة X. <br />
+		[page:Float zy] - المقدار الذي يجب قصه Z بواسطة Y. <br /><br />
+		 
+		يضع هذه المصفوفة كتحويل قص:
+		<code> 
+		1، yx، zx، 0، 
+		xy، 1، zy، 0، 
+		xz، yz، 1، 0، 
+		0، 0، 0، 1 </code>
+		</p>
+		 
+		<h3>[method:this makeTranslation]( [param:Vector3 v] )</h3>
+		<h3>
+		[method:this makeTranslation]( [param:Float x], [param:Float y], [param:Float z] ) // واجهة برمجة التطبيقات الاختيارية
+		</h3>
+		<p>
+		يضع هذه المصفوفة كتحويل ترجمة من متجه [page:Vector3 v] ، أو أرقام [page:Float x] ، [page:Float y] و [page:Float z]:
+		<code> 
+		1، 0، 0، x، 
+		0، 1، 0، y، 
+		0، 0، 1، z، 
+		0، 0، 0، 1 </code>
+		</p>
+		 
+		<h3>[method:this multiply]( [param:Matrix4 m] )</h3>
+		<p>تعدل هذه المصفوفة بعد ضربها بـ[page:Matrix4 m].</p>
+		 
+		<h3>
+		[method:this multiplyMatrices]( [param:Matrix4 a], [param:Matrix4 b] )
+		</h3>
+		<p>يضع هذه المصفوفة على[page:Matrix4 a] x[page:Matrix4 b].</p>
+		 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>
+		يضرب كل مكون من مكونات المصفوفة بقيمة مقياسية[page:Float s].
+		</p>
+		 
+		<h3>[method:this premultiply]( [param:Matrix4 m] )</h3>
+		<p>تعدل هذه المصفوفة قبل ضربها بـ[page:Matrix4 m].</p>
+		 
+		<h3>[method:this scale]( [param:Vector3 v] )</h3>
+		<p>يضرب أعمدة هذه المصفوفة بالمتجه[page:Vector3 v].</p>
+		 
+		<h3>
+		[method:this set]( [param:Float n11], [param:Float n12], [param:Float n13], [param:Float n14], [param:Float n21], [param:Float n22], [param:Float n23], [param:Float n24], [param:Float n31], [param:Float n32], [param:Float n33], [param:Float n34], [param:Float n41], [param:Float n42], [param:Float n43], [param:Float n44] )
+		</h3>
+		<p>
+		قم بتعيين عناصر المصفوفة الخاصة بك إلى القيم الموردة بترتيب الصف الرئيسي
+		قيم [page:Float n11] ، [page:Float n12] ، ... [page:Float n44].
+		</p>
+		 
+		<h3>[method:this setFromMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		قم بتعيين عناصر 3x3 العلوية لهذه المصفوفة إلى قيم Matrix3
+		[page:Matrix3 m].
+		</p>
+		 
+		<h3>[method:this setPosition]( [param:Vector3 v] )</h3>
+		<h3>
+		[method:this setPosition]( [param:Float x], [param:Float y], [param:Float z] ) // واجهة برمجة تطبيقات اختيارية
+		</h3>
+		<p>
+		يضع مكون الموضع لهذه المصفوفة من المتجه [page:Vector3 v] ،
+		دون التأثير على بقية المصفوفة - أي إذا كانت المصفوفة هي
+		حاليا:
+		<code>
+		a, b, c, d, 
+		e, f, g, h, 
+		i, j, k, l, 
+		m, n, o, p </code>
+		هذا يصبح:
+		<code>
+		a, b, c, v.x, 
+		e, f, g, v.y, 
+		i, j, k, v.z, 
+		m, n, o, p </code>
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين المتجه الناتج فيها.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة التي يجب وضعها فيها
+		النتيجة.<br /><br />
+		 
+		يكتب عناصر هذه المصفوفة في مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+		 
+		<h3>[method:this transpose]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 208 - 0
docs/api/ar/math/Plane.html

@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		سطح ثنائي الأبعاد يمتد إلى ما لا نهاية في الفضاء ثلاثي الأبعاد ، ممثلًا
+		في [link:http://mathworld.wolfram.com/HessianNormalForm.html Hessian normal form] 
+		بواسطة متجه طبيعي ذو طول وحدة وثابت.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 normal], [param:Float constant] )</h3>
+		<p>
+		[page:Vector3 normal] - (اختياري) وحدة طول[page:Vector3] تحدد
+		الطبيعي للطائرة. الافتراضي هو `(1، 0، 0)`. <br />
+		[page:Float constant] - (اختياري) المسافة الموقعة من المنشأ إلى
+		الطائرة. الافتراضي هو `0`.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isPlane]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		 
+		<h3>[property:Vector3 normal]</h3>
+		 
+		<h3>[property:Float constant]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>
+		[method:this applyMatrix4]( [param:Matrix4 matrix], [param:Matrix3 optionalNormalMatrix] )
+		</h3>
+		<p>
+		[page:Matrix4 matrix] - الـ[Page:Matrix4] للتطبيق. <br />
+		[page:Matrix3 optionalNormalMatrix] - (اختياري) محسوب مسبقًا عادي
+		[Page:Matrix3] من Matrix4 قيد التطبيق. <br /><br />
+		 
+		تطبيق Matrix4 على الطائرة. يجب أن تكون المصفوفة تحولًا متجانسًا ومتجانسًا.
+		<br />
+		إذا كنت تزود بـ[page:Matrix3 optionalNormalMatrix] ، فيمكن إنشاؤه
+		هكذا:
+		<code>
+		const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );
+		</code>
+		</p>
+
+		<h3>[method:Plane clone]()</h3>
+		<p>
+		يعيد طائرة جديدة بنفس [page:.normal normal] و
+		[page:.constant constant] كهذا.
+		</p>
+	 
+		<h3>[method:Vector3 coplanarPoint]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+	 
+		يعيد[page:Vector3] متعامدًا على الطائرة ، عن طريق حساب
+		إسقاط المتجه الطبيعي في المنشأ على الطائرة.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Plane plane] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.normal normal] و[page:.constant constant]
+		للطائرة الممر إلى هذه الطائرة.
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		يعود بالمسافة الموقعة من[page:Vector3 point] إلى الطائرة.
+		</p>
+	 
+		<h3>[method:Float distanceToSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		يعود بالمسافة الموقعة من[page:Sphere sphere] إلى الطائرة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Plane plane] )</h3>
+		<p>
+		يتحقق لمعرفة ما إذا كانت طائرتان متساويتين (خصائصهما [page:.normal normal] و
+		[page:.constant constant] تتطابق).
+		</p>
+
+		<h3>
+		[method:Vector3 intersectLine]( [param:Line3 line], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Line3 line] - الـ[page:Line3] للتحقق من التقاطع. <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+		 
+		يعيد نقطة التقاطع للخط الممر والطائرة. يعود
+		فارغ إذا لم يتقاطع الخط. يعود نقطة البداية للخط إذا كان
+		الخط متعامد مع الطائرة.
+		</p>
+		 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - الـ[page:Box3] للتحقق من التقاطع. <br /><br />
+		 
+		يحدد ما إذا كانت هذه الطائرة تتقاطع مع[page:Box3 box].
+		</p>
+		 
+		<h3>[method:Boolean intersectsLine]( [param:Line3 line] )</h3>
+		<p>
+		[page:Line3 line] - الـ[page:Line3] للتحقق من التقاطع. <br /><br />
+		 
+		يختبر ما إذا كان قطع الخط يتقاطع مع (يمر عبر) الطائرة.
+		</p>
+		 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - الـ[page:Sphere] للتحقق من التقاطع. <br /><br />
+		 
+		يحدد ما إذا كانت هذه الطائرة تتقاطع مع[page:Sphere sphere].
+		</p>
+		 
+		<h3>[method:this negate]()</h3>
+		<p>ينفي كلاً من المتجه الطبيعي والثابت.</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يسوي المتجه[page:.normal normal] ، ويضبط
+		قيمة[page:.constant constant] بشكل ملائم.
+		</p>
+		 
+		<h3>
+		[method:Vector3 projectPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] للإسقاط على الطائرة. <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+		 
+		يسقط نقطة[page:Vector3 point] على الطائرة.
+		</p>
+
+		<h3>[method:this set]( [param:Vector3 normal], [param:Float constant] )</h3>
+		<p>
+		[page:Vector3 normal] - وحدة طول [page:Vector3] تحدد الطبيعي
+		من الطائرة. <br />
+		[page:Float constant] - المسافة الموقعة من المنشأ إلى الطائرة.
+		الافتراضي هو `0`. <br /><br />
+	 
+		يضع خصائص [page:.normal normal] و[page:.constant constant]
+		لهذه الطائرة عن طريق نسخ القيم من الطبيعي المعطى.
+		</p>
+	 
+		<h3>
+		[method:this setComponents]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - قيمة x للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float y] - قيمة y للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float z] - قيمة z للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float w] - قيمة خاصية [page:.constant constant]
+		للطائرة. <br /><br />
+	 
+		قم بتعيين المكونات الفردية التي تحدد الطائرة.
+		</p>
+	 
+		<h3>
+		[method:this setFromCoplanarPoints]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )
+		</h3>
+		<p>
+		[page:Vector3 a] - أول نقطة على الطائرة. <br />
+		[page:Vector3 b] - نقطة ثانية على الطائرة. <br />
+		[page:Vector3 c] - نقطة ثالثة على الطائرة. <br /><br />
+	 
+		يحدد الطائرة بناءً على 3 نقاط مقدمة. يفترض أن تكون ترتيب التغليف
+		عكس عقارب الساعة ، وتحدد اتجاه
+		[page:.normal normal].
+		</p>
+	 
+		<h3>
+		[method:this setFromNormalAndCoplanarPoint]( [param:Vector3 normal], [param:Vector3 point] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - وحدة طول[page:Vector3] تحدد الطبيعي
+		من الطائرة. <br />
+		[page:Vector3 point] -[page:Vector3]<br /><br />
+	 
+		يضع خصائص الطائرة كما هو محدد بـ[page:Vector3 normal] و
+		نقطة متعامدية عشوائية[page:Vector3 point].
+		</p>
+	 
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>
+		[page:Vector3 offset] - المسافة التي يجب تحريك الطائرة بها. <br /><br />
+	 
+		يترجم الطائرة بالمسافة التي يحددها متجه[page:Vector3 offset]
+		. لاحظ أن هذا يؤثر فقط على ثابت الطائرة ولن يؤثر
+		المتجه الطبيعي.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 322 - 0
docs/api/ar/math/Quaternion.html

@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		تنفيذ [link:http://en.wikipedia.org/wiki/Quaternion كواترنيون].<br />
+		يتم استخدام الكواترنيونات في three.js لتمثيل
+		[link:https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation الدوران].
+		</p>
+		 
+		<p>
+		التكرار عبر مثيل [name] سيعطي مكوناته (x، y، z، w)
+		بالترتيب المقابل.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const quaternion = new THREE.Quaternion();
+		quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
+		 
+		const vector = new THREE.Vector3( 1, 0, 0 );
+		vector.applyQuaternion( quaternion );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - إحداثية x<br />
+		[page:Float y] - إحداثية y<br />
+		[page:Float z] - إحداثية z<br />
+		[page:Float w] - إحداثية w
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isQuaternion]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		 
+		<h3>[property:Float x]</h3>
+		 
+		<h3>[property:Float y]</h3>
+		 
+		<h3>[property:Float z]</h3>
+		 
+		<h3>[property:Float w]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Float angleTo]( [param:Quaternion q] )</h3>
+		<p>
+		يعيد الزاوية بين هذا الكواترنيون وكواترنيون [page:Quaternion q] بالراديان.
+		</p>
+	 
+		<h3>[method:Quaternion clone]()</h3>
+		<p>
+		ينشئ كواترنيون جديدًا بخصائص [page:.x x] و [page:.y y] و [page:.z z] 
+		و [page:.w w] متطابقة مع هذا.
+		</p>
+	 
+		<h3>[method:this conjugate]()</h3>
+		<p>
+		يعيد التجانس الدوراني لهذا الكواترنيون. التجانس لـ
+		كواترنيون يمثل نفس الدوران في الاتجاه المعاكس حول
+		محور الدوران.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Quaternion q] )</h3>
+		<p>
+		ينسخ خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من [page:Quaternion q] إلى هذا الكواترنيون.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Quaternion v] )</h3>
+		<p>
+		[page:Quaternion v] - كواترنيون سيتم مقارنة هذا الكواترنيون
+		إليه.<br /><br />
+	 
+		يقارن خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من [page:Quaternion v] إلى الخصائص المكافئة لهذا
+		كواترنيون لتحديد ما إذا كانت تمثل نفس الدوران.
+		</p>
+	 
+		<h3>[method:Float dot]( [param:Quaternion v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product dot product]
+		من كواترنيونات [page:Quaternion v] وهذا.
+		</p>
+
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مصفوفة بتنسيق (x، y، z، w) تستخدم لبناء
+		الكواترنيون.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة.<br /><br />
+		 
+		يضع خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] 
+		لهذا الكواترنيون من مصفوفة.
+		</p>
+		 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يضع هذا الكواترنيون على الكواترنيون المتطابق ؛ أي إلى
+		الكواترنيون الذي يمثل "لا دوران".
+		</p>
+		 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذا الكواترنيون - يحسب [page:.conjugate conjugate]. The
+		يفترض أن الكواترنيون لديه طول وحدة.
+		</p>
+		 
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول خط مستقيم) لهذا الكواترنيون ، كما هو معتبر
+		متجه 4 أبعاد.
+		</p>
+		 
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب المربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول خط مستقيم) لهذا الكواترنيون ، كما هو معتبر متجه 4 أبعاد
+		. هذا يمكن أن يكون مفيدًا إذا كنت تقارن طول اثنين
+		كواترنيون ، حيث أن هذا حساب أكثر كفاءة قليلاً من
+		[page:.length length]().
+		</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Normalized_vector يعدل] هذا
+		كواترنيون - أي حساب الكواترنيون الذي يؤدي نفس
+		دوران كهذا ، ولكن لديه [page:.length length] يساوي `1`.
+		</p>
+		 
+
+		<h3>[method:this multiply]( [param:Quaternion q] )</h3>
+		<p>يضرب هذا الكواترنيون بـ[page:Quaternion q].</p>
+	 
+		<h3>
+		[method:this multiplyQuaternions]( [param:Quaternion a], [param:Quaternion b] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون على[page:Quaternion a] x[page:Quaternion b].<br />
+		تم تكييفه من الطريقة الموضحة
+		[link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.html هنا].
+		</p>
+	 
+		<h3>[method:this premultiply]( [param:Quaternion q] )</h3>
+		<p>يضرب مسبقًا هذا الكواترنيون بـ[page:Quaternion q].</p>
+	 
+		<h3>[method:this random]()</h3>
+		<p>يضع هذا الكواترنيون على كواترنيون عشوائي معتدل ومعتدل.</p>
+	 
+		<h3>
+		[method:this rotateTowards]( [param:Quaternion q], [param:Float step] )
+		</h3>
+		<p>
+		[page:Quaternion q] - كواترنيون الهدف. <br />
+		[page:Float step] - الخطوة الزاوية بالراديان. <br /><br />
+	 
+		يدور هذا الكواترنيون بخطوة زاوية معطاة إلى كواترنيون محدد
+		*q*. تضمن الطريقة ألا يتجاوز الكواترنيون النهائي *q*.
+		</p>
+	 
+		<h3>[method:this slerp]( [param:Quaternion qb], [param:Float t] )</h3>
+		<p>
+		[page:Quaternion qb] - التدوير الكواترنيون الآخر<br />
+		[page:Float t] - عامل التداخل في الفترة المغلقة `[0، 1]`. <br /><br />
+	 
+		يتعامل مع التداخل الخطي الكروي بين كواترنيون.
+		[page:Float t] يمثل مقدار التدوير بين هذا الكواترنيون
+		(حيث[page:Float t] هو 0) و[page:Quaternion qb] (حيث[page:Float t]
+		هو 1). يتم تعيين هذا الكواترنيون على النتيجة. اطلع أيضًا على الإصدار الثابت
+		من `slerp` أدناه.
+	 
+		<code>
+		// تدور شبكة نحو كواترنيون هدف 
+		mesh.quaternion.slerp( endQuaternion، 0.01 );
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this slerpQuaternions]( [param:Quaternion qa], [param:Quaternion qb], [param:Float t] )
+		</h3>
+		<p>
+		يؤدي التداخل الخطي الكروي بين كواترنيون المعطى
+		وتخزين النتائج في هذا الكواترنيون.
+		</p>
+
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		يضع خصائص [page:.x x] ،[page:.y y] ،[page:.z z] ،[page:.w w] من هذا
+		كواترنيون.
+		</p>
+		 
+		<h3>
+		[method:this setFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون من التدوير المحدد بـ[page:Vector3 axis] و
+		[page:Float angle].<br />
+		تم تكييفه من الطريقة
+		[link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.html هنا].<br />
+		يفترض أن يكون `Axis` معتدلًا ، `angle` بالراديان.
+		</p>
+		 
+		<h3>[method:this setFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضع هذا الكواترنيون من التدوير المحدد بزاوية[page:Euler].
+		</p>
+		 
+		<h3>[method:this setFromRotationMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - a[page:Matrix4] من الذي العلوي 3x3 من المصفوفة هو
+		مصفوفة دوران نقية
+		(أي غير متساوية القياس).<br />
+		يضع هذا الكواترنيون من مكون التدوير لـ[page:Matrix4 m].<br />
+		تم تكييفه من الطريقة
+		[link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.html هنا].
+		</p>
+		 
+		<h3>
+		[method:this setFromUnitVectors]( [param:Vector3 vFrom], [param:Vector3 vTo] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون على التدوير المطلوب لتدوير متجه الاتجاه
+		[page:Vector3 vFrom] إلى متجه الاتجاه[page:Vector3 vTo].<br />
+		تم تكييفه من الطريقة
+		[link:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors هنا].<br />
+		يفترض أن يكون[page:Vector3 vFrom] و[page:Vector3 vTo] معتدلًا.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مصفوفة اختيارية لتخزين الكواترنيون. إذا لم يتم
+		محدد ، سيتم إنشاء مصفوفة جديدة. <br />
+		[page:Integer offset] - (اختياري) إذا تم تحديده ، فسيتم نسخ
+		في هذه[page:Array].<br /><br />
+		 
+		يعود بالعناصر العددية لهذا الكواترنيون في مصفوفة بتنسيق
+		[x، y، z، w].
+		</p>
+		 
+		<h3>[method:Array toJSON]()</h3>
+		<p>
+		هذه الطرق تحدد نتيجة التسلسل لـ[name]. يعود
+		العناصر العددية لهذا الكواترنيون في مصفوفة بتنسيق [x، y، z، w].
+		</p>
+	 
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر. <br />
+		[page:Integer index] - فهرس في السمة. <br /><br />
+	 
+		يضع خصائص [page:.x x] ،[page:.y y] ،[page:.z z] ،[page:.w w] من هذا
+		كواترنيون من[page:BufferAttribute attribute].
+		</p>
+	 
+		<h2>طرق ثابتة (Static Methods)</h2>
+	 
+		<h3>
+		[method:undefined slerpFlat]( [param:Array dst], [param:Integer dstOffset], 
+		[param:Array src0], [param:Integer srcOffset0], [param:Array src1], 
+		[param:Integer srcOffset1], [param:Float t] )
+		</h3>
+		<p>
+		[page:Array dst] - مصفوفة الإخراج. <br />
+		[page:Integer dstOffset] - إزاحة في مصفوفة الإخراج. <br />
+		[page:Array src0] - مصفوفة المصدر للكواترنيون البدائي. <br />
+		[page:Integer srcOffset0] - إزاحة في مصفوفة `src0`. <br />
+		[page:Array src1] - مصفوفة المصدر للكواترنيون المستهدف. <br />
+		[page:Integer srcOffset1] - إزاحة في مصفوفة `src1`. <br />
+		[page:Float t] - عامل التداخل المعتدل (بين 0 و 1). <br /><br />
+	 
+		تفترض هذه التطبيقات SLERP أن بيانات الكواترنيون يتم إدارتها في
+		مصفوفات مسطحة.
+		</p>
+	 
+		<h3>
+		[method:Array multiplyQuaternionsFlat]( [param:Array dst], [param:Integer dstOffset], 
+		[param:Array src0], [param:Integer srcOffset0], [param:Array src1], [param:Integer srcOffset1] )
+		</h3>
+		<p>
+		[page:Array dst] - مصفوفة الإخراج. <br />
+		[page:Integer dstOffset] - إزاحة في مصفوفة الإخراج. <br />
+		[page:Array src0] - مصفوفة المصدر للكواترنيون البدائي. <br />
+		[page:Integer srcOffset0] - إزاحة في مصفوفة `src0`. <br />
+		[page:Array src1] - مصفوفة المصدر للكواترنيون المستهدف. <br />
+		[page:Integer srcOffset1] - إزاحة في مصفوفة `src1`. <br /><br />
+	 
+		تفترض هذه التطبيقات التعددية أن بيانات الكواترنيون يتم إدارتها
+		في مصفوفات مسطحة.
+		</p>
+
+		<!-- Note: Do not add non-static methods to the bottom of this page. Put them above the <h2>Static Methods</h2> -->
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 237 - 0
docs/api/ar/math/Ray.html

@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		شعاع ينبعث من أصل في اتجاه معين. يتم استخدام هذا بواسطة
+		[page:Raycaster] للمساعدة في
+		[link:https://en.wikipedia.org/wiki/Ray_casting الإشعاع]. يتم استخدام الإشعاع
+		لاختيار الماوس (معرفة الكائنات في المسافة 3D التي يكون الماوس
+		فوقها) من بين أشياء أخرى.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 origin] - (اختياري) أصل الـ[page:Ray]. الافتراضي
+		هو [page:Vector3] عند (0، 0، 0).<br />
+		[page:Vector3 direction] - [page:Vector3] اتجاه الـ[page:Ray].
+		يجب تسوية هذا (بـ[page:Vector3.normalize]) لتشغيل الطرق بشكل صحيح. الافتراضي هو [page:Vector3] عند (0، 0، -1).<br /><br />
+		 
+		ينشئ [name] جديدًا.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Vector3 origin]</h3>
+		<p>
+		أصل الـ[page:Ray]. الافتراضي هو [page:Vector3] عند `(0، 0، 0)`.
+		</p>
+		 
+		<h3>[property:Vector3 direction]</h3>
+		<p>
+		اتجاه الـ[page:Ray]. يجب تسوية هذا (بـ
+		[page:Vector3.normalize]) لتشغيل الطرق بشكل صحيح. الافتراضي هو
+		[page:Vector3] عند (0، 0، -1).
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix4] )</h3>
+		<p>
+		[page:Matrix4 matrix4] - الـ[page:Matrix4] لتطبيقه على هذا
+		[page:Ray].<br /><br />
+	 
+		تحويل هذا الـ[page:Ray] بواسطة [page:Matrix4].
+		</p>
+	 
+		<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] )</h3>
+		<p>
+		[page:Float t] - المسافة على طول الـ[page:Ray] لاسترداد موضع
+		ل.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		احصل على [page:Vector3] هو مسافة معينة على طول هذا الـ[page:Ray].
+		</p>
+	 
+		<h3>[method:Ray clone]()</h3>
+		<p>
+		ينشئ Ray جديدًا بخصائص [page:.origin origin] و
+		[page:.direction direction] متطابقة مع هذا.
+		</p>
+	 
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - النقطة التي سيتم الحصول على أقرب نهج إليها. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		احصل على النقطة على طول هذا الـ[page:Ray] التي تكون أقرب إلى المزود
+		[page:Vector3].
+		</p>
+	 
+		<h3>[method:this copy]( [param:Ray ray] )</h3>
+		<p>
+		ينسخ خصائص [page:.origin origin] و [page:.direction direction]
+		من [page:Ray ray] إلى هذا الشعاع.
+		</p>
+	 
+		<h3>[method:Float distanceSqToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] لحساب المسافة إليه.<br /><br />
+	 
+		احصل على المسافة المربعة لأقرب نهج بين [page:Ray]
+		و [page:Vector3].
+		</p>
+	 
+		<h3>
+		[method:Float distanceSqToSegment]( [param:Vector3 v0], [param:Vector3 v1], 
+		[param:Vector3 optionalPointOnRay], [param:Vector3 optionalPointOnSegment] )
+		</h3>
+		<p>
+		[page:Vector3 v0] - بداية الخط المستقيم.<br />
+		[page:Vector3 v1] - نهاية الخط المستقيم.<br />
+		optionalPointOnRay - (اختياري) إذا تم توفير هذا ، فإنه يتلقى النقطة
+		على هذا الـ[page:Ray] الأقرب إلى الشريحة.<br />
+		optionalPointOnSegment - (اختياري) إذا تم توفير هذا ، فإنه يتلقى
+		نقطة على شريحة الخط الأقرب إلى هذا الـ[page:Ray].<br /><br />
+	 
+		احصل على المسافة المربعة بين هذا الـ[page:Ray] وشريحة خط.
+		</p>
+	 
+		<h3>[method:Float distanceToPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - الـ[page:Plane] للحصول على المسافة إليه.<br /><br />
+	 
+		احصل على المسافة من [page:.origin origin] إلى [page:Plane] ، أو `null`
+		إذا لم يتقاطع الـ[page:Ray] مع [page:Plane].
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] The [page:Vector3] لحساب
+		مسافة إليه.<br /><br />
+	 
+		احصل على مسافة أقرب نهج بين الـ[page:Ray] و
+		 [page:Vector3 point].
+		</p>
+
+		<h3>[method:Boolean equals]( [param:Ray ray] )</h3>
+		<p>
+		[page:Ray ray] - الـ[page:Ray] للمقارنة معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا والآخر [page:Ray ray] لديهما [page:.origin origin] 
+		و [page:.direction direction] متساويان.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectBox]( [param:Box3 box], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Box3 box] - الـ[page:Box3] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Box3] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectPlane]( [param:Plane plane], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Plane plane] - الـ[page:Plane] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Plane] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectSphere]( [param:Sphere sphere], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Sphere sphere] - الـ[page:Sphere] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Sphere] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectTriangle]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c], [param:Boolean backfaceCulling], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - نقاط الـ[page:Vector3]
+		التي تشكل المثلث.<br />
+		[page:Boolean backfaceCulling] - ما إذا كان سيتم استخدام قص الوجه الخلفي.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذه الـ[page:Ray] مع مثلث ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Box3].
+		</p>
+	 
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - [page:Plane] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Plane].
+		</p>
+	 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Sphere].
+		</p>
+	 
+		<h3>[method:this lookAt]( [param:Vector3 v] )</h3>
+		<p>
+		[page:Vector3 v] - الـ[page:Vector3] الذي سينظر إليه.<br /><br />
+	 
+		يضبط اتجاه الشعاع للإشارة إلى المتجه في الإحداثيات العالمية.
+		</p>
+	 
+		<h3>[method:this recast]( [param:Float t] )</h3>
+		<p>
+		[page:Float t] - المسافة على طول الـ[page:Ray] للإدراج.<br /><br />
+	 
+		تحريك أصل هذا الـ[page:Ray] على طول اتجاهه بالمسافة
+		المحددة.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Vector3 origin], [param:Vector3 direction] )
+		</h3>
+		<p>
+		[page:Vector3 origin] - أصل الـ[page:.origin origin] لـ[page:Ray].<br />
+		[page:Vector3 direction] - اتجاه الـ[page:.direction direction]
+		لـ[page:Ray]. يجب تسوية هذا (بـ[page:Vector3.normalize]) لـ
+		تشغيل الطرق بشكل صحيح.<br /><br />
+	 
+		يضبط خصائص أصل واتجاه هذا الشعاع
+		من خلال نسخ القيم من الكائنات المحددة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 177 - 0
docs/api/ar/math/Sphere.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">كرة محددة بمركز ونصف قطر.</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Vector3 center], [param:Float radius] )</h3>
+		<p>
+		[page:Vector3 center] - مركز الكرة. الافتراضي هو [page:Vector3]
+		عند `(0، 0، 0)`. <br />
+		[page:Float radius] - نصف قطر الكرة. الافتراضي هو -1.<br /><br />
+	 
+		ينشئ [name] جديدًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Vector3 center]</h3>
+		<p>
+		[page:Vector3] يحدد مركز الكرة. الافتراضي هو `(0، 0،
+		0)`.
+		</p>
+	 
+		<h3>[property:Float radius]</h3>
+		<p>نصف قطر الكرة. الافتراضي هو -1.</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - [Page:Matrix4] للتطبيق <br /><br />
+	 
+		يحول هذه الكرة بواسطة [page:Matrix4] المحدد.
+		</p>
+	 
+		<h3>
+		[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] النقطة التي سيتم تثبيتها.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يثبت نقطة داخل الكرة. إذا كانت النقطة خارج الكرة ، فسوف
+		يثبتها على أقرب نقطة على حافة الكرة. لن تتأثر النقاط
+		بالفعل داخل الكرة.
+		</p>
+	 
+		<h3>[method:Sphere clone]()</h3>
+		<p>
+		يعود بكرة جديدة بنفس [page:.center center] و [page:.radius radius] كهذه.
+		</p>
+	 
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] المطلوب التحقق منه<br /><br />
+	 
+		يتحقق مما إذا كانت الكرة تحتوي على [page:Vector3 point] المحدد
+		شاملاً سطح الكرة.
+		</p>
+
+		<h3>[method:this copy]( [param:Sphere sphere] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.center center] و [page:.radius radius] للكرة المعطاة إلى هذه الكرة.
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		يعيد أقرب مسافة من حدود الكرة إلى
+		[page:Vector3 point]. إذا كانت الكرة تحتوي على النقطة ، فستكون المسافة
+		سلبية.
+		</p>
+	 
+		<h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] التي يجب تضمينها في
+		الكرة.<br /><br />
+	 
+		يوسع حدود هذه الكرة لتشمل [page:Vector3 point].
+		</p>
+	 
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يتحقق مما إذا كانت الكرة فارغة (تم تعيين نصف القطر إلى رقم
+		سلبي). <br />
+		الكرات التي يبلغ نصف قطرها 0 تحتوي فقط على نقطة مركزها ولا
+		يعتبر فارغًا.
+		</p>
+	 
+		<h3>[method:this makeEmpty]()</h3>
+		<p>
+		يجعل الكرة فارغة عن طريق تعيين [page:.center center] إلى (0، 0، 0) و
+		[page:.radius radius] إلى -1.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Sphere sphere] )</h3>
+		<p>يتحقق مما إذا كانت مراكز وأشعة الكرتين متساوية.</p>
+	 
+		<h3>[method:Box3 getBoundingBox]( [param:Box3 target] )</h3>
+		<p>
+		[page:Box3 target] — سيتم نسخ النتيجة في هذا Box3.<br /><br />
+	 
+		يعود بـ[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box]
+		للكرة.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتحقق من التقاطع ضدها.<br /><br />
+	 
+		يحدد ما إذا كانت هذه الكرة تتقاطع مع [page:Box3 box] المحددة أم لا.
+		</p>
+
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - الطائرة للتحقق من التقاطع ضدها.<br /><br />
+		 
+		يحدد ما إذا كانت هذه الكرة تتقاطع مع [page:Plane plane] المحددة أم لا.
+		</p>
+		 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - الكرة للتحقق من التقاطع ضدها.<br /><br />
+		 
+		يتحقق مما إذا كانت كرتين تتقاطعان.
+		</p>
+		 
+		<h3>[method:this set]( [param:Vector3 center], [param:Float radius] )</h3>
+		<p>
+		[page:Vector3 center] - مركز الكرة.<br />
+		[page:Float radius] - نصف قطر الكرة.<br /><br />
+		 
+		يضبط خصائص [page:.center center] و [page:.radius radius]
+		لهذه الكرة.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من المركز المحدد.
+		</p>
+		 
+		<h3>
+		[method:this setFromPoints]( [param:Array points], [param:Vector3 optionalCenter] )
+		</h3>
+		<p>
+		[page:Array points] - مصفوفة من مواضع [page:Vector3].<br />
+		[page:Vector3 optionalCenter] - موضع اختياري لـ[page:Vector3]
+		مركز الكرة.<br /><br />
+		 
+		يحسب الكرة المحيطة الدنيا لمصفوفة من نقاط [page:Array].
+		إذا تم إعطاء [page:Vector3 optionalCenter] ، يتم استخدامه كمركز للكرة
+		. وإلا ، يتم حساب مركز المستطيل المحيط المستوي
+		تغليف نقاط [page:Array].
+		</p>
+		 
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>ترجمة مركز الكرة بالإزاحة المحددة [page:Vector3].</p>
+		 
+		<h3>[method:this union]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - كرة المحيط التي ستتحد مع هذه
+		كرة.<br /><br />
+		 
+		يوسع هذه الكرة لإغلاق كل من الكرة الأصلية والمعطى
+		كرة.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 90 - 0
docs/api/ar/math/Spherical.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		إحداثيات [link:https://en.wikipedia.org/wiki/Spherical_coordinate_system الكروية] للنقطة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		[page:Float radius] - نصف القطر ، أو
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) من النقطة إلى الأصل. الافتراضي هو
+		`1.0`.<br />
+		[page:Float phi] - الزاوية القطبية بالراديان من المحور y (لأعلى). الافتراضي هو
+		`0`.<br />
+		[page:Float theta] - زاوية خط الاستواء بالراديان حول المحور y (لأعلى).
+		الافتراضي هو `0`.<br /><br />
+		 
+		الأقطاب (phi) عند المحور y الموجب والسالب. يبدأ خط الاستواء
+		(theta) في z الموجب.
+		</p>
+		 
+		<h2>Properties</h2>
+
+		<h3>[property:Float radius]</h3>
+
+		<h3>[property:Float phi]</h3>
+
+		<h3>[property:Float theta]</h3>
+
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:Spherical clone]()</h3>
+		<p>
+		يعود بكرة جديدة بنفس خصائص [page:.radius radius] و [page:.phi phi] 
+		و [page:.theta theta] كهذه.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Spherical s] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.radius radius] و [page:.phi phi] و [page:.theta theta] للكرة المعطاة إلى هذه الكرة.
+		</p>
+	 
+		<h3>[method:this makeSafe]()</h3>
+		<p>
+		يقيد الزاوية القطبية [page:.phi phi] لتكون بين 0.000001 و pi -
+		0.000001.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة.
+		</p>
+	 
+		<h3>[method:this setFromVector3]( [param:Vector3 vec3] )</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة من الـ[page:Vector3 Vector3].
+		</p>
+	 
+		<h3>
+		[method:this setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة من الإحداثيات الديكارتية.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 155 - 0
docs/api/ar/math/SphericalHarmonics3.html

@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يمثل تناغم كروي من الدرجة الثالثة (SH). تستخدم مسابر الضوء هذه الفئة لتشفير معلومات الإضاءة.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]()</h3>
+		<p>ينشئ نسخة جديدة من [name].</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Array coefficients]</h3>
+		<p>
+		مصفوفة تحتوي على (9) معاملات SH. يتم تمثيل معامل واحد كنسخة من [page:Vector3].
+		</p>
+			
+		<h3>[property:Boolean isSphericalHarmonics3]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+			
+		<h3>[method:this add]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - SH المراد إضافته.<br /><br />
+			
+		يضيف SH المعطى إلى هذه النسخة.
+		</p>
+			
+		<h3>
+		[method:this addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )
+		</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - SH المراد إضافته.<br />
+		[page:Number scale] - عامل التحجيم.<br /><br />
+			
+		طريقة سهلة لأداء [page:.add]() و [page:.scale]() في آن واحد.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 clone]()</h3>
+		<p>يعود بحالة جديدة من [name] بمعاملات متساوية.</p>
+	 
+		<h3>[method:this copy]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للنسخ.<br /><br />
+	 
+		ينسخ الـSH المعطى إلى هذه الحالة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للمقارنة معه.<br /><br />
+	 
+		يعود بـtrue إذا كان الـSH المعطى وهذه الحالة لديهما معاملات متساوية.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Number offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي تحمل أرقام معاملات SH
+	 .<br />
+		[page:Number offset] - (اختياري) إزاحة المصفوفة.<br /><br />
+	 
+		يضبط معاملات هذه الحالة من المصفوفة المعطاة.
+		</p>
+	 
+		<h3>
+		[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Vector3 target] - متجه النتيجة.<br /><br />
+	 
+		يعود بالإشعاع في اتجاه الطبيعي المحدد.
+		</p>
+	 
+		<h3>
+		[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Vector3 target] - متجه النتيجة.<br /><br />
+	 
+		يعود بالإشعاع (الإشعاع الملتف مع فص الجيب) في
+		اتجاه الطبيعي المحدد.
+		</p>
+	 
+		<h3>
+		[method:this lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )
+		</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للتداخل معه.<br />
+		[page:Number alpha] - عامل الألفا.<br /><br />
+		 
+		يتداخل بين الـSH المعطى وهذه الحالة بواسطة
+		عامل الألفا المعطى.
+		</p>
+		 
+		<h3>[method:this scale]( [param:Number scale] )</h3>
+		<p>
+		[page:Number scale] - عامل المقياس.<br /><br />
+		 
+		يقيس هذا الـSH بواسطة عامل المقياس المعطى.
+		</p>
+		 
+		<h3>[method:this set]( [param:Array coefficients] )</h3>
+		<p>
+		[page:Array coefficients] - مصفوفة من معاملات SH.<br /><br />
+		 
+		يضبط معاملات SH المعطاة لهذه الحالة.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Number offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) المصفوفة الهدف.<br />
+		[page:Number offset] - (اختياري) إزاحة المصفوفة.<br /><br />
+		 
+		يعود بمصفوفة بالمعاملات ، أو ينسخهم في المصفوفة المحددة
+		صفيف. يتم تمثيل المعاملات كأرقام.
+		</p>
+		 
+		<h3>[method:this zero]()</h3>
+		<p>يضبط جميع معاملات SH على 0.</p>
+		 
+		<h2>طرق ثابتة (Static Methods)</h2>
+		 
+		<h3>
+		[method:undefined getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Array shBasis] - الأساس SH الناتج.<br /><br />
+		 
+		يحسب أساس SH لمتجه الطبيعي المحدد.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 184 - 0
docs/api/ar/math/Triangle.html

@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مثلث هندسي كما هو محدد بثلاثة [page:Vector3 Vector3s] تمثل زواياه الثلاثة.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
+		<p>
+		[page:Vector3 a] - الزاوية الأولى للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br />
+		[page:Vector3 b] - الزاوية الثانية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br />
+		[page:Vector3 c] - الزاوية النهائية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br /><br />
+			
+		ينشئ نسخة جديدة من [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Vector3 a]</h3>
+		<p>
+		الزاوية الأولى للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h3>[property:Vector3 b]</h3>
+		<p>
+		الزاوية الثانية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h3>[property:Vector3 c]</h3>
+		<p>
+		الزاوية النهائية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Triangle clone]()</h3>
+		<p>
+		يعود بمثلث جديد بنفس خصائص [page:.a a]، [page:.b b] و [page:.c c] كهذا.
+		</p>
+		
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بأقرب نقطة على المثلث إلى [page:Vector3 point].
+		</p>
+		
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للتحقق.<br /><br />
+		
+		يعود بـ true إذا كانت النقطة الممررة، عندما يتم إسقاطها على مستوى المثلث، تقع داخل المثلث.
+		</p>
+		
+		<h3>[method:this copy]( [param:Triangle triangle] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.a a]، [page:.b b] و [page:.c c] للمثلث الممرر إلى هذا المثلث.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Triangle triangle] )</h3>
+		<p>
+		يعود بـ true إذا كانت المثلثين لديهما خصائص متطابقة من [page:.a a]، [page:.b b]
+		و [page:.c c].
+		</p>
+		
+		<h3>[method:Float getArea]()</h3>
+		<p>يرجع مساحة المثلث.</p>
+		
+		<h3>
+		[method:Vector3 getBarycoord]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يرجع إحداثية ثلاثية من المتجه المعطى. <br /><br />
+		
+		[link:http://commons.wikimedia.org/wiki/File:Barycentric_coordinates_1.png صورة لإحداثيات ثلاثية]
+		</p>
+
+		<h3>[method:Vector3 getMidpoint]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		حساب نقطة منتصف المثلث.
+		</p>
+		
+		<h3>[method:Vector3 getNormal]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		حساب [link:https://en.wikipedia.org/wiki/Normal_(geometry) متجه العادي] للمثلث.
+		</p>
+		
+		<h3>[method:Plane getPlane]( [param:Plane target] )</h3>
+		<p>
+		[page:Plane target] - سيتم نسخ النتيجة في هذا Plane.<br /><br />
+		
+		حساب [page:Plane plane] بناءً على المثلث. .
+		</p>
+		
+		<h3>
+		[method:Vector getInterpolation]( [param:Vector3 point], [param:Vector3 p1], [param:Vector3 p2], [param:Vector3 p3], [param:Vector v1], [param:Vector v2], [param:Vector v3], [param:Vector target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - موقع النقطة المُركبة.<br />
+		[page:Vector3 p1] - موقع الرأس الأول.<br />
+		[page:Vector3 p2] - موقع الرأس الثاني.<br />
+		[page:Vector3 p3] - موقع الرأس الثالث.<br />
+		[page:Vector v1] - قيمة الرأس الأولى.<br />
+		[page:Vector v2] - قيمة الرأس الثانية.<br />
+		[page:Vector v3] - قيمة الرأس الثالثة.<br />
+		[page:Vector target] — سيتم نسخ النتيجة في هذا Vector.<br /><br />
+		
+		تعود بالقيمة المُركبة بشكل ثلاثي للنقطة المعطاة على المثلث.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المثلث يتقاطع مع [page:Box3 box] أم لا.
+		</p>
+		
+		<h3>[method:Boolean isFrontFacing]( [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 direction] - الاتجاه الذي يتم اختباره.<br /><br />
+		
+		ما إذا كان المثلث موجهًا نحو الاتجاه المعطى أم لا.
+		</p>
+		
+		<h3>
+		[method:this set]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )
+		</h3>
+		<p>
+		يضبط خصائص المثلث [page:.a a]، [page:.b b] و [page:.c c] على [page:Vector3 vector3s] الممررة.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+		
+		<h3>
+		[method:this setFromAttributeAndIndices]( [param:BufferAttribute attribute],
+		[param:Integer i0], [param:Integer i1], [param:Integer i2] )
+		</h3>
+		<p>
+		attribute - [page:BufferAttribute] من بيانات الرأس <br />
+		i0 - فهرس [page:Integer] <br />
+		i1 - فهرس [page:Integer] <br />
+		i2 - فهرس [page:Integer]<br /><br />
+		
+		يضبط رؤوس المثلث من بيانات رأس سمة الحافظة.
+		</p>
+		
+		<h3>
+		[method:this setFromPointsAndIndices]( [param:Array points], [param:Integer i0], [param:Integer i1], [param:Integer i2] )
+		</h3>
+		<p>
+		points - مصفوفة من [page:Vector3]s <br />
+		i0 - فهرس [page:Integer] <br />
+		i1 - فهرس [page:Integer] <br />
+		i2 - فهرس [page:Integer]<br /><br />
+		
+		يضبط متجهات المثلث على المتجهات في المصفوفة.
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 353 - 0
docs/api/ar/math/Vector2.html

@@ -0,0 +1,353 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل متجه 2D [link:https://en.wikipedia.org/wiki/Vector_space]. متجه 2D هو زوج مرتب من الأرقام (مسمى x و y)، والذي يمكن استخدامه لتمثيل عدد من الأشياء، مثل:
+		</p>
+			
+		<ul>
+		<li>نقطة في الفضاء 2D (أي موضع على مستوى).</li>
+		<li>
+		اتجاه وطول عبر مستوى. في three.js سيكون الطول دائمًا [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من `(0، 0)` إلى `(x، y)` ويتم قياس الاتجاه أيضًا من `(0، 0)` نحو `(x، y)`.
+		</li>
+		<li>أي زوج مرتب عشوائي من الأرقام.</li>
+		</ul>
+			
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه 2D لتمثيلها، مثل المتجهات الزخمية، والأعداد المركبة وما إلى ذلك، ومع ذلك فإن هذه هي الاستخدامات الأكثر شيوعًا في three.js.
+		</p>
+			
+		<p>
+		التكرار عبر نسخة [name] سيعود بمكوناته `(x، y)` بالترتيب المقابل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+
+		<code>
+		const a = new THREE.Vector2( 0, 1 );
+
+		//no arguments; will be initialised to (0, 0)
+		const b = new THREE.Vector2( );
+
+		const d = a.distanceTo( b );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا المتجه. الافتراضي هو `0`.<br />
+		[page:Float y] - قيمة y لهذا المتجه. الافتراضي هو `0`.<br /><br />
+		
+		ينشئ نسخة جديدة من [name].
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Float height]</h3>
+		<p>اسم آخر لـ [page:.y y].</p>
+		
+		<h3>[property:Boolean isVector2]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>
+		
+		<h3>[property:Float width]</h3>
+		<p>اسم آخر لـ [page:.x x].</p>
+		
+		<h3>[property:Float x]</h3>
+		
+		<h3>[property:Float y]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector2 v] )</h3>
+		<p>يضيف [page:Vector2 v] إلى هذا المتجه.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف القيمة القياسية [page:Float s] إلى قيم [page:.x x] و [page:.y y] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector2 v], [param:Float s] )</h3>
+		<p>
+		يضيف الضعف من [page:Vector2 v] و [page:Float s] إلى هذا المتجه.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector2 a] + [page:Vector2 b].</p>
+		
+		<h3>[method:Float angle]()</h3>
+		<p>
+		يحسب الزاوية بالراديان لهذا المتجه بالنسبة للمحور x الموجب.
+		</p>
+
+		<h3>[method:Float angleTo]( [param:Vector2 v] )</h3>
+		<p>
+		يعود بالزاوية بين هذا المتجه والمتجه [page:Vector2 v] بالراديان.
+		</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		يضرب هذا المتجه (مع 1 ضمني كمكون الثالث) في m.
+		</p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		تتم جولة مكونات [page:.x x] و [page:.y y] لهذا المتجه إلى أعلى إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector2 min], [param:Vector2 max] )</h3>
+		<p>
+		[page:Vector2 min] - الحد الأدنى لقيم x و y.<br />
+		[page:Vector2 max] - الحد الأقصى لقيم x و y في النطاق المطلوب<br /><br />
+		
+		إذا كانت قيمة x أو y لهذا المتجه أكبر من قيمة x أو y للمتجه max، يتم استبدالها بالقيمة المقابلة. <br /><br />
+		إذا كانت قيمة x أو y لهذا المتجه أقل من قيمة x أو y للمتجه min، يتم استبدالها بالقيمة المقابلة.
+		</p>
+		
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - الحد الأدنى الذي سيتم تثبيت الطول عليه <br />
+		[page:Float max] - الحد الأقصى الذي سيتم تثبيت الطول عليه<br /><br />
+		
+		إذا كان طول هذا المتجه أكبر من قيمة max، يتم استبداله بالقيمة max. <br /><br />
+		إذا كان طول هذا المتجه أقل من قيمة min، يتم استبداله بالقيمة min.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - الحد الأدنى الذي ستُثبَّت عليه العناصر
+		<br />
+		[page:Float max] - الحد الأقصى الذي سُتثبَّت عليه العناصر<br /><br />
+		
+		إذا كانت قيم x أو y لهذا المتجه أكبر من قيمة max، يتم استبدالها بالقيمة max. <br /><br />
+		إذا كانت قيم x أو y لهذا المتجه أقل من قيمة min، يتم استبدالها بالقيمة min.
+		</p>
+		
+		<h3>[method:Vector2 clone]()</h3>
+		<p>
+		يعود بـ Vector2 جديد بنفس قيم [page:.x x] و [page:.y y] كهذا.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector2 v] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.x x] و [page:.y y] لـ Vector2 الممرر إلى هذا Vector2.
+		</p>
+		
+		<h3>[method:Float distanceTo]( [param:Vector2 v] )</h3>
+		<p>يحسب المسافة من هذا المتجه إلى [page:Vector2 v].</p>
+		
+		<h3>[method:Float manhattanDistanceTo]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Taxicab_geometry مسافة مانهاتن] من هذا المتجه إلى [page:Vector2 v].
+		</p>
+		
+		<h3>[method:Float distanceToSquared]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب المسافة المربعة من هذا المتجه إلى [page:Vector2 v]. إذا كنت تقارن فقط المسافة مع مسافة أخرى، يجب عليك مقارنة المسافة المربعة بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this divide]( [param:Vector2 v] )</h3>
+		<p>يقسم هذا المتجه على [page:Vector2 v].</p>
+		
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p>يقسم هذا المتجه على العدد القياسي [page:Float s].</p>
+		
+		<h3>[method:Float dot]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product حاصل الضرب النقطي] لهذا المتجه و [page:Vector2 v].
+		</p>
+		
+		<h3>[method:Float cross]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Cross_product حاصل الضرب المتقاطع] لهذا المتجه و [page:Vector2 v]. يرجى ملاحظة أن "حاصل الضرب المتقاطع" في 2D غير محدد بشكل جيد. تحسب هذه الوظيفة حاصل ضرب متقاطع هندسي يستخدم في الغالب في رسومات 2D
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Vector2 v] )</h3>
+		<p>
+		يعود بـ `true` إذا كانت مكونات هذا المتجه و [page:Vector2 v] متطابقة بدقة؛ `false` في حالة عدم ذلك.
+		</p>
+		
+		<h3>[method:this floor]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة المصدر.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة. الافتراضي هو 0.<br /><br />
+		
+		يضبط قيمة [page:.x x] لهذا المتجه على `array[ offset ]` وقيمة [page:.y y] على `array[ offset + 1 ]`.
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - فهرس في السمة.<br /><br />
+		
+		يضبط قيم [page:.x x] و [page:.y y] لهذا المتجه من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] - 0 أو 1.<br /><br />
+		
+		إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
+		إذا كان index يساوي 1 يعود بقيمة [page:.y y].
+		</p>
+		
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y).
+		</p>
+		
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب [link:http://en.wikipedia.org/wiki/Taxicab_geometry طول مانهاتن] لهذا المتجه.
+		</p>
+
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y). إذا كنت تقارن أطوال المتجهات، يجب عليك مقارنة الطول المربع بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this lerp]( [param:Vector2 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector2 v] - [page:Vector2] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+		
+		يتداخل بشكل خطي بين هذا المتجه و [page:Vector2 v]، حيث alpha هو نسبة المسافة على طول الخط - سيكون alpha = 0 هذا المتجه، وسيكون alpha = 1 [page:Vector2 v].
+		</p>
+		
+		<h3>
+		[method:this lerpVectors]( [param:Vector2 v1], [param:Vector2 v2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Vector2 v1] - [page:Vector2] البداية.<br />
+		[page:Vector2 v2] - [page:Vector2] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+		
+		يضبط هذا المتجه ليكون المتجه المُركب بشكل خطي بين [page:Vector2 v1] و [page:Vector2 v2] حيث alpha هو نسبة المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0 [page:Vector2 v1]، وسيكون alpha = 1 [page:Vector2 v2].
+		</p>
+		
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضع x = -x و y = -y.</p>
+		
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة] -
+		أي يضعه مساوٍ لمتجه بنفس الاتجاه
+		كهذا، ولكن [page:.length length] 1.
+		</p>
+		
+		<h3>[method:this max]( [param:Vector2 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y لهذا المتجه أقل من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة العظمى المقابلة.
+		</p>
+		
+		<h3>[method:this min]( [param:Vector2 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y لهذا المتجه أكبر من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		
+		<h3>[method:this multiply]( [param:Vector2 v] )</h3>
+		<p>يضرب هذا المتجه في [page:Vector2 v].</p>
+		
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه في العدد القياسي [page:Float s].</p>
+		
+		<h3>
+		[method:this rotateAround]( [param:Vector2 center], [param:Float angle] )
+		</h3>
+		<p>
+		[page:Vector2 center] - النقطة التي يتم التدوير حولها.<br />
+		[page:Float angle] - الزاوية التي يتم التدوير بها، بالراديان.<br /><br />
+		
+		يدور هذا المتجه حول [page:Vector2 center] بـ [page:Float angle] راديان.
+		</p>
+		
+		<h3>[method:this round]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه نحو الصفر (لأعلى إذا كان سالبًا، لأسفل إذا كان موجبًا) إلى قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this set]( [param:Float x], [param:Float y] )</h3>
+		<p>يضبط مكونات [page:.x x] و [page:.y y] لهذا المتجه.</p>
+		
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value] )
+		</h3>
+		<p>
+		[page:Integer index] - 0 أو 1.<br />
+		[page:Float value] - [page:Float]<br /><br />
+		
+		إذا كان index يساوي 0 ضع [page:.x x] على [page:Float value]. <br />
+		إذا كان index يساوي 1 ضع [page:.y y] على [page:Float value]
+		</p>
+		
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس الاتجاه كهذا، ولكن [page:.length length] [page:Float l].
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيم [page:.x x] و [page:.y y] لهذا المتجه على حد سواء مساوية لـ [page:Float scalar].
+		</p>
+		
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ [page:Float x].</p>
+		
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ [page:Float y].</p>
+		
+		<h3>[method:this sub]( [param:Vector2 v] )</h3>
+		<p>يطرح [page:Vector2 v] من هذا المتجه.</p>
+		
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات [page:.x x] و [page:.y y] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector2 a] - [page:Vector2 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا، سيتم إنشاء مصفوفة جديدة.<br />
+		[page:Integer offset] - (اختياري) إزاحة اختيارية في المصفوفة.<br /><br />
+		
+		يرجع مصفوفة [x، y]، أو ينسخ x و y في المصفوفة المعطاة من نوع [page:Array array].
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و 1، باستثناء 1.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 523 - 0
docs/api/ar/math/Vector3.html

@@ -0,0 +1,523 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل [link:https://en.wikipedia.org/wiki/Vector_space متجه] ثلاثي الأبعاد.
+		متجه ثلاثي الأبعاد هو ثلاثي مرتب من الأرقام (مسمى x و y و z) ، والذي يمكن استخدامه لتمثيل عدد من الأشياء ، مثل:
+		</p>
+			
+		<ul>
+			<li>نقطة في الفضاء ثلاثي الأبعاد.</li>
+			<li>
+			اتجاه وطول في الفضاء ثلاثي الأبعاد. في three.js سيكون الطول دائمًا
+			[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+			(المسافة المستقيمة) من `(0, 0, 0)` إلى `(x, y, z)` و
+			يتم قياس الاتجاه أيضًا من `(0, 0, 0)` نحو `(x, y, z)`.
+			</li>
+			<li>أي ثلاثي مرتب عشوائي من الأرقام.</li>
+		</ul>
+			
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه ثلاثي الأبعاد لتمثيلها ، مثل
+		متجهات الزخم وما إلى ذلك ، ومع ذلك فإن هذه هي الاستخدامات الأكثر شيوعًا في
+		three.js.
+		</p>
+			
+		<p>
+		التكرار عبر مثيل [name] سوف ينتج عنه مكوناته `(x, y, z)`
+		بالترتيب المقابل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+		<code>
+		const a = new THREE.Vector3( 0, 1, 0 );
+
+		//no arguments; will be initialised to (0, 0, 0)
+		const b = new THREE.Vector3( );
+
+		const d = a.distanceTo( b );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا الفيكتور. القيمة الافتراضية هي `0`. <br />
+		[page:Float y] - قيمة y لهذا الفيكتور. القيمة الافتراضية هي `0`. <br />
+		[page:Float z] - قيمة z لهذا الفيكتور. القيمة الافتراضية هي `0`. <br /><br />
+		
+		ينشئ [name] جديد.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Boolean isVector3]</h3>
+		<p>علامة للتحقق مما إذا كان الكائن المعطى من نوع [name] أم لا.</p>
+		
+		<h3>[property:Float x]</h3>
+		
+		<h3>[property:Float y]</h3>
+		
+		<h3>[property:Float z]</h3>
+		
+		<h2>الوظائف (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector3 v] )</h3>
+		<p>يضيف [page:Vector3 v] إلى هذا الفيكتور.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف قيمة العدد s إلى قيم [page:.x x]، [page:.y y] و [page:.z z] لهذا الفيكتور.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector3 v], [param:Float s] )</h3>
+		<p>
+		يضيف الضرب المتعدد لـ [page:Vector3 v] و [page:Float s] إلى هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>يعيد هذا الفيكتور إلى [page:Vector3 a] + [page:Vector3 b].</p>
+		
+		<h3>
+		[method:this applyAxisAngle]( [param:Vector3 axis], [param:Float angle] )
+		</h3>
+		<p>
+		[page:Vector3 axis] - محور [page:Vector3] موحّد.<br />
+		[page:Float angle] - زاوية بالراديان.<br /><br />
+		
+		يطبق تحويلًا يُحدد بواسطة محور وزاوية على هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this applyEuler]( [param:Euler euler] )</h3>
+		<p>
+		يطبق تحويل أويلر على هذا الفيكتور من خلال تحويل الكائن [page:Euler]
+		إلى [page:Quaternion] وتطبيقه.
+		</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>يضرب هذا الفيكتور بواسطة [page:Matrix3 m].</p>
+		
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>
+		يضرب هذا الفيكتور (مع وجود 1 ضمن الأبعاد الرابعة) بـ m، ويقسمه على
+		التوازن.
+		</p>
+		
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>
+		يضرب هذا الفيكتور بواسطة مصفوفة القوامة العادية [page:Matrix3 m] ويقوم
+		بتطبيع النتيجة.
+		</p>
+		
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>يطبق تحويل [page:Quaternion] على هذا الفيكتور.</p>
+		
+		<h3>[method:Float angleTo]( [param:Vector3 v] )</h3>
+		<p>
+		يعيد الزاوية بين هذا الفيكتور وفيكتور [page:Vector3 v] بالراديان.
+		</p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		يقوم بتقريب مكونات [page:.x x]، [page:.y y] و [page:.z z] لهذا الفيكتور إلى
+		أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - القيم [page:.x x]، [page:.y y] و [page:.z z] الدنيا.<br />
+		[page:Vector3 max] - القيم [page:.x x]، [page:.y y] و [page:.z z] العليا في النطاق المطلوب.<br /><br />
+		
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أكبر من قيم x أو y أو z العليا للفيكتور، يتم استبدالها بالقيم المقابلة. <br /><br />
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أقل من قيم x أو y أو z الدنيا للفيكتور، يتم استبدالها بالقيم المقابلة.
+		</p>
+		
+
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - القيمة الدنيا التي ستتم تقييدها للطول <br />
+		[page:Float max] - القيمة العليا التي ستتم تقييدها للطول<br /><br />
+		
+		إذا كان طول هذا الفيكتور أكبر من القيمة العليا، سيتم تصغير الفيكتور بحيث يصبح طوله هو القيمة العليا. <br /><br />
+		إذا كان طول هذا الفيكتور أقل من القيمة الدنيا، سيتم تكبير الفيكتور بحيث يصبح طوله هو القيمة الدنيا.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - القيمة الدنيا التي ستتم تقييدها للمكونات
+		<br />
+		[page:Float max] - القيمة العليا التي ستتم تقييدها للمكونات<br /><br />
+		
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أكبر من القيمة العليا، سيتم استبدالها بالقيمة العليا. <br /><br />
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أقل من القيمة الدنيا، سيتم استبدالها بالقيمة الدنيا.
+		</p>
+		
+		<h3>[method:Vector3 clone]()</h3>
+		<p>
+		يعيد فيكتور3 جديدًا بنفس القيم x، y، و z كهذا الفيكتور.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector3 v] )</h3>
+		<p>
+		ينسخ قيم خصائص x، y، و z لفيكتور3 الممرر إلى هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this cross]( [param:Vector3 v] )</h3>
+		<p>
+		يضبط هذا الفيكتور إلى ناتج الضرب النقطي بينه وبين Vector3 v.
+		</p>
+		
+		<h3>[method:this crossVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>
+		يضبط هذا الفيكتور إلى ناتج الضرب النقطي بين Vector3 a و Vector3 b.
+		</p>
+		
+		<h3>[method:Float distanceTo]( [param:Vector3 v] )</h3>
+		<p>يحسب المسافة من هذا الفيكتور إلى Vector3 v.</p>
+
+		<h3>[method:Float manhattanDistanceTo]( [param:Vector3 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] 
+		من هذا المتجه إلى [page:Vector3 v].
+		</p>
+	 
+		<h3>[method:Float distanceToSquared]( [param:Vector3 v] )</h3>
+		<p>
+		يحسب المسافة المربعة من هذا المتجه إلى [page:Vector3 v]. إذا كنت
+		تقارن المسافة مع مسافة أخرى، يجب عليك مقارنة
+		المسافة المربعة بدلاً من ذلك كما هو أكثر كفاءة قليلاً في
+		الحساب.
+		</p>
+	 
+		<h3>[method:this divide]( [param:Vector3 v] )</h3>
+		<p>يقسم هذا المتجه بواسطة [page:Vector3 v].</p>
+	 
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p>يقسم هذا المتجه بواسطة العدد الفردي [page:Float s].</p>
+	 
+		<h3>[method:Float dot]( [param:Vector3 v] )</h3>
+		<p>
+		حساب [link:https://en.wikipedia.org/wiki/Dot_product dot product]
+		لهذا المتجه و[page:Vector3 v].
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Vector3 v] )</h3>
+		<p>
+		يعود `true` إذا كانت مكونات هذا المتجه و[page:Vector3 v] هي
+		صارمة متساوية؛ `false` في حالات أخرى.
+		</p>
+	 
+		<h3>[method:this floor]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة
+		قيمة.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة المصدر.<br />
+		[page:Integer offset] - ( اختياري) الإزاحة في المصفوفة. الافتراضي هو
+		0.<br /><br />
+	 
+		يضع قيمة هذا المتجه [page:.x x] لتكون `array[ offset + 0 ]`، قيمة [page:.y y]
+		لتكون `array[ offset + 1 ]` وقيمة [page:.z z] لتكون `array[ offset + 2 ]`.
+		</p>
+	 
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - الفهرس في السمة.<br /><br />
+		 
+		يضع قيم هذا المتجه [page:.x x]، [page:.y y] و [page:.z z] من
+		ال[page:BufferAttribute attribute].
+		</p>
+		 
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] - 0، 1 أو 2.<br /><br />
+		 
+		إذا كان الفهرس يساوي 0 يعيد قيمة [page:.x x]. <br />
+		إذا كان الفهرس يساوي 1 يعيد قيمة [page:.y y]. <br />
+		إذا كان الفهرس يساوي 2 يعيد قيمة [page:.z z].
+		</p>
+		 
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول الخط المستقيم) من (0، 0، 0) إلى (x، y، z).
+		</p>
+		 
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب طول مانهاتن
+		لهذا المتجه.
+		</p>
+		 
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول الخط المستقيم) من (0، 0، 0) إلى (x، y، z). إذا كنت تقارن
+		أطوال المتجهات، يجب عليك مقارنة طول المربع بدلاً من ذلك كما
+		أنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		 
+		<h3>[method:this lerp]( [param:Vector3 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector3 v] - [page:Vector3] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في المغلق
+		الفاصل `[0, 1]`.<br /><br />
+		 
+		تداخل خطي بين هذا المتجه و[page:Vector3 v]، حيث alpha
+		هو نسبة المسافة على طول الخط - alpha = 0 سيكون هذا المتجه،
+		وalpha = 1 ستكون [page:Vector3 v].
+		</p>
+
+		<h3>
+		[method:this lerpVectors]( [param:Vector3 v1], [param:Vector3 v2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Vector3 v1] - البداية [page:Vector3].<br />
+		[page:Vector3 v2] - [page:Vector3] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق
+		`[0، 1]`.<br /><br />
+		 
+		يضع هذا المتجه ليكون المتجه المتداخل خطيًا بين
+		[page:Vector3 v1] و [page:Vector3 v2] حيث يكون ألفا هو النسبة
+		المئوية للمسافة على طول الخط الذي يربط المتجهين - سيكون ألفا = 0
+		[page:Vector3 v1]، وسيكون ألفا = 1 [page:Vector3 v2].
+		</p>
+		 
+		<h3>[method:this max]( [param:Vector3 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z لهذا المتجه أقل من قيمة x أو y أو z
+		لـ [page:Vector3 v]، استبدل تلك القيمة بالقيمة القصوى المقابلة.
+		</p>
+		 
+		<h3>[method:this min]( [param:Vector3 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z لهذا المتجه أكبر من قيمة x أو y
+		أو z لـ [page:Vector3 v]، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		 
+		<h3>[method:this multiply]( [param:Vector3 v] )</h3>
+		<p>يضرب هذا المتجه بـ [page:Vector3 v].</p>
+		 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه بالعدد القائم [page:Float s].</p>
+		 
+		<h3>
+		[method:this multiplyVectors]( [param:Vector3 a], [param:Vector3 b] )
+		</h3>
+		<p>
+		يضع هذا المتجه يساوي [page:Vector3 a] * [page:Vector3 b]،
+		مكونًا حكيمًا.
+		</p>
+		 
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضع x = -x، y = -y و z = -z.</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		تحويل هذا المتجه إلى متجه وحدة 
+		- أي يضعه يساوي متجه بنفس الاتجاه
+		كهذا واحد، ولكن طول الصفحة 1.
+		</p>
+
+		<h3>[method:this project]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] — الكاميرا المستخدمة في الإسقاط.<br /><br />
+	 
+		يسقط هذا المتجه من مساحة العالم إلى مساحة جهاز الكاميرا المعيارية
+		(NDC).
+		</p>
+	 
+		<h3>[method:this projectOnPlane]( [param:Vector3 planeNormal] )</h3>
+		<p>
+		[page:Vector3 planeNormal] - متجه يمثل عادي الطائرة.<br /><br />
+	 
+		[link:https://en.wikipedia.org/wiki/Vector_projection يسقط] هذا
+		المتجه على طائرة عن طريق طرح هذا المتجه المسقط على عادي الطائرة من هذا
+		المتجه.
+		</p>
+	 
+		<h3>[method:this projectOnVector]( [param:Vector3 v] )</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Vector_projection يسقط] هذا
+		المتجه على [page:Vector3 v].
+		</p>
+	 
+		<h3>[method:this reflect]( [param:Vector3 normal] )</h3>
+		<p>
+		[page:Vector3 normal] - العادي إلى طائرة الانعكاس<br /><br />
+	 
+		يعكس هذا المتجه قبالة طائرة متعامدة على [page:Vector3 normal].
+		يفترض أن يكون العادي لديه طول وحدة.
+		</p>
+	 
+		<h3>[method:this round]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+	 
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه نحو الصفر (لأعلى إذا كان سالبًا،
+		لأسفل إذا كان إيجابيًا) إلى قيمة صحيحة.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x]، [page:.y y] و [page:.z z] من هذا
+		المتجه.
+		</p>
+	 
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value] )
+		</h3>
+		<p>
+		[page:Integer index] - 0، 1 أو 2.<br />
+		[page:Float value] - [page:Float]<br /><br />
+			
+		إذا كان index يساوي 0 يضبط [page:.x x] على [page:Float value].<br />
+		إذا كان index يساوي 1 يضبط [page:.y y] على [page:Float value].<br />
+		إذا كان index يساوي 2 يضبط [page:.z z] على [page:Float value]
+		</p>
+			
+		<h3>[method:this setFromColor]( [param:Color color] )</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه من مكونات r و g و b لـ[page:Color color] المحدد.
+		</p>
+			
+		<h3>[method:this setFromCylindrical]( [param:Cylindrical c] )</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الأسطوانية [page:Cylindrical c].
+		</p>
+			
+		<h3>
+		[method:this setFromCylindricalCoords]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الأسطوانية [page:Cylindrical radius]، و[page:Cylindrical theta] و[page:Cylindrical y].
+		</p>
+			
+		<h3>[method:this setFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضبط مكونات [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه من مكونات x و y و z لـ[page:Euler Euler Angle] المحدد.
+		</p>
+			
+		<h3>
+		[method:this setFromMatrixColumn]( [param:Matrix4 matrix], [param:Integer index] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه من العمود [page:Integer index] من [page:Matrix4 matrix].
+		</p>
+			
+		<h3>
+		[method:this setFromMatrix3Column]( [param:Matrix3 matrix], [param:Integer index] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه من العمود [page:Integer index] من [page:Matrix3 matrix].
+		</p>
+			
+		<h3>[method:this setFromMatrixPosition]( [param:Matrix4 m] )</h3>
+		<p>
+		يضبط هذا المتجه على عناصر الموضع لـ [link:https://en.wikipedia.org/wiki/Transformation_matrix مصفوفة التحويل] [page:Matrix4 m].
+		</p>
+			
+		<h3>[method:this setFromMatrixScale]( [param:Matrix4 m] )</h3>
+		<p>
+		يضبط هذا المتجه على عناصر الحجم لـ [link:https://en.wikipedia.org/wiki/Transformation_matrix مصفوفة التحويل] [page:Matrix4 m].
+		</p>
+			
+		<h3>[method:this setFromSpherical]( [param:Spherical s] )</h3>
+		<p>يضبط هذا المتجه من الإحداثيات الكروية [page:Spherical s].</p>
+			
+		<h3>
+		[method:this setFromSphericalCoords]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الكروية [page:Spherical radius]، و[page:Spherical phi] و[page:Spherical theta].
+		</p>
+			
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس اتجاه هذا، ولكن بـ [page:.length length] يساوي [page:Float l].
+		</p>
+			
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيمة كل من [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه على قيمة مساوية لـ[page:Float scalar].
+		</p>
+			
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ[page:Float x].</p>
+			
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ[page:Float y].</p>
+			
+		<h3>[method:this setZ]( [param:Float z] )</h3>
+		<p>يستبدل قيمة [page:.z z] لهذا المتجه بـ[page:Float z].</p>
+			
+		<h3>[method:this sub]( [param:Vector3 v] )</h3>
+		<p>يطرح [page:Vector3 v] من هذا المتجه.</p>
+
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector3 a] - [page:Vector3 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا، سيتم إنشاء مصفوفة جديدة.<br />
+		[page:Integer offset] - (اختياري) إزاحة اختيارية في المصفوفة.<br /><br />
+		
+		يرجع مصفوفة [x، y، z]، أو ينسخ x و y و z في المصفوفة المعطاة من نوع [page:Array array].
+		</p>
+		
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>
+		يحول اتجاه هذا المتجه بمصفوفة (المجموعة العلوية اليسرى 3 × 3 من [page:Matrix4 m]) ثم يقوم بـ [page:.normalize تطبيع] النتيجة.
+		</p>
+		
+		<h3>[method:this unproject]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] — الكاميرا المستخدمة في الإسقاط.<br /><br />
+		
+		يُسقِط هذا المتجه من مساحة الجهاز المعيارية للكاميرا (NDC) إلى مساحة العالم.
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و 1، باستثناء 1.
+		</p>
+		
+		<h3>[method:this randomDirection]()</h3>
+		<p>يضبط هذا المتجه على نقطة عشوائية موحدة على كرة وحدة.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 392 - 0
docs/api/ar/math/Vector4.html

@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		تمثل الفئة متجه 4D [link:https://en.wikipedia.org/wiki/Vector_space vector].
+		متجه 4D هو رباعي من الأرقام المرتبة (مسمى x و y و z و w) ، والذي يمكن استخدامه لتمثيل عدد من الأشياء ، مثل:
+		</p>
+		 
+		<ul>
+		<li>نقطة في الفضاء 4D.</li>
+		<li>
+		اتجاه وطول في الفضاء 4D. في three.js ، سيكون الطول دائمًا
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة المستقيمة) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`
+		ويتم قياس الاتجاه أيضًا من `(0، 0، 0، 0)` نحو `(x، y، z، w)`.
+		</li>
+		<li>أي رباعي مرتب عشوائي من الأرقام.</li>
+		</ul>
+		 
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه 4D لتمثيلها ، ولكن هذه هي
+		الاستخدامات الأكثر شيوعًا في *three.js*.
+		</p>
+		 
+		<p>
+		التكرار عبر مثيل [name] سيعطي مكوناته `(x، y، z، w)` بالترتيب المقابل.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		const a = new THREE.Vector4( 0, 1, 0, 0 );
+		 
+		//لا معاملات؛ سيتم تهيئته إلى (0 ، 0 ، 0 ، 1)
+		const b = new THREE.Vector4( );
+		 
+		const d = a.dot( b );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float y] - قيمة y لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float z] - قيمة z لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float w] - قيمة w لهذا المتجه. الافتراضية هي `1`.<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isVector4]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:Float x]</h3>
+
+		<h3>[property:Float y]</h3>
+
+		<h3>[property:Float z]</h3>
+		
+		<h3>[property:Float w]</h3>
+		
+		<h3>[property:Float width]</h3>
+		<p>الاسم المستعار لـ [page:.z z].</p>
+		
+		<h3>[property:Float height]</h3>
+		<p>الاسم المستعار لـ [page:.w w].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector4 v] )</h3>
+		<p>يضيف [page:Vector4 v] إلى هذا المتجه.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف القيمة القياسية s إلى قيم [page:.x x] و [page:.y y] و
+		[page:.z z] و [page:.w w] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector4 v], [param:Float s] )</h3>
+		<p>
+		يضيف مضاعفة [page:Vector4 v] و [page:Float s] إلى هذا المتجه.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
+		<p> يضبط هذا المتجه على [page:Vector4 a] + [page:Vector4 b]. </p>
+		
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p> يضرب هذا المتجه في 4 × 4 [page:Matrix4 m]. </p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		يتم تقريب مكونات [page:.x x] و [page:.y y] و [page:.z z] و
+		[page:.w w] من هذا المتجه إلى أعلى إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector4 min], [param:Vector4 max] )</h3>
+		<p>
+		[page:Vector4 min]- الحد الأدنى للقيمة [page:.x x] و [page:.y y] و
+		[page:.z z] و[page:.w w]. <br />
+		[page:Vector4 max]- الحد الأقصى للقيمة [page:.x x] و [page:.y y] و
+		[page:.z z] و[page:.w w] في النطاق المطلوب <br /> <br />
+		
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w للمتجه الأقصى ، فإنها
+		تستبدل بالقيمة المقابلة. <br /> <br />
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z
+		أو w للمتجه الأدنى ، يتم استبداله بالقيمة المقابلة.
+		</p>
+
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيتها على الطول <br />
+		[page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيتها على الطول <br /> <br />
+		
+		إذا كان طول هذا المتجه أكبر من القيمة القصوى ، يتم استبداله بـ
+		القيمة القصوى. <br /> <br />
+		إذا كان طول هذا المتجه أقل من الحد الأدنى للقيمة ، يتم استبداله بـ
+		الحد الأدنى للقيمة.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيت المكونات عليها
+		<br />
+		[page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيت المكونات عليها <br /> <br />
+		
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من الحد الأقصى للقيمة ، فإنها
+		تستبدل بالحد الأقصى للقيمة. <br /> <br />
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من الحد الأدنى للقيمة ، فإنها
+		تستبدل بالحد الأدنى للقيمة.
+		</p>
+		
+		<h3>[method:Vector4 clone]()</h3>
+		<p>
+		يرجع Vector4 جديدًا بنفس قيم [page:.x x] و [page:.y y] و [page:.z z]
+		و [page:.w w] كهذا.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector4 v] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من Vector4 المار إلى هذا Vector4.
+		</p>
+		
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p> يقسم هذا المتجه على العدد القياسي [page:Float s]. </p>
+		
+		<h3>[method:Float dot]( [param:Vector4 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product حاصل ضرب نقطة]
+		هذا المتجه و [page:Vector4 v].
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Vector4 v] )</h3>
+		<p>
+		يرجع `true` إذا كانت مكونات هذا المتجه و [page:Vector4 v]
+		صارمًا مساوية ؛ `false` في حالات أخرى.
+		</p>
+		
+		<h3>[method:this floor]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة
+		قيمة.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset])
+		</h3>
+		<p>
+		[page:Array array]- المصفوفة المصدر. <br />
+		[page:Integer offset]- (اختياري) إزاحة في المصفوفة. الافتراضي هو 0. <br /> <br />
+		
+		يضبط قيمة [page:.x x] لهذا المتجه لتكون `array [offset + 0]` ، قيمة [page:.y y]
+		لتكون `array [offset + 1]` قيمة [page:.z z] لتكون `array [offset + 2]`
+		وقيمة [page:.w w] لتكون `array [offset + 3]`.
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index])
+		</h3>
+		<p>
+		[page:BufferAttribute attribute]- السمة المصدر. <br />
+		[page:Integer index]- فهرس في السمة. <br /> <br />
+		
+		يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		لهذا المتجه من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
+		
+		إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
+		إذا كان index يساوي 1 يعود بقيمة [page:.y y]. <br />
+		إذا كان index يساوي 2 يعود بقيمة [page:.z z].<br />
+		إذا كان index يساوي 3 يعود بقيمة [page:.w w].
+		</p>
+		
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`.
+		</p>
+		
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب طول مانهاتن لهذا المتجه.
+		</p>
+		
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`. إذا كنت
+		تقارن أطوال المتجهات ، فيجب عليك مقارنة الطول المربع
+		بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this lerp]( [param:Vector4 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector4 v]- [page:Vector4] للتداخل نحوه. <br />
+		[page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
+		الفاصل "[0، 1]". <br /> <br />
+		
+		يتداخل بشكل خطي بين هذا المتجه و [page:Vector4 v] ، حيث
+		alpha هو نسبة المسافة على طول الخط - سيكون `alpha = 0` هذا
+		المتجه ، و `alpha = 1` سيكون [page:Vector4 v].
+		</p>
+		
+		<h3>
+		[method:this lerpVectors]( [param:Vector4 v1], [param:Vector4 v2], [param:Float alpha])
+		</h3>
+		<p>
+		[page:Vector4 v1]- [page:Vector4] الابتدائية. <br />
+		[page:Vector4 v2]- [page:Vector4] للتداخل نحوه. <br />
+		[page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
+		الفاصل `[0، 1]`. <br /> <br />
+		
+		يضبط هذا المتجه ليكون المتجه المتداخل خطيًا بين
+		[page:Vector4 v1] و [page:Vector4 v2] حيث alpha هو نسبة
+		المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0
+		[page:Vector4 v1] ، وسيكون alpha = 1 [page:Vector4 v2].
+		</p>
+		
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضبط x = -x و y = -y و z = -z و w = -w.</p>
+		
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة]
+		- أي يضعه يساوي متجهًا بنفس الاتجاه
+		كهذا ، لكن [page:.length الطول] 1.
+		</p>
+		
+		<h3>[method:this max]( [param:Vector4 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z أو w لـ [page:Vector4 v]
+		، استبدل تلك القيمة بالقيمة القصوى المقابلة.
+		</p>
+		
+		<h3>[method:this min]( [param:Vector4 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w لـ [page:Vector4 v]
+		، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		
+		<h3>[method:this multiply]( [param:Vector4 v] )</h3>
+		<p> يضرب هذا المتجه في [page:Vector4 v]. </p>
+		
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه بالعدد القياسي [page:Float s].</p>
+		
+		<h3>[method:this round]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه نحو الصفر (لأعلى إذا كانت سالبة ،
+		لأسفل إذا كانت موجبة) إلى قيمة صحيحة.
+		</p>
+		
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من هذا المتجه.
+		</p>
+		
+		<h3>[method:this setAxisAngleFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+		[page:Quaternion q] - a normalized [page:Quaternion]<br /><br />
+		
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] من هذا
+		المتجه على محور الرباعية و[page:.w w] على الزاوية.
+		</p>
+		
+		<h3>[method:this setAxisAngleFromRotationMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - a [page:Matrix4] of which the upper left 3x3 matrix is
+		a pure rotation matrix.<br /><br />
+		
+		يضبط [page:.x x] و [page:.y y] و [page:.z z] على محور الدوران
+		و[page:.w w] على الزاوية.
+		</p>
+		
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value])
+		</h3>
+		<p>
+		[page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
+		[page:Float value]- [page:Float]<br /> <br />
+		
+		إذا كان index يساوي 0 ، فقم بتعيين [page:.x x] إلى [page:Float value].<br />
+		إذا كان index يساوي 1 ، فقم بتعيين [page:.y y] إلى [page:Float value].<br />
+		إذا كان index يساوي 2 ، فقم بتعيين [page:.z z] إلى [page:Float value].<br />
+		إذا كان index يساوي 3 ، فقم بتعيين [page:.w w] إلى [page:Float value].
+		</p>
+
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس الاتجاه كهذا ، لكن
+		[page:.length الطول] [page:Float l].
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من
+		هذا المتجه متساوية مع [page:Float scalar].
+		</p>
+		
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ [page:Float x].</p>
+		
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ [page:Float y].</p>
+		
+		<h3>[method:this setZ]( [param:Float z] )</h3>
+		<p>يستبدل قيمة [page:.z z] لهذا المتجه بـ [page:Float z].</p>
+		
+		<h3>[method:this setW]( [param:Float w] )</h3>
+		<p>يستبدل قيمة [page:.w w] لهذا المتجه بـ [page:Float w].</p>
+		
+		<h3>[method:this sub]( [param:Vector4 v] )</h3>
+		<p>يطرح [page:Vector4 v] من هذا المتجه.</p>
+		
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات هذا المتجه [page:.x x] و [page:.y y]
+		و[page:.z z] و[page:.w w].
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector4 a] - [page:Vector4 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset])
+		</h3>
+		<p>
+		[page:Array array]- (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا ، سيتم إنشاء مصفوفة جديدة. <br />
+		[page:Integer offset]- (اختياري) إزاحة اختيارية في المصفوفة. <br /> <br />
+		
+		يرجع مصفوفة [x، y، z، w] ، أو ينسخ x و y و z و w في المصفوفة المقدمة
+		[page:Array array].
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و
+		1 ، باستثناء 1.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 62 - 0
docs/api/ar/math/interpolants/CubicInterpolant.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Interpolant] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc"></p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const interpolant = new THREE.[name](
+			new Float32Array(2),
+			new Float32Array(2),
+			1,
+			new Float32Array(1)
+		);
+		
+		interpolant.evaluate(0.5);
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name](parameterPositions, sampleValues, sampleSize, resultBuffer)
+		</h3>
+		<p>
+		parameterPositions - مصفوفة المواضع<br />
+		sampleValues - مصفوفة العينات<br />
+		sampleSize - عدد العينات<br />
+		resultBuffer - مخزن لتخزين نتائج التداخل.<br /><br />
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:null parameterPositions]</h3>
+		
+		<h3>[property:null resultBuffer]</h3>
+		
+		<h3>[property:null sampleValues]</h3>
+		
+		<h3>[property:Object settings]</h3>
+		
+		<h3>[property:null valueSize]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Array evaluate]([param:Number t])</h3>
+		<p>تقييم المُداخِل في الموضع *t*.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 62 - 0
docs/api/ar/math/interpolants/DiscreteInterpolant.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Interpolant] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc"></p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const interpolant = new THREE.[name](
+			new Float32Array(2),
+			new Float32Array(2),
+			1,
+			new Float32Array(1)
+		);
+		
+		interpolant.evaluate(0.5);
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name](parameterPositions, sampleValues, sampleSize, resultBuffer)
+		</h3>
+		<p>
+		parameterPositions - مصفوفة المواضع<br />
+		sampleValues - مصفوفة العينات<br />
+		sampleSize - عدد العينات<br />
+		resultBuffer - مخزن لتخزين نتائج التداخل.<br /><br />
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:null parameterPositions]</h3>
+		
+		<h3>[property:null resultBuffer]</h3>
+		
+		<h3>[property:null sampleValues]</h3>
+		
+		<h3>[property:Object settings]</h3>
+		
+		<h3>[property:null valueSize]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Array evaluate]([param:Number t])</h3>
+		<p>تقييم المُداخِل في الموضع *t*.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 62 - 0
docs/api/ar/math/interpolants/LinearInterpolant.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Interpolant] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc"></p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const interpolant = new THREE.[name](
+			new Float32Array(2),
+			new Float32Array(2),
+			1,
+			new Float32Array(1)
+		);
+		
+		interpolant.evaluate(0.5);
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name](parameterPositions, sampleValues, sampleSize, resultBuffer)
+		</h3>
+		<p>
+		parameterPositions - مصفوفة المواضع<br />
+		sampleValues - مصفوفة العينات<br />
+		sampleSize - عدد العينات<br />
+		resultBuffer - مخزن لتخزين نتائج التداخل.<br /><br />
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:null parameterPositions]</h3>
+		
+		<h3>[property:null resultBuffer]</h3>
+		
+		<h3>[property:null sampleValues]</h3>
+		
+		<h3>[property:Object settings]</h3>
+		
+		<h3>[property:null valueSize]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Array evaluate]([param:Number t])</h3>
+		<p>تقييم المُداخِل في الموضع *t*.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 62 - 0
docs/api/ar/math/interpolants/QuaternionLinearInterpolant.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Interpolant] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc"></p>
+
+		<h2>مثال الكود</h2>
+		<code>
+		const interpolant = new THREE.[name](
+			new Float32Array(2),
+			new Float32Array(2),
+			1,
+			new Float32Array(1)
+		);
+		
+		interpolant.evaluate(0.5);
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name](parameterPositions, sampleValues, sampleSize, resultBuffer)
+		</h3>
+		<p>
+		parameterPositions - مصفوفة المواضع<br />
+		sampleValues - مصفوفة العينات<br />
+		sampleSize - عدد العينات<br />
+		resultBuffer - مخزن لتخزين نتائج التداخل.<br /><br />
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:null parameterPositions]</h3>
+		
+		<h3>[property:null resultBuffer]</h3>
+		
+		<h3>[property:null sampleValues]</h3>
+		
+		<h3>[property:Object settings]</h3>
+		
+		<h3>[property:null valueSize]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Array evaluate]([param:Number t])</h3>
+		<p>تقييم المُداخِل في الموضع *t*.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 53 - 0
docs/api/ar/objects/Bone.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		عظمة هي جزء من [page:Skeleton]. يتم استخدام الهيكل العظمي بدوره من قبل
+		[page:SkinnedMesh]. العظام تكاد تكون مطابقة لـ
+		[page:Object3D] فارغ.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		const root = new THREE.Bone();
+		const child = new THREE.Bone();
+		 
+		root.add( child );
+		child.position.y = 5;
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( )</h3>
+		<p>ينشئ جديدًا [name].</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+		 
+		<h3>[property:Boolean isBone]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:String type]</h3>
+		<p>تعيين إلى 'Bone' ، يمكن استخدام هذا للعثور على جميع العظام في المشهد.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 61 - 0
docs/api/ar/objects/Group.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		هذا مطابق تقريبًا لـ [page:Object3D Object3D]. الغرض منه هو
+		جعل العمل مع مجموعات من الكائنات أكثر وضوحًا نحويًا.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		const geometry = new THREE.BoxGeometry( 1, 1, 1 );
+		const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		 
+		const cubeA = new THREE.Mesh( geometry, material );
+		cubeA.position.set( 100, 100, 0 );
+		 
+		const cubeB = new THREE.Mesh( geometry, material );
+		cubeB.position.set( -100, -100, 0 );
+		 
+		//إنشاء مجموعة وإضافة المكعبين
+		//يمكن الآن تدوير / تحجيم هذه المكعبات كمجموعة
+		const group = new THREE.Group();
+		group.add( cubeA );
+		group.add( cubeB );
+		 
+		scene.add( group );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( )</h3>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+		 
+		<h3>[property:Boolean isGroup]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:String type]</h3>
+		<p>سلسلة 'Group'. يجب عدم تغيير هذا.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		 
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 172 - 0
docs/api/ar/objects/InstancedMesh.html

@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Mesh] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		نسخة خاصة من [page:Mesh] مع دعم التصيير المثيل. استخدم
+		[name] إذا كان عليك تقديم عدد كبير من الكائنات بنفس
+		الهندسة والمواد ولكن مع تحولات العالم المختلفة. الاستخدام
+		من [name] سيساعدك على تقليل عدد مكالمات الرسم وبالتالي
+		تحسين أداء التصيير العام في تطبيقك.
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_instancing_dynamic WebGL / instancing / dynamic]<br />
+		[example:webgl_instancing_performance WebGL / instancing / performance]<br />
+		[example:webgl_instancing_scatter WebGL / instancing / scatter]<br />
+		[example:webgl_instancing_raycast WebGL / instancing / raycast]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material],
+		[param:Integer count] )
+		</h3>
+		<p>
+		[page:BufferGeometry geometry] - عينة من [page:BufferGeometry].<br />
+		[page:Material material] - عينة من [page:Material]. الافتراضية هي
+		جديد [page:MeshBasicMaterial].<br />
+		[page:Integer count] - عدد العينات.<br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة الأساسية [page:Mesh] للحصول على الخصائص المشتركة.</p>
+		 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+		يحيط هذا المربع التجزئة بجميع عينات [name]. يمكن حسابه
+		مع [page:.computeBoundingBox](). الافتراضية هي `null`.
+		</p>
+		 
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+		يحيط هذا المجال المحدد بجميع عينات [name]. يمكن
+		حسابه مع [page:.computeBoundingSphere](). الافتراضية هي `null`.
+		</p>
+		 
+		<h3>[property:Integer count]</h3>
+		<p>
+		عدد العينات. قيمة `count` الممررة إلى الباني
+		تمثل الحد الأقصى لعدد العينات من هذه المشبك. يمكنك تغيير
+		عدد العينات في وقت التشغيل إلى قيمة صحيحة في النطاق [0، count].
+		</p>
+		<p>
+		إذا كنت بحاجة إلى عدد أكبر من العينات من قيمة العدد الأصلية ، فلديك
+		إنشاء جديد [name].
+		</p>
+	 
+		<h3>[property:InstancedBufferAttribute instanceColor]</h3>
+		<p>
+		يمثل ألوان جميع العينات. `null` بشكل افتراضي. يجب عليك ضبط
+		علامة [page:BufferAttribute.needsUpdate needsUpdate] الخاصة بها على صحيح إذا كان لديك
+		تعديل بيانات مثيل عبر [page:.setColorAt]().
+		</p>
+	 
+		<h3>[property:InstancedBufferAttribute instanceMatrix]</h3>
+		<p>
+		يمثل التحول المحلي لجميع العينات. يجب عليك ضبطه
+		[page:BufferAttribute.needsUpdate needsUpdate] علامة صحيحة إذا قمت بتعديل
+		بيانات مثيل عبر [page:.setMatrixAt]().
+		</p>
+	 
+		<h3>[property:Boolean isInstancedMesh]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Mesh] للحصول على الطرق المشتركة.</p>
+	 
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		يحسب مربع التجزئة ، وتحديث [page:.boundingBox] سمة.<br />
+		لا يتم حساب مربعات التجزئة افتراضيًا. يجب حسابها بشكل صريح
+		حسابها ، وإلا كانت `null`.
+		</p>
+	 
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		يحسب المجال المحدد ، وتحديث [page:.boundingSphere]
+		سمة.<br />
+		لا يتم حساب المجالات المحددة افتراضيًا. يجب حسابها بشكل صريح
+		حسابها ، وإلا كانت `null`.
+		</p>
+	 
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يطلق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه العينة. استدعاء هذه
+		الطريقة كلما لم تستخدم هذه العينة في تطبيقك.
+		</p>
+
+		<h3>
+		[method:undefined getColorAt]( [param:Integer index], [param:Color color] )
+		</h3>
+		<p>
+		[page:Integer index]: فهرس العينة. يجب أن تكون القيم في
+		النطاق [0، count].
+		</p>
+		<p>
+		[page:Color color]: سيتم تعيين كائن اللون هذا إلى لون
+		العينة المحددة.
+		</p>
+		<p>احصل على لون العينة المحددة.</p>
+		 
+		<h3>
+		[method:undefined getMatrixAt]( [param:Integer index], [param:Matrix4 matrix] )
+		</h3>
+		<p>
+		[page:Integer index]: فهرس العينة. يجب أن تكون القيم في
+		النطاق [0، count].
+		</p>
+		<p>
+		[page:Matrix4 matrix]: ستتم تعيين مصفوفة 4x4 هذه إلى المحلية
+		مصفوفة التحول للعينة المحددة.
+		</p>
+		<p>احصل على مصفوفة التحول المحلية للعينة المحددة.</p>
+		 
+		<h3>
+		[method:undefined setColorAt]( [param:Integer index], [param:Color color] )
+		</h3>
+		<p>
+		[page:Integer index]: فهرس العينة. يجب أن تكون القيم في
+		النطاق [0، count].
+		</p>
+		<p>[page:Color color]: لون عينة واحدة.</p>
+		<p>
+		يضع اللون المحدد على العينة المحددة. تأكد من ضبط
+		[page:.instanceColor][page:BufferAttribute.needsUpdate .needsUpdate] إلى
+		صحيح بعد تحديث جميع الألوان.
+		</p>
+		 
+		<h3>
+		[method:undefined setMatrixAt]( [param:Integer index], [param:Matrix4 matrix] )
+		</h3>
+		<p>
+		[page:Integer index]: فهرس العينة. يجب أن تكون القيم في
+		النطاق [0، count].
+		</p>
+		<p>
+		[page:Matrix4 matrix]: مصفوفة 4x4 تمثل التحول المحلي
+		لعينة واحدة.
+		</p>
+		<p>
+		يضع مصفوفة التحول المحلية المحددة على العينة المحددة. جعل
+		تأكد من ضبط [page:.instanceMatrix][page:BufferAttribute.needsUpdate .needsUpdate]
+		صحيح بعد تحديث جميع المصفوفات.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 118 - 0
docs/api/ar/objects/LOD.html

@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+		<p class="desc">
+		مستوى التفاصيل - عرض الشبكات بمزيد أو أقل من الهندسة بناءً على المسافة
+		من الكاميرا. <br /> <br />
+			
+		كل مستوى مرتبط بكائن، ويمكن تبديل التصيير
+		بينهم على المسافات المحددة. عادةً ما تقوم بإنشاء، قل،
+		ثلاث شبكات، واحدة للبعيد (تفاصيل منخفضة)، واحدة للمدى المتوسط ​​(تفاصيل متوسطة)
+		وواحد للقريب (تفاصيل عالية).
+		</p>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		const lod = new THREE.LOD();
+			
+		// إنشاء كرات مع 3 مستويات من التفاصيل وإنشاء مستويات LOD جديدة لهم
+		for( let i = 0; i < 3; i++ ) {
+			const geometry = new THREE.IcosahedronGeometry( 10, 3 - i )
+			const mesh = new THREE.Mesh( geometry, material );
+			lod.addLevel( mesh, i * 75 );
+		}
+			
+		scene.add( lod );
+		</code>
+			
+		<h2>أمثلة (Examples)</h2>
+			
+		<p>[example:webgl_lod webgl / lod ]</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( )</h3>
+		<p>إنشاء [name] جديد.</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+			
+		<h3>[property:Boolean autoUpdate]</h3>
+		<p>
+		ما إذا كان يتم تحديث كائن LOD تلقائيًا من قبل المُصور في كل إطار
+		أم لا. إذا تم تعيينه إلى false، يجب عليك استدعاء [page:LOD.update]() في
+		حلقة التصيير بنفسك. الافتراضي هو true.
+		</p>
+			
+		<h3>[property:Boolean isLOD]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+			
+		<h3>[property:Array levels]</h3>
+		<p>
+		مصفوفة من كائنات [page:Object level]<br /> <br />
+		
+		كل مستوى هو كائن يحتوي على الخصائص التالية:<br />
+		[page:Object3D object] - الـ [page:Object3D] المراد عرضه في هذا المستوى.<br />
+		[page:Float distance] - المسافة التي يتم عرض هذا المستوى من التفاصيل فيها.<br />
+		[page:Float hysteresis] - الحد الذي يستخدم لتجنب الوميض عند حدود LOD، كجزء من المسافة.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		
+		<h3>
+		[method:this addLevel]( [param:Object3D object], [param:Float distance], [param:Float hysteresis] )
+		</h3>
+		<p>
+		[page:Object3D object] - الـ [page:Object3D] المراد عرضه في هذا المستوى.<br />
+		[page:Float distance] - المسافة التي يتم عرض هذا المستوى من التفاصيل فيها. الافتراضي 0.0.<br />
+		[page:Float hysteresis] - الحد الذي يستخدم لتجنب الوميض عند حدود LOD، كجزء من المسافة. الافتراضي 0.0.<br /> <br />
+		
+		إضافة شبكة ستعرض عند مسافة معينة وأكبر. عادةً ما تكون المسافة أبعد، كلما كان التفصيل أقل في الشبكة.
+		</p>
+		
+		<h3>[method:LOD clone]()</h3>
+		<p>إرجاع نسخة من هذا كائن LOD مع مستوياته المرتبطة.</p>
+		
+		<h3>[method:Integer getCurrentLevel]()</h3>
+		<p>الحصول على مستوى LOD النشط حاليًا. كفهرس لمصفوفة المستويات.</p>
+		
+		<h3>[method:Object3D getObjectForDistance]( [param:Float distance] )</h3>
+		<p>
+		الحصول على مرجع إلى أول [page:Object3D] (شبكة) أكبر من
+		[page:Float distance].
+		</p>
+		
+		<h3>
+		[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
+		</h3>
+		<p>
+		الحصول على تقاطعات بين [page:Ray] ملقى وهذا LOD.
+		سيتم استدعاء هذه الطريقة بواسطة [page:Raycaster.intersectObject].
+		</p>
+		
+		<h3>[method:Object toJSON]( meta )</h3>
+		<p>إنشاء بنية JSON بتفاصيل هذا كائن LOD.</p>
+		
+		<h3>[method:undefined update]( [param:Camera camera] )</h3>
+		<p>
+		تعيين رؤية كل كائن [page:Object3D object] في [page:levels level]
+		بناءً على المسافة من [page:Camera camera].
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 114 - 0
docs/api/ar/objects/Line.html

@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		خط مستمر.<br /><br />
+		 
+		هذا مطابق تقريبًا لـ [page:LineSegments] ؛ الفرق الوحيد هو
+		أنه يتم تقديمه باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINE_STRIP] بدلاً من
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINES]
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		const material = new THREE.LineBasicMaterial({
+			color: 0x0000ff
+		});
+		 
+		const points = [];
+		points.push( new THREE.Vector3( - 10, 0, 0 ) );
+		points.push( new THREE.Vector3( 0, 10, 0 ) );
+		points.push( new THREE.Vector3( 10, 0, 0 ) );
+		 
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+		 
+		const line = new THREE.Line( geometry, material );
+		scene.add( line );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+		 
+		<p>
+		[page:BufferGeometry geometry] - الرؤوس التي تمثل الخط
+		القطعة (القطع). الافتراضية هي جديدة [page:BufferGeometry].<br />
+		[page:Material material] - مادة للخط. الافتراضية هي جديدة
+		[page:LineBasicMaterial].<br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+		 
+		<h3>[property:BufferGeometry geometry]</h3>
+		<p>الرؤوس التي تمثل الخط القطعة (القطع).</p>
+		 
+		<h3>[property:Boolean isLine]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:Material material]</h3>
+		<p>مادة للخط.</p>
+		 
+		<h3>[property:Array morphTargetInfluences]</h3>
+		<p>
+		مجموعة من الأوزان عادةً من 0-1 التي تحدد مدى تطبيق التغير
+		يتم تطبيقه. غير محدد بشكل افتراضي ، ولكن يتم إعادة تعيينه إلى مجموعة فارغة بواسطة
+		[page:.updateMorphTargets]().
+		</p>
+		 
+		<h3>[property:Object morphTargetDictionary]</h3>
+		<p>
+		قاموس من morphTargets بناءً على خاصية morphTarget.name.
+		غير محدد بشكل افتراضي ، ولكن يتم إعادة بنائه [page:.updateMorphTargets]().
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		 
+		<h3>[method:this computeLineDistances]()</h3>
+		<p>
+		يحسب مجموعة من قيم المسافات التي هي ضرورية لـ
+		[page:LineDashedMaterial]. بالنسبة لكل رأس في الهندسة ، يحسب الأسلوب
+		الطول التراكمي من النقطة الحالية إلى
+		بداية جدا من الخط.
+		</p>
+		 
+		<h3>
+		[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
+		</h3>
+		<p>
+		احصل على تقاطعات بين [page:Ray] المصبوب وهذا الخط.
+		ستستدعي [page:Raycaster.intersectObject] هذه الطريقة.
+		</p>
+		 
+		<h3>[method:Line clone]()</h3>
+		<p>يعود بنسخة من هذا كائن Line وأحفاده.</p>
+		 
+		<h3>[method:undefined updateMorphTargets]()</h3>
+		<p>
+		يحدث morphTargets ليكون لها تأثير على الكائن. يعيد تعيين
+		[page:.morphTargetInfluences] و [page:.morphTargetDictionary]
+		خصائص.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 53 - 0
docs/api/ar/objects/LineLoop.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Line] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		خط مستمر يتصل بالعودة إلى البداية.<br /><br />
+		 
+		هذا مطابق تقريبًا لـ [page:Line] ؛ الفرق الوحيد هو أنه
+		يتم تقديمه باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINE_LOOP] بدلاً من
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINE_STRIP]،
+		الذي يرسم خطًا مستقيمًا إلى الرأس التالي ، و
+		يربط الرأس الأخير مرة أخرى إلى الأول.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+		 
+		<p>
+		[page:BufferGeometry geometry] - قائمة من الرؤوس التي تمثل نقاط على
+		حلقة الخط.<br />
+		[page:Material material] - مادة للخط. الافتراضية هي
+		[page:LineBasicMaterial LineBasicMaterial].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة الأساسية [page:Line] للحصول على الخصائص المشتركة.</p>
+		 
+		<h3>[property:Boolean isLineLoop]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Line] للحصول على الطرق المشتركة.</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 49 - 0
docs/api/ar/objects/LineSegments.html

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Line] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		سلسلة من الخطوط المرسومة بين أزواج الرؤوس. <br /> <br />
+			
+		هذا مشابه تقريبًا لـ [page:Line]؛ الفرق الوحيد هو أنه يتم عرضه باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINES] بدلاً من
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.LINE_STRIP].
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+			
+		<p>
+		[page:BufferGeometry geometry] — زوج (أزواج) من الرؤوس التي تمثل كل
+		خط (خطوط) القطع.<br />
+		[page:Material material] — المادة المستخدمة للخط. الافتراضي هو
+		[page:LineBasicMaterial LineBasicMaterial].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Line] للحصول على الخصائص المشتركة.</p>
+			
+		<h3>[property:Boolean isLineSegments]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Line] للحصول على الطرق المشتركة.</p>
+			
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 108 - 0
docs/api/ar/objects/Mesh.html

@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل كائنات مبنية على شبكات مضلعة ثلاثية الأضلاع
+		[link:https://en.wikipedia.org/wiki/Polygon_mesh]. كما تعمل كقاعدة لفئات أخرى مثل
+		[page:SkinnedMesh].
+		</p>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		const geometry = new THREE.BoxGeometry( 1, 1, 1 );
+		const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+		const mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+		<p>
+		[page:BufferGeometry geometry] — (اختياري) نسخة من
+		[page:BufferGeometry]. الافتراضي هو [page:BufferGeometry] جديد.<br />
+		[page:Material material] — (اختياري) نسخة واحدة أو مصفوفة من
+		[page:Material]. الافتراضي هو [page:MeshBasicMaterial] جديد
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+			
+		<h3>[property:BufferGeometry geometry]</h3>
+		<p>
+		نسخة من [page:BufferGeometry] (أو الفئات المشتقة منها)، تحدد بنية
+		الكائن.
+		</p>
+			
+		<h3>[property:Boolean isMesh]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+			
+		<h3>[property:Material material]</h3>
+		<p>
+		نسخة من المادة المشتقة من فئة [page:Material] الأساسية أو مصفوفة من المواد، تحدد مظهر الكائن. الافتراضي هو
+		[page:MeshBasicMaterial].
+		</p>
+
+		<h3>[property:Array morphTargetInfluences]</h3>
+		<p>
+		مصفوفة من الأوزان عادةً من 0-1 تحدد مقدار التحول
+		الذي يتم تطبيقه. غير معرف بشكل افتراضي، ولكن يتم إعادة تعيينه إلى مصفوفة فارغة بواسطة
+		[page:Mesh.updateMorphTargets updateMorphTargets].
+		</p>
+		
+		<h3>[property:Object morphTargetDictionary]</h3>
+		<p>
+		قاموس من morphTargets بناءً على خاصية morphTarget.name.
+		غير معرف بشكل افتراضي، ولكن يتم إعادة بنائه [page:Mesh.updateMorphTargets updateMorphTargets].
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		
+		<h3>[method:Mesh clone]()</h3>
+		<p>إرجاع نسخة من هذا كائن [name] وأحفاده.</p>
+		
+		<h3>
+		[method:Vector3 getVertexPosition]( [param:Integer index], [param:Vector3 target] )
+		</h3>
+		<p>
+		الحصول على موضع الرأس المحلي في الفهرس المحدد، مع مراعاة
+		حالة الرسوم المتحركة الحالية لكل من التحولات والتشكيل.
+		</p>
+		
+		<h3>
+		[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
+		</h3>
+		<p>
+		الحصول على تقاطعات بين شعاع ملقى وهذه الشبكة.
+		سيتم استدعاء هذه الطريقة بواسطة [page:Raycaster.intersectObject]، ولكن النتائج
+		غير مرتبة.
+		</p>
+		
+		<h3>[method:undefined updateMorphTargets]()</h3>
+		<p>
+		تحديث التحولات لعدم التأثير على الكائن. يعيد تعيين خصائص
+		[page:Mesh.morphTargetInfluences morphTargetInfluences] و
+		[page:Mesh.morphTargetDictionary morphTargetDictionary].
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 90 - 0
docs/api/ar/objects/Points.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة لعرض النقاط. يتم عرض النقاط بواسطة
+		[page:WebGLRenderer] باستخدام
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/drawElements gl.POINTS].
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+		<p>
+		[page:BufferGeometry geometry] — (اختياري) نسخة من
+		[page:BufferGeometry]. الافتراضي هو [page:BufferGeometry] جديد.<br />
+		[page:Material material] — (اختياري) نسخة من [page:Material]. الافتراضي هو
+		[page:PointsMaterial] جديد.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+			
+		<h3>[property:BufferGeometry geometry]</h3>
+		<p>
+		نسخة من [page:BufferGeometry] (أو الفئات المشتقة منها)، تحدد بنية
+		الكائن.
+		</p>
+
+		<h3>[property:Boolean isPoints]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+		
+		<h3>[property:Material material]</h3>
+		<p>
+		نسخة من [page:Material]، تحدد مظهر الكائن. الافتراضي
+		هو [page:PointsMaterial].
+		</p>
+		
+		<h3>[property:Array morphTargetInfluences]</h3>
+		<p>
+		مصفوفة من الأوزان عادةً من 0-1 تحدد مقدار التحول
+		الذي يتم تطبيقه. غير معرف بشكل افتراضي، ولكن يتم إعادة تعيينه إلى مصفوفة فارغة بواسطة
+		[page:Points.updateMorphTargets updateMorphTargets].
+		</p>
+		
+		<h3>[property:Object morphTargetDictionary]</h3>
+		<p>
+		قاموس من morphTargets بناءً على خاصية morphTarget.name.
+		غير معرف بشكل افتراضي، ولكن يتم إعادة بنائه [page:Points.updateMorphTargets updateMorphTargets].
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		
+		<h3>
+		[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
+		</h3>
+		<p>
+		الحصول على تقاطعات بين شعاع ملقى وهذه النقاط.
+		سيتم استدعاء هذه الطريقة بواسطة [page:Raycaster.intersectObject].
+		</p>
+		
+		<h3>[method:Points clone]()</h3>
+		<p>إرجاع نسخة من هذا كائن Points وأحفاده.</p>
+		
+		<h3>[method:undefined updateMorphTargets]()</h3>
+		<p>
+		تحديث التحولات لعدم التأثير على الكائن. يعيد تعيين خصائص
+		[page:Points.morphTargetInfluences morphTargetInfluences] و
+		[page:Points.morphTargetDictionary morphTargetDictionary].
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 131 - 0
docs/api/ar/objects/Skeleton.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		استخدم مصفوفة من [page:Bone bones] لإنشاء هيكل عظمي يمكن استخدامه بواسطة
+		[page:SkinnedMesh].
+		</p>
+			
+		<h2>مثال للكود</h2>
+		<code>
+		// إنشاء "ذراع" بسيط
+			
+		const bones = [];
+			
+		const shoulder = new THREE.Bone();
+		const elbow = new THREE.Bone();
+		const hand = new THREE.Bone();
+			
+		shoulder.add( elbow );
+		elbow.add( hand );
+			
+		bones.push( shoulder );
+		bones.push( elbow );
+		bones.push( hand );
+			
+		shoulder.position.y = -5;
+		elbow.position.y = 0;
+		hand.position.y = 5;
+			
+		const armSkeleton = new THREE.Skeleton( bones );
+		</code>
+			
+		<p>
+		انظر إلى صفحة [page:SkinnedMesh] للحصول على مثال على الاستخدام مع
+		[page:BufferGeometry] القياسية.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Array bones], [param:Array boneInverses] )</h3>
+		<p>
+		[page:Array bones] - مصفوفة من [page:Bone bones]. الافتراضي هو مصفوفة فارغة
+		.<br />
+		[page:Array boneInverses] - (اختياري) مصفوفة من [page:Matrix4 Matrix4s].<br /> <br />
+			
+		إنشاء [name] جديد.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Array bones]</h3>
+		<p>
+		مصفوفة من [page:bone bones]. لاحظ أن هذه نسخة من المصفوفة الأصلية،
+		وليس مرجعًا، لذلك يمكنك تعديل المصفوفة الأصلية دون التأثير
+		هذه واحدة.
+		</p>
+
+		<h3>[property:Array boneInverses]</h3>
+		<p>
+		مصفوفة من [page:Matrix4 Matrix4s] تمثل معكوس
+		[page:Matrix4 matrixWorld] للعظام الفردية.
+		</p>
+		
+		<h3>[property:Float32Array boneMatrices]</h3>
+		<p>مصفوفة البيانات التي تحمل بيانات العظام عند استخدام نسيج الرأس.</p>
+		
+		<h3>[property:DataTexture boneTexture]</h3>
+		<p>
+		[page:DataTexture] التي تحمل بيانات العظام عند استخدام نسيج الرأس.
+		</p>
+		
+		<h3>[property:Integer boneTextureSize]</h3>
+		<p>حجم [page:.boneTexture].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:Skeleton clone]()</h3>
+		<p>إرجاع نسخة من هذا كائن Skeleton.</p>
+		
+		<h3>[method:undefined calculateInverses]()</h3>
+		<p>
+		توليد مصفوفة [page:.boneInverses boneInverses] إذا لم يتم توفيرها في
+		المُنشئ.
+		</p>
+		
+		<h3>[method:this computeBoneTexture]()</h3>
+		<p>
+		حساب نسخة من [page:DataTexture] لتمرير بيانات العظام
+		بشكل أكثر كفاءة إلى المُظلل. يتم تعيين النسيج إلى
+		[page:.boneTexture boneTexture].
+		</p>
+		
+		<h3>[method:undefined pose]()</h3>
+		<p>إعادة الهيكل العظمي إلى وضعية الأساس.</p>
+		
+		<h3>[method:undefined update]()</h3>
+		<p>
+		تحديث [page:Float32Array boneMatrices] و [page:DataTexture boneTexture]
+		بعد تغيير العظام. يتم استدعاء هذا تلقائيًا بواسطة
+		[page:WebGLRenderer] إذا تم استخدام الهيكل العظمي مع [page:SkinnedMesh].
+		</p>
+		
+		<h3>[method:Bone getBoneByName]( [param:String name] )</h3>
+		<p>
+		name -- سلسلة لتطابق خاصية .name لـ Bone. <br /> <br />
+		
+		البحث في مصفوفة عظام الهيكل العظمي وإرجاع الأولى التي تطابق
+		الاسم.<br />
+		</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير الموارد المتعلقة بوحدة معالجة الرسومات المخصصة من قبل هذه النسخة. استدعِ هذه
+		الطريقة كلما لم يتم استخدام هذه النسخة في تطبيقك.
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 189 - 0
docs/api/ar/objects/SkinnedMesh.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr; [page:Mesh] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		شبكة لديها [page:Skeleton] مع [page:Bone bones] يمكن استخدامها بعد ذلك
+		لتحريك رؤوس الهندسة.<br /> <br />
+			
+		يمكن استخدام [name] فقط مع WebGL 2. مع WebGL 1 `OES_texture_float` و
+		مطلوب دعم نسيج الرأس.
+		</p>
+			
+		<iframe id="scene" src="scenes/bones-browser.html"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			const scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>مثال للكود</h2>
+
+		<code>
+		const geometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 );
+
+		// create the skin indices and skin weights manually
+		// (typically a loader would read this data from a 3D model for you)
+
+		const position = geometry.attributes.position;
+
+		const vertex = new THREE.Vector3();
+
+		const skinIndices = [];
+		const skinWeights = [];
+
+		for ( let i = 0; i < position.count; i ++ ) {
+
+			vertex.fromBufferAttribute( position, i );
+
+			// compute skinIndex and skinWeight based on some configuration data
+			const y = ( vertex.y + sizing.halfHeight );
+			const skinIndex = Math.floor( y / sizing.segmentHeight );
+			const skinWeight = ( y % sizing.segmentHeight ) / sizing.segmentHeight;
+			skinIndices.push( skinIndex, skinIndex + 1, 0, 0 );
+			skinWeights.push( 1 - skinWeight, skinWeight, 0, 0 );
+		}
+
+		geometry.setAttribute( 'skinIndex', new THREE.Uint16BufferAttribute( skinIndices, 4 ) );
+		geometry.setAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeights, 4 ) );
+
+		// create skinned mesh and skeleton
+
+		const mesh = new THREE.SkinnedMesh( geometry, material );
+		const skeleton = new THREE.Skeleton( bones );
+
+		// see example from THREE.Skeleton
+		const rootBone = skeleton.bones[ 0 ];
+		mesh.add( rootBone );
+
+		// bind the skeleton to the mesh
+		mesh.bind( skeleton );
+
+		// move the bones and manipulate the model
+		skeleton.bones[ 0 ].rotation.x = -0.1;
+		skeleton.bones[ 1 ].rotation.x = 0.2;
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Material material] )
+		</h3>
+		<p>
+		[page:BufferGeometry geometry] - نسخة من [page:BufferGeometry].<br />
+		[page:Material material] - (اختياري) نسخة من [page:Material].
+		الافتراضي هو [page:MeshBasicMaterial] جديد.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Mesh] للحصول على الخصائص المشتركة.</p>
+		
+		<h3>[property:String bindMode]</h3>
+		<p>
+		إما "مرفق" أو "منفصل". "مرفق" يستخدم
+		خاصية [page:SkinnedMesh.matrixWorld] لمصفوفة التحويل الأساسية لـ
+		العظام. "منفصل" يستخدم [page:SkinnedMesh.bindMatrix]. الافتراضي هو
+		"مرفق".
+		</p>
+		
+		<h3>[property:Matrix4 bindMatrix]</h3>
+		<p>المصفوفة الأساسية المستخدمة لتحويلات العظام المربوطة.</p>
+		
+		<h3>[property:Matrix4 bindMatrixInverse]</h3>
+		<p>المصفوفة الأساسية المستخدمة لإعادة تعيين تحويلات العظام المربوطة.</p>
+		
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+		مربع التحديد لـ [name]. يمكن حسابه بـ
+		[page:.computeBoundingBox](). الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+		الكرة المحيطة لـ [name]. يمكن حسابها بـ
+		[page:.computeBoundingSphere](). الافتراضي هو `null`.
+		</p>
+		
+		<h3>[property:Boolean isSkinnedMesh]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+		
+		<h3>[property:Skeleton skeleton]</h3>
+		<p>[page:Skeleton] يمثل هيكل العظام للشبكة المشدودة.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Mesh] للحصول على الطرق المشتركة.</p>
+		
+		<h3>
+		[method:undefined bind]( [param:Skeleton skeleton], [param:Matrix4 bindMatrix] )
+		</h3>
+		<p>
+		[page:Skeleton skeleton] - [page:Skeleton] تم إنشاؤه من شجرة [page:Bone Bones].<br />
+		[page:Matrix4 bindMatrix] - [page:Matrix4] يمثل التحويل الأساسي
+		للهيكل العظمي.<br /> <br />
+		
+		ربط هيكل عظمي بالشبكة المشدودة. يتم حفظ bindMatrix في
+		خاصية .bindMatrix ويتم حساب .bindMatrixInverse.
+		</p>
+		
+		<h3>[method:SkinnedMesh clone]()</h3>
+		<p>
+		لا تقوم هذه الطريقة حاليًا بنسخ نسخة من [name] بشكل صحيح.
+		يرجى استخدام [page:SkeletonUtils.clone]() في هذه الأثناء.
+		</p>
+		
+		<h3>[method:undefined computeBoundingBox]()</h3>
+		<p>
+		حساب مربع التحديد، وتحديث خاصية [page:.boundingBox].<br />
+		لا يتم حساب مربعات التحديد افتراضيًا. يجب حسابها بشكل صريح
+		، وإلا كانت `null`. إذا كانت نسخة من [name] متحركة،
+		يجب استدعاء هذه الطريقة في كل إطار لحساب مربع تحديد صحيح.
+		</p>
+		
+		<h3>[method:undefined computeBoundingSphere]()</h3>
+		<p>
+		حساب الكرة المحيطة، وتحديث خاصية [page:.boundingSphere]
+		.<br />
+		لا يتم حساب الكرات المحيطة افتراضيًا. يجب حسابها بشكل صريح
+		، وإلا كانت `null`. إذا كانت نسخة من [name] متحركة،
+		يجب استدعاء هذه الطريقة في كل إطار لحساب كرة محيطة صحيحة.
+		</p>
+		
+		<h3>[method:undefined normalizeSkinWeights]()</h3>
+		<p>تطبيع أوزان الجلد.</p>
+		
+		<h3>[method:undefined pose]()</h3>
+		<p>هذه الطريقة تضع الشبكة المشدودة في وضعية الأساس (إعادة تعيين الوضعية).</p>
+		
+		<h3>
+		[method:Vector3 applyBoneTransform]( [param:Integer index], [param:Vector3 vector] )
+		</h3>
+		<p>
+		تطبق تحويل العظام المرتبط بالفهرس المعطى على موضع المتجه المعطى. يُعاد المتجه المُحدَّث.
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 87 - 0
docs/api/ar/objects/Sprite.html

@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		الرذاذ هو طائرة تواجه دائمًا نحو الكاميرا، عمومًا مع
+		تطبيق نسيج شفاف جزئيًا.<br /> <br />
+			
+		الرذاذ لا يلقي ظلالًا، وضبط <code>castShadow = true</code> سوف
+		لا يكون له أي تأثير.
+		</p>
+			
+		<h2>مثال للكود</h2>
+			
+		<code>
+		const map = new THREE.TextureLoader().load( 'sprite.png' );
+		const material = new THREE.SpriteMaterial( { map: map } );
+			
+		const sprite = new THREE.Sprite( material );
+		scene.add( sprite );
+		</code>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Material material] )</h3>
+		<p>
+		[page:Material material] - (اختياري) نسخة من
+		[page:SpriteMaterial]. الافتراضي هو [page:SpriteMaterial] أبيض.<br /> <br />
+			
+		إنشاء [name] جديد.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+			
+		<h3>[property:Boolean isSprite]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائن معين هو من نوع [name].</p>
+			
+		<h3>[property:SpriteMaterial material]</h3>
+		<p>
+		نسخة من [page:SpriteMaterial]، تحدد مظهر الكائن.
+		الافتراضي هو [page:SpriteMaterial] أبيض.
+		</p>
+			
+		<h3>[property:Vector2 center]</h3>
+		<p>
+		نقطة مرساة الرذاذ، والنقطة التي يدور حولها الرذاذ.
+		قيمة (0.5، 0.5) تتوافق مع منتصف الرذاذ. قيمة
+		من (0، 0) يتوافق مع الزاوية السفلى اليسرى من الرذاذ. الافتراضي
+		هو (0.5، 0.5).
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+			
+		<h3>[method:Sprite clone]()</h3>
+		<p>إرجاع نسخة من هذا كائن Sprite وأحفاده.</p>
+			
+		<h3>[method:this copy]( [param:Sprite sprite] )</h3>
+		<p>نسخ خصائص رذاذ المارة إلى هذه واحدة.</p>
+			
+		<h3>
+		[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
+		</h3>
+		<p>
+		الحصول على تقاطعات بين شعاع ملقى وهذه الرذاذ.
+		سيتم استدعاء هذه الطريقة بواسطة [page:Raycaster.intersectObject](). يجب تهيئة raycaster
+		بواسطة استدعاء [page:Raycaster.setFromCamera]() قبل
+		raycasting ضد sprites.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 47 - 0
docs/api/ar/renderers/WebGL1Renderer.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:WebGLRenderer] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		منذ r118 [page:WebGLRenderer] يستخدم تلقائيًا سياق عرض WebGL 2. عند الترقية
+		مشروع موجود إلى => r118 ، قد تتعطل التطبيقات لسببين:
+		</p>
+		<ul>
+			<li>يجب أن يكون كود الشادر المخصص مطابقًا لـ GLSL 3.0.</li>
+			<li>يجب تغيير فحوصات ملحقات WebGL 1.</li>
+		</ul>
+		<p>
+		إذا لم تتمكن من تحمل الوقت لترقية الكود الخاص بك ولكنك ما زلت ترغب في استخدام
+		أحدث إصدار ، يمكنك استخدام [name]. هذه الإصدارة من المُعالج ستفرض
+		سياق عرض WebGL 1.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>ينشئ [name] جديدًا.</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:WebGLRenderer] الأساسية للحصول على خصائص شائعة.</p>
+		 
+		<h3>[property:Boolean isWebGL1Renderer]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:WebGLRenderer] الأساسية للحصول على طرق شائعة.</p>
+		 
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 51 - 0
docs/api/ar/renderers/WebGL3DRenderTarget.html

@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">يمثل هدف عرض ثلاثي الأبعاد.</p>
+
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:Number width], [param:Number height], [param:Number depth] )
+		</h3>
+		<p>
+		[page:Number width] - عرض هدف العرض ، بالبكسل. الافتراضي
+		هو `1`.<br />
+		[page:Number height] - ارتفاع هدف العرض ، بالبكسل. الافتراضي
+		هو `1`.<br />
+		[page:Number depth] - عمق هدف العرض. الافتراضي هو `1`.<br /><br />
+	 
+		ينشئ [name] جديدًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<h3>انظر [page:WebGLRenderTarget] للخصائص الموروثة</h3>
+	 
+		<h3>[property:number depth]</h3>
+		<p>عمق هدف العرض.</p>
+	 
+		<h3>[property:Data3DTexture texture]</h3>
+		<p>
+		يتم استبدال خاصية القوام بمثيل من
+		[page:Data3DTexture].
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<h3>انظر [page:WebGLRenderTarget] للطرق الموروثة</h3>
+	 
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 61 - 0
docs/api/ar/renderers/WebGLArrayRenderTarget.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		هذا النوع من أهداف العرض يمثل مجموعة من القوام.
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>
+		[example:webgl2_rendertarget_texture2darray WebGL 2 / render target / array]<br />
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Number width], [param:Number height], [param:Number depth] )
+		</h3>
+		<p>
+		[page:Number width] - عرض هدف العرض ، بالبكسل. الافتراضي
+		هو `1`.<br />
+		[page:Number height] - ارتفاع هدف العرض ، بالبكسل. الافتراضي
+		هو `1`.<br />
+		[page:Number depth] - عمق/عدد الطبقات لهدف العرض. الافتراضي
+		هو `1`.<br /><br />
+		 
+		ينشئ [name] جديدًا.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>انظر [page:WebGLRenderTarget] للخصائص الموروثة</h3>
+		 
+		<h3>[property:number depth]</h3>
+		<p>عمق هدف العرض.</p>
+		 
+		<h3>[property:DataArrayTexture texture]</h3>
+		<p>
+		يتم استبدال خاصية القوام بمثيل من
+		[page:DataArrayTexture].
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<h3>انظر [page:WebGLRenderTarget] للطرق الموروثة</h3>
+		 
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 90 - 0
docs/api/ar/renderers/WebGLCubeRenderTarget.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يستخدمه [page:CubeCamera] كـ [page:WebGLRenderTarget].
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>انظر [page:CubeCamera] للحصول على أمثلة.</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]([param:Number size], [param:Object options])</h3>
+		<p>
+		[page:Float size] - الحجم ، بالبكسل. الافتراضي هو `1`.<br />
+		options - (اختياري) كائن يحمل معلمات القوام لـ
+		قوام الهدف المُنشأ تلقائيًا وعمق المخزن/مخططات المخزن booleans. لـ
+		شرح معلمات القوام انظر [page:Texture Texture]. التالي هي خيارات صالحة:<br /><br />
+		 
+		[page:Constant wrapS] - الافتراضي هو [page:Textures ClampToEdgeWrapping].
+		<br />
+		[page:Constant wrapT] - الافتراضي هو [page:Textures ClampToEdgeWrapping].
+		<br />
+		[page:Constant magFilter] - الافتراضي هو [page:Textures .LinearFilter].
+		<br />
+		[page:Constant minFilter] - الافتراضي هو [page:Textures LinearFilter].
+		<br />
+		[page:Boolean generateMipmaps] - الافتراضي هو `false`.<br />
+		[page:Constant format] - الافتراضي هو [page:Textures RGBAFormat]. <br />
+		[page:Constant type] - الافتراضي هو [page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - الافتراضي هو `1`. انظر
+		[page:Texture.anisotropy]<br />
+		[page:Constant colorSpace] - الافتراضي هو [page:Textures NoColorSpace].
+		<br />
+		[page:Boolean depthBuffer] - الافتراضي هو `true`.<br />
+		[page:Boolean stencilBuffer] - الافتراضي هو `false`.<br /><br />
+		 
+		ينشئ [name] جديدًا
+		</p>
+		 
+
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>انظر [page:WebGLRenderTarget] للخصائص الموروثة</h3>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>انظر [page:WebGLRenderTarget] للطرق الموروثة</h3>
+	 
+		<h3>
+		[method:this fromEquirectangularTexture]( [param:WebGLRenderer renderer], [param:Texture texture] )
+		</h3>
+		<p>
+		[page:WebGLRenderer renderer] — المُعالج.<br />
+		[page:Texture texture] — القوام الإستوائي المستطيل.
+		</p>
+		<p>
+		استخدم هذه الطريقة إذا كنت ترغب في تحويل بانوراما إستوائية مستطيلة إلى
+		تنسيق cubemap.
+		</p>
+	 
+		<h3>
+		[method:undefined clear]( [param:WebGLRenderer renderer], [param:Boolean color], 
+		[param:Boolean depth], [param:Boolean stencil] )
+		</h3>
+		<p>
+		اتصل بهذا لمسح لون هدف العرض وعمقه و/أو مخططات
+		المخزنات. يتم تعيين مخزن اللون على لون المسح الحالي للمُعالج.
+		المعاملات الافتراضية هي `true`.
+		</p>
+	 
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 75 - 0
docs/api/ar/renderers/WebGLMultipleRenderTargets.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+		هدف عرض خاص يتيح لشادر الجزء الكتابة إلى عدة
+		قوام. هذا النهج مفيد لتقنيات العرض المتقدمة مثل
+		معالجة ما بعد الإنتاج أو العرض المؤجل. انتبه: [name] يمكن استخدامه فقط
+		مع سياق عرض WebGL 2.
+		</p>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>
+		[example:webgl2_multiple_rendertargets webgl2 / multiple / rendertargets ]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]([param:Number width], [param:Number height], [param:Number count],
+		[param:Object options])
+		</h3>
+		 
+		<p>
+		[page:Number width] - عرض هدف العرض. الافتراضي هو `1`.<br />
+		[page:Number height] - ارتفاع هدف العرض. الافتراضي هو `1`.<br />
+		[page:Number count] - عدد أهداف العرض. الافتراضي هو `1`.<br />
+		 
+		options - (كائن اختياري يحمل معلمات القوام لـ
+		قوام الهدف المُنشأ تلقائيًا وعمق المخزن/مخططات المخزن booleans. لـ
+		شرح معلمات القوام انظر [page:Texture Texture]. لـ
+		قائمة بالخيارات الصالحة ، انظر [page:WebGLRenderTarget WebGLRenderTarget]).<br /><br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isWebGLMultipleRenderTargets]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		 
+		<h3>[property:Array texture]</h3>
+		<p>
+		يتم استبدال خاصية القوام في [name] واستبدالها بمصفوفة.
+		تحتوي هذه المصفوفة على مراجع [page:WebGLRenderTarget.texture texture]
+		من أهداف العرض المعنية.
+		</p>
+		 
+		<p>
+		خصائص [page:WebGLRenderTarget WebGLRenderTarget] متوفرة على
+		هذه الفئة.
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<p>
+		طرق [page:WebGLRenderTarget WebGLRenderTarget] متوفرة على هذه
+		فئة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 131 - 0
docs/api/ar/renderers/WebGLRenderTarget.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		A
+		[link:https://webglfundamentals.org/webgl/lessons/webgl-render-to-texture.html render target]
+		هو مخزن حيث ترسم بطاقة الفيديو بكسل لمشهد
+		يتم تجسيده في الخلفية. يستخدم في تأثيرات مختلفة ،
+		مثل تطبيق المعالجة اللاحقة على صورة معروضة قبل عرضها
+		على الشاشة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]([param:Number width], [param:Number height], [param:Object options])
+		</h3>
+
+		<p>
+		[page:Float width] - عرض renderTarget. الافتراضي هو `1`. <br />
+		[page:Float height] - ارتفاع renderTarget. الافتراضي هو `1`. <br />
+		الخيارات - كائن اختياري يحمل معلمات القوام لـ
+		قوام الهدف التلقائي المتولد وعمق المخزن / مخطط قالب booleans. لـ
+		شرح معلمات القوام انظر [page:Texture Texture]. التالية هي خيارات صالحة: <br /><br />
+		 
+		[page:Constant wrapS] - الافتراضي هو [page:Textures ClampToEdgeWrapping].
+		<br />
+		[page:Constant wrapT] - الافتراضي هو [page:Textures ClampToEdgeWrapping].
+		<br />
+		[page:Constant magFilter] - الافتراضي هو [page:Textures LinearFilter].
+		<br />
+		[page:Constant minFilter] - الافتراضي هو [page:Textures LinearFilter].
+		<br />
+		[page:Boolean generateMipmaps] - الافتراضي هو `false`. <br />
+		[page:Constant format] - الافتراضي هو [page:Textures RGBAFormat]. <br />
+		[page:Constant type] - الافتراضي هو [page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - الافتراضي هو `1`. انظر
+		[page:Texture.anisotropy]<br />
+		[page:Constant colorSpace] - الافتراضي هو [page:Textures NoColorSpace].
+		<br />
+		[page:Boolean depthBuffer] - الافتراضي هو `true`. <br />
+		[page:Boolean stencilBuffer] - الافتراضي هو `false`. <br />
+		[page:Number samples] - الافتراضي هو 0. <br /><br />
+		 
+		ينشئ جديدًا [name]
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isWebGLRenderTarget]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:number width]</h3>
+		<p>عرض هدف التجسيم.</p>
+		 
+		<h3>[property:number height]</h3>
+		<p>ارتفاع هدف التجسيم.</p>
+		 
+		<h3>[property:Vector4 scissor]</h3>
+		<p>
+		منطقة مستطيلة داخل منفذ عرض render target. سيتم تجاهل الشظايا التي
+		خارج المنطقة.
+		</p>
+		 
+		<h3>[property:Boolean scissorTest]</h3>
+		 
+		<h3>[property:Vector4 viewport]</h3>
+		<p>منفذ العرض الخاص بهذا الهدف التجسيم.</p>
+	 
+		<h3>[property:Texture texture]</h3>
+		<p>
+		تحتوي هذه النسخة من القوام على البكسلات المعروضة. استخدمه كإدخال لـ
+		معالجة إضافية.
+		</p>
+	 
+		<h3>[property:Boolean depthBuffer]</h3>
+		<p>يعرض على مخزن العمق. الافتراضي هو true.</p>
+	 
+		<h3>[property:Boolean stencilBuffer]</h3>
+		<p>يعرض على مخزن القالب. الافتراضي هو false.</p>
+	 
+		<h3>[property:DepthTexture depthTexture]</h3>
+		<p>
+		إذا تم تعيينه ، سيتم عرض عمق المشهد على هذه القوام. الافتراضي هو null.
+		</p>
+	 
+		<h3>[property:Number samples]</h3>
+		<p>
+		يحدد عدد عينات MSAA. يمكن استخدامه فقط مع WebGL 2. الافتراضي
+		هو `0`.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>
+		[method:undefined setSize]( [param:Number width], [param:Number height] )
+		</h3>
+		<p>يحدد حجم هدف التجسيم.</p>
+	 
+		<h3>[method:WebGLRenderTarget clone]()</h3>
+		<p>ينشئ نسخة من هذا الهدف التجسيم.</p>
+	 
+		<h3>[method:this copy]( [param:WebGLRenderTarget source] )</h3>
+		<p>يتبنى إعدادات الهدف التجسيم المعطى.</p>
+	 
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يحرر الموارد المتعلقة بوحدة معالجة الرسومات المخصصة من قبل هذه الحالة. اتصل بهذا
+		طريقة كلما لم يعد يستخدم هذا المثيل في تطبيقك.
+		</p>
+	 
+		<p>
+		[page:EventDispatcher EventDispatcher] الطرق متاحة على هذا
+		فئة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 647 - 0
docs/api/ar/renderers/WebGLRenderer.html

@@ -0,0 +1,647 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يعرض مقدم WebGL مشاهدك المصنوعة بشكل جميل باستخدام
+		[link:https://en.wikipedia.org/wiki/WebGL WebGL].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object parameters] )</h3>
+		<p>
+		[page:Object parameters] - (اختياري) كائن بخصائص تحدد سلوك المقدم.
+		يقبل المنشئ أيضًا عدم وجود معلمات على الإطلاق.
+		في جميع الحالات ، سيفترض الافتراضات السليمة عندما تكون المعلمات مفقودة.
+		التالية هي المعلمات الصالحة: <br /><br />
+		 
+		[page:DOMElement canvas] - A
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas]
+		حيث يرسم المقدم ناتجه. يتوافق هذا مع
+		[page:WebGLRenderer.domElement domElement] property below. إذا لم يتم تمريره
+		هنا ، سيتم إنشاء عنصر قماش جديد. <br />
+		 
+		[page:WebGLRenderingContext context] - يمكن استخدام هذا لإرفاق
+		المقدم بـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext] موجود.
+		الافتراضي هو null. <br />
+		 
+		[page:String precision] - دقة الشادر. يمكن أن يكون `"highp"` ، `"mediump"`
+		أو `"lowp"`. الافتراضي هو `"highp"` إذا كان مدعومًا من قبل الجهاز. <br />
+		 
+		[page:Boolean alpha] - يتحكم في قيمة alpha الافتراضية الواضحة. عند تعيينه على
+		`true` ، تكون القيمة `0`. وإلا فهو `1`. الافتراضي هو `false`. <br />
+		 
+		[page:Boolean premultipliedAlpha] - ما إذا كان المقدم سيفترض أن
+		الألوان لديها
+		[link:https://en.wikipedia.org/wiki/Glossary_of_computer_graphics#Premultiplied_alpha premultiplied alpha].
+		الافتراضي هو `true`. <br />
+		 
+		[page:Boolean antialias] - ما إذا كان سيتم إجراء التنعيم. الافتراضي هو
+		`false`. <br />
+		 
+		[page:Boolean stencil] - ما إذا كانت ذاكرة التخزين المؤقت للرسم لديها
+		[link:https://en.wikipedia.org/wiki/Stencil_buffer stencil buffer] من على
+		الأقل 8 بت. الافتراضي هو `true`. <br />
+		 
+		[page:Boolean preserveDrawingBuffer] - ما إذا كان سيتم الحفاظ على المخابئ
+		حتى يتم مسحها يدويًا أو استبدالها. الافتراضي هو `false`. <br />
+		 
+		[page:String powerPreference] - يوفر تلميحًا لوكيل المستخدم
+		تشير إلى ما هو التكوين من GPU مناسب لهذه سياق WebGL.
+		يمكن أن يكون `"high-performance"` ، `"low-power"` أو `"default"`. الافتراضي هو
+		`"default"`. انظر
+		[link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec] للحصول على التفاصيل. <br />
+		 
+		[page:Boolean failIfMajorPerformanceCaveat] - ما إذا كان إنشاء المقدم
+		سيفشل عند اكتشاف أداء منخفض. الافتراضي هو `false`.
+		انظر [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec] للحصول على التفاصيل. <br />
+		 
+		[page:Boolean depth] - ما إذا كانت ذاكرة التخزين المؤقت للرسم لديها
+		[link:https://en.wikipedia.org/wiki/Z-buffering مخزن عمق] من على الأقل
+		16 بت. الافتراضي هو `true`. <br />
+		 
+		[page:Boolean logarithmicDepthBuffer] - ما إذا كان سيتم استخدام مخزن عمق لوغاريتمي
+		قد يكون من الضروري استخدام هذا إذا كان يتعامل مع اختلافات ضخمة
+		في المقياس في مشهد واحد. لاحظ أن هذا الإعداد يستخدم gl_FragDepth إذا
+		متوفرة والتي تعطل
+		[link:https://www.khronos.org/opengl/wiki/Early_Fragment_Test Early Fragment Test]
+		التحسين ويمكن أن يسبب انخفاضًا في الأداء.
+		الافتراضي هو `false`. انظر [example:webgl_camera_logarithmicdepthbuffer camera / logarithmicdepthbuffer] المثال.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:Boolean autoClear]</h3>
+		<p>
+		يحدد ما إذا كان المُعالج يجب أن يمسح تلقائيًا ناتجه قبل
+		عرض الإطار.
+		</p>
+	 
+		<h3>[property:Boolean autoClearColor]</h3>
+		<p>
+		إذا كان [page:.autoClear autoClear] صحيحًا ، يحدد ما إذا كان المُعالج
+		يجب مسح مخزن اللون. الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Boolean autoClearDepth]</h3>
+		<p>
+		إذا كان [page:.autoClear autoClear] صحيحًا ، يحدد ما إذا كان المُعالج
+		يجب مسح مخزن العمق. الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Boolean autoClearStencil]</h3>
+		<p>
+		إذا كان [page:.autoClear autoClear] صحيحًا ، يحدد ما إذا كان المُعالج
+		يجب مسح مخزن القالب. الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Object debug]</h3>
+		<p>
+		- [page:Boolean checkShaderErrors]: إذا كان صحيحًا ، يحدد ما إذا كان
+		يتم التحقق من برامج الشادر المادية للأخطاء أثناء التجميع و
+		عملية الربط. قد يكون من المفيد تعطيل هذا الفحص في الإنتاج لـ
+		الحصول على مكاسب في الأداء. يوصى بشدة بالاحتفاظ بهذه الفحوصات ممكّنة
+		أثناء التطوير. إذا لم يتم تجميع وربط الشادر - فلن يعمل
+		والمادة المرتبطة لن تعرض. الافتراضي هو `true`.<br />
+		- [page:Function onShaderError]( gl, program, glVertexShader,
+		glFragmentShader ): وظيفة رد اتصال يمكن استخدامها للإبلاغ عن الأخطاء المخصصة
+		التقارير. يتلقى الرد الاتصال سياق WebGL ، ومثيل من
+		WebGLProgram كذلك اثنين من مثيلات WebGLShader تمثل قمة
+		وشادر الجزء. تعيين وظيفة مخصصة يعطل الافتراضي
+		التقارير عن الأخطاء. الافتراضي هو `null`.
+		</p>
+	 
+		<h3>[property:Object capabilities]</h3>
+		<p>
+		كائن يحتوي على تفاصيل حول قدرات الحالية
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext].<br />
+	 
+		- [page:Boolean floatFragmentTextures]: ما إذا كان السياق يدعم
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float] extension.<br />
+		- [page:Boolean floatVertexTextures]: `true` إذا كان [page:Boolean floatFragmentTextures] 
+		و [page:Boolean vertexTextures] صحيحان على حد سواء.<br />
+		- [page:Method getMaxAnisotropy](): يعود بأقصى قدر متاح
+		التشوه.<br />
+		- [page:Method getMaxPrecision](): يعود بأقصى دقة متاحة
+		لشادرات القمة والجزء. <br />
+		- [page:Boolean isWebGL2]: `true` إذا كان السياق في استخدام هو a
+		WebGL2RenderingContext object.<br />
+		- [page:Boolean logarithmicDepthBuffer]: `true` إذا كان [page:parameter logarithmicDepthBuffer] 
+		تم تعيينه على true في المُنشئ والسياق
+		يدعم
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth] extension.<br />
+		- [page:Integer maxAttributes]: قيمة `gl.MAX_VERTEX_ATTRIBS`.<br />
+		- [page:Integer maxCubemapSize]: قيمة
+		`gl.MAX_CUBE_MAP_TEXTURE_SIZE`. أقصى ارتفاع * عرض لخرائط المكعبات
+		الملمسات التي يمكن استخدامها من قبل شادر.<br />
+		- [page:Integer maxFragmentUniforms]: قيمة
+		`gl.MAX_FRAGMENT_UNIFORM_VECTORS`. عدد الموحدات التي يمكن استخدامها
+		من قبل شادر جزء.<br />
+		- [page:Integer maxSamples]: قيمة `gl.MAX_SAMPLES`. أقصى عدد
+		من العينات في سياق مكافحة التعرج المتعدد (MSAA).<br />
+		- [page:Integer maxTextureSize]: قيمة `gl.MAX_TEXTURE_SIZE`.
+		أقصى ارتفاع * عرض للقوام التي يستخدمها شادر.<br />
+		- [page:Integer maxTextures]: قيمة `gl.MAX_TEXTURE_IMAGE_UNITS`.
+		أقصى عدد من الملمسات التي يمكن استخدامها من قبل شادر.<br />
+		- [page:Integer maxVaryings]: قيمة `gl.MAX_VARYING_VECTORS`. The
+		عدد المتغيرات المتغيرة التي يمكن استخدامها من قبل shaders.<br />
+		- [page:Integer maxVertexTextures]: قيمة
+		`gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS`. عدد الملمسات الت
+		يمكن استخدامها في شادر القمة.<br />
+		- [page:Integer maxVertexUniforms]: قيمة
+		`gl.MAX_VERTEX_UNIFORM_VECTORS`. أقصى عدد من الموحدات التي يمكن
+		يتم استخدامها في شادر القمة.<br />
+		- [page:String precision]: دقة الشادر التي يتم استخدامها حاليًا من قبل
+		المُعالج.<br />
+		- [page:Boolean vertexTextures]: `true` إذا كان [property:Integer maxVertexTextures] 
+		أكبر من 0 (أي يمكن استخدام ملمسات القمة).<br />
+		</p>
+
+		<h3>[property:Array clippingPlanes]</h3>
+		<p>
+		خطوط المقص المحددة من قبل المستخدم محددة كـ THREE.Plane objects في العالم
+		الفضاء. تطبق هذه الطائرات عالميًا. النقاط في الفضاء التي نقطة المنتج مع
+		الطائرة هي سلبية يتم قطعها. الافتراضي هو [].
+		</p>
+	 
+		<h3>[property:DOMElement domElement]</h3>
+		<p>
+		[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas] 
+		حيث يرسم المُعالج ناتجه.<br />
+		يتم إنشاء هذا تلقائيًا من قبل المُعالج في المُنشئ (إذا لم يكن
+		متوفر بالفعل) ؛ تحتاج فقط إلى إضافته إلى صفحتك مثل هذا:<br />
+		<code>
+	 document.body.appendChild( renderer.domElement ); 
+		</code>
+		</p>
+	 
+		<h3>[property:Object extensions]</h3>
+		<p>
+		- [page:Object get]( [param:String extensionName] ): يستخدم للتحقق مما إذا كان
+		مختلف الامتدادات مدعومة ويعود كائنًا بتفاصيل
+		التمديد إذا كان متوفرًا. يمكن لهذه الطريقة التحقق من التالية
+		extensions:<br />
+		</p>
+	 
+		<ul>
+		<li>`WEBGL_depth_texture`</li>
+		<li>`EXT_texture_filter_anisotropic`</li>
+		<li>`WEBGL_compressed_texture_s3tc`</li>
+		<li>`WEBGL_compressed_texture_pvrtc`</li>
+		<li>`WEBGL_compressed_texture_etc1`</li>
+		</ul>
+	 
+		<h3>[property:string outputColorSpace]</h3>
+		<p>
+		يحدد مساحة اللون الناتجة للمُعالج. الافتراضي هو [page:Textures THREE.SRGBColorSpace].
+		</p>
+		<p>
+		إذا تم تعيين هدف عرض باستخدام [page:WebGLRenderer.setRenderTarget .setRenderTarget] 
+		ثم سيتم استخدام renderTarget.texture.colorSpace بدلاً من ذلك.
+		</p>
+		<p>
+		انظر صفحة [page:Textures texture constants] للحصول على تفاصيل أخرى
+		صيغ.
+		</p>
+	 
+
+		<h3>[property:Object info]</h3>
+		<p>
+		كائن مع سلسلة من المعلومات الإحصائية حول ذاكرة لوحة الرسومات
+		عملية العرض. مفيد للتصحيح أو فقط لأجل
+		الفضول. يحتوي الكائن على الحقول التالية:
+		</p>
+		<ul>
+			<li>
+			ذاكرة:
+				<ul>
+					<li>الهندسة</li>
+					<li>القوام</li>
+				</ul>
+			</li>
+			<li>
+			عرض:
+				<ul>
+					<li>المكالمات</li>
+					<li>المثلثات</li>
+					<li>النقاط</li>
+					<li>خطوط</li>
+					<li>إطار</li>
+				</ul>
+			</li>
+			<li>برامج</li>
+		</ul>
+		<p>
+		بشكل افتراضي ، يتم إعادة تعيين هذه البيانات في كل مكالمة عرض ولكن عندما
+		مرورات عرض متعددة لكل إطار (على سبيل المثال عند استخدام معالجة ما بعد) يمكن
+		يفضل إعادة التعيين بنمط مخصص. أولاً ، قم بتعيين `autoReset` إلى
+		`false`.
+		<code> renderer.info.autoReset = false; </code>
+		استدعاء `reset()` كلما انتهيت من عرض إطار واحد.
+		<code> renderer.info.reset(); </code>
+		</p>
+	 
+		<h3>[property:Boolean localClippingEnabled]</h3>
+		<p>
+		يحدد ما إذا كان المُعالج يحترم خطوط المقص على مستوى الكائن.
+		الافتراضي هو `false`.
+		</p>
+	 
+		<h3>[property:Boolean useLegacyLights]</h3>
+		<p>هل تستخدم وضع الإضاءة التقليدي أم لا. الافتراضي هو `true`.</p>
+	 
+		<h3>[property:Object properties]</h3>
+		<p>
+		يستخدم داخليًا من قبل المُعالج لتتبع خصائص الكائنات الفرعية المختلفة
+		خصائص.
+		</p>
+	 
+		<h3>[property:WebGLRenderLists renderLists]</h3>
+		<p>يستخدم داخليًا للتعامل مع ترتيب عرض كائنات المشهد.</p>
+	 
+		<h3>[property:WebGLShadowMap shadowMap]</h3>
+		<p>
+		يحتوي هذا على المرجع إلى خريطة الظل ، إذا تم استخدامها.<br />
+		- [page:Boolean enabled]: إذا تم تعيينه ، استخدم خرائط الظل في المشهد. الافتراضي هو
+		`false`.<br />
+		- [page:Boolean autoUpdate]: يتيح التحديثات التلقائية للظلال في
+		المشهد. الافتراضي هو `true`.<br />
+		إذا لم تكن بحاجة إلى إضاءة / ظلال ديناميكية ، فيمكنك تعيين هذا على
+		`false` عندما يتم تجزئة المُعالج.<br />
+		- [page:Boolean needsUpdate]: عند تعيينه على `true` ، ستتم تحديث خرائط الظل في المشهد
+		سيتم التحديث في الاتصال `render` التالي. الافتراضي هو `false`.<br />
+		إذا قمت بتعطيل التحديثات التلقائية لخرائط الظل
+		(`shadowMap.autoUpdate = false`) ، ستحتاج إلى تعيين هذا على `true`
+		وبعد ذلك قم بإجراء مكالمة عرض لتحديث الظلال في مشهدك.<br />
+		- [page:Integer type]: يحدد نوع خريطة الظل (غير مفلترة ، نسبة
+		تصفية قريبة ، نسبة تصفية قريبة مع التصفية الثنائية في
+		شادر). الخيارات هي:
+		</p>
+		<ul>
+			<li>THREE.BasicShadowMap</li>
+			<li>THREE.PCFShadowMap (افتراضي)</li>
+			<li>THREE.PCFSoftShadowMap</li>
+			<li>THREE.VSMShadowMap</li>
+		</ul>
+		<p>انظر [page:Renderer Renderer constants] للحصول على التفاصيل.<br /></p>
+	 
+		<h3>[property:Boolean sortObjects]</h3>
+		<p>
+		يحدد ما إذا كان المُعالج يجب أن يقوم بفرز الكائنات. الافتراضي هو `true`.<br /><br />
+	 
+		ملاحظة: يتم استخدام الترتيب لمحاولة عرض الكائنات بشكل صحيح التي لديها بعض
+		درجة من الشفافية. بالتعريف ، قد لا يعمل فرز الكائنات في جميع
+		حالات. اعتمادًا على احتياجات التطبيق ، قد يكون من الضروري إغلاق
+		الترتيب واستخدام طرق أخرى للتعامل مع عرض الشفافية مثل
+		تحديد ترتيب عرض كل كائن يدويًا.
+		</p>
+	 
+		<h3>[property:Object state]</h3>
+		<p>
+		يحتوي على وظائف لضبط خصائص مختلفة من
+		[page:WebGLRenderer.context] حالة.
+		</p>
+	 
+		<h3>[property:Constant toneMapping]</h3>
+		<p>
+		الافتراضي هو [page:Renderer NoToneMapping]. انظر [page:Renderer Renderer constants] للاختيارات الأخرى.
+		</p>
+	 
+		<h3>[property:Number toneMappingExposure]</h3>
+		<p>مستوى التعرض للإطارات. الافتراضي هو `1`.</p>
+	 
+		<h3>[property:WebXRManager xr]</h3>
+		<p>
+		يوفر وصولًا إلى واجهة [page:WebXRManager] المتعلقة بـ WebXR من
+		المُعالج.
+		</p>
+	 
+		<h2>الطُرق(Methods)</h2>	 
+
+		<h3>
+		[method:undefined clear]( [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )
+		</h3>
+		<p>
+		يخبر المُعالج بمسح مخزن الرسم الخاص به للون أو العمق أو المخطط.
+		هذه الطريقة تقوم بتهيئة مخزن اللون إلى قيمة المسح الحالية
+		قيمة.<br />
+		الحجج الافتراضية هي `true`.
+		</p>
+		 
+		<h3>[method:undefined clearColor]( )</h3>
+		<p>
+		مسح مخزن اللون. يعادل استدعاء [page:WebGLRenderer.clear .clear]( true, false, false ).
+		</p>
+		 
+		<h3>[method:undefined clearDepth]( )</h3>
+		<p>
+		مسح مخزن العمق. يعادل استدعاء [page:WebGLRenderer.clear .clear]( false, true, false ).
+		</p>
+		 
+		<h3>[method:undefined clearStencil]( )</h3>
+		<p>
+		مسح مخزنات المخططات. يعادل استدعاء [page:WebGLRenderer.clear .clear]( false, false, true ).
+		</p>
+		 
+		<h3>
+		[method:undefined compile]( [param:Object3D scene], [param:Camera camera] )
+		</h3>
+		<p>
+		يجمع جميع المواد في المشهد مع الكاميرا. هذا مفيد لـ
+		تجميع الشادرات قبل العرض الأول.
+		</p>
+		 
+		<h3>
+		[method:undefined copyFramebufferToTexture]( [param:Vector2 position], [param:FramebufferTexture texture], [param:Number level] )
+		</h3>
+		<p>
+		ينسخ بكسلات من WebGLFramebuffer الحالي إلى قوام ثنائي الأبعاد. يتيح
+		الوصول إلى
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/copyTexImage2D WebGLRenderingContext.copyTexImage2D].
+		</p>
+		 
+		<h3>
+		[method:undefined copyTextureToTexture]( [param:Vector2 position], [param:Texture srcTexture], [param:Texture dstTexture], [param:Number level] )
+		</h3>
+		<p>
+		ينسخ جميع بكسلات قوام إلى قوام موجود بدءًا من
+		الموضع المعطى. يتيح الوصول إلى
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D WebGLRenderingContext.texSubImage2D].
+		</p>
+		 
+		<h3>
+		[method:undefined copyTextureToTexture3D]( [param:Box3 sourceBox], [param:Vector3 position], [param:Texture srcTexture], [param:Texture dstTexture], [param:Number level] )
+		</h3>
+		<p>
+		ينسخ بكسلات قوام في الحدود '[page:Box3 sourceBox]' في
+		قوام الوجهة بدءًا من الموضع المعطى. يتيح الوصول
+		إلى
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/texSubImage3D WebGL2RenderingContext.texSubImage3D].
+		</p>
+		 
+		<h3>[method:undefined dispose]( )</h3>
+		<p>
+		يحرر الموارد المتعلقة بـ GPU التي تم تخصيصها من قبل هذا المثيل. استدعاء هذا
+		الطريقة كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
+		</p>
+		 
+		<h3>[method:undefined forceContextLoss]()</h3>
+		<p>
+		محاكاة فقدان سياق WebGL. هذا يتطلب دعمًا لـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context WEBGL_lose_context] extensions.
+		</p>
+		 
+		<h3>[method:undefined forceContextRestore]( )</h3>
+		<p>
+		محاكاة استعادة سياق WebGL. هذا يتطلب دعمًا لـ
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context WEBGL_lose_context] extensions.
+		</p>
+		 
+		<h3>[method:Float getClearAlpha]()</h3>
+		<p>
+		يعود [page:Float float] مع الألفا الواضح الحالي. يتراوح من 0
+		إلى 1.
+		</p>
+		 
+		<h3>[method:Color getClearColor]( [param:Color target] )</h3>
+		<p>
+		يعود مثيل [page:Color THREE.Color] مع لون المسح الحالي.
+		</p>
+		 
+		<h3>[method:WebGL2RenderingContext getContext]()</h3>
+		<p>يرجع سياق WebGL الحالي.</p>
+		 
+		<h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
+		<p>
+		يعود كائنًا يصف السمات المضبوطة على سياق WebGL
+		عند إنشائه.
+		</p>
+		 
+		<h3>[method:Integer getActiveCubeFace]()</h3>
+		<p>يعيد الوجه المكعب النشط الحالي.</p>
+	 
+		<h3>[method:Integer getActiveMipmapLevel]()</h3>
+		<p>يعيد مستوى mipmap النشط الحالي.</p>
+	 
+		<h3>[method:RenderTarget getRenderTarget]()</h3>
+		<p>
+		يعيد [page:RenderTarget RenderTarget] الحالي إذا كان هناك ؛ يعود
+		`null` خلاف ذلك.
+		</p>
+	 
+		<h3>[method:Vector4 getCurrentViewport]( [param:Vector4 target] )</h3>
+		<p>
+		[page:Vector4 target] — سيتم نسخ النتيجة في هذا Vector4.<br /><br />
+	 
+		يعود نافذة العرض الحالية.
+		</p>
+	 
+		<h3>[method:Vector2 getDrawingBufferSize]( [param:Vector2 target] )</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+	 
+		يعود عرض وارتفاع مخزن الرسم للمُعالج ، بالبكسل.
+		</p>
+	 
+		<h3>[method:number getPixelRatio]()</h3>
+		<p>يعود نسبة بكسل الجهاز الحالية المستخدمة.</p>
+	 
+		<h3>[method:Vector4 getScissor]( [param:Vector4 target] )</h3>
+		<p>
+		[page:Vector4 target] — سيتم نسخ النتيجة في هذا Vector4.<br /><br />
+	 
+		يعود منطقة المقص.
+		</p>
+	 
+		<h3>[method:Boolean getScissorTest]()</h3>
+		<p>يعود `true` إذا تم تمكين اختبار المقص ؛ يعود `false` خلاف ذلك.</p>
+	 
+		<h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+	 
+		يعود عرض وارتفاع قماش إخراج المُعالج ، بالبكسل.
+		</p>
+	 
+		<h3>[method:Vector4 getViewport]( [param:Vector4 target] )</h3>
+		<p>
+		[page:Vector4 target] — سيتم نسخ النتيجة في هذا Vector4.<br /><br />
+	 
+		يعود نافذة العرض.
+		</p>
+
+		<h3>[method:undefined initTexture]( [param:Texture texture] )</h3>
+		<p>
+		يقوم بتهيئة القوام المعطى. مفيد لتحميل القوام مسبقًا بدلاً من
+		الانتظار حتى العرض الأول (الذي يمكن أن يسبب تأخيرات ملحوظة بسبب فك تشفير
+		وتحميل GPU).
+		</p>
+	 
+		<h3>[method:undefined resetGLState]( )</h3>
+		<p>
+		إعادة تعيين حالة GL إلى الافتراضي. يتم استدعاؤها داخليًا إذا كان سياق WebGL
+		ضائع.
+		</p>
+	 
+		<h3>
+		[method:undefined readRenderTargetPixels]( [param:WebGLRenderTarget renderTarget], [param:Float x], [param:Float y], [param:Float width], [param:Float height], [param:TypedArray buffer], [param:Integer activeCubeFaceIndex] )
+		</h3>
+		<p>
+		buffer - Uint8Array هو النوع الوحيد المدعوم في جميع الحالات ،
+		أنواع أخرى هي renderTarget ومنصة مستقلة. انظر
+		[link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.12 WebGL spec] للحصول على التفاصيل.
+		</p>
+		<p>
+		يقرأ بيانات البكسل من renderTarget إلى المخزن الذي تمرره.
+		هذا هو حول
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/readPixels WebGLRenderingContext.readPixels]().
+		</p>
+		<p>
+		انظر [example:webgl_interactive_cubes_gpu interactive / cubes / gpu]
+		مثال.
+		</p>
+		<p>
+		لقراءة [page:WebGLCubeRenderTarget WebGLCubeRenderTarget] استخدم
+		المعلمة الاختيارية activeCubeFaceIndex لتحديد أي وجه يجب
+		قراءة.
+		</p>
+	 
+		<h3>
+		[method:undefined render]( [param:Object3D scene], [param:Camera camera] )
+		</h3>
+		<p>
+		عرض [page:Scene scene] أو نوع آخر من [page:Object3D object]
+		باستخدام كاميرا [page:Camera].<br />
+	 
+		يتم العرض إلى [page:WebGLRenderTarget renderTarget] محدد مسبقًا
+		مجموعة من خلال استدعاء [page:WebGLRenderer.setRenderTarget .setRenderTarget] أو إلى قماش كالمعتاد.<br />
+	 
+		بشكل افتراضي ، يتم مسح مخزنات العرض قبل العرض ولكن يمكنك منع
+		هذا عن طريق تعيين خاصية [page:WebGLRenderer.autoClear autoClear] إلى
+		false. إذا كنت ترغب في منع مسح مخزنات معينة فقط ، فيمكنك
+		تعيين خصائص [page:WebGLRenderer.autoClearColor autoClearColor],
+		[page:WebGLRenderer.autoClearStencil autoClearStencil] أو
+		[page:WebGLRenderer.autoClearDepth autoClearDepth] إلى false. لإجبار مسح واحد أو أكثر من المخزنات اتصل بـ [page:WebGLRenderer.clear .clear].
+		</p>
+	 
+		<h3>[method:undefined resetState]()</h3>
+		<p>
+		يمكن استخدامها لإعادة تعيين حالة WebGL الداخلية. هذه الطريقة هي في الغالب
+		ذات صلة بالتطبيقات التي تشارك سياق WebGL واحد عبر
+		مكتبات WebGL متعددة.
+		</p>
+	 
+		<h3>[method:undefined setAnimationLoop]( [param:Function callback] )</h3>
+		<p>
+		[page:Function callback] — سيتم استدعاء الوظيفة في كل إطار متاح
+		الإطار. إذا تم تمرير `null` ، فسيتوقف أي رسم متحرك قائم بالفعل.
+		</p>
+		<p>
+		وظيفة مدمجة يمكن استخدامها بدلاً من
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame requestAnimationFrame]. 
+		بالنسبة لمشاريع WebXR ، يجب استخدام هذه الوظيفة.
+		</p>
+	 
+		<h3>[method:undefined setClearAlpha]( [param:Float alpha] )</h3>
+		<p>يضبط الألفا الواضح. المدخلات الصالحة هي عدد عشري بين `0.0` و `1.0`.</p>
+	 
+		<h3>
+		[method:undefined setClearColor]( [param:Color color], [param:Float alpha] )
+		</h3>
+		<p>يضبط لون المسح والشفافية.</p>
+	 
+		<h3>[method:undefined setPixelRatio]( [param:number value] )</h3>
+		<p>
+		يضبط نسبة بكسل الجهاز. يتم استخدام هذا عادةً لجهاز HiDPI لمنع
+		قماش الإخراج المشوش.
+		</p>
+	 
+		<h3>
+		[method:undefined setRenderTarget]( [param:WebGLRenderTarget renderTarget], 
+		[param:Integer activeCubeFace], [param:Integer activeMipmapLevel] )
+		</h3>
+		<p>
+		renderTarget -- [page:WebGLRenderTarget renderTarget] التي تحتاج إلى
+		تفعيله. عند إعطاء `null` ، يتم تعيين قماش كـ هدف عرض نشط
+		بدلاً من ذلك.<br />
+		activeCubeFace -- يحدد جانب المكعب النشط (PX 0 ، NX 1 ، PY 2 ، NY 3 ،
+		PZ 4 ، NZ 5) من [page:WebGLCubeRenderTarget]. عند تمرير
+		[page:WebGLArrayRenderTarget] أو [page:WebGL3DRenderTarget] هذا يشير
+		إلى طبقة z للعرض فيه (اختياري).<br />
+		activeMipmapLevel -- يحدد مستوى mipmap النشط (اختياري).<br /><br />
+		هذه الطريقة تضبط rendertarget النشط.
+		</p>
+	 
+		<h3>
+		[method:undefined setScissor]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )<br />
+		[method:undefined setScissor]( [param:Vector4 vector] )
+		</h3>
+	 
+		<p>
+		معلمات x و y والعرض والارتفاع لمنطقة المقص.<br />
+		اختياريًا ، متجه مكون من 4 مكونات يحدد معلمات
+		المنطقة.<br /><br />
+		 
+		يضبط منطقة المقص من (x ، y) إلى (x + width ، y + height).<br />
+		(x ، y) هو الزاوية السفلى اليسرى لمنطقة المقص.
+		</p>
+		 
+		<h3>[method:undefined setScissorTest]( [param:Boolean boolean] )</h3>
+		<p>
+		تمكين أو تعطيل اختبار المقص. عند تمكين هذا ، فقط البكسلات
+		داخل منطقة المقص المحددة ستتأثر بإجراءات المُعالج
+		التالية.
+		</p>
+		 
+		<h3>[method:undefined setOpaqueSort]( [param:Function method] )</h3>
+		<p>
+		يضبط وظيفة الترتيب الشفاف المخصصة لـ WebGLRenderLists. امرر null
+		لاستخدام وظيفة painterSortStable الافتراضية.
+		</p>
+		 
+		<h3>[method:undefined setTransparentSort]( [param:Function method] )</h3>
+		<p>
+		يضبط وظيفة الترتيب الشفاف المخصصة لـ WebGLRenderLists. امرر
+		null لاستخدام وظيفة reversePainterSortStable الافتراضية.
+		</p>
+		 
+		<h3>
+		[method:undefined setSize]( [param:Integer width], [param:Integer height], [param:Boolean updateStyle] )
+		</h3>
+		<p>
+		يغير حجم قماش الإخراج إلى (العرض ، الارتفاع) مع نسبة بكسل الجهاز التي تؤخذ في
+		بعين الاعتبار ، ويضبط أيضًا نافذة العرض لتناسب هذا الحجم ، بدءًا من (0 ،
+		0). يؤدي تعيين [page:Boolean updateStyle] إلى false إلى منع أي تغييرات في الأسلوب
+		إلى قماش الإخراج.
+		</p>
+		 
+		<h3>
+		[method:undefined setViewport]( [param:Integer x], [param:Integer y], [param:Integer width], [param:Integer height] )<br />
+		[method:undefined setViewport]( [param:Vector4 vector] )
+		</h3>
+		 
+		<p>
+		معلمات x و y والعرض والارتفاع لنافذة العرض.<br />
+		اختياريًا ، متجه مكون من 4 مكونات يحدد معلمات
+		نافذة عرض.<br /><br />
+		 
+		يضبط نافذة العرض للعرض من (x ، y) إلى (x + width ، y + height).<br />
+		(x ، y) هو الزاوية السفلى اليسرى للمنطقة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 24 - 0
docs/api/ar/renderers/shaders/ShaderChunk.html

@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">قطع الشادر لمكتبة شادر WebGL</p>
+
+		<h2>الخصائص (Properties)</h2>
+		
+		<h2>الطرق (Methods)</h2>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 24 - 0
docs/api/ar/renderers/shaders/ShaderLib.html

@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">مكتبة شادر WebGL لـ three.js</p>
+
+		<h2>الخصائص (Properties)</h2>
+		
+		<h2>الطرق (Methods)</h2>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

Some files were not shown because too many files changed in this diff