Mr.doob 2 years ago
parent
commit
3618c2b1c6
100 changed files with 9088 additions and 286 deletions
  1. 292 86
      build/three.cjs
  2. 292 86
      build/three.js
  3. 0 0
      build/three.min.js
  4. 292 86
      build/three.module.js
  5. 0 0
      build/three.module.min.js
  6. 1 1
      docs/api/ar/animation/AnimationAction.html
  7. 141 0
      docs/api/ar/cameras/OrthographicCamera.html
  8. 219 0
      docs/api/ar/cameras/PerspectiveCamera.html
  9. 59 0
      docs/api/ar/cameras/StereoCamera.html
  10. 46 0
      docs/api/ar/constants/Animation.html
  11. 52 0
      docs/api/ar/constants/BufferAttributeUsage.html
  12. 65 0
      docs/api/ar/constants/Core.html
  13. 68 0
      docs/api/ar/constants/CustomBlendingEquations.html
  14. 153 0
      docs/api/ar/constants/Materials.html
  15. 67 0
      docs/api/ar/constants/Renderer.html
  16. 614 0
      docs/api/ar/constants/Textures.html
  17. 235 0
      docs/api/ar/core/BufferAttribute.html
  18. 366 0
      docs/api/ar/core/BufferGeometry.html
  19. 93 0
      docs/api/ar/core/Clock.html
  20. 74 0
      docs/api/ar/core/EventDispatcher.html
  21. 118 0
      docs/api/ar/core/GLBufferAttribute.html
  22. 37 0
      docs/api/ar/core/InstancedBufferAttribute.html
  23. 39 0
      docs/api/ar/core/InstancedBufferGeometry.html
  24. 33 0
      docs/api/ar/core/InstancedInterleavedBuffer.html
  25. 119 0
      docs/api/ar/core/InterleavedBuffer.html
  26. 117 0
      docs/api/ar/core/InterleavedBufferAttribute.html
  27. 100 0
      docs/api/ar/core/Layers.html
  28. 570 0
      docs/api/ar/core/Object3D.html
  29. 230 0
      docs/api/ar/core/Raycaster.html
  30. 274 0
      docs/api/ar/core/Uniform.html
  31. 61 0
      docs/api/ar/core/bufferAttributeTypes/BufferAttributeTypes.html
  32. 36 0
      docs/api/ar/extras/DataUtils.html
  33. 33 0
      docs/api/ar/extras/Earcut.html
  34. 42 0
      docs/api/ar/extras/ImageUtils.html
  35. 111 0
      docs/api/ar/extras/PMREMGenerator.html
  36. 52 0
      docs/api/ar/extras/ShapeUtils.html
  37. 131 0
      docs/api/ar/extras/core/Curve.html
  38. 72 0
      docs/api/ar/extras/core/CurvePath.html
  39. 52 0
      docs/api/ar/extras/core/Interpolations.html
  40. 160 0
      docs/api/ar/extras/core/Path.html
  41. 104 0
      docs/api/ar/extras/core/Shape.html
  42. 93 0
      docs/api/ar/extras/core/ShapePath.html
  43. 24 0
      docs/api/ar/extras/curves/ArcCurve.html
  44. 84 0
      docs/api/ar/extras/curves/CatmullRomCurve3.html
  45. 79 0
      docs/api/ar/extras/curves/CubicBezierCurve.html
  46. 80 0
      docs/api/ar/extras/curves/CubicBezierCurve3.html
  47. 104 0
      docs/api/ar/extras/curves/EllipseCurve.html
  48. 42 0
      docs/api/ar/extras/curves/LineCurve.html
  49. 42 0
      docs/api/ar/extras/curves/LineCurve3.html
  50. 73 0
      docs/api/ar/extras/curves/QuadraticBezierCurve.html
  51. 73 0
      docs/api/ar/extras/curves/QuadraticBezierCurve3.html
  52. 60 0
      docs/api/ar/extras/curves/SplineCurve.html
  53. 99 0
      docs/api/ar/geometries/BoxGeometry.html
  54. 79 0
      docs/api/ar/geometries/CapsuleGeometry.html
  55. 78 0
      docs/api/ar/geometries/CircleGeometry.html
  56. 79 0
      docs/api/ar/geometries/ConeGeometry.html
  57. 84 0
      docs/api/ar/geometries/CylinderGeometry.html
  58. 64 0
      docs/api/ar/geometries/DodecahedronGeometry.html
  59. 61 0
      docs/api/ar/geometries/EdgesGeometry.html
  60. 131 0
      docs/api/ar/geometries/ExtrudeGeometry.html
  61. 64 0
      docs/api/ar/geometries/IcosahedronGeometry.html
  62. 83 0
      docs/api/ar/geometries/LatheGeometry.html
  63. 61 0
      docs/api/ar/geometries/OctahedronGeometry.html
  64. 75 0
      docs/api/ar/geometries/PlaneGeometry.html
  65. 68 0
      docs/api/ar/geometries/PolyhedronGeometry.html
  66. 74 0
      docs/api/ar/geometries/RingGeometry.html
  67. 87 0
      docs/api/ar/geometries/ShapeGeometry.html
  68. 87 0
      docs/api/ar/geometries/SphereGeometry.html
  69. 62 0
      docs/api/ar/geometries/TetrahedronGeometry.html
  70. 75 0
      docs/api/ar/geometries/TorusGeometry.html
  71. 84 0
      docs/api/ar/geometries/TorusKnotGeometry.html
  72. 103 0
      docs/api/ar/geometries/TubeGeometry.html
  73. 54 0
      docs/api/ar/geometries/WireframeGeometry.html
  74. 103 0
      docs/api/ar/helpers/ArrowHelper.html
  75. 64 0
      docs/api/ar/helpers/AxesHelper.html
  76. 62 0
      docs/api/ar/helpers/Box3Helper.html
  77. 77 0
      docs/api/ar/helpers/BoxHelper.html
  78. 82 0
      docs/api/ar/helpers/CameraHelper.html
  79. 88 0
      docs/api/ar/helpers/DirectionalLightHelper.html
  80. 69 0
      docs/api/ar/helpers/GridHelper.html
  81. 85 0
      docs/api/ar/helpers/HemisphereLightHelper.html
  82. 69 0
      docs/api/ar/helpers/PlaneHelper.html
  83. 91 0
      docs/api/ar/helpers/PointLightHelper.html
  84. 77 0
      docs/api/ar/helpers/PolarGridHelper.html
  85. 68 0
      docs/api/ar/helpers/SkeletonHelper.html
  86. 86 0
      docs/api/ar/helpers/SpotLightHelper.html
  87. 0 1
      docs/api/en/cameras/OrthographicCamera.html
  88. 1 1
      docs/api/en/cameras/PerspectiveCamera.html
  89. 12 0
      docs/api/en/constants/Textures.html
  90. 7 0
      docs/api/en/core/BufferAttribute.html
  91. 1 2
      docs/api/en/extras/core/Shape.html
  92. 0 3
      docs/api/en/extras/core/ShapePath.html
  93. 4 4
      docs/api/en/geometries/BoxGeometry.html
  94. 1 1
      docs/api/en/lights/Light.html
  95. 3 3
      docs/api/en/lights/PointLight.html
  96. 2 2
      docs/api/en/lights/RectAreaLight.html
  97. 3 3
      docs/api/en/lights/SpotLight.html
  98. 0 4
      docs/api/en/loaders/BufferGeometryLoader.html
  99. 7 2
      docs/api/en/loaders/CubeTextureLoader.html
  100. 0 1
      docs/api/en/loaders/managers/LoadingManager.html

File diff suppressed because it is too large
+ 292 - 86
build/three.cjs


File diff suppressed because it is too large
+ 292 - 86
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
+ 292 - 86
build/three.module.js


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


+ 1 - 1
docs/api/ar/animation/AnimationAction.html

@@ -50,7 +50,7 @@
 		<p>
 			يؤدي تعيين *enabled* إلى *false* إلى تعطيل هذا الإجراء ، بحيث لا يكون له أي تأثير. الافتراضي هو *true*.<br /><br />
 
-			عند إعادة تمكين الإجراء ، يستمر الرسم المتحرك من وقته الحالي [page:.time time] (الإعداد *enabled* إلى *false* لا يعيد تعيين الإجراء).<br /><br />
+			عند إعادة تمكين الإجراء ، يستمر الرسم المتحرك من وقته الحالي [page:.time time] (العدد *enabled* إلى *false* لا يعيد تعيين الإجراء).<br /><br />
 
 			ملاحظة: لا يؤدي إعداد *enabled* إلى *true* إلى إعادة تشغيل الرسوم المتحركة تلقائيًا. سيؤدي ضبط *enabled* إلى *true* إلى إعادة تشغيل الرسوم المتحركة فورًا فقط إذا تم استيفاء الشرط التالي:
 			[page:.paused paused] تحتوي قيمة *false* ، لم يتم إلغاء تنشيط هذا الإجراء في هذه الأثناء (بتنفيذ أمر [page:.stop stop] أو [page:.reset reset]) ، وليس [page:.weight weight] أو [page:.timeScale timeScale] يساوي 0.

+ 141 - 0
docs/api/ar/cameras/OrthographicCamera.html

@@ -0,0 +1,141 @@
+<!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:Camera] &rarr;
+
+		<h1>[name]</h1>
+		<p class="desc">
+			كاميرا تستخدم
+			[link:https://en.wikipedia.org/wiki/Orthographic_projection الإسقاط المجسمي].<br /><br />
+
+			في هذا النمط من الإسقاط، يبقى حجم الجسم 
+			ثابتاً في الصورة المُرسَمَة بغض النظر عن مسافته من الكاميرا.<br /><br />
+
+			يمكن أن يكون هذا مفيداً لتصوير المشاهد ثنائية الأبعاد وعناصر واجهة المستخدم، وغيرها من 
+			الأشياء.
+		</p>
+
+		<h2>مثال للكود</h2>
+		<code>	
+		const camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
+		scene.add( camera );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_camera camera ]<br />
+			[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]<br />
+			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic]<br />
+			[example:webgl_postprocessing_advanced postprocessing / advanced ]<br />
+			[example:webgl_postprocessing_dof2 postprocessing / dof2 ]<br />
+			[example:webgl_postprocessing_godrays postprocessing / godrays ]<br />
+			[example:webgl_rtt rtt ]<br />
+			[example:webgl_shadowmap shadowmap ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Number left], [param:Number right], [param:Number top], [param:Number bottom], [param:Number near], [param:Number far] )</h3>
+		<p>
+			left — سطح الهرم الأيسر.<br />
+			right — سطح الهرم الأيمن.<br />
+			top — سطح الهرم العلوي.<br />
+			bottom — سطح الهرم السفلي.<br />
+			near — سطح الهرم الأمامي.<br />
+			far — سطح الهرم الخلفي.<br /><br />
+
+			معًا، تحدد هذه العناصر هرم العرض للكاميرا.
+			[link:https://en.wikipedia.org/wiki/Viewing_frustum هرم الرؤية].
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>
+			انظر إلى صفحة [page:Camera] الأساسية للحصول على الخصائص الشائعة.<br />
+			يرجى ملاحظة أنه بعد إجراء تغييرات على معظم هذه الخصائص، يجب عليك استدعاء 
+			[page:OrthographicCamera.updateProjectionMatrix .updateProjectionMatrix] 
+			لجعل التغييرات سارية المفعول.
+		</p>
+
+		<h3>[property:Float bottom]</h3>
+		<p>سطح الهرم السفلي للكاميرا.</p>
+
+		<h3>[property:Float far]</h3>
+		<p>
+			سطح الهرم الخلفي للكاميرا. العدد الافتراضي هو `2000`.<br /><br />
+يجب أن يكون أكبر من القيمة الحالية لسطح الهرم الأمامي [page:.near near].
+		</p>
+
+		<h3>[property:Boolean isOrthographicCamera]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من النوع [name].</p>
+
+		<h3>[property:Float left]</h3>
+		<p>سطح الهرم الأيسر للكاميرا.</p>
+
+		<h3>[property:Float near]</h3>
+		<p>
+			سطح الهرم الأمامي للكاميرا. العدد الافتراضي هو `0.1`.<br /><br />
+			النطاق الصحيح هو بين `0` وقيمة الهرم الخلفي [page:.far far]. يرجى ملاحظة أنه، على عكس الـ [page:PerspectiveCamera]،
+			يمثل الصفر قيمة صالحة لسطح الهرم الأمامي في OrthographicCamera.
+		</p>
+
+		<h3>[property:Float right]</h3>
+		<p>سطح الهرم الأيمن للكاميرا.</p>
+
+		<h3>[property:Float top]</h3>
+		<p>سطح الهرم العلوي للكاميرا.</p>
+
+		<h3>[property:Object view]</h3>
+		<p>
+			`يتم تعيينها بواسطة [page:OrthographicCamera.setViewOffset setViewOffset]. العدد الافتراضي هو 
+			`null`.
+		</p>
+
+		<h3>[property:number zoom]</h3>
+		<p>تُستخدم للحصول على قيمة عامل التكبير أو تعيينها للكاميرا. العدد الافتراضي هو `1`</p>
+
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع صفحة [page:Camera] الأساسية للحصول على الأساليب الشائعة.</p>
+
+		<h3>[method:undefined setViewOffset]( [param:Float fullWidth], [param:Float fullHeight], [param:Float x], [param:Float y], [param:Float width], [param:Float height] )</h3>
+		<p>
+			fullWidth — العرض الكامل لإعداد العرض المتعدد.<br />
+			fullHeight — الارتفاع الكامل لإعداد العرض المتعدد.<br />
+			x — الإزاحة الأفقية للكاميرا الفرعية.<br />
+			y — الإزاحة العمودية للكاميرا الفرعية.<br />
+			width — عرض الكاميرا الفرعية.<br />
+			height — ارتفاع الكاميرا الفرعية.<br /><br />
+
+			يُعيّن إزاحة في 
+			[link:https://en.wikipedia.org/wiki/Viewing_frustum هرم الرؤية]
+			أكبر. هذا مفيد لإعدادات النوافذ المتعددة أو إعدادات الشاشات / الأجهزة المتعددة. 
+			لمثال حول كيفية استخدامها، انظر [page:PerspectiveCamera.setViewOffset PerspectiveCamera].
+		</p>
+
+		<h3>[method:undefined clearViewOffset]()</h3>
+		<p>تزيل أي إزاحة تم تعيينها بواسطة طريقة .setViewOffset.</p>
+
+		<h3>[method:undefined updateProjectionMatrix]()</h3>
+		<p>
+			تحديث مصفوفة إسقاط الكاميرا. يجب استدعاؤها بعد أي تغيير في 
+			المعلمات.
+		</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]
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 219 - 0
docs/api/ar/cameras/PerspectiveCamera.html

@@ -0,0 +1,219 @@
+!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:Camera] &rarr;
+
+		<h1>[name]</h1>
+		<p class="desc">
+			كاميرا تستخدم تصوير منظوري 
+			[link:https://en.wikipedia.org/wiki/Perspective_(graphical) Perspective Projection].
+			تم تصميم هذا الوضع لمحاكاة الطريقة التي يرى بها العين البشرية. 
+			وهو أكثر أنماط التصوير استخدامًا لإظهار مشهد ثلاثي الأبعاد.
+		</p>
+
+		<h2>مثال للكود</h2>
+
+		<code>
+		const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
+		scene.add( camera );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_animation_skinning_blending animation / skinning / blending]<br />
+			[example:webgl_animation_skinning_morph animation / skinning / morph ]<br />
+			[example:webgl_effects_stereo effects / stereo ]<br />
+			[example:webgl_interactive_cubes interactive / cubes ]<br />
+			[example:webgl_loader_collada_skinning loader / collada / skinning ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Number fov], [param:Number aspect], [param:Number near], [param:Number far] )</h3>
+		<p>
+			fov — زاوية مجال الرؤية الرأسية للكاميرا.<br />
+			aspect — نسبة العرض إلى الارتفاع للكاميرا.<br />
+			near — سطح الهرم الأمامي للكاميرا.<br />
+			far — سطح الهرم الخلفي للكاميرا.<br /><br />
+			معًا، يحدد هذه العناصر هرم الرؤية	للكاميرا.
+			[link:https://en.wikipedia.org/wiki/Viewing_frustum هرم الرؤية]
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>
+			يرجى الرجوع إلى صفحة [page:Camera] الأساسية للحصول على الخصائص الشائعة.<br />
+			يرجى ملاحظة أنه بعد إجراء تغييرات على معظم هذه الخصائص، ستحتاج
+			إلى استدعاء [page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix] لجعل التغييرات سارية المفعول.
+		</p>
+
+		<h3>[property:Float aspect]</h3>
+		<p>
+			نسبة العرض إلى الارتفاع لسطح الهرم الرؤية (frustum) للكاميرا، وعادةً ما يكون العرض الخاص باللوحة السينمائية / الشاشة مقسومًا على ارتفاعها. 
+			العدد الافتراضي هو `1` (لوحة سينمائية مربعة).
+		</p>
+
+		<h3>[property:Float far]</h3>
+		<p>
+			سطح الهرم الخلفي لسطح الرؤية (frustum) للكاميرا. العدد الافتراضي هو `2000`.<br /><br />
+			يجب أن يكون أكبر من القيمة الحالية لسطح الهرم الأمامي [page:.near near].
+		</p>
+
+		<h3>[property:Float filmGauge]</h3>
+		<p>
+			حجم الفيلم المستخدم للمحور الأكبر. العدد الافتراضي هو 35 (ملم). 
+			لا يؤثر هذا المعلم على مصفوفة الإسقاط إلا إذا تم تعيين 
+			.filmOffset إلى قيمة غير صفر.
+		</p>
+
+		<h3>[property:Float filmOffset]</h3>
+		<p>
+			الإزاحة الأفقية غير المركزة في نفس وحدة `.filmGauge`. العدد الافتراضي هو 
+			`0`.
+		</p>
+
+		<h3>[property:Float focus]</h3>
+		<p>
+			مسافة الكائن المستخدمة لتحقيق تأثيرات الإسقاط المتزامن والعمق الحقيقي. 
+			هذا المعلم لا يؤثر على مصفوفة الإسقاط إلا إذا تم استخدام [page:StereoCamera]. 
+			العدد الافتراضي هو `10`.
+		</p>
+
+		<h3>[property:Float fov]</h3>
+		<p>
+			زاوية مجال الرؤية الرأسية لسطح الهرم الرؤية (frustum) للكاميرا، من أسفل الرؤية إلى أعلى الرؤية، بالدرجات. 
+			العدد الافتراضي هو `50`.
+		</p>
+
+		<h3>[property:Boolean isPerspectiveCamera]</h3>
+		<p>علامة تحقق للتحقق مما إذا كان الكائن المعطى من نوع [name]. هذه العلامة لا يمكن تعديلها.</p>
+
+		<h3>[property:Float near]</h3>
+		<p>
+			سطح الهرم الأمامي لسطح الرؤية (frustum) للكاميرا. 
+			العدد الافتراضي هو `0.1`.<br /><br />
+			النطاق الصحيح هو أكبر من `0` وأقل من القيمة الحالية لسطح الهرم الخلفي [page:.far far]. 
+			يرجى ملاحظة أنه، على عكس الكاميرا المسطحة 
+			[page:OrthographicCamera]، القيمة `0` ليست قيمة صالحة لسطح الهرم الأمامي لكاميرا من نوع PerspectiveCamera.
+		</p>
+
+		<h3>[property:Object view]</h3>
+		<p>
+			مواصفات نافذة هرم الرؤية (frustum) أو `null`.
+			يتم تعيين هذا باستخدام طريقة [page:PerspectiveCamera.setViewOffset .setViewOffset] 
+			ويتم مسحها باستخدام [page:PerspectiveCamera.clearViewOffset .clearViewOffset].
+		</p>
+
+		<h3>[property:number zoom]</h3>
+		<p>يتم الحصول على قيمة عامل التكبير أو تعيينها للكاميرا. العدد الافتراضي هو `1`.</p>
+
+		<h2>الوظائف (Methods)</h2>
+		<p>يرجى الرجوع إلى صفحة [page:Camera] الأساسية للحصول على الأساليب الشائعة.</p>
+
+		<h3>[method:undefined clearViewOffset]()</h3>
+		<p>تزيل أي إزاحة تم تعيينها باستخدام طريقة [page:PerspectiveCamera.setViewOffset .setViewOffset].</p>
+
+		<h3>[method:Float getEffectiveFOV]()</h3>
+		<p>تُرجع زاوية مجال الرؤية الرأسية الحالية بالدرجات باعتبار .zoom.</p>
+
+		<h3>[method:Float getFilmHeight]()</h3>
+		<p>
+			تُرجع ارتفاع الصورة على الفيلم. إذا كان 
+			.aspect أقل من الواحد (تنسيق صورة عمودي)، فإن النتيجة تساوي .filmGauge.
+		</p>
+
+		<h3>[method:Float getFilmWidth]()</h3>
+		<p>
+			تُرجع عرض الصورة على الفيلم. إذا كان 
+			.aspect أكبر من أو يساوي الواحد (تنسيق صورة أفقي)، فإن النتيجة تساوي .filmGauge.
+		</p>
+
+		<h3>[method:Float getFocalLength]()</h3>
+		<p>
+			تُرجع البعد البؤري للـ .fov الحالي بالنسبة لـ .filmGauge.
+		</p>
+
+		<h3>[method:undefined setFocalLength]( [param:Float focalLength] )</h3>
+		<p>
+			يتم تعيين الـ FOV بواسطة البعد البؤري بالنسبة لـ 
+			.filmGauge الحالي لـ[page:PerspectiveCamera].<br /><br />
+			بشكل افتراضي، يتم تحديد البعد البؤري للكاميرا بحجم 35 مم (إطار كامل).
+		</p>
+
+		<h3>[method:undefined setViewOffset]( [param:Float fullWidth], [param:Float fullHeight], [param:Float x], [param:Float y], [param:Float width], [param:Float height] )</h3>
+		<p>
+			fullWidth — العرض الكامل لإعداد العرض المتعدد<br />
+			fullHeight — الارتفاع الكامل لإعداد العرض المتعدد<br />
+			x — الإزاحة الأفقية للكاميرا الفرعية<br />
+			y — الإزاحة الرأسية للكاميرا الفرعية<br />
+			width — عرض الكاميرا الفرعية<br />
+			height — ارتفاع الكاميرا الفرعية
+		</p>
+
+		<p>
+			يضبط الإزاحة في هرم الرؤية الأكبر. 
+			هذا مفيد لإعدادات النوافذ المتعددة أو إعدادات متعددة الشاشات/الأجهزة.
+		</p>
+
+		<p>
+			على سبيل المثال، إذا كان لديك 3x2 شاشة 
+			وكانت كل شاشة 1920x1080 وكانت الشاشات في شبكة مثل هذه:<br />
+		</p>
+
+		<pre>
++---+---+---+
+| A | B | C |
++---+---+---+
+| D | E | F |
++---+---+---+
+		</pre>
+
+		فمن أجل كل شاشة، ستقوم بالاستدعاء بهذا الشكل:<br />
+
+		<code>const w = 1920;
+const h = 1080;
+const fullWidth = w * 3;
+const fullHeight = h * 2;
+
+// A
+camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );
+// B
+camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );
+// C
+camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );
+// D
+camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );
+// E
+camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
+// F
+camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
+</code>
+		
+		<p>يرجى ملاحظة أنه لا يوجد سبب لأن تكون الشاشات بحجم متساوٍ أو متوضعة على شكل شبكة. يمكن توزيعها بأي شكل يناسب الاحتياجات المحددة.</p>
+
+		<h3>[method:undefined updateProjectionMatrix]()</h3>
+		<p>
+			يقوم بتحديث مصفوفة الإسقاط الخاصة بالكاميرا، ويجب استدعاءها بعد أي تغيير في 
+			المعاملات.
+		</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>

+ 59 - 0
docs/api/ar/cameras/StereoCamera.html

@@ -0,0 +1,59 @@
+<!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:PerspectiveCamera] تستخدم لتحقيق تأثيرات مثل 
+			[link:https://en.wikipedia.org/wiki/Anaglyph_3D 3D Anaglyph] أو 
+			[link:https://en.wikipedia.org/wiki/parallax_barrier Parallax Barrier].
+		</p>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_effects_anaglyph effects / anaglyph ]<br />
+			[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]<br />
+			[example:webgl_effects_stereo effects / stereo ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( )</h3>
+		
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:Float aspect]</h3>
+		<p>العدد الافتراضي هو `1`.</p>
+
+		<h3>[property:Float eyeSep]</h3>
+		<p>العدد الافتراضي هو `0.064`.</p>
+
+		<h3>[property:PerspectiveCamera cameraL]</h3>
+		<p>
+			الكاميرا اليسرى. يتم إضافتها إلى [page:Layers layer 1] - يجب أن يتم إضافة الكائنات التي يتم عرضها
+			بالكاميرا اليسرى إلى هذه الطبقة أيضًا.
+		</p>
+
+		<h3>[property:PerspectiveCamera cameraR]</h3>
+		<p>
+			الكاميرا اليمنى. يتم إضافتها إلى [page:Layers layer 2] - يجب أن يتم إضافة الكائنات التي يتم عرضها 
+			بالكاميرا اليمنى إلى هذه الطبقة أيضًا.
+		</p>
+
+		<h2>الوظائف (Methods)</h2>
+
+		<h3>[method:undefined update]( [param:PerspectiveCamera camera] )</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>

+ 46 - 0
docs/api/ar/constants/Animation.html

@@ -0,0 +1,46 @@
+<!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>Animation Constants</h1>
+
+		<h2>وضعيات التكرار (Loop Modes)</h2>
+
+		<code>
+THREE.LoopOnce
+THREE.LoopRepeat
+THREE.LoopPingPong
+		</code>
+
+    <h2>وضعيات التداخل (Interpolation Modes)</h2>
+    <code>
+THREE.InterpolateDiscrete
+THREE.InterpolateLinear
+THREE.InterpolateSmooth
+    </code>
+
+    <h2>وضعيات النهاية (Ending Modes)</h2>
+    <code>
+THREE.ZeroCurvatureEnding
+THREE.ZeroSlopeEnding
+THREE.WrapAroundEnding
+    </code>
+
+	<h2>وضعيات الدمج للرسوم المتحركة (Animation Blend Modes)</h2>
+    <code>
+THREE.NormalAnimationBlendMode
+THREE.AdditiveAnimationBlendMode
+    </code>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 52 - 0
docs/api/ar/constants/BufferAttributeUsage.html

@@ -0,0 +1,52 @@
+<!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>ثوابت استخدام بيانات الذاكرة المؤقتة (Buffer Attribute Usage Constants)</h1>
+
+		<p>
+			يمكن استخدام الثوابت التي تحدد طريقة استخدام بيانات الذاكرة المؤقتة للهيكل الهندسي لتعطي تلميحاً لواجهة برمجة التطبيقات API بشأن كيفية استخدام بيانات الذاكرة المؤقتة لتحسين الأداء.
+		</p>
+
+		<h2>مثال للكود</h2>
+
+		<code>
+		const geometry = new THREE.BufferGeometry();
+		const positionAttribute = new THREE.BufferAttribute( array, 3 , false );
+		positionAttribute.setUsage( THREE.DynamicDrawUsage );
+		geometry.setAttribute( 'position', positionAttribute );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>[example:webgl_buffergeometry_drawrange materials / buffergeometry / drawrange ]</p>
+
+			<h2>استخدام الهيكل الهندسي</h2>
+		<code>
+		THREE.StaticDrawUsage 
+		THREE.DynamicDrawUsage 
+		THREE.StreamDrawUsage
+				
+		THREE.StaticReadUsage 
+		THREE.DynamicReadUsage 
+		THREE.StreamReadUsage
+				
+		THREE.StaticCopyUsage 
+		THREE.DynamicCopyUsage 
+		THREE.StreamCopyUsage
+		</code>
+
+		للحصول على معلومات أكثر تفصيلاً حول كل هذه الثوابت، يرجى الرجوع إلى 
+		[link:https://www.khronos.org/opengl/wiki/Buffer_Object#Buffer_Object_Usage هذا الدليل الخاص بـ OpenGL].
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 65 - 0
docs/api/ar/constants/Core.html

@@ -0,0 +1,65 @@
+<!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>الثوابت الأساسية (Core Constants)</h1>
+
+		<h2>رقم النسخة (Revision Number)</h2>
+
+		<code> 
+THREE.REVISION 
+		</code>
+
+		<div id="rev">
+			رقم النسخة الحالي لـ three.js هو [link:https://github.com/mrdoob/three.js/releases رقم الإصدار].
+		</div>
+
+		<h2>مساحات الألوان (Color Spaces)</h2>
+		<code>
+THREE.NoColorSpace = ""
+THREE.SRGBColorSpace = "srgb"
+THREE.LinearSRGBColorSpace = "srgb-linear"
+		</code>
+		<p>
+			[page:NoColorSpace]ﻻ يحدد مساحة الألوان بشكل عام. ويستخدم عادة للقواميس الخاصة بالألوان المتوسطة، مثل الخرائط العادية، وخرائط التصلب، وخرائط اللمعان، وخرائط الظل، والبيانات غير اللونية الأخرى.
+		</p>
+		<p>
+			[page:SRGBColorSpace] ("srgb") يشير إلى مساحة الألوان التي تم تعريفها بواسطة المعايير الرئيسية Rec. 709، ونقطة الأبيض D65، والوظائف اللاخطية لنقل sRGB. وهو المساحة الافتراضية للألوان في CSS، ويتم العثور عليها في العديد من الباليتات اللونية وأدوات اختيار الألوان. وعادةً ما تكون الألوان المعبر عنها بالتعبير الست عشري أو CSS في مساحة الألوان sRGB.
+		</p>
+
+		<p>
+			[page:LinearSRGBColorSpace] ("srgb-linear") يشير إلى مساحة الألوان sRGB (أعلاه) مع وظائف نقل النقل الخطي. وهي المساحة الافتراضية للألوان في three.js، وتستخدم طوال معظم عملية العرض. وتكون مكونات RGB التي توجد في مواد three.js والشواهد (shaders) في مساحة الألوان Linear-sRGB.
+
+		<p>للمزيد من المعلومات حول الخلفية والاستخدام، يرجى الرجوع إلى "إدارة الألوان".</p>
+
+		<h2>أزرار الماوس (Mouse Buttons)</h2>
+		<code>
+THREE.MOUSE.LEFT 
+THREE.MOUSE.MIDDLE 
+THREE.MOUSE.RIGHT 
+THREE.MOUSE.ROTATE
+THREE.MOUSE.DOLLY 
+THREE.MOUSE.PAN
+		</code>
+		<p>
+			تحمل الثوابت LEFT و ROTATE نفس القيمة الأساسية. كذلك الثوابت MIDDLE و DOLLY تحملان نفس القيمة الأساسية. وتحمل الثوابت RIGHT و PAN نفس القيمة الأساسية.
+		</p>
+
+		<h2>إجراءات اللمس (Touch Actions)</h2>
+		<code>
+THREE.TOUCH.ROTATE THREE.TOUCH.PAN THREE.TOUCH.DOLLY_PAN
+THREE.TOUCH.DOLLY_ROTATE
+		</code>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 68 - 0
docs/api/ar/constants/CustomBlendingEquations.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>ثوابت معادلات الدمج المخصصة (Custom Blending Equation Constants)</h1>
+
+		<p>
+			تعمل هذه الثوابت مع جميع أنواع المواد. يتم تعيين وضع الدمج للمادة أولاً إلى THREE.CustomBlending، ثم تعيين معادلة الدمج المطلوبة وعامل المصدر وعامل الوجهة.
+		</p>
+
+		<h2>مثال للكود</h2>
+
+		<code>
+		const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		material.blending = THREE.CustomBlending; 
+		material.blendEquation = THREE.AddEquation; //default 
+		material.blendSrc = THREE.SrcAlphaFactor;  //default 
+		material.blendDst = THREE.OneMinusSrcAlphaFactor; //default
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_materials_blending_custom materials / blending / custom ]
+
+		</p>
+
+		<h2>معادلات الدمج (Blending Equations)</h2>
+		<code>
+		THREE.AddEquation 
+		THREE.SubtractEquation 
+		THREE.ReverseSubtractEquation
+		THREE.MinEquation 
+		THREE.MaxEquation
+		</code>
+
+		<h2>عوامل المصدر (Source Factors)</h2>
+		<code>
+		THREE.ZeroFactor 
+		THREE.OneFactor 
+		THREE.SrcColorFactor
+		THREE.OneMinusSrcColorFactor 
+		THREE.SrcAlphaFactor
+		THREE.OneMinusSrcAlphaFactor 
+		THREE.DstAlphaFactor
+		THREE.OneMinusDstAlphaFactor 
+		THREE.DstColorFactor
+		THREE.OneMinusDstColorFactor 
+		THREE.SrcAlphaSaturateFactor
+		</code>
+
+		<h2>عوامل الوجهة (Destination Factors)</h2>
+		<p>
+			جميع عوامل المصدر صالحة كعوامل وجهة، باستثناء
+			<code>THREE.SrcAlphaSaturateFactor</code>
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 153 - 0
docs/api/ar/constants/Materials.html

@@ -0,0 +1,153 @@
+<!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>ثوابت المواد الخام (Material Constants)</h1>
+
+		<p class="desc">
+			تحدد هذه الثوابت الخصائص المشتركة بين جميع أنواع المواد الخام، باستثناء عمليات تجميع القوام الخاصة التي تنطبق فقط على
+			[page:MeshBasicMaterial.combine MeshBasicMaterial]،
+			[page:MeshLambertMaterial.combine MeshLambertMaterial] و
+			[page:MeshPhongMaterial.combine MeshPhongMaterial].<br />
+		</p>
+
+		<h2>الجانب (Side)</h2>
+		<code>
+		THREE.FrontSide 
+		THREE.BackSide 
+		THREE.DoubleSide
+		</code>
+		
+		<p>
+			تحدد الجانب الذي سيتم عرضه للوجوه، سواءً الوجه الأمامي، الوجه الخلفي، أو كلاهما. الإعداد الافتراضي هو الوجه الأمامي.
+		</p>
+
+		<h2>وضعية الدمج (Blending Mode)</h2>
+		<code>
+		THREE.NoBlending 
+		THREE.NormalBlending 
+		THREE.AdditiveBlending
+		THREE.SubtractiveBlending 
+		THREE.MultiplyBlending 
+		THREE.CustomBlending
+		</code>
+
+		<p>
+			تحكم هذه الثوابت في معادلات الدمج بين المصدر والوجهة للألوان والألفا التي يتم إرسالها من المواد إلى WebGLRenderer للاستخدام بواسطة WebGL.
+			[page:Constant NormalBlending] هي الإعداد الافتراضي. ويجب تعيين [page:Constant CustomBlending] لاستخدام [page:CustomBlendingEquation Custom Blending Equations].
+			راجع مثال [example:webgl_materials_blending materials / blending].
+		</p>
+
+		<h2>وضعية العمق (Depth Mode)</h2>
+		<code>
+		THREE.NeverDepth
+		THREE.AlwaysDepth 
+		THREE.EqualDepth 
+		THREE.LessDepth
+		THREE.LessEqualDepth 
+		THREE.GreaterEqualDepth 
+		THREE.GreaterDepth
+		THREE.NotEqualDepth
+		</code>
+		<p>
+			تحدد وظيفة العمق التي تستخدمها المواد لمقارنة عمق بيكسلات الإدخال مع قيمة العمق الحالية في الذاكرة المؤقتة للعمق. إذا كانت نتيجة المقارنة صحيحة، فسيتم رسم البكسل.<br />
+			[page:Materials NeverDepth] لن يتم رسم أي بكسل.<br />
+			[page:Materials AlwaysDepth] سيتم رسم كل البكسلات.<br />
+			[page:Materials EqualDepth] سيتم رسم البكسل إذا كان عمق البكسل المدخل مساوٍ لعمق الذاكرة المؤقتة الحالي.<br />
+			[page:Materials LessDepth] سيتم رسم البكسل إذا كان عمق البكسل المدخل أقل من عمق الذاكرة المؤقتة الحالي.<br />
+			[page:Materials LessEqualDepth] هي الإعداد الافتراضي وسيتم رسم البكسل إذا كان عمق البكسل المدخل أقل من أو يساوي عمق الذاكرة المؤقتة الحالي.<br />
+			[page:Materials GreaterEqualDepth] سيتم رسم البكسل إذا كان عمق البكسل المدخل أكبر من أو يساوي عمق الذاكرة المؤقتة الحالي.<br />
+			[page:Materials GreaterDepth] سيتم رسم البكسل إذا كان عمق البكسل المدخل أكبر من عمق الذاكرة المؤقتة الحالي.<br />
+			[page:Materials NotEqualDepth] سيتم رسم البكسل إذا كان عمقالبكسل المدخل لا يساوي عمق الذاكرة المؤقتة الحالي.<br />
+		</p>
+
+		<h2>عمليات تجميع القوام الخاصة بالقوام (Texture Combine Operations)</h2>
+		<code>
+		THREE.MultiplyOperation 
+		THREE.MixOperation 
+		THREE.AddOperation
+		</code>
+		
+		<p>
+			تحدد هذه الثوابت كيفية دمج لون سطح الكائن مع خريطة البيئة (إذا كانت متاحة) في [page:MeshBasicMaterial.combine MeshBasicMaterial]،
+			[page:MeshLambertMaterial.combine MeshLambertMaterial]
+			و [page:MeshPhongMaterial.combine MeshPhongMaterial]. <br />
+			[page:Constant MultiplyOperation] هي الإعداد الافتراضي وتقوم بضرب لون خريطة البيئة بلون سطح الكائن.<br />
+			[page:Constant MixOperation] تستخدم معامل الانعكاسية لدمج اللونين.<br />
+			[page:Constant AddOperation] تقوم بجمع اللونين.
+		</p>
+
+		<h2>دوال القالب (Stencil Functions)</h2>
+		<code>
+		THREE.NeverStencilFunc 
+		THREE.LessStencilFunc 
+		THREE.EqualStencilFunc
+		THREE.LessEqualStencilFunc 
+		THREE.GreaterStencilFunc
+		THREE.NotEqualStencilFunc 
+		THREE.GreaterEqualStencilFunc
+		THREE.AlwaysStencilFunc
+		</code>
+		<p>
+			تحدد الدالة التي يستخدمها المادة لتحديد ما إذا كان يجب أن تنفذ عملية القالب أم لا.<br />
+			[page:Materials NeverStencilFunc] لن يعود بقيمة صحيحة أبدًا.<br />
+			[page:Materials LessStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية أقل من القيمة الحالية للختم.<br />
+			[page:Materials EqualStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية تساوي القيمة الحالية للختم.<br />
+			[page:Materials LessEqualStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية أقل من أو تساوي القيمة الحالية للختم.<br />
+			[page:Materials GreaterStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية أكبر من القيمة الحالية للختم.<br />
+			[page:Materials NotEqualStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية لا تساوي القيمة الحالية للختم.<br />
+			[page:Materials GreaterEqualStencilFunc] سيعود بقيمة صحيحة إذا كانت قيمة المرجع الختمية أكبر من أو تساوي القيمة الحالية للختم.<br />
+			[page:Materials AlwaysStencilFunc] سيعود بقيمة صحيحة دائمًا.<br />
+		</p>
+
+		<h2>عمليات القالب (Stencil Operations)</h2>
+		<code>
+		THREE.ZeroStencilOp 
+		THREE.KeepStencilOp 
+		THREE.ReplaceStencilOp
+		THREE.IncrementStencilOp 
+		THREE.DecrementStencilOp
+		THREE.IncrementWrapStencilOp 
+		THREE.DecrementWrapStencilOp
+		THREE.InvertStencilOp
+		</code>
+		<p>
+			تحدد العملية التي ستقوم بها المادة على ختم البيكسل في الختم إذا مرت الدالة الختمية المقدمة.<br />
+			[page:Materials ZeroStencilOp] سيضبط قيمة الختم على الصفر.<br />
+			[page:Materials KeepStencilOp] لن يقوم بتغيير قيمة الختم الحالية.<br />
+			[page:Materials ReplaceStencilOp] سيقوم بتبديل قيمة الختم بقيمة المرجع الختمية المحددة.<br />
+			[page:Materials IncrementStencilOp] سيزيد قيمة الختم الحالية بمقدار `1`.<br />
+			[page:Materials DecrementStencilOp] سينقص قيمة الختم الحالية بمقدار `1`.<br />
+			[page:Materials IncrementWrapStencilOp] سيزيد قيمة الختم الحالية بمقدار `1`. إذا زادت القيمة بعد ذلك عن `255`، فستضبط على `0`.<br />
+			[page:Materials DecrementWrapStencilOp] سينقص قيمة الختم الحالية بمقدار `1`. إذا انخفضت القيمة بعد ذلك أقل من `0`، فستضبط على `255`.<br />
+			[page:Materials InvertStencilOp] سيقوم بتنفيذ عملية انعكاس بتشكيلة الختم الحالية.<br />
+		</p>
+
+		<h2>نوع خريطة العرض الطبيعي (Normal map type)</h2>
+		<code>
+		THREE.TangentSpaceNormalMap 
+		THREE.ObjectSpaceNormalMap 
+		</code>
+		
+		<p>
+			تحدد نوع خريطة العرض الطبيعي. لـTangentSpaceNormalMap، المعلومات ذات الصلة بالسطح الأساسي. أما بالنسبة لـ ObjectSpaceNormalMap، المعلومات ذات الصلة باتجاه الكائن. الإعداد الافتراضي هو [page:Constant TangentSpaceNormalMap].
+		</p>
+
+		<h2>إصدار GLSL</h2>
+		<code>
+		THREE.GLSL1 
+		THREE.GLSL3 
+		</code>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 67 - 0
docs/api/ar/constants/Renderer.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">
+		<h1>ثوابت WebGLRenderer</h1>
+
+		<h2>أنماط قطع الوجه (Cull Face Modes)</h2>
+		<code>
+		THREE.CullFaceNone 
+		THREE.CullFaceBack 
+		THREE.CullFaceFront
+		THREE.CullFaceFrontBack
+		</code>
+		<p>
+			[page:constant CullFaceNone] تعطيل قطع الوجه.<br />
+			[page:constant CullFaceBack] قطع الوجوه الخلفية (الافتراضي).<br />
+			[page:constant CullFaceFront] قطع الوجوه الأمامية.<br />
+			[page:constant CullFaceFrontBack] قطع كلا الوجوه الأمامية والخلفية.
+		</p>
+
+		<h2>أنواع الظلال (Shadow Types)</h2>
+		<code>
+		THREE.BasicShadowMap 
+		THREE.PCFShadowMap 
+		THREE.PCFSoftShadowMap
+		THREE.VSMShadowMap
+		</code>
+		<p>
+			هذه الخيارات تحدد خاصية  [page:WebGLRenderer.shadowMap.type shadowMap.type] في WebGLRenderer.<br /><br />
+			[page:constant BasicShadowMap] يعطي خرائط ظل غير مصفاة - الأسرع ، ولكن الأقل جودة.<br />
+			[page:constant PCFShadowMap] يصفي خرائط الظل باستخدام خوارزمية
+			Percentage-Closer Filtering (PCF) (افتراضي).<br />
+			[page:constant PCFSoftShadowMap] يصفي خرائط الظل باستخدام خوارزمية
+			Percentage-Closer Filtering (PCF) مع أفضل الظلال الناعمة
+			خاصةً عند استخدام خرائط ظل بدقة منخفضة.<br />
+			[page:constant VSMShadowMap] يصفي خرائط الظل باستخدام خوارزمية Variance Shadow
+			Map (VSM). عند استخدام VSMShadowMap ، سيقوم جميع مستقبلات الظل بإلقاء الظلال أيضًا.
+		</p>
+
+		
+		<h2>Tone Mapping</h2>
+		<code>
+		THREE.NoToneMapping 
+		THREE.LinearToneMapping 
+		THREE.ReinhardToneMapping
+		THREE.CineonToneMapping 
+		THREE.ACESFilmicToneMapping
+		THREE.CustomToneMapping
+		</code>
+		<p>
+			هذه الخيارات تحدد خاصية [page:WebGLRenderer.toneMapping toneMapping] في WebGLRenderer. يتم استخدام هذا لتقريب مظهر نطاق الإضاءة العالي (HDR) على الوسط الذي يحتوي على نطاق إضاءة منخفض على شاشة الكمبيوتر القياسية أو شاشة الجوال.
+		</p>
+		<p>
+			THREE.LinearToneMapping، THREE.ReinhardToneMapping، THREE.CineonToneMapping و THREE.ACESFilmicToneMapping هي تنفيذات مدمجة لتقريب مظهر نطاق الإضاءة العالي (HDR). يتوقع THREE.CustomToneMapping تنفيذًا مخصصًا عن طريق تعديل شفرة GLSL لبرنامج تظليل مقطع المواد. راجع [example:webgl_tonemapping WebGL / tonemapping] مثالًا. 
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 614 - 0
docs/api/ar/constants/Textures.html

@@ -0,0 +1,614 @@
+<!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>ثوابت القوام (Texture Constants)</h1>
+
+ 		<h2>أوضاع التعيين (Mapping Modes)</h2>
+		<code>
+		THREE.UVMapping
+		THREE.CubeReflectionMapping 
+		THREE.CubeRefractionMapping
+		THREE.EquirectangularReflectionMapping
+		THREE.EquirectangularRefractionMapping 
+		THREE.CubeUVReflectionMapping
+		</code>
+
+ 		<p>
+ 			هذه تحدد وضع تعيين القوام. <br />
+ 			[page:Constant UVMapping] هو الافتراضي ، ويقوم بتعيين القوام باستخدام إحداثيات UV للشبكة. <br /> <br />
+ 			الباقي يحدد أنواع تعيين البيئة. <br /> <br />
+ 			[page:Constant CubeReflectionMapping] و [page:Constant CubeRefractionMapping] للاستخدام مع [page:CubeTexture CubeTexture] ،
+ 			والتي تتكون من ستة قوام ، واحد لكل وجه من النرد.
+ 			[page:Constant CubeReflectionMapping] هو الافتراضي لـ
+ 			[page:CubeTexture CubeTexture]. <br /> <br />
+ 			[page:Constant EquirectangularReflectionMapping] و [page:Constant EquirectangularRefractionMapping] للاستخدام مع خريطة بيئة مستطيلة
+			. يسمى أيضًا خريطة lat-long ، قوام مستطيل
+ 			يمثل عرض 360 درجة على طول خط المركز الأفقي ، وعرض 180 درجة على طول المحور الرأسي ، مع حواف الأعلى والأسفل من
+ 			الصورة المقابلة للقطبين الشمال والجنوب من مجال معين
+ 			كروية. <br /> <br />
+ 			راجع المثال [example:webgl_materials_envmaps materials / envmaps].
+ 		</p>
+
+ 		<h2>أوضاع التغليف (Wrapping Modes)</h2>
+ 		<code>
+		THREE.RepeatWrapping 
+		THREE.ClampToEdgeWrapping
+		THREE.MirroredRepeatWrapping
+		</code>
+ 		<p>
+ 			هذه تحدد خصائص [page:Texture.wrapS wrapS] و [page:Texture.wrapT wrapT] للقوام ، التي تحدد التغليف الأفقي والرأسي للقوام. <br /> <br />
+ 			مع [page:constant RepeatWrapping] ستتكرر القوام ببساطة إلى ما لانهاية. <br /> <br />
+ 			[page:constant ClampToEdgeWrapping] هو الافتراضي. يمتد بكسل آخر من القوام إلى حافة الشبكة. <br /> <br />
+ 			مع [page:constant MirroredRepeatWrapping] ستتكرر القوام إلى ما لانهاية ، مع عكس كل تكرار.
+ 		</p>
+
+ 		<h2>مرشحات التكبير (Magnification Filters)</h2>
+ 		<code>
+		THREE.NearestFilter 
+		THREE.LinearFilter
+		</code>
+
+ 		<p>
+ 			للاستخدام مع خاصية [page:Texture.magFilter magFilter] للقوام ،
+ 			هذه تحدد وظيفة تكبير القوام المستخدمة عندما يتم تعيين البكسل المتعين
+ 			إلى منطقة أقل من أو تساوي عنصر قوام واحد (texel). <br /> <br />
+
+ 			[page:constant NearestFilter] يعيد قيمة عنصر القوام
+ 			الأقرب (في مسافة مانهاتن) إلى الإحداثيات المحددة للقوام.
+ 			<br /> <br />
+
+ 			[page:constant LinearFilter] هو الافتراضي ويعيد المتوسط ​​المرجح
+ 			للعناصر الأربعة من القوام التي هي الأقرب إلى الإحداثيات المحددة
+ 			للقوام ، ويمكن أن يشمل عناصر ملفوفة أو مكررة من أجزاء أخرى
+ 			من قوام ، اعتمادًا على قيم [page:Texture.wrapS wrapS]
+ 			و [page:Texture.wrapT wrapT] ، وعلى التعيين الدقيق.
+ 		</p>
+
+ 		<h2>مرشحات التصغير (Minification Filters)</h2>
+		<code>
+		THREE.NearestFilter 
+		THREE.NearestMipmapNearestFilter
+		THREE.NearestMipmapLinearFilter 
+		THREE.LinearFilter
+		THREE.LinearMipmapNearestFilter 
+		THREE.LinearMipmapLinearFilter
+		</code>
+
+		<p>
+			للاستخدام مع خاصية [page:Texture.minFilter minFilter] للقوام ،
+			هذه تحدد وظيفة تصغير القوام المستخدمة كلما كانت البكسل المتعين
+			يتطابق مع منطقة أكبر من عنصر قوام واحد (texel). <br /> <br />
+		 
+			بالإضافة إلى [page:constant NearestFilter] و [page:constant LinearFilter] ، يمكن استخدام الأربع وظائف التالية لـ
+			التصغير: <br /> <br />
+		 
+			[page:constant NearestMipmapNearestFilter] يختار mipmap الذي
+			يطابق حجم البكسل المتعين بشكل أكثر تطابقًا ويستخدم
+			معيار [page:constant NearestFilter] (ال texel الأقرب إلى المركز
+			من البكسل) لإنتاج قيمة قوام. <br /> <br />
+		 
+			[page:constant NearestMipmapLinearFilter] يختار mipmaps اثنان
+			يطابق حجم البكسل المتعين بشكل أكثر تطابقًا ويستخدم
+			معيار [page:constant NearestFilter] لإنتاج قيمة قوام من
+			كل mipmap. قيمة القوام النهائية هى متوسط ​​مرجح من هذه القيمتين. <br /> <br />
+		 
+			[page:constant LinearMipmapNearestFilter] يختار mipmap الذي
+			يطابق حجم البكسل المتعين بشكل أكثر تطابقًا ويستخدم
+			معيار [page:constant LinearFilter] (المتوسط ​​المرجح لأربعة `texels`)
+			التي هي الأقرب إلى مركز البكسل) لإنتاج قيمة قوام. <br /> <br />
+		 
+			[page:constant LinearMipmapLinearFilter] هو الافتراضي ويلتقط mipmaps اثنان
+			يطابق حجم البكسل المتعين بشكل أكثر تطابقًا ويلتقط [page:constant LinearFilter]
+			معاير لإنتاج قيمة قوام من كل mipmap. قيمة القوام النهائية هى متوسط ​​مرجح من
+			هذه القيمتين.
+		 
+			انظر إلى المثال [example:webgl_materials_texture_filters materials / texture / filters].
+		</p>
+
+		<h2>الأنواع (Types)</h2>
+		<code>
+		THREE.UnsignedByteType 
+		THREE.ByteType 
+		THREE.ShortType
+		THREE.UnsignedShortType 
+		THREE.IntType 
+		THREE.UnsignedIntType
+		THREE.FloatType 
+		THREE.HalfFloatType 
+		THREE.UnsignedShort4444Type
+		THREE.UnsignedShort5551Type 
+		THREE.UnsignedInt248Type
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:Texture.type type] للقوام ، التي يجب
+			أن تتوافق مع التنسيق الصحيح. انظر أدناه للحصول على التفاصيل. <br /> <br />
+		 
+			[page:constant UnsignedByteType] هو الافتراضي.
+		</p>
+		 
+		<h2>التنسيقات (Formats)</h2>
+		<code>
+		THREE.AlphaFormat 
+		THREE.RedFormat 
+		THREE.RedIntegerFormat 
+		THREE.RGFormat
+		THREE.RGIntegerFormat 
+		THREE.RGBAFormat 
+		THREE.RGBAIntegerFormat
+		THREE.LuminanceFormat 
+		THREE.LuminanceAlphaFormat 
+		THREE.DepthFormat
+		THREE.DepthStencilFormat
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:Texture.format format] للقوام ، هذه
+			تحدد كيفية قراءة عناصر قوام ثنائي الأبعاد ، أو `texels` ، بواسطة المظللات. <br /> <br />
+		 
+			[page:constant AlphaFormat] يتجاهل المكونات الحمراء والخضراء والزرقاء
+			ويقرأ فقط المكون الألفا. <br /> <br />
+		 
+			[page:constant RedFormat] يتجاهل المكونات الخضراء والزرقاء ويقرأ
+			فقط المكون الأحمر. (يمكن استخدامه فقط مع سياق WebGL 2).
+			<br /> <br />
+		 
+			[page:constant RedIntegerFormat] يتجاهل المكونات الخضراء والزرقاء
+			ويقرأ فقط المكون الأحمر. يتم قراءة `texels` كأعداد صحيحة بدلاً من
+			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			<br /> <br />
+		 
+			[page:constant RGFormat] يتجاهل المكونات الألفا والزرقاء ويقرأ
+			المكونات الحمراء والخضراء. (يمكن استخدامه فقط مع سياق WebGL 2).
+			<br /> <br />
+		 
+			[page:constant RGIntegerFormat] يتجاهل المكونات الألفا والزرقاء
+			ويقرأ المكونات الحمراء والخضراء. يتم قراءة `texels` كأعداد صحيحة بدلاً من
+			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			<br /> <br />
+		 
+			[page:constant RGBAFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء والزرقاء
+			والألفا. <br /> <br />
+		 
+			[page:constant RGBAIntegerFormat] هو الافتراضي ويلتقط المكونات الحمراء والخضراء ،
+			الزرقاء والألفا. يتم قراءة `texels` كأعداد صحيحة بدلاً من
+			نقطة عائمة. (يمكن استخدامه فقط مع سياق WebGL 2).
+			<br /> <br />
+		 
+			[page:constant LuminanceFormat] يقرأ كل عنصر كمكون إضاءة واحد
+			. يتم تحويله بعد ذلك إلى نقطة عائمة ، ويتم تثبيته في
+ 			النطاق [0،1] ، ثم يتم تجميعه في عنصر RGBA عن طريق وضع
+ 			قيمة الإضاءة في القنوات الحمراء والخضراء والزرقاء ، وإرفاق `1.0` بـ
+ 			قناة الألفا. <br /> <br />
+
+ 			[page:constant LuminanceAlphaFormat] يقرأ كل عنصر كـ
+ 			مزدوج إضاءة / ألفا. يحدث نفس العملية كما هو الحال في [page:constant LuminanceFormat] ، باستثناء أن قناة الألفا قد تحتوي على قيم غير
+ 			`1.0`. <br /> <br />
+
+ 			[page:constant DepthFormat] يقرأ كل عنصر كقيمة عمق واحدة ،
+ 			يتحول إلى نقطة عائمة ، ويتم تثبيته في النطاق [0،1]. هذا هو
+ 			الافتراضي لـ [page:DepthTexture DepthTexture]. <br /> <br />
+
+ 			[page:constant DepthStencilFormat] يقرأ كل عنصر هو زوج من العمق
+ 			وقيم المسح. يتم تفسير مكون العمق من الزوج كما هو مذكور في
+ 			[page:constant DepthFormat]. يتم تفسير مكون المسح بناءً على
+ 			التنسيق الداخلي للعمق + المسح.
+ 			<br /> <br />
+
+ 			لاحظ أنه يجب أن يكون للقوام نوع [page:Texture.type type] صحيحًا
+ 			كما هو مذكور أعلاه. انظر
+ 			[link:https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D WebGLRenderingContext.texImage2D] للحصول على التفاصيل.
+ 		</p>
+
+ 		<h2>تنسيقات القوام المضغوطة DDS / ST3C</h2>
+		<code>
+		THREE.RGB_S3TC_DXT1_Format 
+		THREE.RGBA_S3TC_DXT1_Format
+		THREE.RGBA_S3TC_DXT3_Format 
+		THREE.RGBA_S3TC_DXT5_Format
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:Texture.format format] لـ [page:CompressedTexture CompressedTexture] ،
+			هذه تتطلب دعمًا للتمديد
+			[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/ WEBGL_compressed_texture_s3tc]. <br /> <br />
+		 
+			هناك أربعة [link:https://en.wikipedia.org/wiki/S3_Texture_Compression تنسيقات S3TC]
+			متاحة عبر هذا التمديد. هذه هي: <br />
+			[page:constant RGB_S3TC_DXT1_Format]: صورة مضغوطة بتنسيق DXT1 في تنسيق صورة RGB.
+			<br />
+			[page:constant RGBA_S3TC_DXT1_Format]: صورة مضغوطة بتنسيق DXT1 في تنسيق صورة RGB
+			مع قيمة ألفا بسيطة تشغيل / إيقاف. <br />
+			[page:constant RGBA_S3TC_DXT3_Format]: صورة مضغوطة بتنسيق DXT3 في تنسيق صورة RGBA.
+			مقارنة بقوام RGBA 32 بت ، يوفر ضغطًا 4: 1. <br />
+			[page:constant RGBA_S3TC_DXT5_Format]: صورة مضغوطة بتنسيق DXT5 في تنسيق صورة RGBA.
+			كما يوفر ضغطًا 4: 1 ، ولكن يختلف عن ضغط DXT3 في كيفية ضغط الألفا. <br />
+		</p>
+		 
+		<h2>تنسيقات القوام المضغوط PVRTC</h2>
+		<code>
+		THREE.RGB_PVRTC_4BPPV1_Format
+		THREE.RGB_PVRTC_2BPPV1_Format
+		THREE.RGBA_PVRTC_4BPPV1_Format 
+		THREE.RGBA_PVRTC_2BPPV1_Format
+		</code>
+		<p>
+		للاستخدام مع خاصية [page:Texture.format format] لـ [page:CompressedTexture CompressedTexture] ،
+		هذه تتطلب دعمًا للتمديد
+		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/ WEBGL_compressed_texture_pvrtc]. <br />
+		عادةً ما يكون PVRTC متاحًا فقط على الأجهزة المحمولة التي تحتوي على شرائح PowerVR ،
+		والتي هي في الغالب أجهزة Apple. <br /> <br />
+		 
+		هناك أربعة [link:https://en.wikipedia.org/wiki/PVRTC تنسيقات PVRTC]
+		متاحة عبر هذا التمديد. هذه هي: <br />
+		[page:constant RGB_PVRTC_4BPPV1_Format]: ضغط RGB في وضع 4 بت.
+		كتلة واحدة لكل 4×4 بكسل. <br />
+		[page:constant RGB_PVRTC_2BPPV1_Format]: ضغط RGB في وضع 2 بت.
+		كتلة واحدة لكل 8×4 بكسل. <br />
+		[page:constant RGBA_PVRTC_4BPPV1_Format]: ضغط RGBA في وضع 4 بت.
+		كتلة واحدة لكل 4×4 بكسل. <br />
+		[page:constant RGBA_PVRTC_2BPPV1_Format]: ضغط RGBA في وضع 2 بت.
+		كتلة واحدة لكل 8×4 بكسل. <br />
+		</p>
+		 
+
+		<h2>تنسيق القوام المضغوط ETC</h2>
+		<code>
+		THREE.RGB_ETC1_Format 
+		THREE.RGB_ETC2_Format 
+		THREE.RGBA_ETC2_EAC_Format
+		</code>
+		<p>
+		للاستخدام مع خاصية [page:Texture.format format] لـ [page:CompressedTexture CompressedTexture] ،
+		هذه تتطلب دعمًا للتمديد
+		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/ WEBGL_compressed_texture_etc1] (ETC1) أو
+		[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/ WEBGL_compressed_texture_etc] (ETC2). <br /> <br />
+		</p>
+		 
+		<h2>تنسيق القوام المضغوط ASTC</h2>
+		<code>
+		THREE.RGBA_ASTC_4x4_Format 
+		THREE.RGBA_ASTC_5x4_Format
+		THREE.RGBA_ASTC_5x5_Format 
+		THREE.RGBA_ASTC_6x5_Format
+		THREE.RGBA_ASTC_6x6_Format 
+		THREE.RGBA_ASTC_8x5_Format
+		THREE.RGBA_ASTC_8x6_Format 
+		THREE.RGBA_ASTC_8x8_Format
+		THREE.RGBA_ASTC_10x5_Format 
+		THREE.RGBA_ASTC_10x6_Format
+		THREE.RGBA_ASTC_10x8_Format 
+		THREE.RGBA_ASTC_10x10_Format
+		THREE.RGBA_ASTC_12x10_Format 
+		THREE.RGBA_ASTC_12x12_Format
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:Texture.format format] لـ [page:CompressedTexture CompressedTexture] ،
+			هذه تتطلب دعمًا للتمديد
+			[link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/ WEBGL_compressed_texture_astc]. <br /> <br />
+		</p>
+		 
+		<h2>تنسيق القوام المضغوط BPTC</h2>
+		<code>
+		THREE.RGBA_BPTC_Format
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:Texture.format format] لـ [page:CompressedTexture CompressedTexture] ،
+			هذه تتطلب دعمًا للتمديد
+			[link:https://www.khronos.org/registry/webgl/extensions/EXT_texture_compression_bptc/ EXT_texture_compression_bptc]. <br /> <br />
+		</p>
+		 
+		<h2>وظائف مقارنة القوام (Texture Comparison functions)</h2>
+		<code>
+		THREE.NeverCompare
+		THREE.LessCompare
+		THREE.EqualCompare
+		THREE.LessEqualCompare
+		THREE.GreaterCompare
+		THREE.NotEqualCompare
+		THREE.GreaterEqualCompare
+		THREE.AlwaysCompare
+		</code>
+		 
+		<h2>التنسيقات الداخلية (Internal Formats)</h2>
+		<code>
+		'ALPHA'
+		'RGB'
+		'RGBA'
+		'LUMINANCE'
+		'LUMINANCE_ALPHA'
+		'RED_INTEGER'
+		'R8'
+		'R8_SNORM'
+		'R8I'
+		'R8UI'
+		'R16I'
+		'R16UI'
+		'R16F'
+		'R32I'
+		'R32UI'
+		'R32F'
+		'RG8'
+		'RG8_SNORM'
+		'RG8I'
+		'RG8UI'
+		'RG16I'
+		'RG16UI'
+		'RG16F'
+		'RG32I'
+		'RG32UI'
+		'RG32F'
+		'RGB565'
+		'RGB8'
+		'RGB8_SNORM'
+		'RGB8I'
+		'RGB8UI'
+		'RGB16I'
+		'RGB16UI'
+		'RGB16F'
+		'RGB32I'
+		'RGB32UI'
+		'RGB32F'
+		'RGB9_E5'
+		'SRGB8'
+		'R11F_G11F_B10F'
+		'RGBA4'
+		'RGBA8'
+		'RGBA8_SNORM'
+		'RGBA8I'
+		'RGBA8UI'
+		'RGBA16I'
+		'RGBA16UI'
+		'RGBA16F'
+		'RGBA32I'
+		'RGBA32UI'
+		'RGBA32F'
+		'RGB5_A1'
+		'RGB10_A2'
+		'RGB10_A2UI'
+		'SRGB8_ALPHA8'
+		'DEPTH_COMPONENT16'
+		'DEPTH_COMPONENT24'
+		'DEPTH_COMPONENT32F'
+		'DEPTH24_STENCIL8'
+		'DEPTH32F_STENCIL8'
+		</code>
+
+		<p>
+			تنبيه: تغيير التنسيق الداخلي للقوام سيؤثر فقط على
+			القوام عند استخدام سياق WebGL 2. <br /> <br />
+		 
+			للاستخدام مع خاصية [page:Texture.internalFormat internalFormat] للقوام ،
+			هذه تحدد كيفية تخزين عناصر قوام ، أو `texels` ،
+			على وحدة معالجة الرسومات. <br /> <br />
+		 
+			[page:constant R8] يخزن المكون الأحمر على 8 بت. <br /> <br />
+		 
+			[page:constant R8_SNORM] يخزن المكون الأحمر على 8 بت. المكون
+			يتم تخزينه كمعيار. <br /> <br />
+		 
+			[page:constant R8I] يخزن المكون الأحمر على 8 بت. المكون هو
+			يتم تخزينه كعدد صحيح. <br /> <br />
+		 
+			[page:constant R8UI] يخزن المكون الأحمر على 8 بت. المكون هو
+			يتم تخزينه كعدد صحيح غير موقع. <br /> <br />
+		 
+			[page:constant R16I] يخزن المكون الأحمر على 16 بت. المكون هو
+			يتم تخزينه كعدد صحيح. <br /> <br />
+		 
+			[page:constant R16UI] يخزن المكون الأحمر على 16 بت. المكون
+			يتم تخزينه كعدد صحيح غير موقع. <br /> <br />
+		 
+			[page:constant R16F] يخزن المكون الأحمر على 16 بت. المكون هو
+			يتم تخزينه كعائمة نقطية. <br /> <br />
+		 
+			[page:constant R32I] يخزن المكون الأحمر على 32 بت. المكون هو
+			يتم تخزينه كعدد صحيح. <br /> <br />
+		 
+			[page:constant R32UI] يخزن المكون الأحمر على 32 بت. المكون
+			يتم تخزينه كعدد صحيح غير موقع. <br /> <br />
+		 
+			[page:constant R32F] يخزن المكون الأحمر على 32 بت. المكون هو
+			يتم تخزينه كعائمة نقطية. <br /> <br />
+
+			[page:constant RG8] يخزن المكونات الحمراء والخضراء على 8 بت لكل منهما. <br /> <br />
+
+ 			[page:constant RG8_SNORM] يخزن المكونات الحمراء والخضراء على 8 بت
+ 			لكل منهما. يتم تخزين كل مكون كمعيار.
+ 			<br /> <br />
+
+ 			[page:constant RG8I] يخزن المكونات الحمراء والخضراء على 8 بت لكل منهما.
+ 			يتم تخزين كل مكون كعدد صحيح.
+ 			<br /> <br />
+
+ 			[page:constant RG8UI] يخزن المكونات الحمراء والخضراء على 8 بت لكل منهما.
+ 			يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /> <br />
+
+ 			[page:constant RG16I] يخزن المكونات الحمراء والخضراء على 16 بت لكل منهما.
+ 			يتم تخزين كل مكون كعدد صحيح.
+ 			<br /> <br />
+
+ 			[page:constant RG16UI] يخزن المكونات الحمراء والخضراء على 16 بت
+ 			لكل منهما. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /> <br />
+
+ 			[page:constant RG16F] يخزن المكونات الحمراء والخضراء على 16 بت لكل منهما.
+ 			يتم تخزين كل مكون كعائمة نقطية.
+ 			<br /> <br />
+
+ 			[page:constant RG32I] يخزن المكونات الحمراء والخضراء على 32 بت لكل منهما.
+ 			يتم تخزين كل مكون كعدد صحيح.
+ 			<br /> <br />
+
+ 			[page:constant RG32UI] يخزن المكونات الحمراء والخضراء على 32 بت.
+ 			يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RG32F] يخزن المكونات الحمراء والخضراء على 32 بت.
+ 			يتم تخزين كل مكون كعدد عائم.
+ 			<br /><br />
+ 
+ 			[page:constant RGB8] يخزن المكونات الحمراء والخضراء والزرقاء على 8 بت
+ 			لكل منهما. [page:constant RGB8_SNORM] يخزن المكونات الحمراء والخضراء والزرقاء
+ 			على 8 بت لكل منهما. يتم تخزين كل مكون كمعيار.
+ 			<br /><br />
+ 
+ 			[page:constant RGB8I] يخزن المكونات الحمراء والخضراء والزرقاء على 8 بت
+ 			لكل منهما. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+ 
+ 			[page:constant RGB8UI] يخزن المكونات الحمراء والخضراء والزرقاء على 8
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGB16I] يخزن المكونات الحمراء والخضراء والزرقاء على 16
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+ 
+ 			[page:constant RGB16UI] يخزن المكونات الحمراء والخضراء والزرقاء على 16
+ 			بت لكل منهما. يتم تخزيน كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGB16F] يخزن المكونات الحمراء والخضراء والزرقاء على 16
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد عائم
+ 			<br /><br />
+ 
+ 			[page:constant RGB32I] يخزن المكونات الحمراء والخضراء والزرقاء على 32
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+
+ 			[page:constant RGB32UI] يخزن المكونات الحمراء والخضراء والزرقاء على 32
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGB32F] يخزن المكونات الحمراء والخضراء والزرقاء على 32
+ 			بت لكل منهما. يتم تخزين كل مكون كعدد عائم.
+ 			<br /><br />
+ 
+ 			[page:constant R11F_G11F_B10F] يخزن المكونات الحمراء والخضراء والزرقاء
+ 			على التوالي على 11 بت ، 11 بت ، و 10 بت. يتم تخزين كل مكون كعدد عائم.
+ 			<br /><br />
+ 
+ 			[page:constant RGB565] يخزن المكونات الحمراء والخضراء والزرقاء
+ 			على التوالي على 5 بت ، 6 بت ، و 5 بت.<br /><br />
+ 
+ 			[page:constant RGB9_E5] يخزن المكونات الحمراء والخضراء والزرقاء على 9
+ 			بت لكل منهما.<br /><br />
+ 
+ 			[page:constant RGBA8] يخزن المكونات الحمراء والخضراء والزرقاء وألفا على
+ 			8 بت لكل منهما.<br /><br />
+ 
+ 			[page:constant RGBA8_SNORM] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 8 بت. يتم تخزين كل مكون كمعيار.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA8I] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 8 بت لكل منهما. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA8UI] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 8 بت. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA16I] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 16 بت. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA16UI] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 16 بت. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA16F] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 16 بت. يتم تخزين كل مكون كعدد عائم.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA32I] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 32 بت. يتم تخزين كل مكون كعدد صحيح.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA32UI] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 32 بت. يتم تخزين كل مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant RGBA32F] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 32 بت. يتم تخزين كل مكون كعدد عائم.
+ 			<br /><br />
+ 
+ 			[page:constant RGB5_A1] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على التوالي على 5 بت ، 5 بت ، 5 بت ، و 1 بت.<br /><br />
+ 
+ 			[page:constant RGB10_A2] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على التوالي على 10 بت ، 10 بت ، 10 بت و 2 بت.<br /><br />
+ 
+ 			[page:constant RGB10_A2UI] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على التوالي على 10 بت ، 10 بت ، 10 بت و 2 بت. يتم تخزين كل
+ 			مكون كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant SRGB8] يخزن المكونات الحمراء والخضراء والزرقاء على 8 بت
+ 			لكل منهما.<br /><br />
+ 
+ 			[page:constant SRGB8_ALPHA8] يخزن المكونات الحمراء والخضراء والزرقاء وألفا
+ 			على 8 بت لكل منهما.<br /><br />
+ 
+ 			[page:constant DEPTH_COMPONENT16] يخزن مكون العمق على 16 بت.<br /><br />
+ 
+ 			[page:constant DEPTH_COMPONENT24] يخزن مكون العمق على 24 بت.<br /><br />
+ 
+ 			[page:constant DEPTH_COMPONENT32F] يخزن مكون العمق على 32 بت.
+ 			يتم تخزين المكون كعدد عائم.<br /><br />
+ 
+ 			[page:constant DEPTH24_STENCIL8] يخزن مكوان العمق ، ومكوان الإستانسيل
+ 			على التوالي على 24 بت و 8 بت. يتم تخزين مكوان الإستانسيل كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			[page:constant DEPTH32F_STENCIL8] يخزن مكوان العمق ، ومكوان الإستانسيل
+ 			على التوالي على 32 بت و 8 بت. يتم تخزين مكوان العمق كعدد عائم ، ومكوان الإستانسيل كعدد صحيح غير موقع.
+ 			<br /><br />
+ 
+ 			لاحظ أنه يجب أن تحظى المادة المستهلكة للصورة (texture) بـ [page:Texture.type type]
+ 			صحيحة، فضلاً عن [page:Texture.format format]. اطَّلِعْ عَلى 
+ 			[link:https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D WebGLRenderingContext.texImage2D], and
+ 			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/texImage3D WebGL2RenderingContext.texImage3D], لِلْحُصُولِ عَلىْ تَفَاصِيلَ أَكْثَرَ حَولَ 
+ 			إِجْهِادِ [page:Texture.format format],
+ 			[page:Texture.internalFormat internalFormat], and [page:Texture.type type].<br /><br />
+ 
+ 			لِلْحُصُولِ عَلىْ مَعْلُوْمَاتَ أَشْمَلَ حَولَ التَّشْكِيلَاتِ الدَّاخِلِيَّةِ، يُمْكِنُ أَيْضا أَ نْ تُشِيرُ إِلَى 
+ 			[link:https://www.khronos.org/registry/webgl/specs/latest/2.0/ WebGL2 Specification] and to the
+ 			[link:https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf OpenGL ES 3.0 Specification].
+ 		</p>
+ 
+		<h2>تعبئة العمق (Depth Packing)</h2>
+		<code>
+		THREE.BasicDepthPacking 
+		THREE.RGBADepthPacking
+		</code>
+		<p>
+			للاستخدام مع خاصية [page:MeshDepthMaterial.depthPacking depthPacking]
+			لـ `MeshDepthMaterial`.
+		</p>
+			 
+		<h2>مساحة اللون (Color Space)</h2>
+		<code>
+		THREE.NoColorSpace = ""
+		THREE.SRGBColorSpace = "srgb"
+		THREE.LinearSRGBColorSpace = "srgb-linear"
+		</code>
+		<p>
+			يستخدم لتحديد مساحة اللون للصور (ومساحة اللون الناتجة من
+			المُصَوِّر).<br /><br />
+			 
+			إذا تم تغيير نوع مساحة اللون بعد استخدام الصورة بالفعل
+			بواسطة مادة ، ستحتاج إلى تعيين [page:Material.needsUpdate Material.needsUpdate] إلى `true` لإعادة تجميع المادة.<br /><br />
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
+	</body>
+</html>

+ 235 - 0
docs/api/ar/core/BufferAttribute.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">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تخزن هذه الفئة بيانات لسمة (مثل مواضع الرأس ، ومؤشرات الوجه ، والمعايير ، والألوان ، والأشعة فوق البنفسجية ، وأي سمات مخصصة) المرتبطة
+			مع [page:BufferGeometry] ، مما يسمح بتمرير البيانات بشكل أكثر كفاءة
+			إلى وحدة معالجة الرسومات. انظر تلك الصفحة للحصول على التفاصيل ومثال على الاستخدام. عند العمل
+			مع بيانات مثل المتجهات ، قد تكون طرق المساعد <i>.fromBufferAttribute(attribute, index)</i>
+			على [page:Vector2.fromBufferAttribute Vector2]،
+			[page:Vector3.fromBufferAttribute Vector3]،
+			[page:Vector4.fromBufferAttribute Vector4]، و
+			[page:Color.fromBufferAttribute Color] قد تكون مفيدة.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]([param:TypedArray array]، [param:Integer itemSize]، [param:Boolean normalized])</h3>
+		<p>
+			[page:TypedArray array] - يجب أن يكون
+			[link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray]. يستخدم لإنشاء المخزن المؤقت. <br />
+			يجب أن يحتوي هذا المصفوفة على
+			<code>
+			itemSize * numVertices
+			</code>
+			عناصر ، حيث numVertices هو عدد الرؤوس في المرتبطة
+			[page:BufferGemetry BufferGeometry].<br /><br />
+			
+			[page:Integer itemSize] - عدد قيم المصفوفة التي يجب
+			ترتبط برأس معين. على سبيل المثال ، إذا كانت هذه السمة هي
+			تخزين متجه من 3 مكونات (مثل الموضع أو الطبيعي أو اللون) ، فإن
+			itemSize يجب أن يكون 3.
+			<br /><br />
+			
+			[page:Boolean normalized] - (اختياري) ينطبق على البيانات الصحيحة فقط.
+			يشير إلى كيفية تعيين البيانات الأساسية في المخزن المؤقت إلى القيم في
+			كود GLSL. على سبيل المثال ، إذا كان [page:TypedArray array] هو نسخة من
+			UInt16Array ، و [page:Boolean normalized] صحيحًا ، فإن القиم `0 -
+			+65535` في بيانات المصفوفة ستُخرج إلى 0.0f - +1.0f في GLSL
+			attribute. ستُخرج Int16Array (signed) من -32768 - +32767 إلى -1.0f
+			- +1.0f. إذا كان [page:Boolean normalized] خطأً ، فستكون القيم
+			تحول إلى floats دون تعديل ، أي 32767 يصبح 32767.0f.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:TypedArray array]</h3>
+		<p>ال[page:TypedArray array] التي تحمل البيانات المخزنة في المخزن المؤقت.</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			يخزن طول [page:BufferAttribute.array array] مقسومًا على
+			[page:BufferAttribute.itemSize itemSize].<br /><br />
+
+			إذا كان المخزن يخزن متجهًا من 3 مكونات (مثل الموضع أو الطبيعي أو اللون) ، فسيحسب عدد هذه المتجهات المخزنة.
+		</p>
+
+		<h3>[property:Boolean isBufferAttribute]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			طول المتجهات التي يتم تخزينها في
+			[page:BufferAttribute.array array].
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>اسم اختياري لهذا الحدث من السمة. الافتراضي هو سلسلة فارغة.</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			علامة للإشارة إلى أن هذه السمة قد تغيرت ويجب إعادة إرسالها إلى
+			وحدة معالجة الرسومات. قم بتعيين هذا على true عند تعديل قيمة المصفوفة.<br /><br />
+
+			تعيين هذا على true يزيد أيضًا من [page:BufferAttribute.version version].
+		</p>
+
+		<h3>[property:Boolean normalized]</h3>
+		<p>
+			يشير إلى كيفية تعيين البيانات الأساسية في المخزن المؤقت إلى القيم في
+			كود GLSL. راجع المُنشئ أعلاه للحصول على التفاصيل.
+		</p>
+
+		<h3>[property:Function onUploadCallback]</h3>
+		<p>
+			دالة رد اتصال يتم تنفيذها بعد أن قام Renderer بنقل
+			بيانات مصفوفة السمة إلى وحدة معالجة الرسومات.
+		</p>
+
+		<h3>[property:Object updateRange]</h3>
+		<p>
+			كائن يحتوي على:<br />
+			[page:Integer offset]: الافتراضية هي `0`. الموضع الذي يجب أن يبدأ فيه
+			التحديث.<br />
+			[page:Integer count]: الافتراضية هي `-1` ، وهذا يعني عدم استخدام التحديث
+			المدى. <br /><br />
+
+			يمكن استخدام هذا لتحديث بعض مكونات المتجهات المخزنة فقط (على سبيل المثال ، فقط المكوِّن المرتبط باللون).
+		</p>
+
+		<h3>[property:Usage usage]</h3>
+		<p>
+			يحدد نمط الاستخدام المقصود لمخزن البيانات لأغراض التحسين
+			. يتوافق مع معلمة `usage` من
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData](). الافتراضي هو [page:BufferAttributeUsage StaticDrawUsage]. راجع الاستخدام [page:BufferAttributeUsage constants] لجميع
+			القيم الممكنة. <br /><br />
+
+			ملاحظة: بعد الاستخدام الأولي للمخزن المؤقت ، لا يمكن تغيير استخدامه.
+			بدلاً من ذلك ، قم بإنشاء نسخة جديدة وتعيين الاستخدام المطلوب قبل التالي
+			جعل.
+		</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+			رقم إصدار ، يزداد كل مرة
+			[page:BufferAttribute.needsUpdate needsUpdate] يتم تعيين خاصية على true.
+		</p>
+
+		<h2>الوظائف (Methods)</h2>
+
+		<h3>[method:this applyMatrix3]([param:Matrix3 m])</h3>
+		<p>
+			تطبق المصفوفة [page:Matrix3 m] على كل عنصر Vector3 من هذا
+			BufferAttribute.
+		</p>
+
+		<h3>[method:this applyMatrix4]([param:Matrix4 m])</h3>
+		<p>
+			تطبق المصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذا
+			BufferAttribute.
+		</p>
+
+		<h3>[method:this applyNormalMatrix]([param:Matrix3 m])</h3>
+		<p>
+			تطبق المصفوفة الطبيعية [page:Matrix3 m] على كل عنصر Vector3 من هذا
+			BufferAttribute.
+		</p>
+
+		<h3>[method:this transformDirection]([param:Matrix4 m])</h3>
+		<p>
+			تطبق المصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذا
+			BufferAttribute ، مع تفسير العناصر كمتجهات اتجاه.
+		</p>
+
+		<h3>[method:BufferAttribute clone]()</h3>
+		<p>إرجاع نسخة من هذه bufferAttribute.</p>
+
+		<h3>[method:this copy]([param:BufferAttribute bufferAttribute])</h3>
+		<p>ينسخ BufferAttribute آخر إلى هذه BufferAttribute.</p>
+
+		<h3>[method:this copyArray](array)</h3>
+		<p>
+			انسخ المصفوفة المعطاة هنا (والتي يمكن أن تكون مصفوفة عادية أو TypedArray) إلى
+			[page:BufferAttribute.array array].<br /><br />
+
+			انظر
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set] للحصول على ملاحظات حول المتطلبات إذا كان يتم نسخ TypedArray.
+		</p>
+
+		<h3>[method:this copyAt]([param:Integer index1]، [param:BufferAttribute bufferAttribute]، [param:Integer index2])</h3>
+		<p>انسخ متجهًا من bufferAttribute[index2] إلى [page:BufferAttribute.array array][index1].</p>
+
+		<h3>[method:Number getX]([param:Integer index])</h3>
+		<p>يعيد مكون x من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:Number getY]([param:Integer index])</h3>
+		<p>يعيد مكون y من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:Number getZ]([param:Integer index])</h3>
+		<p>يعيد مكون z من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:Number getW]([param:Integer index])</h3>
+		<p>يعيد مكون w من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:this onUpload]([param:Function callback])</h3>
+		<p>
+			يضع قيمة خاصية onUploadCallback.<br /><br />
+
+			في [example:webgl_buffergeometry WebGL / Buffergeometry] يتم استخدام هذا
+			لتحرير الذاكرة بعد نقل المخزن إلى وحدة معالجة الرسومات.
+		</p>
+
+		<h3>[method:this set]([param:Array value]، [param:Integer offset])</h3>
+		<p>
+			value - [page:Array] أو [page:TypedArray] لنسخ القيم منه.
+			<br />
+			offset - (اختياري) فهرس [page:BufferAttribute.array array] في
+			الذي يجب البدء في النسخ.<br /><br />
+
+			المكالمات
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]([page:Array value]، [page:Integer offset]) على
+			[page:BufferAttribute.array array].<br /><br />
+
+			على وجه الخصوص ، انظر تلك الصفحة للحصول على متطلبات [page:Array value] كونها
+			[page:TypedArray].
+		</p>
+
+		<h3>[method:this setUsage]([param:Usage value])</h3>
+		<p>
+			قم بتعيين [page:BufferAttribute.usage usage] إلى value. راجع الاستخدام
+			[page:BufferAttributeUsage constants] لجميع قيم الإدخال الممكنة.
+			<br /><br />
+
+			ملاحظة: بعد الاستخدام الأولي للمخزن المؤقت ، لا يمكن تغيير استخدامه.
+			بدلاً من ذلك ، قم بإنشاء نسخة جديدة وتعيين الاستخدام المطلوب قبل التالي
+			جعل.
+		</p>
+
+		<h3>[method:this setX]([param:Integer index], [param:Float x])</h3>
+		<p>تضبط مكون x من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:this setY]([param:Integer index], [param:Float y])</h3>
+		<p>تضبط مكون y من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:this setZ]([param:Integer index], [param:Float z])</h3>
+		<p>تضبط مكون z من المتجه في المؤشر المحدد.</p>
+
+		<h3>[method:this setW]([param:Integer index], [param:Float w])</h3>
+		<p>تضبط مكون w من المتجه في المؤشر المحдد.</p>
+
+		<h3>[method:this setXY]([param:Integer index], [param:Float x], [param:Float y])</h3>
+		<p>تضبط مكونات x و y من المتجه في
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 366 - 0
docs/api/ar/core/BufferGeometry.html

@@ -0,0 +1,366 @@
+<!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>
+			تمثيل شبكة ، خط ، أو هندسة نقطية. يتضمن مواقع الرأس ، ومؤشرات الوجه ، والمعايير ، والألوان ، والأشعة فوق البنفسجية ، والسمات المخصصة
+			داخل المخازن المؤقتة ، مما يقلل من تكلفة تمرير كل هذه البيانات إلى وحدة معالجة الرسومات.
+		</p>
+		<p>
+			لقراءة وتحرير البيانات في سمات BufferGeometry ، راجع
+			[page:BufferAttribute] التوثيق.
+		</p>
+	
+		<h2>مثال للكود</h2>
+	
+		<code>
+		const geometry = new THREE.BufferGeometry();
+	
+		// إنشاء شكل مربع بسيط. نحن نكرر الأعلى الأيسر والأسفل الأيمن
+		// الرؤوس لأن كل رأس يحتاج إلى الظهور مرة واحدة لكل مثلث.
+		const vertices = new Float32Array( [
+			-1.0, -1.0,  1.0, // v0
+			 1.0, -1.0,  1.0, // v1
+			 1.0,  1.0,  1.0, // v2
+	
+			 1.0,  1.0,  1.0, // v3
+			-1.0,  1.0,  1.0, // v4
+			-1.0, -1.0,  1.0  // v5
+		] );
+	
+		// itemSize = 3 لأنه يوجد 3 قيم (مكونات) لكل رأس
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		const mesh = new THREE.Mesh( geometry, material );
+		</code>
+	
+		<h2>مثال للكود (Index)</h2>
+	
+		<code>
+		const geometry = new THREE.BufferGeometry();
+	
+		const vertices = new Float32Array( [
+			-1.0, -1.0,  1.0, // v0
+			 1.0, -1.0,  1.0, // v1
+			 1.0,  1.0,  1.0, // v2
+			-1.0,  1.0,  1.0, // v3
+		] );
+	
+		const indices = [
+			0, 1, 2,
+			2, 3, 0,
+		];
+	
+		geometry.setIndex( indices );
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+
+		const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		const mesh = new THREE.Mesh( geometry, material );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_buffergeometry شبكة بوجوه غير مفهرسة]<br />
+			[example:webgl_buffergeometry_indexed شبكة بوجوه مفهرسة]<br />
+			[example:webgl_buffergeometry_lines خطوط]<br />
+			[example:webgl_buffergeometry_lines_indexed خطوط مفهرسة]<br />
+			[example:webgl_buffergeometry_custom_attributes_particles جزيئات]<br />
+			[example:webgl_buffergeometry_rawshader محركات الظل الخام]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]()</h3>
+		<div>
+			ينشئ هذا [name] جديدًا. كما يضبط العديد من الخصائص على قيمة افتراضية
+			قيمة.
+		</div>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Object attributes]</h3>
+		<p>
+			يحتوي هذا الخريطة القائمة على الهوية على اسم السمة المراد تعيينها وكقيمة
+			[page:BufferAttribute buffer] لتعيينه. بدلاً من الوصول إلى هذا
+			الملكية مباشرة ، استخدم [page:.setAttribute] و [page:.getAttribute] ل
+			الوصول إلى سمات هذه الهندسة.
+		</p>
+		 
+		<h3>[property:Box3 boundingBox]</h3>
+		<p>
+			مربع التحديد لـ bufferGeometry ، والذي يمكن حسابه بـ
+			[page:.computeBoundingBox](). الافتراضي هو `null`.
+		</p>
+		 
+		<h3>[property:Sphere boundingSphere]</h3>
+		<p>
+			كرة التحديد لـ bufferGeometry ، والتي يمكن حسابها بـ
+			[page:.computeBoundingSphere](). الافتراضي هو `null`.
+		</p>
+		 
+		<h3>[property:Object drawRange]</h3>
+		<p>
+			يحدد جزء الهندسة المراد عرضه. يجب عدم تعيين هذا
+			مباشرة ، بدلاً من ذلك استخدم [page:.setDrawRange]. الافتراضي هو
+			<code>
+			{ start: 0, count: Infinity }
+			</code>
+			بالنسبة لـ BufferGeometry غير المفهرس ، count هو عدد القمم التي يتم عرضها.
+			بالنسبة لـ BufferGeometry المفهرس ، count هو عدد المؤشرات التي يتم عرضها.
+		</p>
+		 
+		<h3>[property:Array groups]</h3>
+		 
+		<p>
+			قسم الهندسة إلى مجموعات ، كل منها سيتم عرضه في
+			مكالمة WebGL رسم منفصلة. هذا يسمح باستخدام مجموعة من المواد
+			مع الهندسة. <br /> <br />
+			 
+			كل مجموعة هي كائن من الشكل:
+			<code>
+			{ start: Integer, count: Integer, materialIndex: Integer }
+			</code>
+			حيث يحدد start العنصر الأول في هذه المكالمة - الأول
+			رأس للهندسة غير المفهرسة ، وإلا فإن المثلث الأول فهرس. عد
+			يحدد كم عدد القمم (أو المؤشرات) المضمنة ، و materialIndex
+			يحدد فهرس مجموعة المواد للاستخدام. <br /> <br />
+			 
+			استخدم [page:.addGroup] لإضافة مجموعات ، بدلاً من تعديل هذا المصفوفة
+			مباشرة. <br /> <br />
+			 
+			يجب أن ينتمي كل رأس وفهرس إلى مجموعة واحدة فقط - يجب ألا تشترك المجموعات
+			قمم أو مؤشرات ، ويجب ألا تترك القمم أو المؤشرات غير المستخدمة.
+		</p>
+			 
+		<!-- ملاحظة: كانت المجموعات تسمى drawCalls
+			 
+		<h3>[property:Array drawcalls]</h3>
+		<p>
+		بالنسبة للهندسات التي تستخدم المثلثات المفهرسة ، يمكن استخدام هذا المصفوفة لتقسيم الكائن
+		إلى عدة مكالمات رسم WebGL. سترسم كل مكالمة رسم بعض الفئات الفرعية من القمم
+		في هذه الهندسة باستخدام [page:Material shader] المكون. قد يكون هذا ضروريًا إذا ،
+		على سبيل المثال ، لديك أكثر من 65535 رأسًا في كائنك.
+		</p> -->
+			 
+		<h3>[property:Integer id]</h3>
+		<p>رقم فريد لهذا الحال bufferGeometry.</p>
+			 
+		<h3>[property:BufferAttribute index]</h3>
+		<p>
+			يتيح إعادة استخدام القمم عبر مثلثات متعددة ؛ هذا هو
+			يسمى باستخدام "المثلثات المفهرسة". يرتبط كل مثلث بـ
+			مؤشرات ثلاث قمم. لذلك تخزن هذه السمة فهرس
+			كل رأس لكل وجه ثلاثي الأضلاع. إذا لم يتم تعيين هذه السمة ، فإن
+			[page:WebGLRenderer renderer] يفترض أن كل ثلاثة مواقع متجاورة
+			تمثل مثلثًا واحدًا. الافتراضي هو `null`.
+		</p>
+				 
+		<h3>[property:Boolean isBufferGeometry]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المحدد من نوع [name].</p>
+				 
+		<h3>[property:Object morphAttributes]</h3>
+		<p>
+			خريطة قائمة على [page:BufferAttribute]s التي تحمل تفاصيل هندسة المورف
+			الأهداف. <br />
+			ملاحظة: بمجرد عرض الهندسة ، لا يمكن تغيير بيانات سمة المورف
+			يتغير. سيتعين عليك الاتصال [page:.dispose]() ، وإنشاء جديد
+			نسخة من [name].
+		</p>
+				 
+		<h3>[property:Boolean morphTargetsRelative]</h3>
+		<p>
+			يستخدم للتحكم في سلوك هدف المورف ؛ عند تعيينه على true ، المورف
+			يتم التعامل مع بيانات الهدف كإزاحات نسبية ، بدلاً من كـ
+			المواقع / المعايير المطلقة. الافتراضي هو `false`.
+		</p>
+				 
+		<h3>[property:String name]</h3>
+		<p>
+			اسم اختياري لهذه الحالة bufferGeometry. الافتراضي هو فارغ
+			سلسلة.
+		</p>
+				 
+		<h3>[property:Object userData]</h3>
+		<p>
+			كائن يمكن استخدامه لتخزين بيانات مخصصة حول BufferGeometry.
+			يجب ألا يحتوي على مراجع للوظائف حيث لن يتم استنساخها.
+		</p>
+				 
+		<h3>[property:String uuid]</h3>
+		<p>
+			[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
+			هذه الحالة كائن. يتم تعيين هذا تلقائيًا ولا يجب أن يكون
+			تحرير.
+		</p>
+		
+		<h2>الوظائف (Methods)</h2>
+				 
+		<p>
+			[page:EventDispatcher EventDispatcher] الطرق متوفرة على هذا
+			صف.
+		</p>
+				 
+		<h3>[method:undefined addGroup]([param:Integer start]، [param:Integer count]، [param:Integer materialIndex])</h3>
+		<p>
+			يضيف مجموعة إلى هذه الهندسة ؛ انظر [page:BufferGeometry.groups groups]
+			خاصية للحصول على التفاصيل.
+		</p>
+				 
+		<h3>[method:this applyMatrix4]([param:Matrix4 matrix])</h3>
+		<p>تطبق تحويل المصفوفة على الهندسة.</p>
+				 
+		<h3>[method:this applyQuaternion]([param:Quaternion quaternion])</h3>
+		<p>يطبق التدوير الممثل بالرباعي على الهندسة.</p>
+
+		<h3>[method:this center] ()</h3>
+		<p>مركز الهندسة بناءً على مربع التحديد.</p>
+				 
+		<h3>[method:undefined clearGroups]( )</h3>
+		<p>يمسح جميع المجموعات.</p>
+				 
+		<h3>[method:BufferGeometry clone]()</h3>
+		<p>ينشئ نسخة من هذا BufferGeometry.</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 computeTangents]()</h3>
+		<p>
+			يحسب ويضيف سمة مماسية لهذه الهندسة. <br />
+			الحساب مدعوم فقط للهندسات المفهرسة وإذا تم تعريف الوضعية ،
+			الطبيعية ، والأشعة فوق البنفسجية. عند استخدام خريطة طبيعية للفضاء المماس
+			خريطة ، تفضل خوارزمية MikkTSpace المقدمة من قبل
+			[page:BufferGeometryUtils.computeMikkTSpaceTangents] بدلاً من ذلك.
+		</p>
+				 
+		<h3>[method:undefined computeVertexNormals]()</h3>
+		<p>تحسب قمم الأوجه للبيانات القمية المعطاة. بالنسبة للهندسات المفهرسة ، يضبط الأسلوب كل قمة عادية لتكون متوسط ​​أوجه الوجه التي تشارك هذه القمة.
+		بالنسبة للهندسات غير المفهرسة ، لا تتشارك القمم ، ويضبط الأسلوب كل قمة عادية لتكون نفس وجه الوجه.</p>
+				 
+		<h3>[method:this copy]( [param:BufferGeometry bufferGeometry] )</h3>
+		<p>ينسخ BufferGeometry آخر إلى هذا BufferGeometry.</p>
+				 
+		<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
+		<p>تحذف [page:BufferAttribute attribute] بالاسم المحدد.</p>
+				 
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+			يطلق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذا المثيل. اتصل بهذا
+			الأسلوب كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
+		</p>
+				 
+		<h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
+		<p>يرجع [page:BufferAttribute attribute] بالاسم المحدد.</p>
+
+		<h3>[method:BufferAttribute getIndex] ()</h3>
+		<p>يرجع [page:.index] buffer.</p>
+				 
+		<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
+		<p>يعود `true` إذا كانت السمة بالاسم المحدد موجودة.</p>
+				 
+		<h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
+		<p>
+			vector - نقطة عالمية للنظر إليها. <br /> <br />
+				 
+			يدور الهندسة لمواجهة نقطة في الفضاء. يتم هذا عادةً كـ
+			عملية واحدة ، وليس أثناء حلقة. استخدم [page:Object3D.lookAt] لـ
+			الاستخدام النموذجي للشبكة في الوقت الفعلي.
+		</p>
+				 
+		<h3>[method:undefined normalizeNormals]()</h3>
+		<p>
+			سيكون كل متجه طبيعي في هندسة بقوة 1. هذا سوف
+			تصحح الإضاءة على سطوح الهندسة.
+		</p>
+				 
+		<h3>[method:this rotateX] ( [param:Float radians] )</h3>
+		<p>
+			قم بتدوير الهندسة حول المحور X. يتم هذا عادةً كعملية واحدة
+			عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
+			تدوير شبكة نموذجية في الوقت الفعلي.
+		</p>
+				 
+		<h3>[method:this rotateY] ( [param:Float radians] )</h3>
+		<p>
+			قم بتدوير الهندسة حول المحور Y. يتم هذا عادةً كعملية واحدة
+			عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
+			تدوير شبكة نموذجية في الوقت الفعلي.
+		</p>
+				 
+		<h3>[method:this rotateZ] ( [param:Float radians] )</h3>
+		<p>
+			قم بتدوير الهندسة حول المحور Z. يتم هذا عادةً كعملية واحدة
+			عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
+			تدوير شبكة نموذجية في الوقت الفعلي.
+		</p>
+				 
+		<h3>[method:this scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			قم بتغيير حجم بيانات الهندسة. يتم هذا عادةً كعملية واحدة ،
+			وليس أثناء حلقة. استخدام [page:Object3D.scale] لـ
+			تغيير حجم شبكات نموذجية في الوقت الفعلي.
+		</p>
+				 
+		<h3>[method:this setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<p>
+			يضع سمة لهذه الهندسة. استخدام هذا بدلاً من خصائص
+			الملكية ، لأن خريطة قائمة داخلية من [page:.attributes]
+			يتم صيانته لتسريع التكرار على السمات.
+		</p>
+				 
+		<h3>[method:undefined setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
+		<p>
+			قم بتعيين خاصية [page:.drawRange]. بالنسبة لـ BufferGeometry غير المفهرس ، count
+			هو عدد القمم التي يتم عرضها. بالنسبة لـ BufferGeometry المفهرس ، count هو
+			عدد المؤشرات التي يتم عرضها.
+		</p>
+				 
+		<h3>[method:this setFromPoints] ( [param:Array points] )</h3>
+		<p>تضبط سمات هذا BufferGeometry من مصفوفة من النقاط.</p>
+				 
+		<h3>[method:this setIndex] ( [param:BufferAttribute index] )</h3>
+		<p>ضبط buffer [page:.index].</p>
+				 
+		<h3>[method:Object toJSON]()</h3>
+		<p>
+			قُم بتحويل هندسة buffer إلى three.js
+			[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
+		</p>
+				 
+		<h3>[method:BufferGeometry toNonIndexed]()</h3>
+		<p>إرجاع إصدار غير مفهرس من BufferGeometry المفهرس.</p>
+				 
+		<h3>[method:this translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+			قُم بترجمة الهندسة. يتم هذا عادةً كعملية واحدة ،
+			وليس أثناء حلقة. استخدم [page:Object3D.position] لـ
+			ترجمة شبكات نموذجية في الوقت الفعلي.
+		</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/core/Clock.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">
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		كائن لتتبع الوقت. يستخدم هذا
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/Performance/now performance.now] إذا كان متاحًا، وإلا فإنه يعود إلى
+		دقة أقل
+		[link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now Date.now].
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Boolean autoStart] )</h3>
+		<p>
+		autoStart — (اختياري) ما إذا كان يجب تشغيل الساعة تلقائيًا عندما
+		[page:.getDelta]() يتم استدعاؤه لأول مرة. الافتراضي هو `true`.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Boolean autoStart]</h3>
+		<p>
+		إذا تم تعيينه، يبدأ الساعة تلقائيًا عندما يتم استدعاء [page:.getDelta]()
+		لأول مرة. الافتراضي هو `true`.
+		</p>
+	 
+		<h3>[property:Float startTime]</h3>
+		<p>
+		يحمل الوقت الذي تم فيه استدعاء طريقة [page:Clock.start start] للساعة
+		آخر مرة. الافتراضي هو `0`.
+		</p>
+	 
+		<h3>[property:Float oldTime]</h3>
+		<p>
+		يحمل الوقت الذي تم فيه استدعاء طرق [page:Clock.start start],
+		[page:.getElapsedTime]() أو [page:.getDelta]() للساعة آخر مرة.
+		الافتراضي هو `0`.
+		</p>
+	 
+		<h3>[property:Float elapsedTime]</h3>
+		<p>
+		يتبع المجموع الكلي للوقت الذي كانت تعمل فيه الساعة. الافتراضي هو
+		`0`.
+		</p>
+	 
+		<h3>[property:Boolean running]</h3>
+		<p>ما إذا كانت الساعة تعمل أم لا. الافتراضي هو `false`.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:undefined start]()</h3>
+		<p>
+		يبدأ الساعة. كما يضبط [page:.startTime] و [page:.oldTime] على
+		الوقت الحالي، ويضبط [page:.elapsedTime] على `0` و [page:.running] على
+		`true`.
+		</p>
+	 
+		<h3>[method:undefined stop]()</h3>
+		<p>
+		يوقف الساعة ويضبط [page:Clock.oldTime oldTime] على الوقت الحالي.
+		</p>
+	 
+		<h3>[method:Float getElapsedTime]()</h3>
+		<p>
+		احصل على المجموع الكلي للثواني التي مرت منذ بدء تشغيل الساعة وضبط [page:.oldTime] على
+		الوقت الحالي.<br />
+		إذا كان [page:.autoStart] هو `true` والساعة لا تعمل، فإنه يبدأ أيضًا
+		ساعة.
+		</p>
+	 
+		<h3>[method:Float getDelta]()</h3>
+		<p>
+		احصل على المجموع الكلي للثواني التي مرت منذ ضبط [page:.oldTime] وضبط
+		[page:.oldTime] على الوقت الحالي.<br />
+		إذا كان [page:.autoStart] هو `true` والساعة لا تعمل، فإنه يبدأ أيضًа
+		ساعة.
+		</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/core/EventDispatcher.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">
+		أحداث JavaScript للكائنات المخصصة.<br />
+		[link:https://github.com/mrdoob/eventdispatcher.js EventDispatcher على GitHub]
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		// إضافة الأحداث إلى كائن مخصص
+		class Car extends EventDispatcher {
+		start() {
+		this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+		}
+		};
+	 
+		// استخدام الأحداث مع الكائن المخصص
+		const car = new Car();
+		car.addEventListener( 'start', function ( event ) {
+		alert( event.message );
+		} );
+	 
+		car.start();
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]()</h3>
+		<p>ينشئ كائن EventDispatcher.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:undefined addEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - نوع الحدث الذي يتم الاستماع إليه.<br />
+		listener - الدالة التي يتم استدعاؤها عند إطلاق الحدث.
+		</p>
+		<p>يضيف مستمعًا إلى نوع حدث.</p>
+	 
+		<h3>[method:Boolean hasEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - نوع الحدث الذي يتم الاستماع إليه.<br />
+		listener - الدالة التي يتم استدعاؤها عند إطلاق الحدث.
+		</p>
+		<p>يتحقق مما إذا كان المستمع قد تمت إضافته إلى نوع حدث.</p>
+	 
+		<h3>[method:undefined removeEventListener]( [param:String type], [param:Function listener] )</h3>
+		<p>
+		type - نوع المستمع الذي يتم إزالته.<br />
+		listener - دالة المستمع التي يتم إزالتها.
+		</p>
+		<p>يزيل مستمعًا من نوع حدث.</p>
+	 
+		<h3>[method:undefined dispatchEvent]( [param:Object event] )</h3>
+		<p>event - الحدث الذي يتم إطلاقه.</p>
+		<p>إطلاق نوع حدث.</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/core/GLBufferAttribute.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">
+		<h1>[name]</h1>
+	
+		<p class="desc">
+			لا يقوم هذا الفئة السمة المخزنة بإنشاء VBO. بدلاً من ذلك، يستخدم
+			أي VBO يتم تمريره في المُنشئ ويمكن تغييره لاحقًا عبر خاصية
+			`buffer`.<br /><br />
+			من الضروري تمرير معلمات إضافية جنبًا إلى جنب مع VBO. هذه هي: GL
+			context، نوع البيانات GL، عدد المكونات لكل رأس، عدد البايتات لكل
+			مكون، وعدد الرؤوس.<br /><br />
+			أكثر حالات الاستخدام شيوعًا لهذه الفئة هي عندما يتداخل نوع من
+			حسابات GPGPU أو حتى ينتج VBOs المعنية.
+		</p>
+	
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )</h3>
+		<p>
+			`buffer` — يجب أن يكون
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].
+			<br />
+			`type` — واحد من
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types أنواع بيانات WebGL].
+			<br />
+			`itemSize` — عدد قيم المصفوفة التي يجب ربطها برأس معين. على سبيل
+			المثال، إذا كانت هذه السمة تخزن متجهًا ثلاثي الأبعاد (مثل الموضع،
+			 الطبيعي، أو اللون)، فيجب أن يكون itemSize هو 3.
+			 <br />
+			 `elementSize` — 1، 2 أو 4. الحجم المقابل (بالبايت) للمعلمة "type"
+			 المعطاة.
+		</p>
+	
+		<ul>
+			<li>gl.FLOAT: 4</li>
+			<li>gl.UNSIGNED_SHORT: 2</li>
+			<li>gl.SHORT: 2</li>
+			<li>gl.UNSIGNED_INT: 4</li>
+			<li>gl.INT: 4</li>
+			<li>gl.BYTE: 1</li>
+			<li>gl.UNSIGNED_BYTE: 1</li>
+		</ul>
+		<p>`count` — عدد الرؤوس المتوقع في VBO.</p>
+	
+		<h2>الخصائص (Properties)</h2>
+	
+		<h3>[property:WebGLBuffer buffer]</h3>
+		<p>
+			نسخة
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer] الحالية.
+		</p>
+	
+		<h3>[property:Integer count]</h3>
+		<p>عدد الرؤوس المتوقع في VBO.</p>
+	
+		<h3>[property:Boolean isGLBufferAttribute]</h3>
+		<p>للقراءة فقط. دائمًا `true`.</p>
+	
+		<h3>[property:Integer itemSize]</h3>
+		<p>كم عدد القيم التي تشكل كل عنصر (رأس).</p>
+	
+		<h3>[property:Integer elementSize]</h3>
+		<p>
+			يخزن الحجم المقابل بالبايت لقيمة خاصية `type` الحالية.
+		</p>
+		<p>انظر أعلاه (المُنشئ) لقائمة بأحجام الأنواع المعروفة.</p>
+	
+		<h3>[property:String name]</h3>
+		<p>
+			اسم اختياري لهذه الحالة من السمة. الافتراضي هو سلسلة فارغة.
+		</p>
+	
+		<h3>[property:GLenum type]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types نوع بيانات WebGL] يصف محتوى VBO الأساسي.
+		</p>
+		<p>
+			قم بتعيين هذه الخاصية معًا مع `elementSize`. الطريقة المستحسنة هي
+			باستخدام طريقة `setType`.
+		</p>
+	
+		<h2>الوظائف (Methods)</h2>
+	
+		<h3>[method:this setBuffer]( buffer )</h3>
+		<p>تضبط خاصية `buffer`.</p>
+	
+		<h3>[method:this setType]( type, elementSize )</h3>
+		<p>تضبط كلاً من خصائص `type` و `elementSize`.</p>
+	
+		<h3>[method:this setItemSize]( itemSize )</h3>
+		<p>تضبط خاصية `itemSize`.</p>
+	
+		<h3>[method:this setCount]( count )</h3>
+		<p>تضبط خاصية `count`.</p>
+	
+		<h3>[property:Integer version]</h3>
+		<p>
+			رقم إصدار، يزاد كل مرة يتم فيها تعيين خاصية needsUpdate على true.
+		</p>
+	
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			الافتراضي هو `false`. تعيين هذا إلى true يزاد
+			[page:GLBufferAttribute.version version].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 37 - 0
docs/api/ar/core/InstancedBufferAttribute.html

@@ -0,0 +1,37 @@
+<!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:BufferAttribute] →
+	 
+		<h1>[name]</h1>
+		<p class="desc">نسخة مثيلة من [page:BufferAttribute].</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Boolean normalized], [param:Number meshPerAttribute] )</h3>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر [page:BufferAttribute] للخصائص الموروثة.</p>
+	 
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>
+		يحدد مدى تكرار قيمة هذه السمة المخزنة. قيمة واحدة تعني أن كل قيمة من
+		السمة المثيلة يتم استخدامها لمثيل واحد. قيمتان تعني أن كل قيمة يتم
+		استخدامها لمثيلين متتاليين (وهكذا). الافتراضي هو `1`.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر [page:BufferAttribute] للطُرق الموروثة.</p>
+		
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+		
+	</body>
+</html>

+ 39 - 0
docs/api/ar/core/InstancedBufferGeometry.html

@@ -0,0 +1,39 @@
+<!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:BufferGeometry] →
+	 
+		<h1>[name]</h1>
+		<p class="desc">نسخة مثيلة من [page:BufferGeometry].</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( )</h3>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر [page:BufferGeometry] للخصائص الموروثة.</p>
+	 
+		<h3>[property:Number instanceCount]</h3>
+		<p>الافتراضي هو `Infinity`.</p>
+	 
+		<h3>[property:Boolean isInstancedBufferGeometry]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر [page:BufferGeometry] للطُرق الموروثة.</p>
+	 
+		<h3>[method:this copy]( [param:InstancedBufferGeometry source] )</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>

+ 33 - 0
docs/api/ar/core/InstancedInterleavedBuffer.html

@@ -0,0 +1,33 @@
+<!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:InterleavedBuffer] →
+	
+		<h1>[name]</h1>
+		<p class="desc">نسخة مثيلة من [page:InterleavedBuffer].</p>
+	
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer itemSize], [param:Number meshPerAttribute] )</h3>
+	
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر [page:InterleavedBuffer] للخصائص الموروثة.</p>
+	
+		<h3>[property:Number meshPerAttribute]</h3>
+		<p>الافتراضي هو `1`.</p>
+	
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر [page:InterleavedBuffer] للطُرق الموروثة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 119 - 0
docs/api/ar/core/InterleavedBuffer.html

@@ -0,0 +1,119 @@
+<!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">
+			"متداخل" يعني أن العديد من السمات، ربما من أنواع مختلفة،
+			(على سبيل المثال، الموضع، الطبيعي، uv، اللون) معبأة في مصفوفة واحدة.
+			<br /><br />
+			يمكن العثور على مقدمة في المصفوفات المتداخلة هنا:
+			[link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html أساسيات المصفوفات المتداخلة]
+		</p>
+	 
+		<h2>أمثلة (Examples)</h2>
+		<p>
+			[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:TypedArray array], [param:Integer stride] )</h3>
+		<p>
+			[page:TypedArray array] -- مصفوفة مكتوبة بذاكرة مشتركة. يخزن بيانات
+			الهندسة.<br />
+			[page:Integer stride] -- عدد عناصر المصفوفة المكتوبة لكل رأس.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Array array]</h3>
+		<p>مصفوفة مكتوبة بذاكرة مشتركة. يخزن بيانات الهندسة.</p>
+	 
+		<h3>[property:Integer stride]</h3>
+		<p>عدد عناصر المصفوفة المكتوبة لكل رأس.</p>
+	 
+		<h3>[property:Integer count]</h3>
+		<p>يعطي إجمالي عدد العناصر في المصفوفة.</p>
+	 
+		<h3>[property:Object updateRange]</h3>
+		<p>
+			كائن يحتوي على إزاحة وعدد.<br />
+			- [page:Number offset]: الافتراضي هو `0`.<br />
+			- [page:Number count]: الافتراضي هو `-1`.<br />
+		</p>
+	 
+		<h3>[property:String uuid]</h3>
+		<p>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
+		هذه الحالة. يتم تعيين هذا تلقائيًا، لذلك لا يجب تحريره.
+		</p>
+	 
+		<h3>[property:Integer version]</h3>
+		<p>
+			رقم إصدار، يزاد كل مرة يتم فيها تعيين خاصية needsUpdate على true.
+		</p>
+	 
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			الافتراضي هو `false`. تعيين هذا إلى true يزاد
+			[page:InterleavedBuffer.version version].
+		</p>
+	 
+		<h3>[property:Usage usage]</h3>
+		<p>
+			يحدد نمط الاستخدام المقصود لمخزن البيانات لأغراض التحسين. يتوافق مع
+			المعلمة `usage` من
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:this copy]( [param:InterleavedBuffer source] )</h3>
+		<p>ينسخ [name] آخر إلى هذه [name].</p>
+
+		<h3>[method:this copyAt]( [param:Integer index1], [param:InterleavedBuffer attribute], [param:Integer index2] )</h3>
+		<p>
+			ينسخ البيانات من `attribute[index2]` إلى [page:InterleavedBuffer.array array][index1].
+		</p>
+	 
+		<h3>[method:this set]( [param:TypedArray value], [param:Integer offset] )</h3>
+		<p>
+			value - المصفوفة (المكتوبة) المصدر.<br />
+			offset - الإزاحة في المصفوفة الهدف التي يجب البدء فيها بكتابة القيم
+			من المصفوفة المصدر. الافتراضي هو `0`.<br /><br />
+	 
+			يخزن قيمًا متعددة في المخزن، قراءة قيم الإدخال من
+			مصفوفة محددة.
+		</p>
+	 
+		<h3>[method:InterleavedBuffer clone]( [param:Object data] )</h3>
+		<p>
+			data - يحمل هذا الكائن مصفوفات ذاكرة مشتركة مطلوبة لنسخ هندسات
+			بسمات متداخلة بشكل صحيح.<br /><br />
+	 
+			ينشئ نسخة من هذه [name].
+		</p>
+	 
+		<h3>[method:this setUsage] ( [param:Usage value] )</h3>
+		<p>ضبط [page:InterleavedBuffer.usage usage] على value.</p>
+	 
+		<h3>[method:Object toJSON]( [param:Object data] )</h3>
+		<p>
+			data - يحمل هذا الكائن مصفوفات ذاكرة مشتركة مطلوبة لتسلسل هندسات
+			بسمات متداخلة بشكل صحيح.<br /><br />
+	 
+			يسلسل هذه [name].
+		</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/core/InterleavedBufferAttribute.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">
+		<h1>[name]</h1>
+	 
+		<p class="desc"></p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:InterleavedBuffer interleavedBuffer], [param:Integer itemSize], [param:Integer offset], [param:Boolean normalized] )</h3>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:InterleavedBuffer data]</h3>
+		<p>
+			نسخة [page:InterleavedBuffer InterleavedBuffer] الممررة في
+			المُنشئ.
+		</p>
+	 
+		<h3>[property:TypedArray array]</h3>
+		<p>قيمة [page:InterleavedBufferAttribute.data data].array.</p>
+	 
+		<h3>[property:Integer count]</h3>
+		<p>
+			قيمة [page:InterleavedBufferAttribute.data data].count. إذا كان
+			المخزن يخزن عنصرًا ثلاثي الأبعاد (مثل الموضع، الطبيعي، أو
+			اللون)، فسيحسب عدد هذه العناصر المخزنة.
+		</p>
+	 
+		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+	 
+		<h3>[property:Integer itemSize]</h3>
+		<p>كم عدد القيم التي تشكل كل عنصر.</p>
+	 
+		<h3>[property:String name]</h3>
+		<p>
+			اسم اختياري لهذه الحالة من السمة. الافتراضي هو سلسلة فارغة.
+		</p>
+	 
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+			الافتراضي هو `false`. تعيين هذا إلى `true` سيرسل المخزن المتداخل
+			بأكمله (وليس فقط بيانات السمة المحددة) إلى GPU مرة أخرى.
+		</p>
+	 
+		<h3>[property:Boolean normalized]</h3>
+		<p>الافتراضي هو `false`.</p>
+	 
+		<h3>[property:Integer offset]</h3>
+		<p>الإزاحة في المصفوفة الأساسية حيث يبدأ عنصر.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>
+			يطبق مصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذه
+			InterleavedBufferAttribute.
+		</p>
+	 
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>
+			يطبق مصفوفة الطبيعي [page:Matrix3 m] على كل عنصر Vector3 من هذه
+			InterleavedBufferAttribute.
+		</p>
+		 
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>
+			يطبق مصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذه
+			InterleavedBufferAttribute، تفسير العناصر كمتجهات اتجاه.
+		</p>
+		 
+		<h3>[method:Number getX]( [param:Integer index] )</h3>
+		<p>يعيد مكون x للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:Number getY]( [param:Integer index] )</h3>
+		<p>يعيد مكون y للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:Number getZ]( [param:Integer index] )</h3>
+		<p>يعيد مكون z للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:Number getW]( [param:Integer index] )</h3>
+		<p>يعيد مكون w للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setX]( [param:Integer index], [param:Float x] )</h3>
+		<p>يضبط مكون x للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setY]( [param:Integer index], [param:Float y] )</h3>
+		<p>يضبط مكون y للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setZ]( [param:Integer index], [param:Float z] )</h3>
+		<p>يضبط مكون z للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setW]( [param:Integer index], [param:Float w] )</h3>
+		<p>يضبط مكون w للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setXY]( [param:Integer index], [param:Float x], [param:Float y] )</h3>
+		<p>يضبط مكونات x و y للعنصر في المؤشر المعطى.</p>
+		 
+		<h3>[method:this setXYZ]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>يضبط مكونات x و y و z للعنصر في المؤشر المعطى.</p>
+
+		<h3>[method:this setXYZW]( [param:Integer index], [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
+		<p>يضبط مكونات x و y و z و w للعنصر في المؤشر المعطى.</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/core/Layers.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">
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			كائن [page:Layers] يعين [page:Object3D] إلى 1 أو أكثر من 32
+			طبقة مرقمة من `0` إلى `31` - يتم تخزين الطبقات داخليًا كـ
+			[link:https://en.wikipedia.org/wiki/Mask_(computing) قناع بت]، وافتراضيًا
+			كل Object3Ds عضو في الطبقة 0.<br /><br />
+	 
+			يمكن استخدام هذا للتحكم في الرؤية - يجب أن يشترك كائن في طبقة مع
+			[page:Camera camera] ليكون مرئيًا عندما يتم عرض هذه الكاميرا
+			المعروضة.<br /><br />
+	 
+			جميع الفئات التي ترث من [page:Object3D] لديها
+			[page:Object3D.layers] خاصية وهي نسخة من هذه الفئة.
+		</p>
+	 
+		<h2>أمثلة (Examples)</h2>
+	 
+		<p>[example:webgl_layers WebGL / layers]</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]()</h3>
+		<p>إنشاء كائن طبقات جديد، مع تعيين العضوية في البداية إلى الطبقة 0.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Integer mask]</h3>
+		<p>
+			قناع بت يخزن أي من الطبقات الـ 32 التي يكون هذا الكائن طبقات حاليًا
+			عضوًا فيه.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:undefined disable]( [param:Integer layer] )</h3>
+		<p>
+			layer - عدد صحيح من 0 إلى 31.<br /><br />
+	 
+			إزالة عضوية هذه `layer`.
+		</p>
+	 
+		<h3>[method:undefined enable]( [param:Integer layer] )</h3>
+		<p>
+			layer - عدد صحيح من 0 إلى 31.<br /><br />
+	 
+			إضافة عضوية هذه `layer`.
+		</p>
+	 
+		<h3>[method:undefined set]( [param:Integer layer] )</h3>
+		<p>
+			layer - عدد صحيح من 0 إلى 31.<br /><br />
+		 
+			تعيين العضوية إلى `layer`، وإزالة العضوية من جميع الطبقات الأخرى.
+		</p>
+		 
+		<h3>[method:Boolean test]( [param:Layers layers] )</h3>
+		<p>
+			layers - كائن طبقات<br /><br />
+		 
+			يعود بـ true إذا كان هذا وكائن `layers` الممرر لديهما على الأقل واحدة
+			طبقة مشتركة.
+		</p>
+		 
+		<h3>[method:Boolean isEnabled]( [param:Integer layer] )</h3>
+		<p>
+			layer - عدد صحيح من 0 إلى 31.<br /><br />
+		 
+			يعود بـ true إذا تم تمكين الطبقة المعطاة.
+		</p>
+		 
+		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
+		<p>
+			layer - عدد صحيح من 0 إلى 31.<br /><br />
+		 
+			تبديل عضوية `layer`.
+		</p>
+		 
+		<h3>[method:undefined enableAll]()</h3>
+		<p>إضافة عضوية لجميع الطبقات.</p>
+		 
+		<h3>[method:undefined disableAll]()</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>

+ 570 - 0
docs/api/ar/core/Object3D.html

@@ -0,0 +1,570 @@
+<!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">
+			هذه هي الفئة الأساسية لمعظم الكائنات في three.js وتوفر مجموعة من
+			الخصائص والطُرق للتلاعب بالكائنات في المساحة ثلاثية الأبعاد.<br /><br />
+		 
+			لاحظ أن هذا يمكن استخدامه لتجميع الكائنات عبر طريقة [page:.add]( object ) التي تضيف الكائن كطفل، ومع ذلك فمن الأفضل
+			استخدام [page:Group] لهذا.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]()</h3>
+		<p>المُنشئ لا يأخذ أي وسائط.</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:AnimationClip animations]</h3>
+		<p>مصفوفة بمقاطع الرسوم المتحركة للكائن.</p>
+		 
+		<h3>[property:Boolean castShadow]</h3>
+		<p>ما إذا كان يتم عرض الكائن في خريطة الظل. الافتراضي هو `false`.</p>
+		 
+		<h3>[property:Array children]</h3>
+		<p>
+			مصفوفة بأطفال الكائن. انظر [page:Group] للحصول على معلومات حول
+			تجميع الكائنات يدويًا.
+		</p>
+		 
+		<h3>[property:Material customDepthMaterial]</h3>
+		<p>
+			مادة عمق مخصصة للاستخدام عند التقديم إلى خريطة العمق. يمكن استخدامه فقط
+			في سياق المشابك. عند رمي الظل مع
+			[page:DirectionalLight] أو [page:SpotLight]، إذا كنت تعدل
+			مواضع رأس في شادر رأس يجب تحديد customDepthMaterial مخصص
+			لظلال صحيحة. الافتراضي هو `undefined`.
+		</p>
+		 
+		<h3>[property:Material customDistanceMaterial]</h3>
+		<p>
+			نفس [page:.customDepthMaterial customDepthMaterial]، ولكن يستخدم مع
+			[page:PointLight]. الافتراضي هو `undefined`.
+		</p>
+		 
+		<h3>[property:Boolean frustumCulled]</h3>
+		<p>
+			عند تعيين هذا، يتحقق في كل إطار ما إذا كان الكائن في مخروط
+			الكاميرا قبل تقديم الكائن. إذا تم تعيينه على `false` يتم تقديم الكائن
+			في كل إطار حتى لو لم يكن في مخروط الكاميرا.
+			الافتراضي هو `true`.
+		</p>
+		 
+		<h3>[property:Integer id]</h3>
+		<p>readonly – رقم فريد لهذه الحالة من الكائن.</p>
+		 
+		<h3>[property:Boolean isObject3D]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		 
+		<h3>[property:Layers layers]</h3>
+		<p>
+			عضوية طبقة الكائن. الكائن مرئي فقط إذا كان لديه
+			على الأقل طبقة واحدة مشتركة مع [page:Camera] قيد الاستخدام. يمكن استخدام هذه الخاصية أيضًا لتصفية
+			كائنات غير مرغوب فيها في اختبارات التقاطع بالأشعة
+			عند استخدام [page:Raycaster].
+		</p>
+		 
+		<h3>[property:Matrix4 matrix]</h3>
+		<p>مصفوفة التحول المحلية.</p>
+		 
+		<h3>[property:Boolean matrixAutoUpdate]</h3>
+		<p>
+			عند تعيين هذا، يحسب مصفوفة الموضع، (الدوران أو
+			quaternion) والحجم في كل إطار وأيضًا يعيد حساب خصائص matrixWorld
+			. الافتراضي هو [page:Object3D.DEFAULT_MATRIX_AUTO_UPDATE] (true).
+		</p>
+		 
+		<h3>[property:Matrix4 matrixWorld]</h3>
+		<p>
+			التحول العالمي للكائن. إذا لم يكن لدى Object3D أي والد، فإنه
+			مطابق للتحول المحلي [page:.matrix].
+		</p>
+			 
+		<h3>[property:Boolean matrixWorldAutoUpdate]</h3>
+		<p>
+			إذا تم تعيينه، فإن المقدم يتحقق في كل إطار ما إذا كان الكائن و
+			أطفاله يحتاجون إلى تحديثات المصفوفة. عندما لا يكون كذلك، فعليك الحفاظ على جميع
+			المصفوفات في الكائن وأطفاله بنفسك. الافتراضي هو
+			[page:Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE] (true).
+		</p>
+			 
+		<h3>[property:Boolean matrixWorldNeedsUpdate]</h3>
+		<p>
+			عند تعيين هذا، يحسب matrixWorld في ذلك الإطار ويعيد
+			هذه الخاصية إلى false. الافتراضي هو `false`.
+		</p>
+			 
+		<h3>[property:Matrix4 modelViewMatrix]</h3>
+		<p>
+			يتم تمرير هذا إلى الشادر ويستخدم لحساب موضع
+			الكائن.
+		</p>
+			 
+		<h3>[property:String name]</h3>
+		<p>
+			اسم اختياري للكائن (لا يحتاج إلى أن يكون فريدًا). الافتراضي هو
+			سلسلة فارغة.
+		</p>
+			 
+		<h3>[property:Matrix3 normalMatrix]</h3>
+		<p>
+			يتم تمرير هذا إلى الشادر ويستخدم لحساب الإضاءة لـ
+			الكائن. هو نقل معكوس من المصفوفة 3x3 العلوية اليسرى
+			من مصفوفة modelViewMatrix لهذا الكائن.<br /><br />
+			 
+			سبب هذه المصفوفة الخاصة هو أن استخدام ببساطة
+			modelViewMatrix قد يؤدي إلى طول غير وحدة من normals (على التحجيم)
+			أو في اتجاه غير عمودي (على التحجيم غير الموحد).<br /><br />
+			 
+			من ناحية أخرى، جزء الترجمة من modelViewMatrix غير
+			ذات صلة بحساب normals. وبالتالي فإن Matrix3 كافية.
+		</p>
+
+		<h3>[property:Function onAfterRender]</h3>
+		<p>
+			رد اتصال اختياري يتم تنفيذه مباشرة بعد تقديم كائن ثلاثي الأبعاد
+			. يتم استدعاء هذه الوظيفة بالمعلمات التالية: renderer,
+			scene, camera, geometry, material, group.
+		</p>
+		<p>
+			يرجى ملاحظة أن هذا الرد الاتصال يتم تنفيذه فقط لـ `renderable` 3D
+			كائنات. معنى كائنات ثلاثية الأبعاد التي تحدد مظهرها المرئي مع
+			الهندسة والمواد مثل نسخ [page:Mesh]، [page:Line]،
+			[page:Points] أو [page:Sprite]. نسخ من [page:Object3D]، [page:Group]
+			أو [page:Bone] ليست قابلة للتقديم وبالتالي لا يتم تنفيذ هذا الرد الاتصال
+			لمثل هذه الكائنات.
+		</p>
+			 
+		<h3>[property:Function onBeforeRender]</h3>
+		<p>
+			رد اتصال اختياري يتم تنفيذه مباشرة قبل تقديم كائن ثلاثي الأبعاد
+			. يتم استدعاء هذه الوظيفة بالمعلمات التالية: renderer,
+			scene, camera, geometry, material, group.
+		</p>
+		<p>
+			يرجى ملاحظة أن هذا الرد الاتصال يتم تنفيذه فقط لـ `renderable` 3D
+			كائنات. معنى كائنات ثلاثية الأبعاد التي تحدد مظهرها المرئي مع
+			الهندسة والمواد مثل نسخ [page:Mesh]، [page:Line]،
+			[page:Points] أو [page:Sprite]. نسخ من [page:Object3D]، [page:Group]
+			أو [page:Bone] ليست قابلة للتقديم وبالتالي لا يتم تنفيذ هذا الرد الاتصال
+			لمثل هذه الكائنات.
+		</p>
+			 
+		<h3>[property:Object3D parent]</h3>
+		<p>
+			والد كائن في [link:https://en.wikipedia.org/wiki/Scene_graph scene graph]. يمكن أن يكون لكائن واحد على الأكثر واحد.
+		</p>
+			 
+		<h3>[property:Vector3 position]</h3>
+		<p>
+			A [page:Vector3] يمثل الموضع المحلي للكائن. الافتراضي هو `(0,
+			0, 0)`.
+		</p>
+			 
+		<h3>[property:Quaternion quaternion]</h3>
+		<p>دوران المحلية للكائن كـ [page:Quaternion Quaternion].</p>
+			 
+		<h3>[property:Boolean receiveShadow]</h3>
+		<p>ما إذا كان المادة تتلقى الظلال. الافتراضي هو `false`.</p>
+
+		<h3>[property:Number renderOrder]</h3>
+		<p>
+			يسمح هذا القيمة بتجاوز ترتيب التصيير الافتراضي لـ
+			[link:https://en.wikipedia.org/wiki/Scene_graph scene graph] objects على الرغم من أن الأشياء المعتمة والشفافة لا تزال مرتبة
+			بشكل مستقل. عند تعيين هذه الخاصية لمثيل [page:Group Group]، سيتم فرز جميع الكائنات النسل وتقديمها معًا.
+			الترتيب من أدنى إلى أعلى renderOrder. القيمة الافتراضية هي `0`.
+		</p>
+			 
+		<h3>[property:Euler rotation]</h3>
+		<p>
+			دوران المحلي للكائن (انظر
+			[link:https://en.wikipedia.org/wiki/Euler_angles Euler angles])، في
+			شعاع.
+		</p>
+			 
+		<h3>[property:Vector3 scale]</h3>
+		<p>مقياس المحلي للكائن. الافتراضي هو [page:Vector3]( 1, 1, 1 ).</p>
+			 
+		<h3>[property:Vector3 up]</h3>
+		<p>
+			يستخدم هذا بواسطة [page:.lookAt lookAt] method، على سبيل المثال، إلى
+			تحديد توجه النتيجة.<br />
+			الافتراضي هو [page:Object3D.DEFAULT_UP] - أي `( 0, 1, 0 )`.
+		</p>
+			 
+		<h3>[property:Object userData]</h3>
+		<p>
+			كائن يمكن استخدامه لتخزين بيانات مخصصة حول Object3D. يجب ألا يحتوي على مراجع إلى وظائف كونها لن تكون مستنسخة.
+		</p>
+			 
+		<h3>[property:String uuid]</h3>
+		<p>
+			[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
+			هذه المثيلة كائن. يتم تعيين هذا تلقائيًا، لذلك يجب عدم تحريره.
+		</p>
+			 
+		<h3>[property:Boolean visible]</h3>
+		<p>الكائن يحصل على التصيير إذا كان `true`. الافتراضي هو `true`.</p>
+
+		<h2>الخصائص الثابتة (Static Properties)</h2>
+		<p>
+			يتم تعريف الخصائص والطرق الثابتة لكل فئة بدلاً من كل
+			مثيل لتلك الفئة. هذا يعني أن تغيير
+			[page:Object3D.DEFAULT_UP] أو [page:Object3D.DEFAULT_MATRIX_AUTO_UPDATE]
+			سيغير قيم [page:.up up] و [page:.matrixAutoUpdate matrixAutoUpdate] لـ `كل` مثيل من Object3D (أو الفئات المشتقة)
+			تم إنشاؤه بعد إجراء التغيير (لن يتأثر Object3Ds المنشأ بالفعل).
+		</p>
+			 
+		<h3>[property:Vector3 DEFAULT_UP]</h3>
+		<p>
+			اتجاه [page:.up up] الافتراضي للكائنات، يستخدم أيضًا كموقع افتراضي
+			لـ [page:DirectionalLight]، [page:HemisphereLight] و
+			[page:Spotlight] (الذي يخلق أضواء تشرق من الأعلى إلى الأسفل).<br />
+			مضبوط على ( 0, 1, 0 ) بشكل افتراضي.
+		</p>
+			 
+		<h3>[property:Boolean DEFAULT_MATRIX_AUTO_UPDATE]</h3>
+		<p>
+			العدد الافتراضي لـ [page:.matrixAutoUpdate matrixAutoUpdate] لـ
+			Object3Ds المنشأة حديثًا.<br />
+		</p>
+			 
+		<h3>[property:Boolean DEFAULT_MATRIX_WORLD_AUTO_UPDATE]</h3>
+		<p>
+			العدد الافتراضي لـ [page:.matrixWorldAutoUpdate
+			matrixWorldAutoUpdate] لـ Object3Ds المنشأة حديثًا.<br />
+		</p>
+			 
+		<h2>الوظائف (Methods)</h2>
+			 
+		<p>
+			طرق [page:EventDispatcher EventDispatcher] متاحة على هذه
+			فئة.
+		</p>
+			 
+		<h3>[method:this add]( [param:Object3D object], ... )</h3>
+		<p>
+			يضيف `object` كطفل لهذا الكائن. يمكن إضافة عدد غير محدود من الكائنات. سيتم إزالة أي والد حالي على كائن ممرر هنا، نظرًا لأنه يمكن أن يكون للكائن والد واحد على الأكثر.<br /><br />
+			 
+			راجع [page:Group] للحصول على معلومات حول تجميع الكائنات يدويًا.
+		</p>
+			 
+		<h3>[method:undefined applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>
+			يطبق تحويل المصفوفة على الكائن ويحدث موقع الكائن ودورانه ومقياسه.
+		</p>
+			 
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>يطبق الدوران الممثل بالرباعي على الكائن.</p>
+			 
+		<h3>[method:this attach]( [param:Object3D object] )</h3>
+		<p>
+			يضيف `object` كطفل لهذا، مع الحفاظ على تحويل العالم للكائن.
+			<br /><br />
+			ملاحظة: هذه الطريقة لا تدعم رسومات المشهد التي تحتوي على
+			نقاط غير متساوية في الحجم (s).
+		</p>
+			 
+		<h3>[method:Object3D clone]( [param:Boolean recursive] )</h3>
+		<p>
+			recursive -- إذا كان صحيحًا، فإن نسل الكائن يتم استنساخه أيضًا. الافتراضي
+			صحيح.<br /><br />
+			 
+			يعود بنسخة من هذا الكائن واختياريًا جميع النسل.
+		</p>
+			 
+		<h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3>
+		<p>
+			recursive -- إذا كان صحيحًا، فإن نسل الكائن يتم نسخه أيضًا. الافتراضي
+			صحيح.<br /><br />
+			 
+			نسخ الكائن المعطى في هذا الكائن. ملاحظة: لا يتم نسخ مستمعو الأحداث و
+			التعليمات البرمجية المعرفة من قبل المستخدم ([page:.onAfterRender] و [page:.onBeforeRender]).
+		</p>
+			 
+		<h3>[method:Object3D getObjectById]( [param:Integer id] )</h3>
+		<p>
+			id -- رقم فريد لمثيل الكائن<br /><br />
+			 
+			يبحث في كائن وأطفاله، بدءًا من الكائن
+			نفسه، ويرجع أول مطابقة مع id.<br />
+			لاحظ أنه يتم تعيين المعرفات بالترتيب التاريخي: 1، 2، 3، ...،
+			زيادة بواحد لكل كائن جديد.
+		</p>
+			 
+		<h3>[method:Object3D getObjectByName]( [param:String name] )</h3>
+		<p>
+			name -- سلسلة للمطابقة مع خصائص Object3D.name للأطفال.
+			<br /><br />
+			 
+			يبحث في كائن وأطفاله، بدءًا من الكائن
+			نفسه، ويرجع أول مطابقة مع اسم.<br />
+			لاحظ أنه بالنسبة لمعظم الكائنات، يكون الاسم سلسلة فارغة بشكل افتراضي. سوف
+			ستضطر إلى تعيينه يدويًا للاستفادة من هذه الطريقة.
+		</p>
+
+		<h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Any value] )</h3>
+		<p>
+			name -- اسم الخاصية التي يتم البحث عنها. <br />
+			value -- قيمة الخاصية المعطاة. <br /><br />
+			 
+			يبحث في كائن وأطفاله، بدءًا من الكائن
+			نفسه، ويرجع أول مع خاصية تطابق القيمة
+			معطى.
+		</p>
+			 
+		<h3>[method:Object3D getObjectsByProperty]( [param:String name], [param:Any value] )</h3>
+		<p>
+			name -- اسم الخاصية التي يتم البحث عنها. <br />
+			value -- قيمة الخاصية المعطاة. <br /><br />
+			 
+			يبحث في كائن وأطفاله، بدءًا من الكائن
+			نفسه، ويرجع جميع الكائنات مع خاصية تطابق القيمة
+			معطى.
+		</p>
+			 
+		<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.
+			<br /><br />
+			 
+			يعود بمتجه يمثل موقع الكائن في الفضاء العالمي.
+		</p>
+			 
+		<h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3>
+		<p>
+			[page:Quaternion target] — سيتم نسخ النتيجة في هذا Quaternion.
+			<br /><br />
+			 
+			يعود برباعي يمثل دوران الكائن في الفضاء العالمي.
+		</p>
+			 
+		<h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.
+			<br /><br />
+			 
+			يعود بمتجه من عوامل التحجيم المطبقة على الكائن لكل
+			محور في الفضاء العالمي.
+		</p>
+			 
+		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+		<p>
+			[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.
+			<br /><br />
+		 
+			يعود بمتجه يمثل اتجاه محور z الموجب للكائن في
+			الفضاء العالمي.
+		</p>
+		 
+		<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
+		<p>
+			vector - متجه يمثل موقعًا في هذا المساحة المحلية للكائن.<br /><br />
+		 
+			يحول المتجه من مساحة هذا الكائن المحلية إلى الفضاء العالمي.
+		</p>
+		 
+		<h3>[method:undefined lookAt]( [param:Vector3 vector] )<br />
+		[method:undefined lookAt]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+			vector - متجه يمثل موقعًا في الفضاء العالمي.<br /><br />
+			اختياريًا، [page:.x x]، [page:.y y] و [page:.z z] مكونات من
+			موقع الفضاء العالمي.<br /><br />
+		 
+			يدور الكائن لمواجهة نقطة في الفضاء العالمي.<br /><br />
+		 
+			هذه الطريقة لا تدعم كائنات تحتوي على
+			والد (والدين) غير متساوي (ين) في الحجم.
+		</p>
+		 
+		<h3>[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3>
+		<p>
+			طريقة فارغة (فارغة) للحصول على تقاطعات بين شعاع صب وهذا
+			كائن. تطبق فئات فرعية مثل [page:Mesh]، [page:Line]، و [page:Points]
+			هذه الطريقة من أجل استخدام التصوير بالأشعة.
+		</p>
+		 
+		<h3>[method:this remove]( [param:Object3D object], ... )</h3>
+		<p>
+			يزيل `object` كطفل لهذا الكائن. يمكن إزالة عدد غير محدود من الكائنات
+			قد تم إزالته.
+		</p>
+		 
+		<h3>[method:this removeFromParent]()</h3>
+		<p>يزيل هذا الكائن من والده الحالي.</p>
+		 
+		<h3>[method:this clear]()</h3>
+		<p>يزيل جميع كائنات الأطفال.</p>
+		 
+		<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+			axis -- متجه معتدل في المساحة المحلية. <br />
+			angle -- الزاوية بالراديان.<br /><br />
+		 
+			قم بتدوير كائن على طول محور في المساحة المحلية. يفترض أن يكون المحور
+			معتدل.
+		</p>
+		 
+		<h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle])</h3>
+		<p>
+			axis -- متجه معتدل في المساحة العالمية. <br />
+			angle -- الزاوية بالراديان.<br /><br />
+		 
+			قم بتدوير كائن على طول محور في المساحة العالمية. يفترض أن يكون المحور
+			معتدل. تفترض طريقة عدم وجود والد دوران.
+		</p>
+
+		<h3>[method:this rotateX]( [param:Float rad] )</h3>
+		<p>
+			rad - الزاوية للتدوير بالراديان.<br /><br />
+		 
+			يدور الكائن حول محور x في المساحة المحلية.
+		</p>
+		 
+		<h3>[method:this rotateY]( [param:Float rad] )</h3>
+		<p>
+			rad - الزاوية للتدوير بالراديان.<br /><br />
+		 
+			يدور الكائن حول محور y في المساحة المحلية.
+		</p>
+		 
+		<h3>[method:this rotateZ]( [param:Float rad] )</h3>
+		<p>
+			rad - الزاوية للتدوير بالراديان.<br /><br />
+		 
+			يدور الكائن حول محور z في المساحة المحلية.
+		</p>
+		 
+		<h3>[method:undefined setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3>
+		<p>
+			axis -- متجه معتدل في المساحة المحلية. <br />
+			angle -- زاوية بالراديان<br /><br />
+		 
+			يستدعي [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] ) على [page:.quaternion].
+		</p>
+		 
+		<h3>[method:undefined setRotationFromEuler]( [param:Euler euler] )</h3>
+		<p>
+			euler -- زاوية أويلر تحدد كمية الدوران.<br />
+		 
+			يستدعي [page:Quaternion.setRotationFromEuler setRotationFromEuler](
+			[page:Euler euler]) على [page:.quaternion].
+		</p>
+		 
+		<h3>[method:undefined setRotationFromMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+			m -- قم بتدوير الرباعي بمكون الدوران من المصفوفة.<br />
+		 
+			يستدعي [page:Quaternion.setFromRotationMatrix setFromRotationMatrix](
+			[page:Matrix4 m]) على [page:.quaternion].<br /><br />
+		 
+			لاحظ أن هذا يفترض أن الـ 3x3 العلوي من m هو مصفوفة دوران نقية
+			(أي غير مقاس).
+		</p>
+
+		<h3>[method:undefined setRotationFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+			q -- رباعي معتدل.<br /><br />
+		 
+			نسخ الرباعي المعطى في [page:.quaternion].
+		</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>
+		 
+		<h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3>
+		<p>
+			axis -- متجه معتدل في المساحة المحلية.<br />
+			distance -- المسافة التي يتم ترجمتها.<br /><br />
+		 
+			قم بترجمة كائن بمسافة على طول محور في المساحة المحلية. يفترض أن يكون المحور
+			معتدل.
+		</p>
+		 
+		<h3>[method:this translateX]( [param:Float distance] )</h3>
+		<p>يترجم الكائن على طول محور x في المساحة المحلية بوحدات `distance`.</p>
+		 
+		<h3>[method:this translateY]( [param:Float distance] )</h3>
+		<p>يترجم الكائن على طول محور y في المساحة المحلية بوحدات `distance`.</p>
+		 
+		<h3>[method:this translateZ]( [param:Float distance] )</h3>
+		<p>يترجم الكائن على طول محور z في المساحة المحلية بوحدات `distance`.</p>
+		 
+		<h3>[method:undefined traverse]( [param:Function callback] )</h3>
+		<p>
+			callback - وظيفة مع كأول وسيطة كائن object3D.<br /><br />
+		 
+			ينفذ رد الاتصال على هذا الكائن وجميع النسل.<br />
+			ملاحظة: يُفضل عدم تعديل رسم المشهد داخل رد الاتصال.
+		</p>
+		 
+		<h3>[method:undefined traverseVisible]( [param:Function callback] )</h3>
+		<p>
+			callback - وظيفة مع كأول وسيطة كائن object3D.<br /><br />
+		 
+			مثل traverse، ولكن سيتم تنفيذ رد الاتصال فقط للكائنات المرئية.
+			لا يتم اجتياز نسل الكائنات غير المرئية.<br />
+			ملاحظة: يُفضل عدم تعديل رسم المشهد داخل رد الاتصال.
+		</p>
+		 
+		<h3>[method:undefined traverseAncestors]( [param:Function callback] )</h3>
+		<p>
+			callback - وظيفة مع كأول وسيطة كائن object3D.<br /><br />
+		 
+			ينفذ رد الاتصال على جميع الأجداد.<br />
+			ملاحظة: يُفضل عدم تعديل رسم المشهد داخل رد الاتصال.
+		</p>
+		 
+		<h3>[method:undefined updateMatrix]()</h3>
+		<p>يحدث التحويل المحلي.</p>
+		 
+		<h3>[method:undefined updateMatrixWorld]( [param:Boolean force] )</h3>
+		<p>
+			force - منطقي يمكن استخدامه لتجاوز
+			[page:.matrixWorldAutoUpdate]، لإعادة حساب مصفوفة العالم لـ
+			الكائن والنسل في الإطار الحالي. مفيد إذا لم تتمكن من الانتظار
+			المصور لتحديثه في الإطار التالي (باستخدام
+			[page:.matrixWorldAutoUpdate] مضبوط على `true`).<br /><br />
+		 
+			يحدث التحويل العالمي للكائن ونسله إذا كان
+			تحتاج مصفوفة العالم إلى تحديث ([page:.matrixWorldNeedsUpdate] مضبوط على true) أو
+			إذا تم تعيين معلمة `force` على `true`.
+		</p>
+		 
+		<h3>[method:undefined updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
+		<p>
+			updateParents - يحدث تحويل العالم للأجداد بشكل متكرر.<br />
+			updateChildren - يحدث تحويل العالم للنسل بشكل متكرر.<br /><br />
+		 
+			يحدث التحويل العالمي للكائن.
+		</p>
+		 
+		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
+		<p>
+			vector - متجه يمثل موقعًا في الفضاء العالمي.<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>

+ 230 - 0
docs/api/ar/core/Raycaster.html

@@ -0,0 +1,230 @@
+<!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/Ray_casting raycasting]. يتم استخدام Raycasting
+			لاختيار الماوس (العمل على معرفة الكائنات في المساحة ثلاثية الأبعاد التي يكون عليها الماوس
+			فوق) من بين أشياء أخرى.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+		<code>
+		const raycaster = new THREE.Raycaster();
+		const pointer = new THREE.Vector2();
+	 
+		function onPointerMove( event ) {
+	 
+		// حساب موضع المؤشر في إحداثيات الجهاز المعتدلة
+		// (-1 إلى +1) لكلا المكونين
+	 
+		pointer.x = ( event.clientX / window.innerWidth ) * 2 - 1;
+		pointer.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
+	 
+		}
+	 
+		function render() {
+	 
+		// تحديث شعاع التقاط مع الكاميرا وموضع المؤشر
+		raycaster.setFromCamera( pointer, camera );
+	 
+		// حساب الكائنات المتقاطعة مع شعاع التقاط
+		const intersects = raycaster.intersectObjects( scene.children );
+	 
+		for ( let i = 0; i < intersects.length; i ++ ) {
+	 
+		intersects[ i ].object.material.color.set( 0xff0000 );
+	 
+		}
+	 
+		renderer.render( scene, camera );
+	 
+		}
+	 
+		window.addEventListener( 'pointermove', onPointerMove );
+	 
+		window.requestAnimationFrame(render);
+	 
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+	 
+		<p>
+			[example:webgl_interactive_cubes Raycasting to a Mesh]<br />
+			[example:webgl_interactive_cubes_ortho Raycasting to a Mesh in using an OrthographicCamera]<br />
+			[example:webgl_interactive_buffergeometry Raycasting to a Mesh with BufferGeometry]<br />
+			[example:webgl_instancing_raycast Raycasting to a InstancedMesh]<br />
+			[example:webgl_interactive_lines Raycasting to a Line]<br />
+			[example:webgl_interactive_raycasting_points Raycasting to Points]<br />
+			[example:webgl_geometry_terrain_raycast Terrain raycasting]<br />
+			[example:webgl_interactive_voxelpainter Raycasting to paint voxels]<br />
+			[example:webgl_raycaster_texture Raycast to a Texture]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction], [param:Float near], [param:Float far] )</h3>
+		<p>
+			[page:Vector3 origin] — متجه المنشأ الذي يلقي منه الشعاع.<br />
+			[page:Vector3 direction] — متجه الاتجاه الذي يعطي اتجاهًا
+			للشعاع. يجب تعديله.<br />
+			[page:Float near] — جميع النتائج المرتجعة أبعد من قريب. قريب
+			لا يمكن أن يكون سلبيًا. القيمة الافتراضية هي 0.<br />
+			[page:Float far] — جميع النتائج المرتجعة أقرب من بعيد. بعيد لا يمكن
+			أقل من قريب. القيمة الافتراضية هي Infinity.
+		</p>
+		<p>هذا يخلق كائن raycaster جديد.<br /></p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Float far]</h3>
+		<p>
+			عامل بعيد للraycaster. هذه القيمة تشير إلى الكائنات التي يمكن
+			تجاهلها بناءً على المسافة. هذه القيمة لا يجب أن تكون سلبية و
+			يجب أن تكون أكبر من خاصية قريب.
+		</p>
+		 
+		<h3>[property:Float near]</h3>
+		<p>
+			عامل قريب للraycaster. هذه القيمة تشير إلى الكائنات التي يمكن
+			تجاهلها بناءً على المسافة. هذه القيمة لا يجب أن تكون سلبية و
+			يجب أن تكون أصغر من خاصية بعيد.
+		</p>
+		 
+		<h3>[property:Camera camera]</h3>
+		<p>
+			الكاميرا المستخدمة عند التصوير بالأشعة ضد كائنات تعتمد على المشهد مثل
+			كائنات billboarded مثل [page:Sprites]. يمكن تعيين هذا الحقل يدويًا أو
+			يتم تعيينه عند استدعاء "setFromCamera". افتراضات إلى null.
+		</p>
+		 
+		<h3>[property:Layers layers]</h3>
+		<p>
+			يستخدم من قبل [name] لتجاهل كائنات 3D بشكل اختياري عند إجراء
+			اختبارات التقاطع. يضمن المثال التالي للكود أن كائنات 3D فقط على طبقة `1` ستحظى باحترام من قِبَل المثيل من [name].
+		 
+			<code>
+			raycaster.layers.set( 1 ); 
+			object.layers.enable( 1 ); 
+			</code>
+		</p>
+		 
+		<h3>[property:Object params]</h3>
+		<p>
+			 كائن به الخصائص التالية:
+		 
+			<code>
+			{ 
+			Mesh: {},
+			Line: { threshold: 1 },
+			LOD: {},
+			Points: { threshold: 1 },
+			Sprite: {} 
+			}
+			</code>
+		 
+			حيث threshold هو دقة raycaster عند التقاط
+			كائنات، في وحدات العالم.
+		</p>
+
+		<h3>[property:Ray ray]</h3>
+		<p>ال[Page:Ray] المستخدم للتصوير بالأشعة.</p>
+		 
+		<h2>الوظائف (Methods)</h2>
+		 
+		<h3>[method:undefined set]( [param:Vector3 origin], [param:Vector3 direction])</h3>
+		<p>
+			[page:Vector3 origin] — متجه المنشأ الذي يلقي منه الشعاع.<br />
+			[page:Vector3 direction] — متجه الاتجاه المعتدل الذي يعطي
+			اتجاه للشعاع.
+		</p>
+		<p>
+			يحدث الشعاع بمنشأ واتجاه جديد. يرجى ملاحظة أن هذا
+			الطريقة تنسخ فقط القيم من الوسائط.
+		</p>
+		 
+		<h3>[method:undefined setFromCamera]( [param:Vector2 coords], [param:Camera camera] )</h3>
+		<p>
+			[page:Vector2 coords] — إحداثيات 2D للماوس، في تعديل جهاز
+			إحداثيات (NDC) --- يجب أن تكون مكونات X و Y بين -1 و 1.<br />
+			[page:Camera camera] — الكاميرا التي يجب أن ينبثق منها الشعاع
+		</p>
+		<p>يحدث الشعاع بمنشأ واتجاه جديد.</p>
+		 
+		<h3>[method:Array intersectObject]( [param:Object3D object], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+			[page:Object3D object] — الكائن للتحقق من التقاطع مع
+			شعاع.<br />
+			[page:Boolean recursive] — إذا كان صحيحًا، فإنه يتحقق أيضًا من جميع الأجداد.
+			وإلا فإنه يتحقق فقط من التقاطع مع الكائن. الافتراضي صحيح.<br />
+			[page:Array optionalTarget] — (اختياري) هدف لتعيين النتيجة.
+			وإلا تم تجسيد جديد لـ [page:Array]. إذا تم تعيينه، يجب عليك مسح هذا
+			array قبل كل استدعاء (أي ، array.length = 0;).
+		</p>
+		<p>
+			يتحقق من جميع التقاطع بين الشعاع والكائن مع أو بدون
+			نسل. يتم إرجاع التقاطعات مرتبة حسب المسافة، أولًا أولًا.
+			يتم إرجاع مصفوفة من التقاطعات ...
+		</p>
+			<code> [ { distance, point, face, faceIndex, object }, ... ] </code>
+			<p>
+			[page:Float distance] – المسافة بين مصدر الشعاع و
+			التقاطع<br />
+			[page:Vector3 point] – نقطة التقاطع، في إحداثيات العالم<br />
+			[page:Object face] – وجه التقاطع<br />
+			[page:Integer faceIndex] – فهرس الوجه المتقاطع<br />
+			[page:Object3D object] – الكائن المتقاطع<br />
+			[page:Vector2 uv] - إحداثيات U,V في نقطة التقاطع<br />
+			[page:Vector2 uv1] - مجموعة ثانية من إحداثيات U,V في نقطة
+			التقاطع<br />
+			[page:Vector3 normal] - متجه عادي متداخل في نقطة
+			التقاطع<br />
+			[page:Integer instanceId] – رقم فهرس الحالة حيث يتقاطع الشعاع
+			يتقاطع InstancedMesh
+		</p>
+		<p>
+			`Raycaster` يفوض إلى [page:Object3D.raycast raycast] طريقة
+			كائن مار، عند تقييم ما إذا كان الشعاع يتقاطع مع الكائن أم لا
+			ليس. هذا يسمح لـ [page:Mesh meshes] بالرد بشكل مختلف على تصوير الأشعة
+			من [page:Line lines] و [page:Points pointclouds].
+		</p>
+		<p>
+			*ملاحظة* أنه بالنسبة للشبكات، يجب أن تكون الوجوه موجهة نحو مصدر
+			[page:.ray ray] من أجل اكتشافها؛ تقاطعات الشعاع المارة
+			من خلال الجزء الخلفي من وجه لن يتم اكتشافه. للتصوير بالأشعة ضد كلا
+			وجوه كائن، سترغب في تعيين خصائص [page:Mesh.material material]
+			[page:Material.side side] إلى `THREE.DoubleSide`.
+		</p>
+		 
+		<h3>[method:Array intersectObjects]( [param:Array objects], [param:Boolean recursive], [param:Array optionalTarget] )</h3>
+		<p>
+			[page:Array objects] — الكائنات للتحقق من التقاطع مع
+			شعاع.<br />
+			[page:Boolean recursive] — إذا كان صحيحًا، فإنه يتحقق أيضًا من جميع نسل
+			كائنات. وإلا فإنه يتحقق فقط من التقاطع مع الكائنات. افتراضي
+			صحيح.<br />
+			[page:Array optionalTarget] — (اختياري) هدف لتعيين النتيجة.
+			وإلا تم تجسيد جديد لـ [page:Array]. إذا تم تعيينه، يجب عليك مسح هذا
+			array قبل كل استدعاء (أي ، array.length = 0;).
+		</p>
+		<p>
+			يتحقق من جميع التقاطع بين الشعاع والكائنات مع أو بدون
+			نسل. يتم إرجاع التقاطعات مرتبة حسب المسافة، أولًا أولًا. التقاطات هي من نفس الشكل كما تلك المرتجعة بواسطة
+			[page:.intersectObject].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 274 - 0
docs/api/ar/core/Uniform.html

@@ -0,0 +1,274 @@
+<!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">
+			الموحدات هي متغيرات GLSL عالمية. يتم تمريرها إلى برامج الشادر.
+		</p>
+			
+		<h2>مثال الكود</h2>
+		<p>
+			عند إعلان موحد من [page:ShaderMaterial]، يتم إعلانه بواسطة
+			القيمة أو بالكائن.
+		</p>
+		<code>
+		uniforms: {
+		time: { value: 1.0 }, 
+		resolution: new Uniform( new Vector2() )
+		};
+		</code>
+			
+		<h2>أنواع الموحدات (Uniform types)</h2>
+		<p>
+			يجب أن يكون لكل موحد خاصية `value`. يجب أن يتوافق نوع القيمة
+			مع نوع المتغير الموحد في كود GLSL كما
+			محدد لأنواع GLSL البدائية في الجدول أدناه. موحد
+			الهياكل والمصفوفات مدعومة أيضًا. يجب تحديد مصفوفات GLSL من نوع بدائي
+			إما كمصفوفة من كائنات THREE المقابلة أو
+			كمصفوفة مسطحة تحتوي على بيانات جميع الكائنات. بعبارة أخرى؛
+			يجب عدم تمثيل المتغيرات البدائية في GLSL في المصفوفات بواسطة المصفوفات. هذه القاعدة
+			لا تطبق ترانزيتيفًا. يجب أن تكون مصفوفة من مصفوفات `vec2`، كل منها بطول
+			خمسة متجهات، يجب أن تكون مصفوفة من المصفوفات، من خمسة [page:Vector2]
+			كائنات أو عشرة `number`s.
+		</p>
+
+		<table>
+			<caption>
+				<a id="uniform-types">Uniform types</a>
+			</caption>
+			<thead>
+				<tr>
+					<th>GLSL type</th>
+					<th>JavaScript type</th>
+				</tr>
+			</thead>
+			<tbody>
+				<tr>
+					<td>int</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>uint (WebGL 2)</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>float</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Boolean]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Number]</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Vector2 THREE.Vector2]</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Vector3 THREE.Vector3]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Color THREE.Color]</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Vector4 THREE.Vector4]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Quaternion THREE.Quaternion]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Matrix3 THREE.Matrix3]</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Matrix4 THREE.Matrix4]</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>sampler2D</td>
+					<td>[page:Texture THREE.Texture]</td>
+				</tr>
+				<tr>
+					<td>samplerCube</td>
+					<td>[page:CubeTexture THREE.CubeTexture]</td>
+				</tr>
+			</tbody>
+		</table>
+
+		<p>
+			(*) نفس الشيء بالنسبة لمصفوفة (الأبعاد الداخلية) من نفس نوع GLSL،
+			تحتوي على مكونات جميع المتجهات أو المصفوفات في المصفوفة.
+		</p>
+		 
+		<h2>الزي المنظم (Structured Uniforms)</h2>
+		 
+		<p>
+			في بعض الأحيان ترغب في تنظيم الزي كـ `structs` في كود الشيدر الخاص بك.
+			يجب استخدام النمط التالي حتى يتمكن `three.js` من معالجة
+			بيانات الزي المنظمة.
+		</p>
+		<code>
+		uniforms = {
+		data: { 
+		value: {
+		position: new Vector3(), 
+		direction: new Vector3( 0, 0, 1 ) 
+		} 
+		} 
+		};
+		</code>
+		يمكن تعيين هذا التعريف على كود GLSL التالي:
+		<code>
+		struct Data { 
+		vec3 position;
+		vec3 direction;
+		};
+		uniform Data data;
+		</code>
+		 
+		<h2>الزي المنظم مع المصفوفات (Structured Uniforms with Arrays)</h2>
+		 
+		<p>
+			من الممكن أيضًا إدارة `structs` في المصفوفات. تبدو صياغة هذه الحالة
+			الاستخدام كما يلي:
+		</p>
+		<code>
+		const entry1 = {
+		position: new Vector3(),
+		direction: new Vector3( 0, 0, 1 )
+		};
+		const entry2 = {
+		position: new Vector3( 1, 1, 1 ),
+		direction: new Vector3( 0, 1, 0 )
+		};
+		 
+		uniforms = {
+		data: {
+		value: [ entry1, entry2 ]
+		}
+		};
+		</code>
+		يمكن تعيين هذا التعريف على كود GLSL التالي:
+		<code>
+		struct Data { 
+		vec3 position; 
+		vec3 direction; 
+		};
+		uniform Data data[ 2 ];
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Object value] )</h3>
+		<p>
+			value -- كائن يحتوي على القيمة لإعداد الزى. يجب أن يكون نوعه
+			واحدًا من أنواع الزى المذكورة أعلاه.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Object value]</h3>
+		<p>القيمة الحالية للزى.</p>
+		 
+		<h2>الوظائف (Methods)</h2>
+		 
+		<h3>[method:Uniform clone]()</h3>
+		<p>
+			يعود بنسخة من هذا الزى. <br />
+			إذا كانت خاصية قيمة الزى هى [page:Object] مع طريقة clone()،
+			يتم استخدام هذا، وإلا يتم نسخ القيمة عن طريق التعيين. تتشارك قيم المصفوفات بين [page:Uniform]s المنسوخة.
+		</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/core/bufferAttributeTypes/BufferAttributeTypes.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:BufferAttribute] &rarr;
+
+		<h1>BufferAttribute Types</h1>
+
+		<p class="desc">
+			تتوفر في three.js تسعة أنواع من [page:BufferAttribute].
+				تتوافق هذه الموجودات مع [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Syntax Typed Arrays] في JavaScript.
+		</p>
+
+		<code>
+		THREE.Float64BufferAttribute 
+		THREE.Float32BufferAttribute
+		THREE.Float16BufferAttribute 
+		THREE.Uint32BufferAttribute
+		THREE.Int32BufferAttribute 
+		THREE.Uint16BufferAttribute
+		THREE.Int16BufferAttribute 
+		THREE.Uint8ClampedBufferAttribute
+		THREE.Uint8BufferAttribute 
+		THREE.Int8BufferAttribute
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<p>يتم استدعاء كل من الأعلاف بنفس الطريقة.</p>
+
+		<h3>
+			TypedBufferAttribute( [param:Array_or_Integer array], [param:Integer itemSize], [param:Boolean normalized] )
+		</h3>
+		<p>
+			array -- يمكن أن يكون هذا مصفوفة مكتوبة أو غير مكتوبة، أو طول الصحيح. سيتم تحويل قيمة المصفوفة إلى النوع المحدد. إذا تم توفير طول، فسيتم إنشاء TypedArray جديد، والذي سيتم تهيئته بجميع العناصر بقيم صفر.<br /><br />
+
+			itemSize -- عدد القيم التي يجب أن ترتبط بنقطة فريدة. <br /><br />
+
+			normalized -- (اختياري) يشير إلى كيفية تطابق البيانات الأساسية في الذاكرة المؤقتة مع القيم الموجودة في رمز GLSL.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+
+		<p>انظر صفحة [page:BufferAttribute] للخصائص الموروثة.</p>
+
+		<h2>الوظائف (Methods)</h2>
+
+		<p>انظر صفحة [page:BufferAttribute] للأساليب الموروثة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
+		</p>
+	</body>
+</html>

+ 36 - 0
docs/api/ar/extras/DataUtils.html

@@ -0,0 +1,36 @@
+<!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:Number toHalfFloat]( [param:Number val] )</h3>
+		<p>
+			val -- قيمة عائمة بدقة مفردة.<br /><br />
+	 
+			يعود بقيمة عائمة نصف الدقة من القيمة العائمة بدقة مفردة المعطاة.
+		</p>
+	 
+		<h3>[method:Number fromHalfFloat]( [param:Number val] )</h3>
+		<p>
+			val -- قيمة عائمة نصف الدقة.<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>

+ 33 - 0
docs/api/ar/extras/Earcut.html

@@ -0,0 +1,33 @@
+<!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">
+			تنفيذ لخوارزمية تثليث المضلع earcut. الكود هو نقل من [link:https://github.com/mapbox/earcut mapbox/earcut].
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
+		<p>
+			data -- مصفوفة مسطحة من إحداثيات الرأس.<br />
+			holeIndices -- مصفوفة من فهارس الثقوب إن وجدت.<br />
+			dim -- عدد الإحداثيات لكل رأس في المصفوفة الإدخال.<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>

+ 42 - 0
docs/api/ar/extras/ImageUtils.html

@@ -0,0 +1,42 @@
+<!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 getDataURL]( [param:HTMLCanvasElement image] |
+			[param:HTMLImageElement image] | [param:ImageBitmap image] )
+		</h3>
+		<p>
+			image -- كائن الصورة.<br /><br />
+	 
+			يعود بـ URI بيانات يحتوي على تمثيل للصورة المعطاة.
+		</p>
+	 
+		<h3>
+			[method:Object sRGBToLinear]( [param:HTMLCanvasElement image] |
+			[param:HTMLImageElement image] | [param:ImageBitmap image] )
+		</h3>
+		<p>
+			image -- كائن الصورة.<br /><br />
+	 
+			يحول بيانات الصورة sRGB المعطاة إلى مساحة اللون الخطية.
+		</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/extras/PMREMGenerator.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">
+			تولد هذه الفئة خريطة بيئة إشعاعية محددة مسبقًا ومتدرجة (PMREM) من نسيج بيئة cubeMap. يسمح هذا بالوصول السريع إلى مستويات مختلفة من التشويش بناءً على خشونة المادة. على عكس سلسلة mipmap التقليدية ، فإنها تنخفض فقط إلى مستوى LOD_MIN (أعلاه) ، ثم تنشئ "mips" إضافية مُصفاة حتى أكثر في نفس دقة LOD_MIN ، المرتبطة بمستويات خشونة أعلى. بهذه الطريقة نحافظ على الدقة لتداخل الإضاءة المنتشرة بسلاسة مع تحديد حسابات العينات.<br /><br />
+	 
+			ملاحظة: يعتمد خشونة [page:MeshStandardMaterial] الأدنى على حجم النسيج المقدم. إذا كانت عملية التصيير لديك أبعادًا صغيرة أو كانت الأجزاء اللامعة لديها الكثير من التقوس ، فقد لا تزال قادرًا على التخلص من حجم نسيج أصغر.
+		</p>
+
+		<table>
+			<tr>
+				<th>حجم النسيج (texture size)</th>
+				<td>الخشونة الدنيا (minimum roughness)</td>
+			</tr>
+			<tr>
+				<td>16</td>
+				<td>0.21</td>
+			</tr>
+			<tr>
+				<td>32</td>
+				<td>0.15</td>
+			</tr>
+			<tr>
+				<td>64</td>
+				<td>0.11</td>
+			</tr>
+			<tr>
+				<td>128</td>
+				<td>0.076</td>
+			</tr>
+			<tr>
+				<td>256</td>
+				<td>0.054</td>
+			</tr>
+			<tr>
+				<td>512</td>
+				<td>0.038</td>
+			</tr>
+			<tr>
+				<td>1024</td>
+				<td>0.027</td>
+			</tr>
+		</table>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:WebGLRenderer renderer] )</h3>
+		<p>ينشئ هذا المنشئ [name] جديدًا.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>
+			[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )
+		</h3>
+		<p>
+			[page:Scene scene] - المشهد المعطى.<br />
+			[page:Number sigma] - (اختياري) يحدد نصف قطر التشويش بالراديان ليتم تطبيقه على المشهد قبل إنشاء PMREM. الافتراضي هو `0`.<br />
+			[page:Number near] - (اختياري) قيمة السطح القريب. الافتراضي هو `0.1`.<br />
+			[page:Number far] - (اختياري) قيمة السطح البعيد. الافتراضي هو `100`.<br /><br />
+	 
+			يولد PMREM من مشهد معطى ، والذي يمكن أن يكون أسرع من استخدام صورة إذا كانت عرض النطاق الترددي للشبكة منخفضة. تضمن الأسطح القريبة والبعيدة الاختيارية عرض المشهد بأكمله (يتم وضع cubeCamera في المنشأ).
+		</p>
+	 
+		<h3>
+			[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )
+		</h3>
+		<p>
+			[page:Texture equirectangular] - نسيج equirectangular.<br /><br />
+	 
+			يولد PMREM من نسيج equirectangular.
+		</p>
+	 
+		<h3>
+			[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )
+		</h3>
+		<p>
+			[page:CubeTexture cubemap] - نسيج cubemap.<br /><br />
+	 
+			يولد PMREM من نسيج cubemap.
+		</p>
+	 
+		<h3>[method:undefined compileCubemapShader]()</h3>
+		<p>
+			يجمع مسبقًا شادر cubemap. يمكنك الحصول على بدء تشغيل أسرع عن طريق استدعاء هذه الطريقة أثناء جلب شبكة نسيجك لزيادة التزامن.
+		</p>
+	 
+		<h3>[method:undefined compileEquirectangularShader]()</h3>
+		<p>
+			يجمع مسبقًا شادر equirectangular. يمكنك الحصول على بدء تشغيل أسرع عن طريق استدعاء هذه الطريقة أثناء جلب شبكة نسيجك لزيادة التزامن.
+		</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>

+ 52 - 0
docs/api/ar/extras/ShapeUtils.html

@@ -0,0 +1,52 @@
+<!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 />
+	 
+			لاحظ أن هذه كلها دوال خطية لذلك يجب حسابها بشكل منفصل لمكونات x و y (و z و w إذا كانت موجودة) من متجه.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:Number area]( contour )</h3>
+		<p>
+			contour -- مضلع 2D. مصفوفة من THREE.Vector2()<br /><br />
+	 
+			حساب مساحة مضلع (2D) المحيط.
+		</p>
+	 
+		<h3>[method:Boolean isClockWise]( pts )</h3>
+		<p>
+			pts -- نقاط تحدد مضلع 2D<br /><br />
+	 
+			لاحظ أن هذه هي دالة خطية لذلك يجب حسابها بشكل منفصل لمكونات x و y من المضلع.<br /><br />
+	 
+			يستخدم داخليًا بواسطة [page:Path Path] و [page:ExtrudeGeometry ExtrudeGeometry] و [page:ShapeGeometry ShapeGeometry].
+		</p>
+	 
+		<h3>[method:Array triangulateShape]( contour, holes )</h3>
+		<p>
+			contour -- مضلع 2D. مصفوفة من [page:Vector2].<br />
+			holes -- مصفوفة تحتوي على مصفوفات من [page:Vector2]s. كل مصفوفة
+			تمثل تعريف ثقب واحد.<br /><br />
+	 
+			يستخدم داخليًا بواسطة [page:ExtrudeGeometry ExtrudeGeometry] و
+			[page:ShapeGeometry ShapeGeometry] لحساب الوجوه في الأشكال التي بها ثقوب.
+		</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/extras/core/Curve.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">
+			فئة أساسية مجردة لإنشاء كائن [name] يحتوي على طرق للإدراج. لمجموعة من [name]s انظر [page:CurvePath].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]()</h3>
+		 
+		<p>ينشئ هذا المُنشئ [name] جديدًا.</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Integer arcLengthDivisions]</h3>
+		<p>
+			يحدد هذا القيمة عدد الشعبات عند حساب طول الشطر التراكمي للمنحنى عبر [page:.getLengths]. لضمان
+			الدقة عند استخدام طرق مثل [page:.getSpacedPoints]، يوصى بزيادة [page:.arcLengthDivisions] إذا كان المنحنى كبيرًا جدًا. الافتراضي هو 200.
+		</p>
+		 
+		<h2>الوظائف (Methods)</h2>
+		 
+		<h3>[method:Vector getPoint]( [param:Float t], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float t] - موقع على المنحنى. يجب أن يكون في النطاق [0، 1].
+			<br />
+			[page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد.
+			<br /><br />
+		 
+			يعود بفيكتور لموقع معين على المنحنى.
+		</p>
+		 
+		<h3>[method:Vector getPointAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float u] - موقع على المنحنى وفقًا لطول القوس. يجب أن يكون في النطاق [0، 1]. <br />
+			[page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد.
+			<br /><br />
+		 
+			يعود بفيكتور لموقع معين على المنحنى وفقًا لطول القوس.
+		</p>
+		 
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions - عدد الأجزاء التي يتم تقسيم المنحنى إليها. الافتراضي هو `5`.<br /><br />
+		 
+			يعود بمجموعة من divisions + 1 نقطة باستخدام getPoint( t ).
+		</p>
+		 
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions - عدد الأجزاء التي يتم تقسيم المнحنى إليها. الافتراضي هو `5`.<br /><br />
+		 
+			يعود بمجموعة من divisions + 1 نقطة متساوية المسافات باستخدام getPointAt( u ).
+		</p>
+
+		<h3>[method:Float getLength]()</h3>
+		<p>احصل على إجمالي طول قوس المنحنى.</p>
+		
+		<h3>[method:Array getLengths]( [param:Integer divisions] )</h3>
+		<p>احصل على قائمة بطول الشرائح التراكمية.</p>
+		
+		<h3>[method:undefined updateArcLengths]()</h3>
+		<p>
+			تحديث ذاكرة التخزين المؤقت للمسافة الشريطية التراكمية. يجب استدعاء الطريقة
+			في كل مرة يتم فيها تغيير معلمات المنحنى. إذا كان المنحنى المحدث جزءًا من
+			منحنى مكون مثل [page:CurvePath]، يجب
+			استدعاء [page:.updateArcLengths]() على المنحنى المكوَّن أيضًا.
+		</p>
+		
+		<h3>[method:Float getUtoTmapping]( [param:Float u], [param:Float distance] )</h3>
+		<p>
+			بالنظر إلى u في النطاق (0 .. 1) ، يعود [page:Float t] أيضًا في النطاق
+			(0 .. 1). يمكن استخدام u و t لإعطائك نقاط هي
+			متساوية البعد من نهايات المنحنى ، باستخدام [page:.getPoint].
+		</p>
+		
+		<h3>[method:Vector getTangent]( [param:Float t], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float t] - موضع على المنحنى. يجب أن يكون في النطاق [0، 1].
+			<br />
+			[page:Vector optionalTarget] - (اختياري) إذا تم تحديده ، سيتم
+			نسخ النتيجة في هذا Vector ، وإلا سيتم إنشاء Vector جديد.
+			<br /><br />
+		
+			يعود بمتجه وحدة مماس على t. إذا لم يكن المنحنى المشتق
+			تطبيق تفريعه المماس ، سيتم استخدام نقطتين صغيرتين delta بعيدًا للعثور على التدرج الذي يبدو أنه يعطي تقريبًا معقولًا.
+		</p>
+		
+		<h3>[method:Vector getTangentAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
+		<p>
+			[page:Float u] - موقع على المنحنى وفقًا لطول القوس. يجب أن يكون في النطاق [0، 1].
+
+			[page:Vector optionalTarget] - (اختياري) إذا تم تحديده، سيتم نسخ النتيجة في هذا الفيكتور، وإلا سيتم إنشاء فيكتور جديد.
+			
+			يعود الميل في نقطة تبعد مسافة متساوية عن طرفي المنحنى من النقطة المعطاة في [page:.getTangent].
+		</p>
+		
+		<h3>[method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )</h3>
+		<p>
+			إنشاء Frenet Frames. يتطلب تعريف منحى في فضاء 3D. مستخدم
+			في هَیْأَات مثل [page:TubeGeometry] أو [page:ExtrudeGeometry].
+		</p>
+		
+		<h3>[method:Curve clone]()</h3>
+		<p>إنشاء نسخة من هذه الحالة.</p>
+		
+		<h3>[method:this copy]( [param:Curve source] )</h3>
+		<p>يلصق كائن [name] آخر إلى هذه الحالة.</p>
+		
+		<h3>[method:Object toJSON]()</h3>
+		<p>يرجع كائن JSON لتمثيل هذه الحالة.</p>
+		
+		<h3>[method:this fromJSON]( [param:Object json] )</h3>
+		<p>يلصق البيانات من كائن JSON المعطى إلى هذه الحالة.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 72 - 0
docs/api/ar/extras/core/CurvePath.html

@@ -0,0 +1,72 @@
+<!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:Curve] →
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			فئة أساسية مجردة تمتد [page:Curve]. مسار المنحنى هو مجرد
+			مصفوفة من المنحنيات المتصلة، ولكنها تحتفظ بواجهة برمجة التطبيقات الخاصة بالمنحنى.
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]()</h3>
+		<p>لا يأخذ المُنشئ أي معلمات.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:Curve] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Array curves]</h3>
+		<p>مصفوفة من [page:Curve Curves].</p>
+	 
+		<h3>[property:Boolean autoClose]</h3>
+		<p>ما إذا كان يجب إغلاق المسار تلقائيًا أم لا.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر فئة [page:Curve] الأساسية للأساليب المشتركة.</p>
+	 
+		<h3>[method:undefined add]( [param:Curve curve] )</h3>
+		<p>إضافة منحى إلى مصفوفة [page:.curves].</p>
+	 
+		<h3>[method:undefined closePath]()</h3>
+		<p>يضيف [page:LineCurve lineCurve] لإغلاق المسار.</p>
+	 
+		<h3>[method:Array getCurveLengths]()</h3>
+		<p>
+			الحصول على قائمة بطول القطع التراكمية للمنحنيات في مصفوفة [page:.curves].
+		</p>
+	 
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- عدد قطع التقسيم إلى المنحنى. الافتراضي هو
+			`12`.<br /><br />
+	 
+			يعود بمصفوفة من النقاط التي تمثل تسلسل منحنيات. يُعرِّف معلم `division`
+			عدد القطع التي يتم تقسيم كل منحى إليها. ومع ذلك، لأغراض التحسين والجودة،
+			يعتمد دقة العينات الفعلية لكل منحى على نوعه. على سبيل المثال، بالنسبة
+			لـ[page:LineCurve]، يكون عدد النقاط المُستَرَجَعَ دائمًا 2 فقط.
+		</p>
+	 
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- عدد قطع التقسيم إلى المنحنى. الافتراضي هو
+			`40`.<br /><br />
+	 
+			يعود بمجموعة من divisions + 1 نقط متساوية المسافات باستخدام getPointAt( u ).
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 52 - 0
docs/api/ar/extras/core/Interpolations.html

@@ -0,0 +1,52 @@
+<!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">
+			يحتوي [name] على دوال الشريط وبيزيه المستخدمة داخليًا من قبل
+			فئات المنحنى الخرسانية.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+	 
+		<h3>[method:Float CatmullRom]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+			t -- وزن التداخل.<br />
+			p0، p1، p2، p3 -- النقاط التي تُعرِّف منحى الشريط.<br /><br />
+	 
+			يُستخدم داخليًا بواسطة [page:SplineCurve SplineCurve].
+		</p>
+	 
+		<h3>[method:Float QuadraticBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2] )</h3>
+		<p>
+			t -- وزن التداخل.<br />
+			p0، p1، p2 -- نقاط البدء والتحكم والنهاية التي تُعرِّف المنحى.<br /><br />
+	 
+			يُستخدم داخليًا بواسطة [page:QuadraticBezierCurve3 QuadraticBezierCurve3] و
+			[page:QuadraticBezierCurve QuadraticBezierCurve].
+		</p>
+	 
+		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
+		<p>
+			t -- وزن التداخل.<br />
+			p0، p1، p2، p3 -- نقاط البدء والتحكم (مرتين) والنهاية التي تُعرِّف
+			المنحى.<br /><br />
+	 
+			يُستخدم داخليًا بواسطة [page:CubicBezierCurve3 CubicBezierCurve3] و
+			[page:CubicBezierCurve CubicBezierCurve].
+		</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/extras/core/Path.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:Curve] → [page:CurvePath] →
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			تمثيل مسار ثنائي الأبعاد. توفر الفئة طرقًا لإنشاء مسارات
+			ومحيطات الأشكال ثنائية الأبعاد المشابهة لواجهة برمجة التطبيقات Canvas 2D.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const path = new THREE.Path();
+	 
+		path.lineTo( 0, 0.8 );
+		path.quadraticCurveTo( 0, 1, 0.2, 1 );
+		path.lineTo( 1, 1 );
+	 
+		const points = path.getPoints();
+	 
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+		const material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+	 
+		const line = new THREE.Line( geometry, material );
+		scene.add( line );
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Array points] )</h3>
+		<p>
+			points -- (اختياري) مصفوفة من [page:Vector2 Vector2s].<br /><br />
+	 
+			يُنشئ مسارًا من النقاط. يُعرِّف النقطة الأولى الإزاحة، ثُم
+			يتم إضافة النقاط المتتالية إلى مصفوفة [page:CurvePath.curves curves] كـ
+			[page:LineCurve LineCurves].<br /><br />
+	 
+			إذا لم يتم تحديد أي نقاط، يتم إنشاء مسار فارغ ويتم تعيين
+			[page:.currentPoint] على المنشأ.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:CurvePath] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector2 currentPoint]</h3>
+		<p>
+		الإزاحة الحالية للمسار. سيبدأ أي [page:Curve] جديد يتم إضافته
+		هنا.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر فئة [page:CurvePath] الأساسية للأساليب المشتركة.</p>
+	 
+		<h3>[method:this absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
+		<p>
+			x، y -- مركز القوس المطلق.<br />
+			radius -- نصف قطر القوس.<br />
+			startAngle -- زاوية البدء بالراديان.<br />
+			endAngle -- زاوية النهاية بالراديان.<br />
+			clockwise -- تدوير القوس في اتجاه عقارب الساعة. يعتمد على `false`.<br /><br />
+	 
+			يضيف [page:EllipseCurve EllipseCurve] مُوضَعًا مطلقًا إلى
+			المسار.
+		</p>
+	 
+		<h3>[method:this absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
+		<p>
+			x، y -- مركز القطع الناقص المطلق.<br />
+			xRadius -- نصف قطر القطع الناقص في المحور x.<br />
+			yRadius -- نصف قطر القطع الناقص في المحور y.<br />
+			startAngle -- زاوية البدء بالراديان.<br />
+			endAngle -- زاوية النهاية بالراديان.<br />
+			clockwise -- تدوير القطع الناقص في اتجاه عقارب الساعة. يعتمد على false.<br />
+			rotation -- زاوية دوران القطع الناقص بالراديان، عكس اتجاه عقارب
+			من المحور X الموجب. اختياري، يعتمد على 0.<br /><br />
+	 
+			يضيف [page:EllipseCurve EllipseCurve] مُوضَعًا مطلقًا إلى
+			المسار.
+		</p>
+	 
+		<h3>[method:this arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
+		<p>
+			x، y -- مركز القوس المُزَوَّد من آخر استدعاء.<br />
+			radius -- نصف قطر القوس.<br />
+			startAngle -- زاوية البدء بالراديان.<br />
+			endAngle -- زاوية النهاية بالراديان.<br />
+			clockwise -- تدوير القوس في اتجاه عقارب الساعة. يعتمد على `false`.<br /><br />
+	 
+			يضيف [page:EllipseCurve EllipseCurve] إلى المسار، مُوضَعًا نسبيًا
+			إلى [page:.currentPoint].
+		</p>
+
+		<h3>[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+ 		<p>
+ 			يُنشئ منحى بيزيه من [page:.currentPoint] مع (cp1X، cp1Y)
+ 			و(cp2X، cp2Y) كنقاط تحكم ويُحدِّث [page:.currentPoint] إلى x
+ 			و y.
+ 		</p>
+
+ 		<h3>[method:this ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
+ 		<p>
+ 			x، y -- مركز القطع الناقص المُزَوَّد من آخر استدعاء.<br />
+ 			xRadius -- نصف قطر القطع الناقص في المحور x.<br />
+ 			yRadius -- نصف قطر القطع الناقص في المحور y.<br />
+ 			startAngle -- زاوية البدء بالراديان.<br />
+ 			endAngle -- زاوية النهاية بالراديان.<br />
+ 			clockwise -- تدوير القطع الناقص في اتجاه عقارب الساعة. يعتمد على `false`.<br />
+ 			rotation -- زاوية دوران القطع الناقص بالراديان، عكس اتجاه عقارب
+ 			من المحور X الموجب. اختياري، يعتمد على `0`.<br /><br />
+
+ 			يضيف [page:EllipseCurve EllipseCurve] إلى المسار، مُوضَعًا نسبيًا
+ 			إلى [page:.currentPoint].
+ 		</p>
+
+ 		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
+ 		<p>
+ 			يُربِط [page:LineCurve] من [page:.currentPoint] إلى x، y على
+ 			المسار.
+ 		</p>
+
+ 		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
+ 		<p>تحريك [page:.currentPoint] إلى x، y.</p>
+
+ 		<h3>[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+ 		<p>
+ 			يُنشئ منحى رباعي من [page:.currentPoint] مع cpX و cpY كـ
+ 			نقطة تحكم ويُحدِّث [page:.currentPoint] إلى x و y.
+ 		</p>
+
+ 		<h3>[method:this setFromPoints]( [param:Array vector2s] )</h3>
+ 		<p>
+ 			points -- مصفوفة من [page:Vector2 Vector2s].<br /><br />
+
+ 			يتم إضافة النقاط إلى مصفوفة [page:CurvePath.curves curves] كـ
+ 			[page:LineCurve LineCurves].
+ 		</p>
+
+ 		<h3>[method:this splineThru] ( [param:Array points] )</h3>
+ 		<p>
+ 			points - مصفوفة من [page:Vector2 Vector2s]<br /><br />
+
+ 			يُربِط منحى جديدًا من نوع SplineCurve على المسار.
+ 		</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/extras/core/Shape.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:Curve] → [page:CurvePath] → [page:Path] →
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			يعرف شكل طائرة 2d تعسفي باستخدام مسارات مع ثقوبات اختيارية. يمكن استخدامه مع [page:ExtrudeGeometry]، [page:ShapeGeometry]، للحصول على نقاط، أو للحصول على وجوه مثلثة.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const heartShape = new THREE.Shape();
+
+		heartShape.moveTo( 25, 25 );
+		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
+		heartShape.bezierCurveTo( - 30, 0, - 30, 35, - 30, 35 );
+		heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
+		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
+		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
+
+		const extrudeSettings = { 
+			depth: 8, 
+			bevelEnabled: true, 
+			bevelSegments: 2, 
+			steps: 2, 
+			bevelSize: 1, 
+			bevelThickness: 1 
+		};
+
+		const geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
+
+		const mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+ 		<p>
+ 			[example:webgl_geometry_shapes geometry / shapes ]<br />
+ 			[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]
+ 		</p>
+
+ 		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>[name]( [param:Array points] )</h3>
+ 		<p>
+ 			points -- (اختياري) مصفوفة من [page:Vector2 Vector2s].<br /><br />
+
+ 			ينشئ شكل من النقاط. يحدد النقطة الأولى الإزاحة، ثم يتم إضافة النقاط المتعاقبة إلى مصفوفة [page:CurvePath.curves curves] كـ
+ 			[page:LineCurve LineCurves].<br /><br />
+
+ 			إذا لم يتم تحديد أي نقاط، يتم إنشاء شكل فارغ ويتم تعيين
+ 			[page:.currentPoint] على المنشأ.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:Path] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:String uuid]</h3>
+ 		<p>
+ 			[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
+ 			هذه الحالة. يتم تعيين هذا تلقائيًا، لذلك لا يجب تحريره.
+ 		</p>
+
+ 		<h3>[property:Array holes]</h3>
+ 		<p>مصفوفة من [page:Path paths] التي تحدد الثقوب في الشكل.</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر فئة [page:Path] الأساسية للطرق المشتركة.</p>
+
+ 		<h3>[method:Array extractPoints]( [param:Integer divisions] )</h3>
+ 		<p>
+ 			divisions -- دقة النتيجة.<br /><br />
+
+ 			استدعاء [page:Curve.getPoints getPoints] على الشكل ومصفوفة [page:.holes]
+ 			، وإرجاع كائن من الشكل:
+ 			<code> { shape holes } </code>
+ 			حيث shape و holes هما مصفوفات من [page:Vector2 Vector2s].
+ 		</p>
+
+ 		<h3>[method:Array getPointsHoles]( [param:Integer divisions] )</h3>
+ 		<p>
+ 			divisions -- دقة النتيجة.<br /><br />
+
+ 			احصل على مصفوفة من [page:Vector2 Vector2s] التي تمثل الثقوب في
+ 			الشكل.
+ 		</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/extras/core/ShapePath.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">
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			يتم استخدام هذه الفئة لتحويل سلسلة من الأشكال إلى مصفوفة من
+			[page:Path]s، على سبيل المثال شكل SVG إلى مسار (انظر المثال أدناه).
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( )</h3>
+		<p>
+			ينشئ ShapePath جديد. على عكس [page:Path]، لا تتم مرور أي نقاط كما
+			يتم تصميم ShapePath ليتم إنشاؤه بعد الإنشاء.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Array subPaths]</h3>
+		<p>مصفوفة من [page:Path]s.</p>
+	 
+		<h3>[property:Array currentPath]</h3>
+		<p>[page:Path] الحالي الذي يتم إنشاؤه.</p>
+	 
+		<h3>[property:Color color]</h3>
+		<p>[page:Color] من الشكل، بشكل افتراضي مضبوط على الأبيض (0xffffff).</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
+		<p>
+			يبدأ [page:Path] جديد ويستدعي [page:Path.moveTo]( x, y ) على ذلك
+			[page:Path]. كما يشير [page:ShapePath.currentPath currentPath] إلى ذلك
+			[page:Path].
+		</p>
+	 
+		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
+		<p>
+			هذا ينشئ خطًا من إزاحة [page:ShapePath.currentPath currentPath]
+			إلى X و Y ويحدث الإزاحة إلى X و Y.
+		</p>
+	 
+		<h3>
+			[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )
+		</h3>
+		<p>
+			هذا ينشئ منحنى ثنائي الحدود من إزاحة [page:ShapePath.currentPath currentPath]
+			إلى x و y مع cpX و cpY كنقطة تحكم و
+			يحدث إزاحة [page:ShapePath.currentPath currentPath]
+			إلى x و y.
+		</p>
+	 
+
+		<h3>
+			[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )
+		</h3>
+		<p>
+			هذا ينشئ منحنى بيزيه من إزاحة [page:ShapePath.currentPath currentPath]
+			إلى x و y مع cp1X و cp1Y و cp2X و cp2Y كنقاط تحكم
+			ويحدث إزاحة [page:ShapePath.currentPath currentPath]
+			إلى x و y.
+		</p>
+		 
+		<h3>[method:this splineThru] ( [param:Array points] )</h3>
+		<p>points - مصفوفة من [page:Vector2]s</p>
+		<p>
+			يربط [page:SplineCurve] جديد على [page:ShapePath.currentPath currentPath].
+		</p>
+		 
+		<h3>[method:Array toShapes]( [param:Boolean isCCW] )</h3>
+		<p>isCCW -- يغير كيفية إنشاء الأشكال الصلبة والثقوب</p>
+		<p>
+			يحول مصفوفة [page:ShapePath.subPaths subPaths] إلى مصفوفة من
+			الأشكال. بشكل افتراضي، يتم تعريف الأشكال الصلبة باتجاه عقارب الساعة (CW) ويتم تعريف الثقوب بعكس اتجاه عقارب الساعة (CCW). إذا تم تعيين isCCW على true، فإن هذه
+			مقلوب.
+			<br />
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/ShapePath.js src/extras/core/ShapePath.js]
+		</p>
+	</body>
+</html>

+ 24 - 0
docs/api/ar/extras/curves/ArcCurve.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">
+		[page:Curve] &rarr; [page:EllipseCurve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">اسم مستعار لـ [page:EllipseCurve].</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:EllipseCurve] للحصول على الخصائص المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 84 - 0
docs/api/ar/extras/curves/CatmullRomCurve3.html

@@ -0,0 +1,84 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			قم بإنشاء منحنى شريط 3d ناعم من سلسلة من النقاط باستخدام
+			[link:https://en.wikipedia.org/wiki/Centripetal_Catmull-Rom_spline Catmull-Rom] خوارزمية.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		// إنشاء حلقة مغلقة متموجة
+		const curve = new THREE.CatmullRomCurve3( [
+		new THREE.Vector3( -10, 0, 10 ),
+		new THREE.Vector3( -5, 5, 5 ),
+		new THREE.Vector3( 0, 0, 0 ),
+		new THREE.Vector3( 5, -5, 5 ),
+		new THREE.Vector3( 10, 0, 10 )
+		] );
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+	 
+		<p>
+			[example:webgl_geometry_extrude_splines WebGL / geometry / extrude / splines]
+		</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+			[name]( [param:Array points], [param:Boolean closed], [param:String curveType], [param:Float tension] )
+		</h3>
+		<p>
+			points – مصفوفة من نقاط [page:Vector3]<br />
+			closed – ما إذا كان المنحنى مغلقًا. الافتراضي هو `false`.<br />
+			curveType – نوع المنحنى. الافتراضي هو `centripetal`.<br />
+			tension – توتر المنحنى. الافتراضي هو `0.5`.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Array points]</h3>
+		<p>
+			مصفوفة من نقاط [page:Vector3] التي تحدد المنحنى. يحتاج على الأقل إلى دخولين.
+		</p>
+	 
+		<h3>[property:Boolean closed]</h3>
+		<p>سيعود المنحنى إلى نفسه عندما يكون هذا صحيحًا.</p>
+	 
+		<h3>[property:String curveType]</h3>
+		<p>القيم الممكنة هي `centripetal` و `chordal` و `catmullrom`.</p>
+	 
+		<h3>[property:Float tension]</h3>
+		<p>عندما يكون [page:.curveType] هو `catmullrom` ، يعرف توتر catmullrom.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 79 - 0
docs/api/ar/extras/curves/CubicBezierCurve.html

@@ -0,0 +1,79 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+			قم بإنشاء منحنى بيزيه مكعب 2d ناعم
+			<a
+			href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg"
+			target="_blank"
+			>cubic bezier curve</a
+			> ، محدد بنقطة البداية ونقطة النهاية ونقطتي تحكم.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const curve = new THREE.CubicBezierCurve(
+		new THREE.Vector2( -10, 0 ),
+		new THREE.Vector2( -5, 15 ),
+		new THREE.Vector2( 20, 15 ),
+		new THREE.Vector2( 10, 0 )
+		);
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+			[name] ( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2],
+			[param:Vector2 v3] )
+		</h3>
+		<p>
+			[page:Vector2 v0] – نقطة البداية.<br />
+			[page:Vector2 v1] – نقطة التحكم الأولى.<br />
+			[page:Vector2 v2] – نقطة التحكم الثانية.<br />
+			[page:Vector2 v3] – نقطة النهاية.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector2 v0]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector2 v1]</h3>
+		<p>نقطة التحكم الأولى.</p>
+	 
+		<h3>[property:Vector2 v2]</h3>
+		<p>نقطة التحكم الثانية.</p>
+	 
+		<h3>[property:Vector2 v3]</h3>
+		<p>نقطة النهاية.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</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/extras/curves/CubicBezierCurve3.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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		قم بإنشاء منحنى بيزيه مكعب 3d ناعم
+		<a
+		href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:Bezier_curve.svg"
+		target="_blank"
+		>cubic bezier curve</a
+		> ، محدد بنقطة البداية ونقطة النهاية ونقطتي تحكم.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const curve = new THREE.CubicBezierCurve3(
+		new THREE.Vector3( -10, 0, 0 ),
+		new THREE.Vector3( -5, 15, 0 ),
+		new THREE.Vector3( 20, 15, 0 ),
+		new THREE.Vector3( 10, 0, 0 )
+		);
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const curveObject = new THREE.Line( geometry, material );
+	 
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2],
+		[param:Vector3 v3] )
+		</h3>
+		<p>
+		[page:Vector3 v0] – نقطة البداية.<br />
+		[page:Vector3 v1] – نقطة التحكم الأولى.<br />
+		[page:Vector3 v2] – نقطة التحكم الثانية.<br />
+		[page:Vector3 v3] – نقطة النهاية.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector3 v0]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector3 v1]</h3>
+		<p>نقطة التحكم الأولى.</p>
+	 
+		<h3>[property:Vector3 v2]</h3>
+		<p>نقطة التحكم الثانية.</p>
+	 
+		<h3>[property:Vector3 v3]</h3>
+		<p>نقطة النهاية.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</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/extras/curves/EllipseCurve.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:Curve] →
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		ينشئ منحنى 2d على شكل بيضاوي. يؤدي تعيين [page:Number xRadius] مساويًا لـ [page:Number yRadius] إلى الحصول على دائرة.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const curve = new THREE.EllipseCurve(
+			0,  0,            // ax, aY
+			10, 10,           // xRadius, yRadius
+			0,  2 * Math.PI,  // aStartAngle, aEndAngle
+			false,            // aClockwise
+			0                 // aRotation
+		);
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const ellipse = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:Float aX], [param:Float aY], [param:Float xRadius],
+		[param:Float yRadius], [param:Radians aStartAngle], [param:Radians aEndAngle], [param:Boolean aClockwise], [param:Radians aRotation] )
+		</h3>
+		<p>
+		[page:Float aX] – مركز X للبيضاوي. الافتراضي هو `0`.<br />
+		[page:Float aY] – مركز Y للبيضاوي. الافتراضي هو `0`.<br />
+		[page:Float xRadius] – نصف قطر البيضاوي في اتجاه x.
+		الافتراضي هو `1`.<br />
+		[page:Float yRadius] – نصف قطر البيضاوي في اتجاه y.
+		الافتراضي هو `1`.<br />
+		[page:Radians aStartAngle] – زاوية بدء المنحنى بالراديان
+		بدءًا من المحور X الموجب. الافتراضي هو `0`.<br />
+		[page:Radians aEndAngle] – زاوية نهاية المنحنى بالراديان بدءًا
+		من المحور X الموجب. الافتراضي هو `2 x Math.PI`.<br />
+		[page:Boolean aClockwise] – ما إذا كان يتم رسم البيضاوي في اتجاه عقارب الساعة.
+		الافتراضي هو `false`.<br />
+		[page:Radians aRotation] – زاوية دوران البيضاوي بالراديان ،
+		عكس اتجاه عقارب الساعة من المحور X الموجب (اختياري). الافتراضي هو `0`.<br /><br />
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Float aX]</h3>
+		<p>مركز X للبيضاوي.</p>
+	 
+		<h3>[property:Float aY]</h3>
+		<p>مركز Y للبيضاوي.</p>
+	 
+		<h3>[property:Radians xRadius]</h3>
+		<p>نصف قطر البيضاوي في اتجاه x.</p>
+	 
+		<h3>[property:Radians yRadius]</h3>
+		<p>نصف قطر البيضاوي في اتجاه y.</p>
+	 
+		<h3>[property:Float aStartAngle]</h3>
+		<p>
+		زاوية بدء المنحنى بالراديان بدءًا من المنتصف الأمام.
+		</p>
+	 
+		<h3>[property:Float aEndAngle]</h3>
+		<p>
+		زاوية نهاية المنحنى بالراديان بدءًا من المنتصف الأمام.
+		</p>
+	 
+		<h3>[property:Boolean aClockwise]</h3>
+		<p>ما إذا كان يتم رسم البيضاوي في اتجاه عقارب الساعة.</p>
+	 
+		<h3>[property:Float aRotation]</h3>
+		<p>
+		زاوية دوران البيضاوي بالراديان ، عكس اتجاه عقارب الساعة من
+		المحور X الموجب (aRotation). الافتراضية هى `0`.
+		</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 42 - 0
docs/api/ar/extras/curves/LineCurve.html

@@ -0,0 +1,42 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">منحنى يمثل قطعة خطية 2d.</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Vector2 v1], [param:Vector2 v2] )</h3>
+		<p>
+		[page:Vector2 v1] – نقطة البداية.<br />
+		[page:Vector2 v2] - نقطة النهاية.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector2 v1]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector2 v2]</h3>
+		<p>نقطة النهاية</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 42 - 0
docs/api/ar/extras/curves/LineCurve3.html

@@ -0,0 +1,42 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">منحنى يمثل قطعة خطية 3d.</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Vector3 v1], [param:Vector3 v2] )</h3>
+		<p>
+		[page:Vector3 v1] – نقطة البداية.<br />
+		[page:Vector3 v2] - نقطة النهاية.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على الخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector3 v1]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector3 v2]</h3>
+		<p>نقطة النهاية.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page:Curve] الأساسية للحصول على طرق مشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 73 - 0
docs/api/ar/extras/curves/QuadraticBezierCurve.html

@@ -0,0 +1,73 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		قم بإنشاء منحنى بيزيه ثنائي الأبعاد ناعم
+		<a
+		href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif"
+		target="_blank"
+		>رباعي</a
+		>، محدد بنقطة البداية ونقطة النهاية ونقطة تحكم واحدة.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const curve = new THREE.QuadraticBezierCurve(
+		new THREE.Vector2( -10, 0 ),
+		new THREE.Vector2( 20, 15 ),
+		new THREE.Vector2( 10, 0 )
+		);
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:Vector2 v0], [param:Vector2 v1], [param:Vector2 v2] )
+		</h3>
+		<p>
+		[page:Vector2 v0] – نقطة البداية.<br />
+		[page:Vector2 v1] – نقطة التحكم.<br />
+		[page:Vector2 v2] – نقطة النهاية.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قاعدة [page:Curve] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector2 v0]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector2 v1]</h3>
+		<p>نقطة التحكم.</p>
+	 
+		<h3>[property:Vector2 v2]</h3>
+		<p>نقطة النهاية.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Curve] للحصول على الطرق المشتركة.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 73 - 0
docs/api/ar/extras/curves/QuadraticBezierCurve3.html

@@ -0,0 +1,73 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		قم بإنشاء منحنى بيزيه ثلاثي الأبعاد ناعم
+		<a
+		href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve#mediaviewer/File:B%C3%A9zier_2_big.gif"
+		target="_blank"
+		>رباعي</a
+		>، محدد بنقطة البداية ونقطة النهاية ونقطة تحكم واحدة.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		const curve = new THREE.QuadraticBezierCurve3(
+		new THREE.Vector3( -10, 0, 0 ),
+		new THREE.Vector3( 20, 15, 0 ),
+		new THREE.Vector3( 10, 0, 0 )
+		);
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const curveObject = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 v2] )
+		</h3>
+		<p>
+		[page:Vector3 v0] – نقطة البداية<br />
+		[page:Vector3 v1] – نقطة التحكم الوسطى<br />
+		[page:Vector3 v2] – نقطة النهاية<br />
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قاعدة [page:Curve] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Vector3 v0]</h3>
+		<p>نقطة البداية.</p>
+	 
+		<h3>[property:Vector3 v1]</h3>
+		<p>نقطة التحكم.</p>
+	 
+		<h3>[property:Vector3 v2]</h3>
+		<p>نقطة النهاية.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر إلى قاعدة [page:Curve] للأساليب المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 60 - 0
docs/api/ar/extras/curves/SplineCurve.html

@@ -0,0 +1,60 @@
+<!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:Curve] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		قم بإنشاء منحنى سبلاين ثنائي الأبعاد ناعم من سلسلة من النقاط. يستخدم هذا داخليًا
+		[page:Interpolations.CatmullRom] لإنشاء المنحنى.
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+		// إنشاء موجة شبيهة بالجيب
+		const curve = new THREE.SplineCurve( [
+		new THREE.Vector2( -10, 0 ),
+		new THREE.Vector2( -5, 5 ),
+		new THREE.Vector2( 0, 0 ),
+		new THREE.Vector2( 5, -5 ),
+		new THREE.Vector2( 10, 0 )
+		] );
+	 
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+	 
+		const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );
+	 
+		// إنشاء الكائن النهائي لإضافته إلى المشهد
+		const splineObject = new THREE.Line( geometry, material );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Array points] )</h3>
+		<p>points – مصفوفة من نقاط [page:Vector2] التي تحدد المنحنى.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قاعدة [page:Curve] للخصائص المشتركة.</p>
+	 
+		<h3>[property:Array points]</h3>
+		<p>مصفوفة من نقاط [page:Vector2] التي تحدد المنحنى.</p>
+	 
+		<h2>الوظائف (Methods)</h2>
+		<p>انظر إلى قاعدة [page:Curve] للأساليب المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 99 - 0
docs/api/ar/geometries/BoxGeometry.html

@@ -0,0 +1,99 @@
+<!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:BufferGeometry] &rarr;
+
+    <h1>[name]</h1>
+
+    <p class="desc">
+      [name] هي فئة هندسية لمكعب مستطيل مع 'العرض' المحدد ،
+      'الارتفاع' و 'العمق'. عند الإنشاء ، يتم توسيط المكعب على الأصل ،
+      مع كل حافة موازية لأحد المحاور.
+      </p>
+
+    <iframe
+      id="scene"
+      src="scenes/geometry-browser.html#BoxGeometry"></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.BoxGeometry( 1, 1, 1 );
+const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+const cube = new THREE.Mesh( geometry, material );
+scene.add( cube );
+    </code>
+      
+    <h2>المنشئ (Constructor)</h2>
+
+    <h3>
+    [name]([param:Float width], [param:Float height], [param:Float depth],
+    [param:Integer widthSegments], [param:Integer heightSegments],
+    [param:Integer depthSegments])
+    </h3>
+    <p>
+    width — العرض؛ أي طول الحواف الموازية لمحور X.
+    اختياري؛ الافتراضي هو 1.
+    <br />
+    height — الارتفاع؛ أي طول الحواف الموازية لمحور Y.
+    اختياري؛ الافتراضي هو 1.
+    <br />
+    depth — العمق؛ أي طول الحواف الموازية لمحور Z.
+    اختياري؛ الافتراضي هو 1.
+    <br />
+    widthSegments — عدد الوجوه المستطيلة المقسمة على طول عرض
+    الجانب. اختياري؛ الافتراضي هو 1.
+    <br />
+    heightSegments — عدد الوجوه المستطيلة المقسمة على طول ارتفاع
+    الجانب. اختياري؛ الافتراضي هو 1.
+    <br />
+    depthSegments — عدد الوجوه المستطيلة المقسمة على طول عمق
+    الجانب. اختياري؛ الافتراضي هو 1.
+    <br />
+    </p>
+   
+    <h2>الخصائص (Properties)</h2>
+    <p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+   
+    <h3>[property:Object parameters]</h3>
+    <p>
+    كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+    الهندسة.
+    </p>
+   
+    <h2>الطرق (Methods)</h2>
+    <p>انظر فئة [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>

+ 79 - 0
docs/api/ar/geometries/CapsuleGeometry.html

@@ -0,0 +1,79 @@
+<!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:BufferGeometry] → [page:LatheGeometry] →
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		[name] هي فئة هندسة لكبسولة بأشعة وارتفاع محدد. يتم بناؤها باستخدام مخرطة.
+		</p>
+	 
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#CapsuleGeometry"
+		></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.CapsuleGeometry( 1, 1, 4, 8 ); 
+		const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} ); 
+		const capsule = new THREE.Mesh( geometry, material ); scene.add( capsule );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+ 		<h3>
+ 		[name]([param:Float radius], [param:Float length], [param:Integer capSubdivisions], [param:Integer radialSegments])
+ 		</h3>
+ 		<p>
+ 		radius — نصف قطر الكبسولة. اختياري؛ الافتراضي هو 1.<br />
+ 		length — طول القسم الأوسط. اختياري؛ الافتراضي هو 1.<br />
+ 		capSegments — عدد قطاعات المنحنى المستخدمة لبناء الأغطية. اختياري؛
+ 		الافتراضي هو 4.<br />
+ 		radialSegments — عدد الوجوه المقسمة حول محيط
+ 		الكبسولة. اختياري؛ الافتراضي هو 8.<br />
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Object parameters]</h3>
+ 		<p>
+ 		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+ 		الهندسة.
+ 		</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر فئة [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>

+ 78 - 0
docs/api/ar/geometries/CircleGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			[name] هو شكل بسيط من الهندسة الإقليدية. يتم بناؤه من عدد من الشرائح المثلثية التي تتجه حول نقطة مركزية وتمتد إلى أبعد ما يمكن من نصف قطر معين. يتم بناؤه عكس اتجاه عقارب الساعة من زاوية بدء وزاوية مركزية معينة. يمكن أيضًا استخدامه لإنشاء مضلعات منتظمة، حيث يحدد عدد الشرائح عدد الجوانب.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#CircleGeometry"
+		></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.CircleGeometry( 5, 32 ); 
+const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } ); 
+const circle = new THREE.Mesh( geometry, material ); scene.add( circle );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Float radius], [param:Integer segments], [param:Float thetaStart], [param:Float thetaLength])
+		</h3>
+		<p>
+		radius — نصف قطر الدائرة، الافتراضي = 1.<br />
+		segments — عدد الشرائح (المثلثات)، الحد الأدنى = 3، الافتراضي = 32.<br />
+		thetaStart — زاوية البدء للشريحة الأولى، الافتراضي = 0 (موقع الساعة
+		الثالثة).<br />
+		thetaLength — الزاوية المركزية، وغالبًا ما تسمى ثيتا، للقطاع الدائري. الافتراضي هو 2 * Pi، مما يجعله دائرة كاملة.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 79 - 0
docs/api/ar/geometries/ConeGeometry.html

@@ -0,0 +1,79 @@
+<!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:BufferGeometry] &rarr; [page:CylinderGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسة المخروط.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#ConeGeometry"></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>مثال الكود</h>
+
+		<code>
+		const geometry = new THREE.ConeGeometry( 5, 20, 32 ); 
+		const material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		const cone = new THREE.Mesh(geometry, material ); scene.add( cone );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]([param:Float radius], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments], [param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])
+		</h3>
+		<p>
+		radius — نصف قطر قاعدة المخروط. الافتراضي هو 1.<br />
+		height — ارتفاع المخروط. الافتراضي هو 1.<br />
+		radialSegments — عدد الوجوه المقسمة حول محيط
+		المخروط. الافتراضي هو 32<br />
+		heightSegments — عدد صفوف الوجوه على طول ارتفاع المخروط.
+		الافتراضي هو 1.<br />
+		openEnded — مؤشر منطقي يشير إلى ما إذا كانت قاعدة المخروط مفتوحة أو
+		مغلقة. الافتراضي هو false، أي مغلق.<br />
+		thetaStart — زاوية البدء للشريحة الأولى، الافتراضي = 0 (موقع الساعة
+		الثالثة).<br />
+		thetaLength — الزاوية المركزية، وغالبًا ما تسمى ثيتا، للقطاع الدائري. الافتراضي هو 2 * Pi، مما يجعله مخروطًا كاملاً.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:CylinderGeometry] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:CylinderGeometry] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 84 - 0
docs/api/ar/geometries/CylinderGeometry.html

@@ -0,0 +1,84 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسة الأسطوانة.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#CylinderGeometry"
+		></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, 20, 32 ); 
+		const material = new THREE.MeshBasicMaterial( {color: 0xffff00} ); 
+		const cylinder = new THREE.Mesh( geometry, material ); scene.add( cylinder );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]([param:Float radiusTop], [param:Float radiusBottom], [param:Float height], [param:Integer radialSegments], [param:Integer heightSegments],
+		[param:Boolean openEnded], [param:Float thetaStart], [param:Float thetaLength])
+		</h3>
+		<p>
+		radiusTop — نصف قطر الأسطوانة في الأعلى. الافتراضي هو 1.<br />
+		radiusBottom — نصف قطر الأسطوانة في الأسفل. الافتراضي هو 1.<br />
+		height — ارتفاع الأسطوانة. الافتراضي هو 1.<br />
+		radialSegments — عدد الوجوه المقسمة حول محيط
+		الأسطوانة. الافتراضي هو 32<br />
+		heightSegments — عدد صفوف الوجوه على طول ارتفاع الأسطوانة.
+		الافتراضي هو 1.<br />
+		openEnded — مؤشر منطقي يشير إلى ما إذا كانت طرفي الأسطوانة مفتوحة
+		أو مغلقة. الافتراضي هو false، أي مغلق.<br />
+		thetaStart — زاوية البدء للشريحة الأولى، الافتراضي = 0 (موقع الساعة
+		الثالثة).<br />
+		thetaLength — الزاوية المركزية، وغالبًا ما تسمى ثيتا، للقطاع الدائري. الافتراضي هو 2 * Pi، مما يجعله أسطوانة كاملة.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 64 - 0
docs/api/ar/geometries/DodecahedronGeometry.html

@@ -0,0 +1,64 @@
+<!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:BufferGeometry] &rarr; [page:PolyhedronGeometry] 
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسات الدوديكاهيدرون.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#DodecahedronGeometry"
+		></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:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — نصف قطر الدوديكاهيدرون. الافتراضي هو 1.<br />
+		detail — الافتراضي هو 0. تعيين هذه القيمة إلى قيمة أكبر من 0 يضيف
+		الرؤوس مما يجعله لم يعد دوديكاهيدرون.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للطرق المشتركة.</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/geometries/EdgesGeometry.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:BufferGeometry] &rarr;
+	 
+		<h1>[name]</h1>
+	 
+		<p class="desc">
+		يمكن استخدام هذا ككائن مساعد لعرض حواف
+		[page:BufferGeometry geometry].
+		</p>
+	 
+		<h2>مثال الكود</h2>
+	 
+		<code>
+const geometry = new THREE.BoxGeometry( 100, 100, 100 ); 
+const edges = new THREE.EdgesGeometry( geometry ); 
+const line = new THREE.LineSegments(edges, new THREE.LineBasicMaterial( { color: 0xffffff } ) ); 
+scene.add( line );
+		</code>
+	 
+		<h2>أمثلة (Examples)</h2>
+		<p>[example:webgl_helpers helpers]</p>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]( [param:BufferGeometry geometry], [param:Integer thresholdAngle] )
+		</h3>
+		<p>
+		geometry — أي كائن هندسة.<br />
+		thresholdAngle — يتم عرض الحافة فقط إذا كانت الزاوية (بالدرجات)
+		بين معايير الوجه للوجوه الملحقة تتجاوز هذه القيمة.
+		الافتراضي = 1 درجة.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 131 - 0
docs/api/ar/geometries/ExtrudeGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">ينشئ هندسة مُبثوقة من شكل المسار.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#ExtrudeGeometry"
+		></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 length = 12, width = 8;
+
+		const shape = new THREE.Shape();
+		shape.moveTo( 0,0 );
+		shape.lineTo( 0, width );
+		shape.lineTo( length, width );
+		shape.lineTo( length, 0 );
+		shape.lineTo( 0, 0 );
+
+		const extrudeSettings = {
+			steps: 2,
+			depth: 16,
+			bevelEnabled: true,
+			bevelThickness: 1,
+			bevelSize: 1,
+			bevelOffset: 0,
+			bevelSegments: 1
+		};
+
+		const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
+		const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		const mesh = new THREE.Mesh( geometry, material ) ;
+		scene.add( mesh );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]([param:Array shapes], [param:Object options])</h3>
+		<p>
+		shapes — شكل أو مصفوفة من الأشكال. <br />
+		options — كائن يمكن أن يحتوي على المعلمات التالية.
+		</p>
+	 
+		<ul>
+		<li>
+		curveSegments — int. عدد النقاط على المنحنيات. الافتراضي هو 12.
+		</li>
+		<li>
+		steps — int. عدد النقاط المستخدمة لتقسيم الشرائح على طول
+		عمق المنحنى المبثوق. الافتراضي هو 1.
+		</li>
+		<li>depth — float. عمق لإبعاد الشكل. الافتراضي هو 1.</li>
+		<li>
+		bevelEnabled — bool. تطبيق التجعيد على الشكل. الافتراضي هو true.
+		</li>
+		<li>
+		bevelThickness — float. مدى اختراق التجعيد في الشكل الأصلي.
+		الافتراضي هو 0.2.
+		</li>
+		<li>
+		bevelSize — float. المسافة من مخطط الشكل التي يمتد فيها التجعيد.
+		الافتراضي هو bevelThickness - 0.1.
+		</li>
+		<li>
+		bevelOffset — float. المسافة من مخطط الشكل التي يبدأ فيها التجعيد.
+		الافتراضي هو 0.
+		</li>
+		<li>bevelSegments — int. عدد طبقات التجعيد. الافتراضي هو 3.</li>
+		<li>
+		extrudePath — THREE.Curve. مسار منحنى ثلاثي الأبعاد يجب أن يتم إبعاد
+		الشكل على طوله. لا يتم دعم التجعيد لإبعاد المسار.
+		</li>
+		<li>UVGenerator — Object. كائن يوفر وظائف مولد UV</li>
+		</ul>
+	 
+		<p>هذا الكائن يبعد شكل ثنائي الأبعاد إلى هندسة ثلاثية الأبعاد.</p>
+	 
+		<p>
+		عند إنشاء شبكة بهذه الهندسة، إذا كنت ترغب في استخدام مادة منفصلة لوجهها
+		وجوانبها المبثوقة، يمكنك استخدام مصفوفة من المواد. سيتم تطبيق المادة
+		الأولى على الوجه؛ سيتم تطبيق المادة الثانية على الجانب.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 64 - 0
docs/api/ar/geometries/IcosahedronGeometry.html

@@ -0,0 +1,64 @@
+<!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:BufferGeometry] &rarr; [page:PolyhedronGeometry] &rarr;
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسة الإيكوساهيدرون.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#IcosahedronGeometry"
+		></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:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — الافتراضي هو 1. <br />
+		detail — الافتراضي هو 0. تعيين هذه القيمة إلى قيمة أكبر من 0 يضيف المزيد
+		من الرؤوس مما يجعله لم يعد إيكوساهيدرون. عندما يكون التفصيل أكبر من
+		1، فهو عبارة عن كرة بشكل فعال.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للخصائص المشتركة.</p>
+
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن يحتوي على خاصية لكل من معلمات المنشئ. أي تعديل بعد التجسيد لا يغير
+		الهندسة.
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للطرق المشتركة.</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 83 - 0
docs/api/ar/geometries/LatheGeometry.html

@@ -0,0 +1,83 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ينشئ شبكات مع تماثل محوري مثل الفازات. يدور الخراطة حول المحور Y.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#LatheGeometry"
+		></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 points = [];
+		for ( let i = 0; i < 10; i ++ ) {
+			points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );
+		}
+		const geometry = new THREE.LatheGeometry( points );
+		const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+		const lathe = new THREE.Mesh( geometry, material );
+		scene.add( lathe );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Array points], [param:Integer segments], [param:Float
+		phiStart], [param:Float phiLength])
+		</h3>
+		<p>
+		points — مصفوفة من Vector2s. يجب أن يكون الإحداثي x لكل نقطة أكبر من الصفر. الافتراضي هو مصفوفة مع (0، -0.5) ، (0.5، 0) و (0، 0.5) التي تنشئ شكل الماس البسيط.<br />
+		segments — عدد قطاعات المحيط التي يتم إنشاؤها. الافتراضي هو
+		12.<br />
+		phiStart — الزاوية الابتدائية بالراديان. الافتراضي هو 0.<br />
+		phiLength — المدى الرادياني (0 إلى 2PI) للقسم الملتوي 2PI هو مخرطة مغلقة ، أقل من 2PI هو جزء. الافتراضي هو 2PI.
+		</p>
+		<p>هذا ينشئ [name] بناءً على المعلمات.</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 61 - 0
docs/api/ar/geometries/OctahedronGeometry.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:BufferGeometry] &rarr; [page:PolyhedronGeometry] &rarr;
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسة الأوكتاهيدرون.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#OctahedronGeometry"
+		></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:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — نصف قطر الثماني. الافتراضي هو 1.<br />
+		detail — الافتراضي هو 0. تعيين هذه القيمة إلى قيمة أكبر من الصفر يضيف
+		الرؤوس مما يجعله لم يعد ثمانيًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للطرق المشتركة.</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/geometries/PlaneGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسات الطائرة.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#PlaneGeometry"
+		></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.PlaneGeometry( 1, 1 );
+const material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
+const plane = new THREE.Mesh( geometry, material );
+scene.add( plane );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Float width], [param:Float height], [param:Integer
+		widthSegments], [param:Integer heightSegments])
+		</h3>
+		<p>
+		width — العرض على طول المحور X. الافتراضي هو 1.<br />
+		height — الارتفاع على طول المحور Y. الافتراضي هو 1.<br />
+		widthSegments — اختياري. الافتراضي هو 1. <br />
+		heightSegments — اختياري. الافتراضي هو 1.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 68 - 0
docs/api/ar/geometries/PolyhedronGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			متعدد الأوجه هو صلب في ثلاثة أبعاد مع وجوه مسطحة. ستأخذ هذه الفئة مصفوفة من الرؤوس ، وتعرضها على كرة ، ثم تقسمها إلى المستوى المطلوب من التفاصيل. يتم استخدام هذه الفئة بواسطة [page:DodecahedronGeometry] ، [page:IcosahedronGeometry] ، [page:OctahedronGeometry] ، و [page:TetrahedronGeometry] لإنشاء هندساتهم المعنية.
+		</p>
+
+		<h2>Code Example</h2>
+		<code>
+const verticesOfCube = [
+  	-1,-1,-1,    1,-1,-1,    1, 1,-1,    -1, 1,-1,
+  	-1,-1, 1,    1,-1, 1,    1, 1, 1,    -1, 1, 1,
+];
+
+const indicesOfFaces = [
+  	2,1,0,    0,3,2,
+  	0,4,7,    7,3,0,
+  	0,1,5,    5,4,0,
+  	1,2,6,    6,5,1,
+  	2,3,7,    7,6,2,
+  	4,5,6,    6,7,4
+];
+
+const geometry = new THREE.PolyhedronGeometry( verticesOfCube, indicesOfFaces, 6, 2 );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]([param:Array vertices], [param:Array indices], [param:Float radius], [param:Integer detail])
+		</h3>
+		<p>
+		vertices — [page:Array] من النقاط على شكل [1،1،1، -1، -1، -1، ...]
+		<br />
+		indices — [page:Array] من الفهارس التي تشكل وجوه الشكل
+		[0،1،2، 2،3،0، ...] <br />
+		radius — [page:Float] - نصف قطر الشكل النهائي <br />
+		detail — [page:Integer] - عدد المستويات لتقسيم الهندسة. كلما كان التفصيل أكثر ، كان الشكل أكثر نعومة.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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/geometries/RingGeometry.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">
+		[page:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسة حلقة ثنائية الأبعاد.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#RingGeometry"></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>Code Example</h2>
+
+		<code>
+		const geometry = new THREE.RingGeometry( 1, 5, 32 ); 
+		const material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );
+		const mesh = new THREE.Mesh( geometry, material ); scene.add( mesh );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]([param:Float innerRadius], [param:Float outerRadius],
+		[param:Integer thetaSegments], [param:Integer phiSegments], [param:Float thetaStart], [param:Float thetaLength])
+		</h3>
+		<p>
+		innerRadius — الافتراضي هو 0.5. <br />
+		outerRadius — الافتراضي هو 1. <br />
+		thetaSegments — عدد القطاعات. يعني الرقم الأعلى أن الحلقة ستكون
+		أكثر دائرية. الحد الأدنى هو 3. الافتراضي هو 32. <br />
+		phiSegments — الحد الأدنى هو 1. الافتراضي هو 1.<br />
+		thetaStart — زاوية البدء. الافتراضي هو 0. <br />
+		thetaLength — زاوية مركزية. الافتراضي هو Math.PI * 2.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 87 - 0
docs/api/ar/geometries/ShapeGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ينشئ هندسة متعددة الأضلاع من جانب واحد من شكل واحد أو أكثر من المسارات.
+		</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#ShapeGeometry"
+		></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>Code Example</h2>
+
+		<code>
+		const x = 0, y = 0;
+
+		const heartShape = new THREE.Shape();
+
+		heartShape.moveTo( x + 5, y + 5 );
+		heartShape.bezierCurveTo( x + 5, y + 5, x + 4, y, x, y );
+		heartShape.bezierCurveTo( x - 6, y, x - 6, y + 7,x - 6, y + 7 );
+		heartShape.bezierCurveTo( x - 6, y + 11, x - 3, y + 15.4, x + 5, y + 19 );
+		heartShape.bezierCurveTo( x + 12, y + 15.4, x + 16, y + 11, x + 16, y + 7 );
+		heartShape.bezierCurveTo( x + 16, y + 7, x + 16, y, x + 10, y );
+		heartShape.bezierCurveTo( x + 7, y, x + 5, y + 5, x + 5, y + 5 );
+
+		const geometry = new THREE.ShapeGeometry( heartShape );
+		const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		const mesh = new THREE.Mesh( geometry, material ) ;
+		scene.add( mesh );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]([param:Array shapes], [param:Integer curveSegments])</h3>
+ 		<p>
+ 		shapes — [page:Array] من الأشكال أو [page:Shape shape] واحد. الافتراضي هو
+ 		شكل مثلث واحد.<br />
+ 		curveSegments - [page:Integer] - عدد القطاعات لكل شكل. الافتراضي هو
+ 		12.
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Object parameters]</h3>
+ 		<p>
+ 		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+ 		</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر فئة [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>

+ 87 - 0
docs/api/ar/geometries/SphereGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسات الكرة.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#SphereGeometry"
+		></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.SphereGeometry( 15, 32, 16 ); 
+const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } ); 
+const sphere = new THREE.Mesh( geometry, material ); scene.add( sphere );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Float radius], [param:Integer widthSegments], [param:Integer heightSegments], [param:Float phiStart], [param:Float phiLength],
+		[param:Float thetaStart], [param:Float thetaLength])
+		</h3>
+	 
+		<p>
+		radius — نصف قطر الكرة. الافتراضي هو 1.<br />
+		widthSegments — عدد القطاعات الأفقية. القيمة الدنيا هي 3 ، والافتراضي هو
+		32.<br />
+		heightSegments — عدد القطاعات العمودية. القيمة الدنيا هي 2 ، والافتراضي هو
+		16.<br />
+		phiStart — حدد زاوية البدء الأفقية. الافتراضي هو 0.<br />
+		phiLength — حدد حجم زاوية المسح الأفقية. الافتراضي هو Math.PI *
+		2.<br />
+		thetaStart — حدد زاوية البدء العمودية. الافتراضي هو 0.<br />
+		thetaLength — حدد حجم زاوية المسح العمودية. الافتراضي هو Math.PI.<br />
+		</p>
+	 
+		<p>
+		يتم إنشاء الهندسة عن طريق التمرير وحساب قمم حول المحور Y
+		(المسح الأفقي) والمحور Z (المسح العمودي). وبالتالي ، يمكن إنشاء كرات ناقصة (شبيهة بـ `'شرائح كروية'`) من خلال استخدام قيم مختلفة من phiStart و phiLength و thetaStart و thetaLength ، لتحديد النقاط التي نبدأ فيها (أو ننهي) حساب تلك
+		قمم.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 62 - 0
docs/api/ar/geometries/TetrahedronGeometry.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:BufferGeometry] &rarr; [page:PolyhedronGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسات التيتراهيدرون.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#TetrahedronGeometry"
+		></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:Float radius], [param:Integer detail])</h3>
+		<p>
+		radius — نصف قطر المنشور الرباعي. الافتراضي هو 1.<br />
+		detail — الافتراضي هو 0. تعيين هذه القيمة إلى قيمة أكبر من 0 يضيف
+		الرؤوس مما يجعله لم يعد منشورًا رباعيًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [page:PolyhedronGeometry] الأساسية للطرق المشتركة.</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/geometries/TorusGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">فئة لإنشاء هندسات التوروس.</p>
+
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#TorusGeometry"
+		></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.TorusGeometry( 10, 3, 16, 100 ); 
+const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } ); 
+const torus = new THREE.Mesh( geometry, material ); scene.add( torus );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Float radius], [param:Float tube], [param:Integer radialSegments], [param:Integer tubularSegments], [param:Float arc])
+		</h3>
+		<p>
+		radius - نصف قطر الدائرة ، من مركز الدائرة إلى مركز
+		الأنبوب. الافتراضي هو 1. <br />
+		tube — نصف قطر الأنبوب. الافتراضي هو 0.4. <br />
+		radialSegments — الافتراضي هو 12 <br />
+		tubularSegments — الافتراضي هو 48. <br />
+		arc — زاوية مركزية. الافتراضي هو Math.PI * 2.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 84 - 0
docs/api/ar/geometries/TorusKnotGeometry.html

@@ -0,0 +1,84 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			ينشئ عقدة دائرية ، والتي يتم تحديد شكلها الخاص من خلال زوج من الأعداد الصحيحة المتباينة ، p و q. إذا لم يكن p و q متباينين ، فسيكون النتيجة رابط دائري.
+		</p>
+		 
+		<iframe
+			id="scene"
+			src="scenes/geometry-browser.html#TorusKnotGeometry"
+		></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.TorusKnotGeometry( 10, 3, 100, 16 ); 
+const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } ); 
+const torusKnot = new THREE.Mesh( geometry, material ); scene.add( torusKnot );
+		</code>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>
+		[name]([param:Float radius], [param:Float tube], [param:Integer tubularSegments], [param:Integer radialSegments], [param:Integer p],
+		[param:Integer q])
+		</h3>
+		<ul>
+		<li>radius - نصف قطر الدائرة. الافتراضي هو 1.</li>
+		<li>tube — نصف قطر الأنبوب. الافتراضي هو 0.4.</li>
+		<li>tubularSegments — الافتراضي هو 64.</li>
+		<li>radialSegments — الافتراضي هو 8.</li>
+		<li>
+		p — هذه القيمة تحدد ، عدد مرات التفاف الهندسة حول محورها
+		التناظر الدوار. الافتراضي هو 2.
+		</li>
+		<li>
+		q — هذه القيمة تحدد ، عدد مرات التفاف الهندسة حول دائرة في داخل
+		الدائرة. الافتراضي هو 3.
+		</li>
+		</ul>
+	 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+	 
+		<h3>[property:Object parameters]</h3>
+		<p>
+		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 103 - 0
docs/api/ar/geometries/TubeGeometry.html

@@ -0,0 +1,103 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">ينشئ أنبوبًا يُبثق على طول منحنى ثلاثي الأبعاد.</p>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#TubeGeometry"></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>
+		class CustomSinCurve extends THREE.Curve {
+
+			constructor( scale = 1 ) {
+				super();
+				this.scale = scale;
+			}
+
+			getPoint( t, optionalTarget = new THREE.Vector3() ) {
+
+				const tx = t * 3 - 1.5;
+				const ty = Math.sin( 2 * Math.PI * t );
+				const tz = 0;
+
+				return optionalTarget.set( tx, ty, tz ).multiplyScalar( this.scale );
+			}
+		}
+
+		const path = new CustomSinCurve( 10 );
+		const geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );
+		const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		const mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		 <h3>
+ 		[name]([param:Curve path], [param:Integer tubularSegments], [param:Float radius], [param:Integer radialSegments], [param:Boolean closed])
+ 		</h3>
+ 		<p>
+ 		path — [page:Curve] - مسار ثلاثي الأبعاد يرث من فئة [page:Curve] الأساسية
+		. الافتراضي هو منحنى بيزير رباعي.<br />
+ 		tubularSegments — [page:Integer] - عدد القطاعات التي تشكل
+ 		الأنبوب. الافتراضي هو `64`.<br />
+ 		radius — [page:Float] - نصف قطر الأنبوب. الافتراضي هو `1`.<br />
+ 		radialSegments — [page:Integer] - عدد القطاعات التي تشكل
+ 		المقطع العرضي. الافتراضي هو `8`.<br />
+ 		closed — [page:Boolean] هل الأنبوب مفتوح أم مغلق. الافتراضي هو `false`.<br />
+ 		</p>
+
+ 		<h2>الخصائص (Properties)</h2>
+ 		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+
+ 		<h3>[property:Object parameters]</h3>
+ 		<p>
+ 		كائن به خاصية لكل من معلمات المُنشئ. أي تعديل بعد التجسيد لا يغير الهندسة.
+ 		</p>
+
+ 		<h3>[property:Array tangents]</h3>
+ 		<p>مصفوفة من المماسات [page:Vector3]</p>
+
+ 		<h3>[property:Array normals]</h3>
+ 		<p>مصفوفة من المعايير [page:Vector3]</p>
+
+ 		<h3>[property:Array binormals]</h3>
+ 		<p>مصفوفة من المعايير المزدوجة [page:Vector3]</p>
+
+ 		<h2>الطرق (Methods)</h2>
+ 		<p>انظر فئة [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>

+ 54 - 0
docs/api/ar/geometries/WireframeGeometry.html

@@ -0,0 +1,54 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمكن استخدام هذا ككائن مساعد لعرض [page:BufferGeometry geometry] كإطار سلكي.
+		</p>
+
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const geometry = new THREE.SphereGeometry( 100, 100, 100 );
+		 
+		const wireframe = new THREE.WireframeGeometry( geometry );
+		 
+		const line = new THREE.LineSegments( wireframe );
+		line.material.depthTest = false;
+		line.material.opacity = 0.25;
+		line.material.transparent = true;
+		 
+		scene.add( line );
+		</code>
+		 
+		<h2>أمثلة (Examples)</h2>
+		 
+		<p>[example:webgl_helpers helpers]</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:BufferGeometry geometry] )</h3>
+		<p>geometry — أي كائن هندسي.</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر فئة [page:BufferGeometry] الأساسية للخصائص المشتركة.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		<p>انظر فئة [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>

+ 103 - 0
docs/api/ar/helpers/ArrowHelper.html

@@ -0,0 +1,103 @@
+<!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>مثال الكود</h2>
+
+		<code>
+		const dir = new THREE.Vector3( 1, 2, 0 );
+
+		//normalize the direction vector (convert to vector of length 1)
+		dir.normalize();
+
+		const origin = new THREE.Vector3( 0, 0, 0 );
+		const length = 1;
+		const hex = 0xffff00;
+
+		const arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );
+		scene.add( arrowHelper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_shadowmesh WebGL / shadowmesh]</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]([param:Vector3 dir], [param:Vector3 origin], [param:Number length],
+		[param:Number hex], [param:Number headLength], [param:Number headWidth])
+		</h3>
+		<p>
+		[page:Vector3 dir] - الاتجاه من المنشأ. يجب أن يكون متجه وحدة. <br />
+		[page:Vector3 origin] - النقطة التي يبدأ فيها السهم.<br />
+		[page:Number length] - طول السهم. الافتراضي هو `1`.<br />
+		[page:Number hex] - قيمة ست عشرية لتحديد اللون. الافتراضي هو
+		0xffff00.<br />
+		[page:Number headLength] - طول رأس السهم. الافتراضي
+		هو 0.2 * الطول.<br />
+		[page:Number headWidth] - عرض رأس السهم. الافتراضي هو
+		0.2 * headLength.<br />
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قاعدة [page:Object3D] class للخصائص المشتركة.</p>
+
+		<h3>[property:Line line]</h3>
+		<p>يحتوي على جزء الخط من المساعد السهم.</p>
+
+		<h3>[property:Mesh cone]</h3>
+		<p>يحتوي على جزء المخروط من المساعد السهم.</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى قاعدة [page:Object3D] class للطرق المشتركة.</p>
+
+		<h3>[method:undefined setColor]([param:Color color])</h3>
+		<p>
+		اللون - اللون المطلوب.<br /><br />
+
+		يضبط لون المساعد السهم.
+		</p>
+
+		<h3>
+		[method:undefined setLength]([param:Number length], [param:Number headLength], [param:Number headWidth])
+		</h3>
+		<p>
+		الطول - الطول المطلوب.<br />
+		headLength - طول رأس السهم.<br />
+		headWidth - عرض رأس السهم.<br /><br />
+
+		يضبط طول المساعد السهم.
+		</p>
+
+		<h3>[method:undefined setDirection]([param:Vector3 dir])</h3>
+		<p>
+		dir - الاتجاه المطلوب. يجب أن يكون متجه وحدة.<br /><br />
+
+		يضبط اتجاه المساعد السهم.
+		</p>
+
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يحرر الموارد المتعلقة بالـ GPU التي تم تخصيصها من قبل هذا المثيل. اتصل بهذه
+		الطريقة كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 64 - 0
docs/api/ar/helpers/AxesHelper.html

@@ -0,0 +1,64 @@
+<!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; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+		<p class="desc">
+			كائن المحور لتصور المحاور الثلاثة بطريقة بسيطة. <br />
+			المحور X هو اللون الأحمر. المحور Y هو اللون الأخضر. المحور Z هو اللون الأزرق.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+const axesHelper = new THREE.AxesHelper( 5 );
+scene.add( axesHelper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_buffergeometry_compression WebGL / buffergeometry / compression]<br />
+		[example:webgl_geometry_convex WebGL / geometry / convex]<br />
+		[example:webgl_loader_nrrd WebGL / loader / nrrd]
+		</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Number size] )</h3>
+		<p>
+		[page:Number size] - (اختياري) حجم الخطوط التي تمثل المحاور.
+		الافتراضي هو `1`.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى قاعدة [page:LineSegments] class للخصائص المشتركة.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى قاعدة [page:LineSegments] class للطرق المشتركة.</p>
+		
+		<h3>
+		[method:this setColors]( [param:Color xAxisColor], [param:Color yAxisColor], [param:Color zAxisColor] )
+		</h3>
+		<p>
+		يضبط ألوان المحاور إلى [page:Color xAxisColor]، [page:Color yAxisColor]،
+		[page:Color zAxisColor].
+		</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يحرر الموارد المتعلقة بالـ GPU التي تم تخصيصها من قبل هذا المثيل. اتصل بهذه
+		الطريقة كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
+		</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/helpers/Box3Helper.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:Object3D] &rarr; [page:Line] &rarr; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">كائن مساعد لتصور [page:Box3].</p>
+
+		<h2>مثال الكود</h2>
+
+		<code>
+		const box = new THREE.Box3();
+		box.setFromCenterAndSize( new THREE.Vector3( 1, 1, 1 ), new THREE.Vector3( 2, 1, 3 ) );
+
+		const helper = new THREE.Box3Helper( box, 0xffff00 );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Box3 box], [param:Color color] )</h3>
+		<p>
+		[page:Box3 box] -- الـ Box3 المراد عرضه.<br />
+		[page:Color color] -- (اختياري) لون الصندوق. الافتراضي هو 0xffff00.<br /><br />
+
+		ينشئ صندوقًا جديدًا بإطار سلكي يمثل Box3 المُمرَّر.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الخصائص المشتركة.</p>
+
+		<h3>[property:Box3 box]</h3>
+		<p>الـ Box3 المُعروض.</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</p>
+
+		<h3>[method:undefined updateMatrixWorld]( [param:Boolean force] )</h3>
+		<p>
+		هذا يتجاوز الطريقة في الفئة الأساسية [page:Object3D] بحيث يُحدِّث أيضًا
+		الإطار السلكي للصندوق إلى مدى خاصية [page:Box3Helper.box .box].
+		</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>

+ 77 - 0
docs/api/ar/helpers/BoxHelper.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">
+		[page:Object3D] &rarr; [page:Line] &rarr; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			كائن مساعد لإظهار الحدود المحيطة المتوازية مع محور العالم بشكل بصري
+			حول كائن. يتم التعامل مع الحدود المحيطة الفعلية باستخدام [page:Box3]،
+			هذا مجرد مساعد بصري للتصحيح. يمكن تغيير حجمه تلقائيًا باستخدام طريقة [page:BoxHelper.update]
+			عندما يتم تحويل الكائن الذي تم إنشاؤه منه. لاحظ أن يجب أن يكون للكائن
+			[page:BufferGeometry] لكي يعمل هذا، لذلك لن يعمل مع [page:Sprite Sprites].
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const sphere = new THREE.SphereGeometry();
+		const object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );
+		const box = new THREE.BoxHelper( object, 0xffff00 );
+		scene.add( box );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_helpers WebGL / helpers]<br />
+		[example:webgl_loader_nrrd WebGL / loader / nrrd]<br />
+		[example:webgl_buffergeometry_drawrange WebGL / buffergeometry / drawrange]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Object3D object], [param:Color color] )</h3>
+		<p>
+		[page:Object3D object] -- (اختياري) الـ object3D المراد عرض الحدود المحيطة المتوازية مع محور العالم.<br />
+		[page:Color color] -- (اختياري) قيمة ست عشرية تحدد لون الصندوق. الافتراضي هو 0xffff00.<br /><br />
+
+		ينشئ صندوقًا جديدًا بإطار سلكي يحد الكائن المُمرَّر. يستخدم هذا داخليًا
+		[page:Box3.setFromObject] لحساب الأبعاد. لاحظ أن هذا يشمل أي أطفال.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الخصائص المشتركة.</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</p>
+
+		<h3>[method:undefined update]()</h3>
+		<p>
+		يُحدِّث هندسة المساعد لتطابق أبعاد الكائن، بما في ذلك أي أطفال. انظر [page:Box3.setFromObject].
+		</p>
+
+		<h3>[method:this setFromObject]( [param:Object3D object] )</h3>
+		<p>
+		[page:Object3D object] - [page:Object3D] لإنشاء المساعد منه.<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>

+ 82 - 0
docs/api/ar/helpers/CameraHelper.html

@@ -0,0 +1,82 @@
+<!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; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			هذا يساعد في تصور ما يحتويه الكاميرا في مخروط الرؤية الخاص بها. يُصوِّر
+			مخروط الرؤية للكاميرا باستخدام [page:LineSegments].<br /><br />
+			يجب أن يكون [name] طفلًا للمشهد.
+		</p>
+			
+		<h2>مثال الكود</h2>
+		<code>
+const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
+const helper = new THREE.CameraHelper( camera );
+scene.add( helper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>
+		[example:webgl_camera WebGL / camera]<br />
+		[example:webgl_geometry_extrude_splines WebGL / extrude / splines]
+		</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] -- الكاميرا المراد تصويرها.<br /><br />
+		
+		ينشئ [Name] جديدًا للكاميرا المحددة.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الخصائص المشتركة.</p>
+		
+		<h3>[property:Camera camera]</h3>
+		<p>الكاميرا المُعروضة.</p>
+		
+		<h3>[property:Object pointMap]</h3>
+		<p>يحتوي هذا على النقاط المستخدمة لتصوير الكاميرا.</p>
+		
+		<h3>[property:Object matrix]</h3>
+		<p>إشارة إلى [page:Object3D.matrixWorld camera.matrixWorld].</p>
+		
+		<h3>[property:Object matrixAutoUpdate]</h3>
+		<p>
+		انظر [page:Object3D.matrixAutoUpdate]. تعيين إلى `false` هنا كما يستخدم المساعد
+		[page:Object3D.matrixWorld matrixWorld] الخاص بالكاميرا.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يُطلِق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه العيّنة. اتصل بهذه
+		الطريقة كلما لم يعد هذه العيّنة مستخدمة في تطبيقك.
+		</p>
+		
+		<h3>
+		[method:this setColors]( [param:Color frustum], [param:Color cone], [param:Color up], [param:Color target], [param:Color cross] )
+		</h3>
+		<p>يحدد ألوان المساعد.</p>
+		
+		<h3>[method:undefined update]()</h3>
+		<p>يُحدِّث المساعد بناءً على projectionMatrix للكاميرا.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 88 - 0
docs/api/ar/helpers/DirectionalLightHelper.html

@@ -0,0 +1,88 @@
+<!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:DirectionalLight] على المشهد.
+			يتكون هذا من مستوى وخط يمثلان موقع الضوء واتجاهه.
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const light = new THREE.DirectionalLight( 0xFFFFFF );
+		const helper = new THREE.DirectionalLightHelper( light, 5 );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]( [param:DirectionalLight light], [param:Number size], [param:Hex color] )
+		</h3>
+		<p>
+		[page:DirectionalLight light]-- الضوء المراد تصويره. <br /><br />
+
+		[page:Number size] -- (اختياري) أبعاد المستوى. الافتراضي هو
+		`1`.<br /><br />
+
+		[page:Hex color] -- (اختياري) إذا لم يتم تعيين هذا، فسيأخذ المساعد
+		لون الضوء.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+
+		<h3>[property:Line lightPlane]</h3>
+		<p>يحتوي على شبكة الخط التي تظهر موقع الضوء الاتجاهي.</p>
+
+		<h3>[property:DirectionalLight light]</h3>
+		<p>
+		إشارة إلى [page:DirectionalLight directionalLight] المُعروض.
+		</p>
+
+		<h3>[property:Object matrix]</h3>
+		<p>إشارة إلى [page:Object3D.matrixWorld matrixWorld] الخاص بالضوء.</p>
+
+		<h3>[property:Object matrixAutoUpdate]</h3>
+		<p>
+		انظر [page:Object3D.matrixAutoUpdate]. تعيين إلى `false` هنا كما يستخدم المساعد
+		[page:Object3D.matrixWorld matrixWorld] الخاص بالضوء.
+		</p>
+
+		<h3>[property:hex color]</h3>
+		<p>
+		معلمة اللون التي تم تمريرها في المُنشئ. الافتراضي هو `undefined`. إذا تغير هذا،
+		سيُحدِّث لون المساعد في المرة التالية التي يتم فيها استدعاء [page:.update update].
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يُطلِق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه العيّنة. اتصل بهذه
+		الطريقة كلما لم يعد هذه العيّنة مستخدمة في تطبيقك.
+		</p>
+
+		<h3>[method:undefined update]()</h3>
+		<p>
+		يُحدِّث المساعد ليطابق موقع واتجاه [page:.light directionalLight] المُعروض.
+		</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/helpers/GridHelper.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:Object3D] &rarr; [page:Line] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			GridHelper هو كائن لتحديد الشبكات. الشبكات هي مصفوفات ثنائية الأبعاد
+			من الخطوط.
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const size = 10;
+		const divisions = 10;
+
+		const gridHelper = new THREE.GridHelper( size, divisions );
+		scene.add( gridHelper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_helpers WebGL / helpers]</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>
+		[name]( [param:number size], [param:Number divisions], [param:Color colorCenterLine], [param:Color colorGrid] )
+		</h3>
+		<p>
+		size -- حجم الشبكة. الافتراضي هو 10. <br />
+		divisions -- عدد التقسيمات عبر الشبكة. الافتراضي هو 10.
+		<br />
+		colorCenterLine -- لون الخط الأوسط. يمكن أن يكون هذا
+		[page:Color]، قيمة ست عشرية واسم لون CSS. الافتراضي هو
+		0x444444 <br />
+		colorGrid -- لون خطوط الشبكة. يمكن أن يكون هذا
+		[page:Color]، قيمة ست عشرية واسم لون CSS. الافتراضي هو
+		0x888888
+		</p>
+		<p>
+		ينشئ [name] جديدًا بحجم 'size' ومقسَّمًا إلى 'divisions' شرائح
+		لكل جانب. الألوان اختيارية.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</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>

+ 85 - 0
docs/api/ar/helpers/HemisphereLightHelper.html

@@ -0,0 +1,85 @@
+<!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:Mesh] كروي لـ
+			[page:HemisphereLight HemisphereLight].
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
+		const helper = new THREE.HemisphereLightHelper( light, 5 );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]( [param:HemisphereLight light], [param:Number sphereSize],
+		[param:Hex color] )
+		</h3>
+		<p>
+		[page:HemisphereLight light] -- الضوء المراد تصويره. <br /><br />
+		
+		[page:Number size] -- حجم الشبكة المستخدمة لتصوير الضوء.<br /><br />
+		
+		[page:Hex color] -- (اختياري) إذا لم يتم تعيين هذا، فسيأخذ المساعد
+		لون الضوء.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الخصائص المشتركة.</p>
+		
+		<h3>[property:HemisphereLight light]</h3>
+		<p>إشارة إلى HemisphereLight المُعروض.</p>
+		
+		<h3>[property:Object matrix]</h3>
+		<p>
+		إشارة إلى [page:Object3D.matrixWorld matrixWorld] الخاص بـ hemisphereLight.
+		</p>
+		
+		<h3>[property:Object matrixAutoUpdate]</h3>
+		<p>
+		انظر [page:Object3D.matrixAutoUpdate]. تعيين إلى `false` هنا كما يستخدم المساعد
+		[page:Object3D.matrixWorld matrixWorld] الخاص بـ hemisphereLight.
+		</p>
+		
+		<h3>[property:hex color]</h3>
+		<p>
+		معلمة اللون التي تم تمريرها في المُنشئ. الافتراضي هو `undefined`. إذا تغير هذا،
+		سيُحدِّث لون المساعد في المرة التالية التي يتم فيها استدعاء [page:.update update].
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Object3D] للحصول على الطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يُطلِق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه العيّنة. اتصل بهذه
+		الطريقة كلما لم يعد هذه العيّنة مستخدمة في تطبيقك.
+		</p>
+		
+		<h3>[method:undefined update]()</h3>
+		<p>
+		يُحدِّث المساعد ليطابق موقع واتجاه [page:.light].
+		</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/helpers/PlaneHelper.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:Object3D] &rarr; [page:Line] &rarr; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">كائن مساعد لتصور [page:Plane].</p>
+
+		<h2>مثال الكود</h2>
+		
+		<code>
+		const plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );
+		const helper = new THREE.PlaneHelper( plane, 1, 0xffff00 );
+		scene.add( helper );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>
+		[name]( [param:Plane plane], [param:Float size], [param:Color hex] )
+		</h3>
+		<p>
+		[page:Plane plane] -- الطائرة المراد تصويرها.<br />
+		[page:Float size] -- (اختياري) طول جانب مساعد الطائرة. الافتراضي هو
+		1.<br />
+		[page:Color color] -- (اختياري) لون المساعد. الافتراضي هو
+		0xffff00.<br /><br />
+		
+		ينشئ تمثيلًا جديدًا بإطار سلكي للطائرة المُمرَّرة.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Line] للحصول على الخصائص المشتركة.</p>
+		
+		<h3>[property:Plane plane]</h3>
+		<p>[page:Plane plane] المُعروض.</p>
+		
+		<h3>[property:Float size]</h3>
+		<p>أطوال جانب مساعد الطائرة.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</p>
+		
+		<h3>[method:undefined updateMatrixWorld]( [param:Boolean force] )</h3>
+		<p>
+		هذا يتجاوز الطريقة في الفئة الأساسية [page:Object3D] بحيث يُحدِّث أيضًا
+		كائن المساعد وفقًا لخصائص [page:PlaneHelper.plane .plane] و [page:PlaneHelper.size .size].
+		</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>

+ 91 - 0
docs/api/ar/helpers/PointLightHelper.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:Object3D] &rarr; [page:Mesh] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يعرض كائن مساعد يتكون من [page:Mesh] كروي لتصوير
+			[page:PointLight].
+		</p>
+			
+		<h2>مثال الكود</h2>
+
+		<code>
+		const pointLight = new THREE.PointLight( 0xff0000, 1, 100 );
+		pointLight.position.set( 10, 10, 10 );
+		scene.add( pointLight );
+
+		const sphereSize = 1;
+		const pointLightHelper = new THREE.PointLightHelper( pointLight, sphereSize );
+		scene.add( pointLightHelper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_helpers WebGL / helpers]</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>
+		[name]( [param:PointLight light], [param:Float sphereSize], [param:Hex color] )
+		</h3>
+		<p>
+		[page:PointLight light] -- الضوء المراد تصويره. <br /><br />
+		
+		[page:Float sphereSize] -- (اختياري) حجم مساعد الكرة.
+		الافتراضي هو `1`.<br /><br />
+		
+		[page:Hex color] -- (اختياري) إذا لم يتم تعيين هذا، فسيأخذ المساعد
+		لون الضوء.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Mesh] للحصول على الخصائص المشتركة.</p>
+		
+		<h3>[property:PointLight light]</h3>
+		<p>[page:PointLight] المُعروض.</p>
+		
+		<h3>[property:Object matrix]</h3>
+		<p>
+		إشارة إلى [page:Object3D.matrixWorld matrixWorld] الخاص بـ pointLight.
+		</p>
+		
+		<h3>[property:Object matrixAutoUpdate]</h3>
+		<p>
+		انظر [page:Object3D.matrixAutoUpdate]. تعيين إلى `false` هنا كما يستخدم المساعد
+		[page:Object3D.matrixWorld matrixWorld] الخاص بـ pointLight.
+		</p>
+		
+		<h3>[property:hex color]</h3>
+		<p>
+		معلمة اللون التي تم تمريرها في المُنشئ. الافتراضي هو `undefined`. إذا تغير هذا،
+		سيُحدِّث لون المساعد في المرة التالية التي يتم فيها استدعاء [page:.update update].
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:Mesh] للحصول على الطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		يُطلِق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه العيّنة. اتصل بهذه
+		الطريقة كلما لم يعد هذه العيّنة مستخدمة في تطبيقك.
+		</p>
+		
+		<h3>[method:undefined update]()</h3>
+		<p>يُحدِّث المساعد ليطابق موقع [page:.light].</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/helpers/PolarGridHelper.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">
+		[page:Object3D] &rarr; [page:Line] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			PolarGridHelper هو كائن لتحديد الشبكات القطبية. الشبكات هي مصفوفات ثنائية الأبعاد
+			من الخطوط.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		const radius = 10;
+		const sectors = 16;
+		const rings = 8;
+		const divisions = 64;
+
+		const helper = new THREE.PolarGridHelper( radius, sectors, rings, divisions );
+		scene.add( helper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_helpers WebGL / helpers]</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>
+		[name]( [param:Number radius], [param:Number sectors], [param:Number rings], [param:Number divisions], [param:Color color1], [param:Color color2] )
+		</h3>
+		<p>
+		radius -- نصف قطر الشبكة القطبية. يمكن أن يكون هذا أي رقم موجب.
+		الافتراضي هو 10.<br />
+		sectors -- عدد القطاعات التي ستُقسَّم إليها الشبكة. يمكن أن يكون هذا
+		أي عدد صحيح موجب. الافتراضي هو 16.<br />
+		rings -- عدد الحلقات. يمكن أن يكون هذا أي عدد صحيح موجب. الافتراضي هو
+		8.<br />
+		divisions -- عدد شرائح الخط المستخدمة لكل دائرة. يمكن أن يكون هذا
+		أي عدد صحيح موجب لا يقل عن 3. الافتراضي هو 64.<br />
+		color1 -- اللون الأول المستخدم لعناصر الشبكة. يمكن أن يكون هذا
+		[page:Color]، قيمة ست عشرية واسم لون CSS. الافتراضي هو
+		0x444444 <br />
+		color2 -- اللون الثاني المستخدم لعناصر الشبكة. يمكن أن يكون هذا
+		[page:Color]، قيمة ست عشرية واسم لون CSS. الافتراضي هو
+		0x888888
+		</p>
+		<p>
+		ينشئ [name] جديدًا بقطر 'radius' مع 'sectors' عدد من القطاعات
+		و 'rings' عدد من الحلقات، حيث تُسَهَّل كل دائرة إلى
+		'divisions' عدد من شرائح الخط. الألوان اختيارية.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر إلى الفئة الأساسية [page:LineSegments] للحصول على الطرق المشتركة.</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>

+ 68 - 0
docs/api/ar/helpers/SkeletonHelper.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:Object3D] &rarr; [page:Line] &rarr; [page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			كائن مساعد للمساعدة في تصور [page:Skeleton Skeleton]. يتم
+			تقديم المساعد باستخدام [page:LineBasicMaterial LineBasicMaterial].
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		const helper = new THREE.SkeletonHelper( skinnedMesh );
+		scene.add( helper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+		[example:webgl_animation_skinning_blending WebGL / animation / skinning / blending]<br />
+		[example:webgl_animation_skinning_morph WebGL / animation / skinning / morph]<br />
+		[example:webgl_loader_bvh WebGL / loader / bvh ]
+		</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>[name]( [param:Object3D object] )</h3>
+		<p>
+		object -- عادةً مثيل من [page:SkinnedMesh]. ومع ذلك ، يمكن استخدام أي مثيل
+		من [page:Object3D] إذا كان يمثل تسلسل هرمي من [page:Bone Bone]s (عبر [page:Object3D.children]).
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Array bones]</h3>
+		<p>قائمة العظام التي يعرضها المساعد كـ [page:Line Lines].</p>
+		
+		<h3>[property:Boolean isSkeletonHelper]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		
+		<h3>[property:Object3D root]</h3>
+		<p>الكائن الذي تم تمريره في المنشئ.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:LineSegments] للطرق المشتركة.</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>

+ 86 - 0
docs/api/ar/helpers/SpotLightHelper.html

@@ -0,0 +1,86 @@
+<!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:SpotLight].
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		const spotLight = new THREE.SpotLight( 0xffffff );
+		spotLight.position.set( 10, 10, 10 );
+		scene.add( spotLight );
+
+		const spotLightHelper = new THREE.SpotLightHelper( spotLight );
+		scene.add( spotLightHelper );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+		<p>[example:webgl_lights_spotlights WebGL/ lights / spotlights ]</p>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>[name]( [param:SpotLight light], [param:Hex color] )</h3>
+		<p>
+		[page:SpotLight light] -- [page:SpotLight] المراد تصوره.
+		<br /><br />
+		
+		[page:Hex color] -- (اختياري) إذا لم يتم تعيين هذا ، فسيأخذ المساعد
+		لون الضوء.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		<p>انظر الفئة الأساسية [page:Object3D] للخصائص المشتركة.</p>
+		
+		<h3>[property:LineSegments cone]</h3>
+		<p>[page:LineSegments] المستخدمة لتصور الضوء.</p>
+		
+		<h3>[property:SpotLight light]</h3>
+		<p>إشارة إلى [page:SpotLight] المرئي.</p>
+		
+		<h3>[property:Object matrix]</h3>
+		<p>إشارة إلى [page:Object3D.matrixWorld matrixWorld] الخاص بـ spotLight.</p>
+		
+		<h3>[property:Object matrixAutoUpdate]</h3>
+		<p>
+		انظر [page:Object3D.matrixAutoUpdate]. تعيين إلى `false` هنا كما يستخدم المساعد
+		[page:Object3D.matrixWorld matrixWorld] الخاص بـ spotLight.
+		</p>
+		
+		<h3>[property:hex color]</h3>
+		<p>
+		معلمة اللون الممررة في المنشئ. الافتراضي هو `undefined`. إذا
+		تغير هذا ، سيتحدث لون المساعد في المرة التالية
+		[page:.update update] يتم استدعاؤه.
+		</p>
+		
+		<h2>الطرق (Methods)</h2>
+		<p>انظر الفئة الأساسية [page:Object3D] للطرق المشتركة.</p>
+		
+		<h3>[method:undefined dispose]()</h3>
+		<p>
+		تحرير الموارد ذات الصلة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذه الحالة. استدعاء هذه
+		الطريقة كلما لم يعد يستخدم هذا الحال في تطبيقك.
+		</p>
+		
+		<h3>[method:undefined update]()</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>

+ 0 - 1
docs/api/en/cameras/OrthographicCamera.html

@@ -36,7 +36,6 @@
 			[example:webgl_postprocessing_dof2 postprocessing / dof2 ]<br />
 			[example:webgl_postprocessing_godrays postprocessing / godrays ]<br />
 			[example:webgl_rtt rtt ]<br />
-			[example:webgl_shaders_tonemapping shaders / tonemapping ]<br />
 			[example:webgl_shadowmap shadowmap ]
 		</p>
 

+ 1 - 1
docs/api/en/cameras/PerspectiveCamera.html

@@ -96,7 +96,7 @@
 		<h3>[property:Float near]</h3>
 		<p>
 			Camera frustum near plane. Default is `0.1`.<br /><br />
-			The valid range is greater than 0 and less than the current value of the
+			The valid range is greater than `0` and less than the current value of the
 			[page:.far far] plane. Note that, unlike for the
 			[page:OrthographicCamera], `0` is <em>not</em> a valid value for a
 			PerspectiveCamera's near plane.

+ 12 - 0
docs/api/en/constants/Textures.html

@@ -316,6 +316,18 @@
 			[link:https://www.khronos.org/registry/webgl/extensions/EXT_texture_compression_bptc/ EXT_texture_compression_bptc] extension. <br /><br />
 		</p>
 
+		<h2>Texture Comparison functions</h2>
+		<code>
+		THREE.NeverCompare
+		THREE.LessCompare
+		THREE.EqualCompare
+		THREE.LessEqualCompare
+		THREE.GreaterCompare
+		THREE.NotEqualCompare
+		THREE.GreaterEqualCompare
+		THREE.AlwaysCompare
+		</code>
+
 		<h2>Internal Formats</h2>
 		<code>
 		'ALPHA'

+ 7 - 0
docs/api/en/core/BufferAttribute.html

@@ -63,6 +63,13 @@
 			or color), then this will count the number of such vectors stored.
 		</p>
 
+		<h3>[property:Number gpuType]</h3>
+		<p>
+			Configures the bound GPU type for use in shaders. Either [page:BufferAttribute THREE.FloatType] or [page:BufferAttribute THREE.IntType], default is [page:BufferAttribute THREE.FloatType].
+
+			Note: this only has an effect for integer arrays and is not configurable for float arrays. For lower precision float types, see [page:BufferAttributeTypes THREE.Float16BufferAttribute].
+		</p>
+
 		<h3>[property:Boolean isBufferAttribute]</h3>
 		<p>Read-only flag to check if a given object is of type [name].</p>
 

+ 1 - 2
docs/api/en/extras/core/Shape.html

@@ -48,8 +48,7 @@
 
 		<p>
 			[example:webgl_geometry_shapes geometry / shapes ]<br />
-			[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br />
-			[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br />
+			[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]
 		</p>
 
 		<h2>Constructor</h2>

+ 0 - 3
docs/api/en/extras/core/ShapePath.html

@@ -14,9 +14,6 @@
 			[page:Path]s, for example an SVG shape to a path (see the example below).
 		</p>
 
-		<h2>Examples</h2>
-		<p>[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]</p>
-
 		<h2>Constructor</h2>
 
 		<h3>[name]( )</h3>

+ 4 - 4
docs/api/en/geometries/BoxGeometry.html

@@ -43,10 +43,10 @@
     <h2>Code Example</h2>
 
     <code>
-    const geometry = new THREE.BoxGeometry( 1, 1, 1 ); 
-    const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} ); 
-    const cube = new THREE.Mesh( geometry, material ); 
-    scene.add( cube );
+const geometry = new THREE.BoxGeometry( 1, 1, 1 ); 
+const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} ); 
+const cube = new THREE.Mesh( geometry, material ); 
+scene.add( cube );
     </code>
 
     <h2>Constructor</h2>

+ 1 - 1
docs/api/en/lights/Light.html

@@ -40,7 +40,7 @@
 		<h3>[property:Float intensity]</h3>
 		<p>
 			The light's intensity, or strength.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			the units of intensity depend on the type of light.<br />
 			Default - `1.0`.
 		</p>

+ 3 - 3
docs/api/en/lights/PointLight.html

@@ -80,7 +80,7 @@ scene.add( light );
 			at the light's position down to zero at this distance from the light.
 		</p>
 		<p>
-			`[page:WebGLRenderer.physicallyCorrectLights Physically correct] mode`
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled
 			When distance is zero, light will attenuate according to inverse-square
 			law to infinite distance. When distance is non-zero, light will attenuate
 			according to inverse-square law until near the distance cutoff, where it
@@ -92,7 +92,7 @@ scene.add( light );
 		<h3>[property:Float intensity]</h3>
 		<p>
 			The light's intensity. Default is `1`.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			intensity is the luminous intensity of the light measured in candela
 			(cd).<br /><br />
 
@@ -102,7 +102,7 @@ scene.add( light );
 		<h3>[property:Float power]</h3>
 		<p>
 			The light's power.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			power is the luminous power of the light measured in lumens (lm).
 			<br /><br />
 

+ 2 - 2
docs/api/en/lights/RectAreaLight.html

@@ -74,7 +74,7 @@ rectLight.add( rectLightHelper );
 		<h3>[property:Float intensity]</h3>
 		<p>
 			The light's intensity. Default is `1`.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			intensity is the luminance (brightness) of the light measured in nits
 			(cd/m^2).<br /><br />
 
@@ -87,7 +87,7 @@ rectLight.add( rectLightHelper );
 		<h3>[property:Float power]</h3>
 		<p>
 			The light's power.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			power is the luminous power of the light measured in lumens (lm).
 			<br /><br />
 

+ 3 - 3
docs/api/en/lights/SpotLight.html

@@ -95,7 +95,7 @@
 			at the light's position down to zero at this distance from the light.
 		</p>
 		<p>
-			`[page:WebGLRenderer.physicallyCorrectLights Physically correct] mode`
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled
 			When distance is zero, light will attenuate according to inverse-square
 			law to infinite distance. When distance is non-zero, light will attenuate
 			according to inverse-square law until near the distance cutoff, where it
@@ -107,7 +107,7 @@
 		<h3>[property:Float intensity]</h3>
 		<p>
 			The light's intensity. Default is `1`.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			intensity is the luminous intensity of the light measured in candela
 			(cd).<br /><br />
 			Changing the intensity will also change the light's power.
@@ -131,7 +131,7 @@
 		<h3>[property:Float power]</h3>
 		<p>
 			The light's power.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode,
+			When [page:WebGLRenderer.useLegacyLights legacy lighting mode] is disabled,
 			power is the luminous power of the light measured in lumens (lm).
 			<br /><br />
 			Changing the power will also change the light's intensity.

+ 0 - 4
docs/api/en/loaders/BufferGeometryLoader.html

@@ -46,10 +46,6 @@
 		);
 		</code>
 
-		<h2>Examples</h2>
-
-		<p>[example:webgl_performance WebGL / performance]</p>
-
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:LoadingManager manager] )</h3>

+ 7 - 2
docs/api/en/loaders/CubeTextureLoader.html

@@ -12,8 +12,13 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-			Class for loading a [page:CubeTexture CubeTexture]. This uses the
-			[page:ImageLoader] internally for loading files.
+			[name] can be used to load cube maps. The loader returns an instance of [page:CubeTexture] and expects the cube map to
+			be defined as six separate images representing the sides of a cube. Other cube map definitions like vertical and horizontal cross, 
+			column and row layouts are not supported.
+		</p>
+		<p>
+			The loaded [page:CubeTexture] is in sRGB color space. Meaning the [page:Texture.colorSpace colorSpace] 
+			property is set to `THREE.SRGBColorSpace` by default.
 		</p>
 
 		<h2>Code Example</h2>

+ 0 - 1
docs/api/en/loaders/managers/LoadingManager.html

@@ -87,7 +87,6 @@
 
 		<p>
 			[example:webgl_loader_obj WebGL / loader / obj]<br />
-			[example:webgl_materials_physical_reflectivity WebGL / materials / physical / reflectivity]<br />
 			[example:webgl_postprocessing_outline WebGL / postprocesing / outline]
 		</p>
 

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