2
0
Эх сурвалжийг харах

Merge branch 'dev' into dev32

Michael Herzog 4 жил өмнө
parent
commit
95d79137f9
100 өөрчлөгдсөн 10858 нэмэгдсэн , 4541 устгасан
  1. 0 0
      .github/CODE_OF_CONDUCT.md
  2. 36 55
      .github/CONTRIBUTING.md
  3. 3 0
      .github/FUNDING.yml
  4. 0 39
      .github/ISSUE_TEMPLATE.md
  5. 47 0
      .github/ISSUE_TEMPLATE/bug_report.md
  6. 5 0
      .github/ISSUE_TEMPLATE/config.yml
  7. 26 0
      .github/ISSUE_TEMPLATE/feature_request.md
  8. 9 0
      .github/pull_request_template.md
  9. 4 4
      .github/workflows/ci.yml
  10. 4 4
      README.md
  11. 7860 3330
      build/three.js
  12. 0 608
      build/three.min.js
  13. 180 314
      build/three.module.js
  14. 316 0
      docs/api/ar/animation/AnimationAction.html
  15. 134 0
      docs/api/ar/animation/AnimationClip.html
  16. 109 0
      docs/api/ar/animation/AnimationMixer.html
  17. 82 0
      docs/api/ar/animation/AnimationObjectGroup.html
  18. 62 0
      docs/api/ar/animation/AnimationUtils.html
  19. 221 0
      docs/api/ar/animation/KeyframeTrack.html
  20. 132 0
      docs/api/ar/animation/PropertyBinding.html
  21. 98 0
      docs/api/ar/animation/PropertyMixer.html
  22. 79 0
      docs/api/ar/animation/tracks/BooleanKeyframeTrack.html
  23. 62 0
      docs/api/ar/animation/tracks/ColorKeyframeTrack.html
  24. 63 0
      docs/api/ar/animation/tracks/NumberKeyframeTrack.html
  25. 74 0
      docs/api/ar/animation/tracks/QuaternionKeyframeTrack.html
  26. 82 0
      docs/api/ar/animation/tracks/StringKeyframeTrack.html
  27. 62 0
      docs/api/ar/animation/tracks/VectorKeyframeTrack.html
  28. 229 0
      docs/api/ar/audio/Audio.html
  29. 97 0
      docs/api/ar/audio/AudioAnalyser.html
  30. 42 0
      docs/api/ar/audio/AudioContext.html
  31. 111 0
      docs/api/ar/audio/AudioListener.html
  32. 136 0
      docs/api/ar/audio/PositionalAudio.html
  33. 48 0
      docs/api/ar/cameras/ArrayCamera.html
  34. 78 0
      docs/api/ar/cameras/Camera.html
  35. 95 0
      docs/api/ar/cameras/CubeCamera.html
  36. 0 1
      docs/api/en/Polyfills.html
  37. 0 1
      docs/api/en/Template.html
  38. 0 1
      docs/api/en/animation/AnimationAction.html
  39. 5 1
      docs/api/en/animation/AnimationClip.html
  40. 0 1
      docs/api/en/animation/AnimationMixer.html
  41. 6 7
      docs/api/en/animation/AnimationObjectGroup.html
  42. 0 1
      docs/api/en/animation/AnimationUtils.html
  43. 0 6
      docs/api/en/animation/KeyframeTrack.html
  44. 0 1
      docs/api/en/animation/PropertyBinding.html
  45. 0 1
      docs/api/en/animation/PropertyMixer.html
  46. 0 1
      docs/api/en/animation/tracks/BooleanKeyframeTrack.html
  47. 0 1
      docs/api/en/animation/tracks/ColorKeyframeTrack.html
  48. 0 1
      docs/api/en/animation/tracks/NumberKeyframeTrack.html
  49. 0 1
      docs/api/en/animation/tracks/QuaternionKeyframeTrack.html
  50. 0 1
      docs/api/en/animation/tracks/StringKeyframeTrack.html
  51. 0 1
      docs/api/en/animation/tracks/VectorKeyframeTrack.html
  52. 3 4
      docs/api/en/audio/Audio.html
  53. 5 6
      docs/api/en/audio/AudioAnalyser.html
  54. 0 1
      docs/api/en/audio/AudioContext.html
  55. 3 4
      docs/api/en/audio/AudioListener.html
  56. 6 7
      docs/api/en/audio/PositionalAudio.html
  57. 0 1
      docs/api/en/cameras/ArrayCamera.html
  58. 0 1
      docs/api/en/cameras/Camera.html
  59. 6 13
      docs/api/en/cameras/CubeCamera.html
  60. 2 3
      docs/api/en/cameras/OrthographicCamera.html
  61. 7 8
      docs/api/en/cameras/PerspectiveCamera.html
  62. 0 1
      docs/api/en/cameras/StereoCamera.html
  63. 0 1
      docs/api/en/constants/Animation.html
  64. 1 2
      docs/api/en/constants/Core.html
  65. 1 2
      docs/api/en/constants/CustomBlendingEquations.html
  66. 0 1
      docs/api/en/constants/Materials.html
  67. 0 1
      docs/api/en/constants/Renderer.html
  68. 0 1
      docs/api/en/constants/Textures.html
  69. 0 1
      docs/api/en/core/BufferAttribute.html
  70. 8 6
      docs/api/en/core/BufferGeometry.html
  71. 0 1
      docs/api/en/core/Clock.html
  72. 0 1
      docs/api/en/core/DirectGeometry.html
  73. 7 12
      docs/api/en/core/EventDispatcher.html
  74. 6 7
      docs/api/en/core/Face3.html
  75. 116 0
      docs/api/en/core/GLBufferAttribute.html
  76. 3 4
      docs/api/en/core/Geometry.html
  77. 1 2
      docs/api/en/core/InstancedBufferAttribute.html
  78. 0 1
      docs/api/en/core/InstancedBufferGeometry.html
  79. 0 1
      docs/api/en/core/InstancedInterleavedBuffer.html
  80. 0 1
      docs/api/en/core/InterleavedBuffer.html
  81. 0 1
      docs/api/en/core/InterleavedBufferAttribute.html
  82. 0 1
      docs/api/en/core/Layers.html
  83. 19 9
      docs/api/en/core/Object3D.html
  84. 6 7
      docs/api/en/core/Raycaster.html
  85. 2 3
      docs/api/en/core/Uniform.html
  86. 2 2
      docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html
  87. 31 0
      docs/api/en/extras/DataUtils.html
  88. 0 1
      docs/api/en/extras/Earcut.html
  89. 0 1
      docs/api/en/extras/ImageUtils.html
  90. 0 1
      docs/api/en/extras/PMREMGenerator.html
  91. 0 1
      docs/api/en/extras/ShapeUtils.html
  92. 0 1
      docs/api/en/extras/core/Curve.html
  93. 6 11
      docs/api/en/extras/core/CurvePath.html
  94. 1 2
      docs/api/en/extras/core/Font.html
  95. 0 1
      docs/api/en/extras/core/Interpolations.html
  96. 6 7
      docs/api/en/extras/core/Path.html
  97. 5 6
      docs/api/en/extras/core/Shape.html
  98. 2 3
      docs/api/en/extras/core/ShapePath.html
  99. 0 1
      docs/api/en/extras/curves/ArcCurve.html
  100. 6 7
      docs/api/en/extras/curves/CatmullRomCurve3.html

+ 0 - 0
CODE_OF_CONDUCT.md → .github/CODE_OF_CONDUCT.md


+ 36 - 55
.github/CONTRIBUTING.md

@@ -1,27 +1,7 @@
-
-# Help
-The issues section is for bug reports and feature requests only. If you need help, please use the [forum](http://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
-
-# Bugs
-#### Before reporting a bug
-
-1. Search issue tracker for similar issues.
-2. Try the latest dev branch version of three.js.
-3. Refer to the [Migration Guide](https://github.com/mrdoob/three.js/wiki/Migration) when upgrading to the dev version.
-
-#### How to report a bug
-
-1. Specify the revision number of the three.js library where the bug occurred.
-2. Specify your browser version, operating system, and graphics card. (for example, Chrome 23.0.1271.95, Windows 7, Nvidia Quadro 2000M)
-3. Describe the problem in detail. Explain what happened, and what you expected would happen.
-4. Provide a small test-case (http://jsfiddle.net). [Here is a fiddle](https://jsfiddle.net/3foLr7sn/) you can edit that runs the current version. [And here is a fiddle](https://jsfiddle.net/qgu17w5o/) that uses the dev branch. If a test-case is not possible, provide a link to a live version of your application.
-5. If helpful, include a screenshot. Annotate the screenshot for clarity.
-
 # Contribution
-#### Introduction
+## Introduction
 
-It is assumed that you know a little about node.js and git. If not, [here's some help to get started
-with git](https://help.github.com/en/github/using-git) and [here’s some help to get started with node.js.](https://nodejs.org/en/docs/guides/getting-started-guide/)
+It is assumed that you know a little about node.js and git. If not, [here's some help to get started with git](https://help.github.com/en/github/using-git) and [here’s some help to get started with node.js.](https://nodejs.org/en/docs/guides/getting-started-guide/)
 
 * Install [Node.js](https://nodejs.org/)
 * Install [Git](https://git-scm.com/)
@@ -30,61 +10,59 @@ with git](https://help.github.com/en/github/using-git) and [here’s some help t
 * Change into the directory you’d like
 * Clone your forked repo
 
-        git clone https://github.com/[yourgithubname]/three.js.git
+      git clone https://github.com/[yourgithubname]/three.js.git
+
 * Go into the three.js directory.
         
-        cd ./three.js
+      cd ./three.js
+
 * Install the dependencies
 
-        npm install
+      npm install
 
-#### Next Steps
+## Next Steps
 
 As per the npm standard, ‘start’ is the place to begin the package.
 
     npm start
 
-This script will start a local server similar to three.js, but instead will be hosted on your local
-machine. Browse to http://localhost:8080/ to check it out. It also automatically creates the
-‘build/three.js’ and ‘build/three.module.js’ scripts anytime there is a change within your three.js
-directory.
+This script will start a local server similar to [threejs.org](https://threejs.org/), but instead will be hosted on your local machine. Browse to http://localhost:8080/ to check it out. It also automatically creates the ‘build/three.js’ and ‘build/three.module.js’ scripts anytime there is a change within your three.js directory.
 
-The next most important script runs all the appropriate testing.
-        
-        npm test
+The next most important script runs all the appropriate testing. The E-2-E testing is intended to be run by github actions.
 
-The linting is there to keep a consistent code-style across the all of the code and the testing is
-there to help catch bugs and check that the code behaves as expected. It is important that
-neither of these steps comes up with any errors due to your changes.
-* If you’d like the linter to fix any errors that it can change, make the following addition to the “test-lint” script.
-        
-        {
-        ...
-        "test-lint": "eslint src --ext js --ext ts --fix && tsc -p utils/build/tsconfig.lint.json"
-        ...
-        }
+    npm test
+
+The linting is there to keep a consistent code-style across the all of the code and the testing is there to help catch bugs and check that the code behaves as expected. It is important that neither of these steps comes up with any errors due to your changes.
+
+Many linting errors can be fixed automatically by running
+
+    npm lint-fix
 
 If you’d like to make a minified version of the build files i.e. ‘build/three.min.js’ run:
         
-    npm run-script build-closure
+    npm run build
 
-#### Making changes
+## Making changes
 
 When you’ve decided to make changes, start with the following:
+
 * Update your local repo
         
-        git pull https://github.com/mrdoob/three.js.git
-        git push
+      git pull https://github.com/mrdoob/three.js.git
+      git push
+
 * Make a new branch from the dev branch
         
-        git checkout dev
-        git branch [mychangesbranch]
-        git checkout [mychangesbranch]
+      git checkout dev
+      git branch [mychangesbranch]
+      git checkout [mychangesbranch]
+
 * Add your changes to your commit.
 * Push the changes to your forked repo.
 * Open a Pull Request (PR)
 
-Important notes:
+## Important notes:
+
 * Don't include any build files to your commit.
 * Not all new features will need a new example. Simpler features could be incorporated into an existing example. Bigger features may be asked to add an example demonstrating the feature.
 * Making changes may require changes to the documentation. If so, please make a new PR for the appropriate doc changes. To update the Chinese docs, simply copy the English to begin with.
@@ -92,10 +70,13 @@ Important notes:
 * If you modify existing code, run relevant examples to check they didn't break and there wasn't performance regress.
 * If you add some assets for the examples (models, textures, sounds, etc), make sure they have a proper license allowing for their use here, less restrictive the better. It is unlikely for large assets to be accepted.
 * If some issue is relevant to patch / feature, please mention it with hash (e.g. #2774) in a commit message to get cross-reference in GitHub.
-* If you modify files in examples/js directory, then don't perform any changes in the examples/jsm, JavaScript modules are auto-generated via running ‘node utils/modularize.js’.
-* If end-to-end test failed in Travis and you are sure that all is correct, make a new screenshots with npm run make-screenshot <example_1_name> ... <example_N_name> .
-* Watch out for Closure compiler warnings when building the libs, there should not be any.
+* If you modify files in `examples/js` directory, then don't perform any changes in the `examples/jsm`, JavaScript modules are auto-generated via running `node utils/modularize.js`.
+* If end-to-end test failed in Travis and you are sure that all is correct, make a new screenshots with 
+
+      npm run make-screenshot <example_1_name> ...<example_N_name>
+
 * Once done with a patch / feature do not add more commits to a feature branch
 * Create separate branches per patch or feature.
+* If you make a PR but it is not actually ready to be pulled into the dev branch, add `[Draft]` into the PR title and/or convert it to a draft PR
 
-This project is currently contributed to mostly via everyone's spare time. Please keep that in mind as it may take some time for the appropriate feedback to get to you. If you are unsure about adding a new feature, it might be better to ask first to see whether other people think it's a good idea.
+This project is currently contributed to mostly via everyone's spare time. Please keep that in mind as it may take some time for the appropriate feedback to get to you. If you are unsure about adding a new feature, it might be better to ask first to see whether other people think it's a good idea.

+ 3 - 0
.github/FUNDING.yml

@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+github: [mrdoob, HumanInteractive]

+ 0 - 39
.github/ISSUE_TEMPLATE.md

@@ -1,39 +0,0 @@
-##### Description of the problem
-
-This form is for three.js bug reports and feature requests only.
-
-This is NOT a help site. Do not ask help questions here.
-If you need help, please use the [forum](https://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
-
-Describe the bug or feature request in detail.
-
-Always include a code snippet, screenshots, and any relevant models or textures to help us understand your issue.
-
-Please also include a live example if possible. You can start from these templates:
-
-* [jsfiddle](https://jsfiddle.net/hyok6tvj/) (latest release branch)
-* [jsfiddle](https://jsfiddle.net/c5m1kazu/) (dev branch)
-
-##### Three.js version
-
-- [ ] Dev
-- [ ] r118
-- [ ] ...
-
-##### Browser
-
-- [x] All of them
-- [ ] Chrome
-- [ ] Firefox
-- [ ] Internet Explorer
-
-##### OS
-
-- [x] All of them
-- [ ] Windows
-- [ ] macOS
-- [ ] Linux
-- [ ] Android
-- [ ] iOS
-
-##### Hardware Requirements (graphics card, VR Device, ...)

+ 47 - 0
.github/ISSUE_TEMPLATE/bug_report.md

@@ -0,0 +1,47 @@
+---
+name: Bug report
+about: Report a reproducible bug or regression.
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+<!-- Ignoring this template may result in your bug report getting deleted -->
+
+**Describe the bug**
+
+A clear and concise description of what the bug is. Before submitting, please remove unnecessary sections.
+
+**To Reproduce**
+
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. See error
+
+***Code***
+
+```js
+// code goes here
+```
+
+***Live example***
+
+* [jsfiddle-latest-release](https://jsfiddle.net/hyok6tvj/)
+* [jsfiddle-dev](https://jsfiddle.net/c5m1kazu/)
+
+**Expected behavior**
+
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+
+If applicable, add screenshots to help explain your problem (drag and drop the image).
+
+**Platform:**
+
+ - Device: [Desktop, Mobile]
+ - OS: [Windows, MacOS, Linux, Android, iOS]
+ - Browser: [Chrome, Firefox, Safari, Edge]
+ - Three.js version: [dev, r???]

+ 5 - 0
.github/ISSUE_TEMPLATE/config.yml

@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+  - name: Help and Support
+    url: https://discourse.threejs.org/
+    about: Please use the forum if you have questions or need help.

+ 26 - 0
.github/ISSUE_TEMPLATE/feature_request.md

@@ -0,0 +1,26 @@
+---
+name: Feature request
+about: Suggest an idea for the project.
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+<!-- Ignoring this template may result in your feature request getting deleted -->
+
+**Is your feature request related to a problem? Please describe.**
+
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+
+Add any other context or screenshots about the feature request here.

+ 9 - 0
.github/pull_request_template.md

@@ -0,0 +1,9 @@
+Related issue: #XXXX
+
+**Description**
+
+A clear and concise description of what the problem was and how this pull request solves it.
+
+<!-- Remove the line below if is not relevant -->
+
+This contribution is funded by [Example](https://example.com).

+ 4 - 4
.github/workflows/ci.yml

@@ -23,7 +23,7 @@ jobs:
       - name: Install node
         uses: actions/setup-node@v1
         with:
-          node-version: 10
+          node-version: 12
       - name: Install packages
         run: npm ci
 
@@ -39,7 +39,7 @@ jobs:
       - name: Install node
         uses: actions/setup-node@v1
         with:
-          node-version: 10
+          node-version: 12
       - name: Install packages
         run: npm ci && npm ci --prefix test
       - name: Build
@@ -63,7 +63,7 @@ jobs:
       - name: Install node
         uses: actions/setup-node@v1
         with:
-          node-version: 10
+          node-version: 12
       - name: Install packages
         run: npm ci && npm ci --prefix test && sudo apt-get install xvfb
       - name: Build
@@ -81,7 +81,7 @@ jobs:
       - name: Install node
         uses: actions/setup-node@v1
         with:
-          node-version: 10
+          node-version: 12
       - name: Install packages
         run: npm ci
 

+ 4 - 4
README.md

@@ -25,10 +25,10 @@ The aim of the project is to create an easy to use, lightweight, 3D library with
 This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the `document.body` element. Finally, it animates the cube within the scene for the camera.
 
 ```javascript
-import * as THREE from 'js/three.module.js';
+import * as THREE from './js/three.module.js';
 
-var camera, scene, renderer;
-var geometry, material, mesh;
+let camera, scene, renderer;
+let geometry, material, mesh;
 
 init();
 animate();
@@ -64,7 +64,7 @@ function animate() {
 }
 ```
 
-If everything went well, you should see [this](https://jsfiddle.net/8kubjpL5/).
+If everything went well, you should see [this](https://jsfiddle.net/ruc3h17j/).
 
 ### Cloning this repository ###
 

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 7860 - 3330
build/three.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 608
build/three.min.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 180 - 314
build/three.module.js


+ 316 - 0
docs/api/ar/animation/AnimationAction.html

@@ -0,0 +1,316 @@
+<!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">
+			تقوم AnimationActions بجدولة أداء الرسوم المتحركة المخزنة في [page:AnimationClip AnimationClips].
+			<br /><br />
+
+			ملاحظة: يمكن ربط معظم أساليب AnimationAction.<br /><br />
+
+			للحصول على نظرة عامة حول العناصر المختلفة لنظام الرسوم المتحركة three.js ، راجع مقالة "نظام الحركات" في قسم "الخطوات التالية" من الدليل.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:AnimationMixer mixer], [param:AnimationClip clip], [param:Object3D localRoot] )</h3>
+		<p>
+			[page:AnimationMixer mixer] هو *AnimationMixer* الذي يتحكم فيه هذا الإجراء.<br />
+			[page:AnimationClip clip] هو *AnimationClip* الذي يحتفظ ببيانات الرسوم المتحركة لهذا الإجراء.<br />
+			[page:Object3D localRoot] هو الكائن الجذر الذي يتم تنفيذ هذا الإجراء عليه.<br /><br />
+
+			ملاحظة: بدلاً من استدعاء هذا المُنشئ مباشرةً ، يجب إنشاء AnimationAction برقم [page:AnimationMixer.clipAction] نظرًا لأن هذه الطريقة توفر التخزين المؤقت للحصول على أداء أفضل.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:Boolean clampWhenFinished]</h3>
+		<p>
+			إذا تم ضبط *clampWhenFinished* على true ، فسيتم تلقائيًا إيقاف [page:.paused paused] للرسوم المتحركة مؤقتًا في إطارها الأخير.<br /><br />
+
+			إذا تم ضبط *clampWhenFinished* على false ، فسيتم تحويل [page:.enabled enabled] تلقائيًا إلى false عند انتهاء آخر حلقة من الإجراء ، بحيث لا يكون لهذا الإجراء أي تأثير آخر.<br /><br />
+
+			القيمة الافتراضية هو خطأ (false).<br /><br />
+
+			ملاحظة: *clampWhenFinished* ليس له أي تأثير إذا تم مقاطعة الإجراء (يكون له تأثير فقط إذا انتهت الحلقة الأخيرة بالفعل).
+		</p>
+
+		<h3>[property:Boolean enabled]</h3>
+		<p>
+			يؤدي تعيين *enabled* إلى *false* إلى تعطيل هذا الإجراء ، بحيث لا يكون له أي تأثير. الافتراضي هو *true*.<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.
+		</p>
+
+		<h3>[property:Number loop]</h3>
+		<p>
+			وضع التكرار (يمكن تغييره بـ [page:.setLoop setLoop]). الافتراضي هو [page:Animation THREE.LoopRepeat] (مع عدد لا نهائي من [page:.repetitions repetitions])<br /><br />
+
+			يجب أن يكون أحد هذه الثوابت:<br /><br />
+			[page:Animation THREE.LoopOnce] - تشغيل المقطع مرة واحدة ،<br />
+			[page:Animation THREE.LoopRepeat] - تشغيل المقطع مع العدد المختار من *التكرارات* ،
+			في كل مرة تقفز من نهاية المقطع مباشرة إلى بدايته ،<br />
+			[page:Animation THREE.LoopPingPong] - تشغيل المقطع مع العدد المختار من *التكرارات* ، بدلاً من التشغيل للأمام والخلف.
+		</p>
+
+		<h3>[property:Boolean paused]</h3>
+		<p>
+			يؤدي تعيين *paused* إلى *true* إلى إيقاف تنفيذ الإجراء مؤقتًا عن طريق تعيين مقياس الوقت الفعال على 0. الافتراضي هو *false*.<br /><br />
+		</p>
+
+		<h3>[property:Number repetitions]</h3>
+		<p>
+			عدد التكرارات التي تم إجراؤها [page:AnimationClip] على مدار هذا الإجراء. يمكن تعيينه عبر [page:.setLoop setLoop]. الافتراضي هو *Infinity*.<br /><br />
+			ضبط هذا الرقم ليس له أي تأثير ، إذا تم ضبط [page:.loop loop mode] على [page:Animation THREE.LoopOnce].
+		</p>
+
+		<h3>[property:Number time]</h3>
+		<p>
+			the local time of this action (in seconds, starting with 0).<br /><br />
+
+			يتم تثبيت القيمة أو لفها إلى 0 ... مدة المقطع (وفقًا لحالة الحلقة).
+			يمكن تغير قيمتها بالنسبة إلى وقت لخالط الحركات الرئيسي عن طريق تغيير [page:.timeScale timeScale] (باستخدام [page:.setEffectiveTimeScale setEffectiveTimeScale] أو [page:.setDuration setDuration]).<br />
+		</p>
+
+		<h3>[property:Number timeScale]</h3>
+		<p>
+			Sعامل التحجيم للوقت [page:.time time]. تؤدي القيمة 0 إلى توقف الرسوم المتحركة مؤقتًا. تؤدي القيم السالبة إلى تشغيل الرسوم المتحركة بشكل عكسي. الافتراضي هو 1.<br /><br />
+			الخصائص / الطرق المتعلقة *timeScale* (على التوالي *time*) هم:
+			[page:.getEffectiveTimeScale getEffectiveTimeScale],
+			[page:.halt halt],
+			[page:.paused paused],
+			[page:.setDuration setDuration],
+			[page:.setEffectiveTimeScale setEffectiveTimeScale],
+			[page:.stopWarping stopWarping],
+			[page:.syncWith syncWith],
+			[page:.warp warp].
+		</p>
+
+		<h3>[property:Number weight]</h3>
+		<p>
+			درجة تأثير هذا الإجراء (في المجال القائم بين [0 ، 1]). يمكن استخدام القيم بين 0 (بدون تأثير) و 1 (تأثير كامل) للمزج بين عدة إجراءات. الافتراضي هو 1. <br /><br />
+			الخصائص / الطرق المتعلقة *weight* هي:
+			[page:.crossFadeFrom crossFadeFrom],
+			[page:.crossFadeTo crossFadeTo],
+			[page:.enabled enabled],
+			[page:.fadeIn fadeIn],
+			[page:.fadeOut fadeOut],
+			[page:.getEffectiveWeight getEffectiveWeight],
+			[page:.setEffectiveWeight setEffectiveWeight],
+			[page:.stopFading stopFading].
+		</p>
+
+		<h3>[property:Boolean zeroSlopeAtEnd]</h3>
+		<p>
+			يتيح تشغيل السلس بدون مقاطع منفصلة للبداية والحلقة والنهاية. الافتراضي هو *true*.
+		</p>
+
+		<h3>[property:Boolean zeroSlopeAtStart]</h3>
+		<p>
+			يتيح تشغيل السلس بدون مقاطع منفصلة للبداية والحلقة والنهاية. الافتراضي هو *true*.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:AnimationAction crossFadeFrom]( [param:AnimationAction fadeOutAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
+		<p>
+			يؤدي هذا الإجراء إلى تلاشي [page:.fadeIn fade in] ، مما يؤدي إلى تلاشي إجراء آخر في نفس الوقت ، خلال الفترة الزمنية المنقضية. يمكن تقييد هذه الطريقة.<br /><br />
+
+			إذا كانت warpBoolean تحمل قيمة true ، فسيتم تطبيق [page:.warp warping] إضافيًا (تغييرات تدريجية في المقاييس الزمنية).<br /><br />
+
+			ملاحظة: كما هو الحال مع *fadeIn*/*fadeOut* ، يبدأ / ينتهي التلاشي بوزن 1.
+
+		</p>
+
+		<h3>[method:AnimationAction crossFadeTo]( [param:AnimationAction fadeInAction], [param:Number durationInSeconds], [param:Boolean warpBoolean] )</h3>
+		<p>
+			يؤدي هذا الإجراء إلى تلاشي [page:.fadeOut fade out] ، يتلاشى في إجراء آخر في وقت واحد ، خلال الفترة الزمنية المنقضية. يمكن تقييد هذه الطريقة ضمن سلسلة.<br /><br />
+			إذا كانت warpBoolean صحيحة ، فسيتم تطبيق [page:.warp warping] إضافيًا (تغييرات تدريجية في المقاييس الزمنية).<br /><br />
+
+			ملاحظة: كما هو الحال مع *fadeIn*/*fadeOut* ، يبدأ / ينتهي التلاشي بوزن 1.
+		</p>
+
+		<h3>[method:AnimationAction fadeIn]( [param:Number durationInSeconds] )</h3>
+		<p>
+			يزيد [page:.weight weight] هذا الإجراء تدريجياً من 0 إلى 1 ، خلال الفترة الزمنية المنقضية. يمكن تقييد هذه الطريقة ضمن سلسلة.
+		</p>
+
+		<h3>[method:AnimationAction fadeOut]( [param:Number durationInSeconds] )</h3>
+		<p>
+			يقلل [page:.weight weight] هذا الإجراء تدريجيًا من 1 إلى 0 ، خلال الفترة الزمنية المنقضية. يمكن تقييد هذه الطريقة ضمن سلسلة.
+		</p>
+
+		<h3>[method:Number getEffectiveTimeScale]()</h3>
+		<p>
+			تُرجع مقياس الوقت الفعال (مع الأخذ في الاعتبار حالات التواء و قيمة [page:.paused paused] الحالية).
+		</p>
+
+		<h3>[method:number getEffectiveWeight]()</h3>
+		<p>
+			تُرجع الوزن الفعال (مع الأخذ في الاعتبار حالات التلاشي الحالية و [page:.enabled enabled]).
+		</p>
+
+		<h3>[method:AnimationClip getClip]()</h3>
+		<p>
+			تُرجع المقطع الذي يحتوي على بيانات الرسوم المتحركة لهذا الإجراء.
+		</p>
+
+		<h3>[method:AnimationMixer getMixer]()</h3>
+		<p>
+			تُرجع الخالط المسؤول عن تشغيل هذا الإجراء.
+		</p>
+
+		<h3>[method:Object3D getRoot]()</h3>
+		<p>
+			تُرجع الكائن الجذر الذي تم تنفيذ هذا الإجراء عليه.
+		</p>
+
+		<h3>[method:AnimationAction halt]( [param:Number durationInSeconds] )</h3>
+		<p>
+			تعمل على إبطاء سرعة هذه الرسوم المتحركة إلى 0 من خلال إنقاص [page:.timeScale timeScale] تدريجيًا (بدءًا من قيمتها الحالية) ، خلال الفترة الزمنية المنقضية. يمكن تقييد هذه الطريقة ضمن سلسلة.
+		</p>
+
+		<h3>[method:Boolean isRunning]()</h3>
+		<p>
+			تُرجع true إذا كان الإجراء [page:.time time] قيد التشغيل حاليًا.<br /><br />
+
+			بالإضافة إلى تفعيله في الخالط (انظر [page:.isScheduled isScheduled]) ، يجب استيفاء الشروط التالية:
+			<br/>
+			[page:.paused paused] يساوي false ،<br/> [page:.enabled enabled] يساوي true ،
+			<br/>
+			[page:.timeScale timeScale] يختلف عن 0 ، ولا توجد جدولة لبدء متأخر ([page:.startAt startAt]).<br /><br />
+
+			ملاحظة: لا يعني كون *isRunning* تحمل قيمة *true* أنه يمكن رؤية الرسوم المتحركة بالفعل. هذا هو الحال فقط ، إذا تم تعيين [page:.weight weight] بشكل إضافي على قيمة غير صفرية.
+		</p>
+
+		<h3>[method:Boolean isScheduled]()</h3>
+		<p>
+			تُرجع قيمة *true* ، إذا تم تنشيط هذا الإجراء في الخالط.<br /><br />
+			ملاحظة: هذا لا يعني بالضرورة أن الرسوم المتحركة تعمل بالفعل (قارن الشروط الإضافية لـ [page:.isRunning isRunning]).
+		</p>
+
+		<h3>[method:AnimationAction play]()</h3>
+		<p>
+			يعلم الخالط بضرورة البدء في تنشيط الحدث (action). يمكن تقييد هذه الطريقة ضمن سلسلة. <br /><br />
+
+			ملاحظة: لا يعني تنشيط هذا الإجراء بالضرورة أن الرسوم المتحركة تبدأ على الفور: إذا كان الإجراء قد انتهى بالفعل من قبل (من خلال الوصول إلى نهاية الحلقة الأخيرة) ، أو إذا تم تعيين وقت لبدء متأخر (عبر [page:.startAt startAt]) ،
+			يجب تنفيذ [page:.reset reset] أولاً. يمكن لبعض الإعدادات الأخرى ([page:.paused paused]=true, [page:.enabled enabled]=false,
+			[page:.weight weight]=0, [page:.timeScale timeScale]=0) منع تشغيل الرسوم المتحركة أيضًا.
+		</p>
+
+		<h3>[method:AnimationAction reset]()</h3>
+		<p>
+			يتم إعادة الحدث إلى وضع البداية. يمكن تقييد هذه الطريقة ضمن سلسلة.<br /><br />
+
+			تقوم هذه الطريقة بتعيين [page:.paused paused] إلى false ، و [page:.enabled enabled] إلى true ، ومن [page:.time time] إلى 0 ، وتقطع أي تزييف مجدول ، وتزيل عدد الحلقات الداخلية وجدولة البدء المتأخر.<br /><br />
+
+			ملاحظة: يتم استدعاء. *reset* دائمًا بواسطة [page:.stop stop] ، ولكن *reset* لا يتصل بـ *stop* نفسه.
+			هذا يعني: إذا كنت تريد كلاهما ، reset وstop ، لا تتصل بـ *reset* بل إتصل بـ *stop* بدلا من ذلك.
+		</p>
+
+		<h3>[method:AnimationAction setDuration]( [param:Number durationInSeconds] )</h3>
+		<p>
+			يضبط المدة لحلقة واحدة من هذا الإجراء (بضبط [page:.timeScale timeScale] وإيقاف أي إلتفاف مجدول). يمكن تقييد هذه الطريقة ضمن سلسلة.
+		</p>
+
+		<h3>[method:AnimationAction setEffectiveTimeScale]( [param:Number timeScale] )</h3>
+		<p>
+			يضبط [page:.timeScale timeScale] ويوقف أي إلتفاف مجدول. يمكن تقييد هذه الطريقة ضمن سلسلة. <br /><br />
+
+			إذا كانت القيمة [page:.paused paused] تحمل false ، فسيتم أيضًا تعيين المقياس الزمني الفعال (خاصية داخلية) على هذه القيمة ؛
+			وإلا فسيتم تعيين النطاق الزمني الفعال (الذي يؤثر بشكل مباشر على الرسم المتحرك في هذه اللحظة) على 0.<br /><br />
+
+			ملاحظة: *paused* لن يتم تحويله إلى *true* تلقائيًا ، إذا تم ضبط *timeScale* على 0 بهذه الطريقة.
+		</p>
+
+		<h3>[method:AnimationAction setEffectiveWeight]( [param:Number weight] )</h3>
+		<p>
+			تضبط [page:.weight weight] وتوقف أي تضاؤل مجدول. يمكن تقييد هذه الطريقة ضمن سلسلة. <br /><br />
+
+			إذا كانت قيمة [page:.enabled enabled] هي true ، فسيتم أيضًا تعيين الوزن الفعال (خاصية داخلية) على هذه القيمة ؛
+			وإلا فسيتم تعيين الوزن الفعال (الذي يؤثر بشكل مباشر على الرسم المتحرك في هذه اللحظة) على 0.<br /><br />
+
+			ملاحظة: لن يتم تحويل *enabled* إلى false تلقائيًا ، إذا تم ضبط *weight* على 0 بهذه الطريقة.
+		</p>
+
+		<h3>[method:AnimationAction setLoop]( [param:Number loopMode], [param:Number repetitions] )</h3>
+		<p>
+			يعين [page:.loop loop mode] وعدد [page:.repetitions repetitions]. يمكن تقييد هذه الطريقة ضمن سلسلة
+		</p>
+
+		<h3>[method:AnimationAction startAt]( [param:Number startTimeInSeconds] )</h3>
+		<p>
+			يحدد وقت البداية المتأخرة (عادةً ما يتم تمريره كـ [page:AnimationMixer.time] + deltaTimeInSeconds). يمكن تقييد هذه الطريقة ضمن سلسلة. <br /><br />
+
+			ملاحظة: ستبدأ الرسوم المتحركة فقط في الوقت المحدد ، إذا تم ربط *startAt* بـ [page:.play play] ،
+			أو إذا تم بالفعل تنشيط الإجراء في الخالط (عن طريق استدعاء سابق لـ. *play* ، دون إيقافه أو إعادة تعيينه في هذه الأثناء).
+		</p>
+
+		<h3>[method:AnimationAction stop]()</h3>
+		<p>
+			يخبر الخالط بإلغاء تنشيط هذا الإجراء. يمكن تقييد هذه الطريقة ضمن سلسلة. <br /><br />
+
+			سيتم إيقاف الإجراء على الفور وإعادة تعيين [page:.reset reset] بالكامل.<br /><br />
+
+			ملاحظة: يمكنك إيقاف جميع الإجراءات النشطة على نفس الخالط دفعة واحدة عبر [page:AnimationMixer.stopAllAction mixer.stopAllAction].
+		</p>
+
+		<h3>[method:AnimationAction stopFading]()</h3>
+		<p>
+			يوقف أي [page:.fadeIn fading] مجدولًا يتم تطبيقه على هذا الحدث. يمكن تقييد هذه الطريقة ضمن سلسلة.
+		</p>
+
+		<h3>[method:AnimationAction stopWarping]()</h3>
+		<p>
+			يوقف أي [page:.warp warping] مجدولًا يتم تطبيقه على هذا الحدث. يمكن تقييد هذه الوظيفة ضمن سلسلة.
+		</p>
+
+		<h3>[method:AnimationAction syncWith]( [param:AnimationAction otherAction] )</h3>
+		<p>
+			يزامن هذا الإجراء مع الإجراء الآخر الذي تم تمريره. يمكن تقييد هذه الوظيفة ضمن سلسلة. <br /><br />
+
+			تتم المزامنة عن طريق تعيين قيم [page:.time time] و [page:.timeScale timeScale] لهذا الإجراء على القيم المقابلة للإجراء الآخر (إيقاف أي التواء مجدول).<br /><br />
+
+			ملاحظة: لن يتم الكشف عن التغييرات المستقبلية في *time* و *timeScale* للإجراء الآخر.
+		</p>
+
+		<h3>[method:AnimationAction warp]( [param:Number startTimeScale], [param:Number endTimeScale], [param:Number durationInSeconds] )</h3>
+		<p>
+			يغير سرعة التشغيل ، خلال الفترة الزمنية المنقضية ، عن طريق تعديل [page:.timeScale timeScale] تدريجيًا من *startTimeScale* إلى *endTimeScale*.يمكن تقييد هذه الوظيفة ضمن سلسلة.
+		</p>
+
+
+		<h2>الأحداث (Events)</h2>
+
+
+		<p class="desc">
+			هناك حدثان يشيران عند انتهاء حلقة واحدة من الإجراء على التوالي. يمكنك الرد عليهم من خلال:
+		</p>
+		<code>
+		mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
+		mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
+		</code>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 134 - 0
docs/api/ar/animation/AnimationClip.html

@@ -0,0 +1,134 @@
+<!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">
+			AnimationClip عبارة عن مجموعة قابلة لإعادة الاستخدام من مسارات الإطارات الرئيسية التي تمثل رسمًا متحركًا.<br /><br />
+
+			للحصول على نظرة عامة حول العناصر المختلفة لنظام الرسوم المتحركة three.js ، راجع مقالة "نظام الحركات" في قسم "الخطوات التالية" من الدليل.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Number duration], [param:Array tracks] )</h3>
+		<p>
+			[page:String name] - اسم لهذا المقطع.<br />
+			[page:Number duration] - مدة هذا المقطع (بالثواني). إذا تم تمرير قيمة سالبة ، فسيتم حساب المدة من *tracks* التي تم تمريرها.<br />
+			[page:Array tracks] - مجموعة (جدول) من [page:KeyframeTrack KeyframeTracks].<br /><br />
+
+			ملاحظة: بدلاً من إنشاء AnimationClip مباشرةً مع المُنشئ ، يمكنك استخدام إحدى طرقه الثابتة لإنشاء AnimationClips: من JSON ([page:.parse parse]) ، من تسلسلات الهدف التحويلية ([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence] ،
+			[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences]) أو من التسلسلات الهرمية للرسوم المتحركة ([page:.parseAnimation parseAnimation]) - إذا كان النموذج الخاص بك لا يحتوي بالفعل على AnimationClips في مجموعة الرسوم المتحركة الخاصة بهندسة.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:Number duration]</h3>
+		<p>
+			مدة هذا المقطع (بالثواني). يمكن حساب ذلك من مجموعة [page:.tracks tracks]  عبر [page:.resetDuration resetDuration].
+		</p>
+
+		<h3>[property:String name]</h3>
+		<p>
+			اسم لهذا المقطع. يمكن البحث عن مقطع معين طريق بإستعمال [page:.findByName findByName].
+		</p>
+
+		<h3>[property:Array tracks]</h3>
+		<p>
+			جدول يحتوي على [page:KeyframeTrack] لكل خاصية يتم تحريكها بواسطة هذا المقطع.
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+			[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] لهذا المقطع. يتم تعيينه تلقائيًا ولا يجب تحريره.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:AnimationClip clone]()</h3>
+		<p>
+			إرجاع نسخة من هذا المقطع.
+		</p>
+
+		<h3>[method:this optimize]()</h3>
+		<p>
+			يحسن من أداء كل مسار عن طريق إزالة المفاتيح المتسلسلة المتكررة (الشائعة في تسلسلات هدف التحويل - morph target sequences).
+		</p>
+
+		<h3>[method:this resetDuration]()</h3>
+		<p>
+			يضبط [page:.duration duration] للمقطع على أطول مدة [page:KeyframeTrack] ممكنة.
+		</p>
+
+		<h3>[method:Object toJSON]()</h3>
+		<p>
+			Returns a JSON object representing the serialized animation clip.
+		</p>
+
+		<h3>[method:this trim]()</h3>
+		<p>
+			اقتطاع كل المسارات حسب مدة المقطع.
+		</p>
+
+		<h3>[method:Boolean validate]()</h3>
+		<p>
+			يقوم بتأدية الحد الأدنى من التحقق من الصحة على كل مسار في المقطع. إرجاع *true* إذا كانت جميع المسارات صالحة.
+		</p>
+
+
+		<h2>الوظائف الساكنة (Static Methods)</h2>
+
+
+		<h3>[method:Array CreateClipsFromMorphTargetSequences]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
+		<p>
+			تُرجع مصفوفة من AnimationClips الجديدة التي تم إنشاؤها من [page:Geometry.morphTargets morph target sequences] من الشكل الهندسي ، في محاولة لفرز أسماء الأهداف التحويلية إلى أنماط قائمة على مجموعة الرسوم المتحركة مثل "Walk_001 ، Walk_002 ، Run_001 ، Run_002 ...".
+		</p>
+
+		<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
+		<p>
+			يُرجع مقطع رسوم متحركة جديدًا من [page:Geometry.morphTargets morph targets array] تم تمريره لشكل هندسي ، مع أخذ اسم وعدد الإطارات في الثانية.<br /><br />
+
+			ملاحظة: قيمة fps مطلوبة و ضرورية ، ولكن يمكن إعادة ضبظ سرعة الرسوم المتحركة في *AnimationAction* عبر [page:AnimationAction.setDuration animationAction.setDuration].
+		</p>
+
+		<h3>[method:AnimationClip findByName]( [param:Object objectOrClipArray], [param:String name] )</h3>
+		<p>
+			يبحث عن AnimationClip بالاسم ، مع الأخذ كقيمة إما مصفوفة من AnimationClips ، أو شبكة أو شكل هندسي يحتوي على جدول مسمى "animations".
+		</p>
+
+		<h3>[method:AnimationClip parse]( [param:Object json] )</h3>
+		<p>
+			يترجم تمثيل JSON لمقطع ويعيد AnimationClip.
+		</p>
+
+		<h3>[method:AnimationClip parseAnimation]( [param:Object animation], [param:Array bones] )</h3>
+		<p>
+			يوزع تنسيق animation.hierarchy ويعيد AnimationClip.
+		</p>
+
+		<h3>[method:Object toJSON]( [param:AnimationClip clip] )</h3>
+		<p>
+			يأخذ AnimationClip ويعيد كائن JSON.
+		</p>
+
+
+		<h2>المصدر (Source)</h2>
+
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 109 - 0
docs/api/ar/animation/AnimationMixer.html

@@ -0,0 +1,109 @@
+<!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">
+			AnimationMixer هو مشغل للرسوم المتحركة على كائن معين في المشهد. عندما يتم تحريك كائنات متعددة في المشهد بشكل مستقل ، يمكن استخدام AnimationMixer واحد لكل كائن.<br /><br />
+
+			للحصول على نظرة عامة حول العناصر المختلفة لنظام الرسوم المتحركة three.js ، راجع مقالة "نظام الحركات" في قسم "الخطوات التالية" من الدليل.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:Object3D rootObject] )</h3>
+		<p>
+			[page:Object3D rootObject] - الكائن الذي سيتم تشغيل رسومه المتحركة بواسطة هذا الخالط.<br />
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:Number time]</h3>
+		<p>
+			وقت الخالط الكامل (بالثواني ؛ بدءًا من 0 عند إنشاء الخالط).
+		</p>
+
+		<h3>[property:Number timeScale]</h3>
+		<p>
+			عامل تحجيم لـ [page:.time mixer time].<br /><br />
+
+			ملاحظة: يأدي ضبط مقياس وقت الخلاط على 0 والعودة لاحقًا إلى 1 إلى إمكانية إيقاف / إلغاء إيقاف مؤقت لجميع الإجراءات التي يتحكم فيها هذا الخالط.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:AnimationAction clipAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
+		<p>
+			إرجاع [page:AnimationAction] للمقطع الذي تم تمريره ، اختيارياً باستخدام كائن جذر مختلف عن الجذر الافتراضي لجهاز المزج. يمكن أن تكون القيمة الأولى إما كائن [page:AnimationClip] أو اسم AnimationClip.<br /><br />
+
+			إذا لم يكن هناك إجراء يلائم المقطع ومعلمات الجذر ، فسيتم إنشاؤه بهذه الطريقة. استدعاء هذه الطريقة عدة مرات مع نفس المقطع ومعلمات الجذر يؤدي دائمًا إلى إرجاع نفس مثيل المقطع.
+		</p>
+
+		<h3>[method:AnimationAction existingAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</h3>
+		<p>
+			إرجاع [page:AnimationAction] موجود للمقطع الذي تم تمريره ، اختيارياً باستخدام كائن جذر مختلف عن الجذر الافتراضي لجهاز الخالط.<br /><br />
+
+			يمكن أن تكون القيمة الأولى إما كائن [page:AnimationClip] أو اسم AnimationClip.
+		</p>
+
+		<h3>[method:Object3D getRoot]()</h3>
+		<p>
+			إرجاع جذركائن الخالط.
+		</p>
+
+		<h3>[method:AnimationMixer stopAllAction]()</h3>
+		<p>
+			يقوم بإلغاء تنشيط كافة الإجراءات المجدولة مسبقًا على هذا الخالط.
+		</p>
+
+		<h3>[method:AnimationMixer update]([param:Number deltaTimeInSeconds]) </h3>
+		<p>
+			يعمل على تقدم وقت الخالط العالمي وتحديث الرسوم المتحركة.<br /><br />
+
+			يتم ذلك عادةً في حلقة العرض ، حيث يتم تمرير [page:Clock.getDelta clock.getDelta] مقياسًا بواسطة جهاز الخلاط [page:.timeScale timeScale]).
+		</p>
+
+		<h3>[method:AnimationMixer setTime]([param:Number timeInSeconds]) </h3>
+		<p>
+			يضبط الخالط العام على وقت محدد ويقوم بتحديث الرسوم المتحركة وفقًا لذلك.<br /><br />
+
+			يكون هذا مفيدًا عندما تحتاج إلى الانتقال إلى وقت محدد في رسم متحرك. سيتم قياس القيمة المدخلة حسب مقياس الوقت لجهاز الخالط [page:.timeScale timeScale].
+		</p>
+
+		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
+
+		<p>
+			إلغاء تخصيص كل موارد الذاكرة لمقطع.
+		</p>
+
+		<h3>[method:null uncacheRoot]([param:Object3D root]) </h3>
+		<p>
+			إلغاء تخصيص كافة موارد الذاكرة لكائن جذر.
+		</p>
+
+		<h3>[method:null uncacheAction]([param:AnimationClip clip], [param:Object3D optionalRoot])</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/animation/AnimationObjectGroup.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">
+		<h1>[name]</h1>
+
+		<p class="desc">مجموعة من الكائنات التي تتلقى حالة حركة مشتركة.<br /><br />
+
+			للحصول على نظرة عامة حول العناصر المختلفة لنظام الرسوم المتحركة three.js ، راجع مقالة "نظام الحركات" في قسم "الخطوات التالية" من الدليل.
+		</p>
+
+		<h2>الإستعمال:</h2>
+
+		<p class="desc">
+			تظيف كائنات يمكن تمريرها عبر المنشئ كـ'جذر' أو عبر وظيفة [page:AnimationMixer.clipAction clipAction] الخاصة بـ [page:AnimationMixer AnimationMixer] أو بدلا من دلك عبر تمرير هدا الكائن الأخير كـ'جذر'.<br /><br />
+
+
+			لاحظ أن كائنات هذه الفئة تظهر ككائن واحد للخالط ، لذا يجب التحكم في ذاكرة التخزين المؤقت للكائنات الفردية على المجموعة.
+		</p>
+
+
+		<h2>التقييدات (Limitations)</h2>
+		<p class="desc">
+			يجب أن تكون الخصائص المتحركة متوافقة مع جميع الكائنات في المجموعة.<br /><br />
+
+			يمكن التحكم في خاصية واحدة إما من خلال مجموعة مستهدفة أو بشكل مباشر ، ولكن ليس كلاهما.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
+		<p>
+			[page:Object obj] - عدد عشوائي من الشبكات التي تشترك في نفس حالة الحركة.
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:Object stats]</h3>
+		<p>
+			كائن يحتوي على بعض المعلومات حول *AnimationObjectGroup* (العدد الإجمالي ، العدد المستخدم ، عدد الروابط لكل كائن)
+		</p>
+
+		<h3>[property:String uuid]</h3>
+		<p>
+			[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] الخاص بهذا *AnimationObjectGroup*. يتم تعيينه تلقائيًا ولا يجب تحريره.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:null add]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
+		<p>
+			يضيف عددًا عشوائيًا من الكائنات إلى *AnimationObjectGroup*.
+		</p>
+
+		<h3>[method:null remove]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
+		<p>
+			يزيل عددًا عشوائيًا من الكائنات من *AnimationObjectGroup*.
+		</p>
+
+		<h3>[method:null uncache]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
+		<p>
+			إلغاء تخصيص كافة موارد الذاكرة للكائنات التي تم تمريرها من *AnimationObjectGroup*.
+		</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/animation/AnimationUtils.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">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		كائن مع وظائف مختلفة للمساعدة في الرسوم المتحركة ، ويستخدم داخليًا.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:Array arraySlice]( array, from, to )</h3>
+		<p>
+		نفسه عمل Array.prototype.slice ، ولكنه يعمل أيضًا على المصفوفات المكتوبة.
+		</p>
+
+		<h3>[method:Array convertArray]( array, type, forceClone )</h3>
+		<p>
+		يحول مصفوفة إلى نوع معين.
+		</p>
+
+		<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName  )</h3>
+		<p>
+		تستخدم لتحليل تنسيقات AOS keyframe.
+		</p>
+
+		<h3>[method:Array getKeyframeOrder]( times )</h3>
+		<p>
+		تُرجع مصفوفة يمكن من خلالها فرز الأوقات والقيم.
+		</p>
+
+		<h3>[method:Boolean isTypedArray]( object )</h3>
+		<p>
+		ترجاع *true* إذا كان الكائن مصفوفة مكتوبة (typed array.).
+		</p>
+
+		<h3>[method:Array sortedArray]( values, stride, order )</h3>
+		<p>
+		يفرز المصفوفة التي تم إرجاعها مسبقًا بناءا [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
+		</p>
+
+		<h3>[method:AnimationClip subclip]( [param:AnimationClip clip], [param:String name], [param:Number startFrame], [param:Number endFrame], [param:Number fps] )</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>

+ 221 - 0
docs/api/ar/animation/KeyframeTrack.html

@@ -0,0 +1,221 @@
+<!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/Key_frame keyframes] عبارة عن سلسلة زمنية من الإطارات الرئيسية ، والتي تتكون من قوائم بالأوقات والقيم ذات الصلة ، والتي تُستخدم لتحريك خاصية معينة لكائن.
+		</p>
+
+		<p>
+			للحصول على نظرة عامة على العناصر المختلفة لنظام الرسوم المتحركة three.js ، راجع ملف
+			مقالة "نظام الحركات" في قسم "الخطوات التالية" من الدليل.
+		</p>
+
+		<p>
+			على النقيض من التسلسل الهرمي للرسوم المتحركة لتنسيق نموذج [link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format] ، فإن *KeyframeTrack* لا يخزن إطارات المفاتيح الفردية الخاصة به ككائنات في مصفوفة "keys" (مع الاحتفاظ بالأوقات والقيم لكل إطار معًا في مكان واحد).
+		</p>
+
+		<p>
+			بدلاً من ذلك ، هناك دائمًا صفيفتان في *KeyframeTrack*: تقوم المصفوفة [page:.times times] بتخزين قيم الوقت لجميع الإطارات الرئيسية لهذا المسار بترتيب تسلسلي ، وتحتوي المصفوفة [page:.values values] على القيم المتغيرة المقابلة للخاصية المتحركة.
+		</p>
+
+		<p>
+			لا يمكن أن تكون القيمة المفردة ، التي تنتمي إلى نقطة زمنية معينة ، رقمًا بسيطًا فحسب ، بل يمكن (على سبيل المثال) أن تكون *vector* (إذا كان الموضع متحركًا) أو رباعي (إذا كان الدوران متحركًا). لهذا السبب ، قد تكون مصفوفة القيم (وهي مصفوفة مسطحة أيضًا) ثلاثة أو أربعة أضعاف طول مصفوفة الأوقات.
+		</p>
+
+		<p>
+			بالمقابلة مع الأنواع المختلفة الممكنة للقيم المتحركة ، توجد عدة فئات فرعية من *KeyframeTrack* ، ترث معظم الخصائص والطرق:
+		</p>
+
+		<ul>
+			<li>[page:BooleanKeyframeTrack]</li>
+			<li>[page:ColorKeyframeTrack]</li>
+			<li>[page:NumberKeyframeTrack]</li>
+			<li>[page:QuaternionKeyframeTrack]</li>
+			<li>[page:StringKeyframeTrack]</li>
+			<li>[page:VectorKeyframeTrack]</li>
+		</ul>
+
+		<p>
+			يمكن العثور على بعض الأمثلة حول كيفية إنشاء [page:AnimationClip AnimationClips] يدويًا بأنواع مختلفة من KeyframeTracks في ملف [link:https://threejs.org/examples/jsm/animation/AnimationClipCreator.js AnimationClipCreator].
+		</p>
+
+		<p>
+			نظرًا لأن القيم الصريحة محددة فقط لنقاط الوقت المنفصلة المخزنة في مصفوفة الأوقات ، يجب استيفاء جميع القيم الموجودة بينهما.
+		</p>
+
+		<p>
+			يعد اسم المسار مهمًا لربط هذا المسار بخاصية معينة للعقدة المتحركة (تم إجراؤه بواسطة [page:PropertyBinding]).
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values], [param:Constant interpolation] )</h3>
+		<p>
+			[page:String name] - معرّف *KeyframeTrack*.<br />
+			[page:Array times] - مصفوفة من مرات الإطار الرئيسي ، يتم تحويلها داخليًا إلى ملف
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Array values] - مصفوفة بالقيم المتعلقة بمصفوفة الأوقات ، يتم تحويلها داخليًا إلى
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Constant interpolation] - نوع الاستيفاء المطلوب استخدامه. أنظر
+			[page:Animation Animation Constants] للقيم الممكنة. القيمة الافتراضية هي [page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:String name]</h3>
+		<p>
+			يمكن أن يشير اسم المسار إلى [page:Geometry.morphTargets morph targets] أو [page:SkinnedMesh bones] أو ربما إلى قيم أخرى داخل كائن متحرك. راجع [page:PropertyBinding.parseTrackName] للتعرف على أشكال السلاسل التي يمكن تحليلها لربط الخاصية:
+		</p>
+
+		<p>
+			يمكن أن يحدد الاسم العقدة إما باستخدام اسمها أو uuid الخاص بها (على الرغم من أنها تحتاج إلى أن تكون في الشجرة الفرعية لعقدة الرسم البياني للمشهد التي تم تمريرها إلى جهاز المزج). أو ، إذا كان اسم المسار يبدأ بنقطة ، فإن المسار ينطبق على عقدة الجذر التي تم تمريرها إلى الخالط.
+		</p>
+
+		<p>
+			عادة ، بعد العقدة ، سيتم تحديد خاصية مباشرة. ولكن يمكنك أيضًا تحديد خاصية فرعية ، مثل. rotation[x] ، إذا كنت تريد فقط قيادة المكون X للدوران عبر مسار عائم.
+		</p>
+
+		<p>
+			يمكنك أيضًا تحديد العظام أو المواد المتعددة باستخدام اسم كائن ، على سبيل المثال: .bones[R_hand].scale; القناة الحمراء للون المنتشر للمادة الرابعة في مصفوفة المواد - كمثال آخر - يمكن الوصول إليها من خلال .bones[R_hand].scale;.
+		</p>
+
+		<p>
+			ستعمل خاصية PropertyBinding أيضًا على حل أسماء أهداف التحويل ، على سبيل المثال: .morphTargetInfluences[run].
+		</p>
+
+		<p>
+			ملاحظة: ليس بالضرورة أن يكون اسم المسار فريدًا. يمكن أن تقود مسارات متعددة نفس الممتلكات. يجب أن تستند النتيجة إلى مزيج مرجح بين المسارات المتعددة وفقًا لأوزان الإجراءات الخاصة بكل منها.
+		</p>
+
+		<h3>[property:Float32Array times]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array] تم تحويله من مصفوفة الأوقات التي تم تمريرها في المنشئ.
+		</p>
+
+		<h3>[property:Float32Array values]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array] تم تمحوله من صفيف القيم الذي تم تمريره في المنشئ.
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			نوع الاستيفاء (interpolation) الافتراضي: [page:Animation InterpolateLinear].
+		</p>
+
+		<h3>[property:Constant TimeBufferType ]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			نوع المخزن المؤقت المستخدم داخليا للأوقات.
+		</p>
+
+		<h3>[property:Constant ValueBufferType ]</h3>
+		<p>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			نوع المخزن المؤقت المستخدم داخليًا للقيم.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:KeyframeTrack clone]()</h3>
+		<p>
+			ترجع نسخة من هذا المسار.
+		</p>
+
+		<h3>[method:null createInterpolant]()</h3>
+		<p>
+			ينشئ [page:LinearInterpolant LinearInterpolant] أو [page:CubicInterpolant CubicInterpolant] أو [page:DiscreteInterpolant DiscreteInterpolant] ، اعتمادًا على قيمة معلمة الاستيفاء التي تم تمريرها في الباني.
+		</p>
+
+		<h3>[method:null getInterpolation]()</h3>
+		<p>
+			إرجاع نوع الاستيفاء (interpolation).
+		</p>
+
+		<h3>[method:Number getValueSize]()</h3>
+		<p>
+			ترجع حجم كل قيمة (طول صفيف القيم [page:.values values] مقسومًا على طول صفيف الأوقات [page:.times times]).
+		</p>
+
+		<h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+			ينشئ [page:DiscreteInterpolant DiscreteInterpolant] جديدًا من [page:KeyframeTrack.times times] و [page:KeyframeTrack.times values]. يمكن تمرير Float32Array الذي سيحصل على النتائج. وإلا فسيتم إنشاء مصفوفة جديدة بالحجم المناسب تلقائيًا.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+			ينشئ [page:LinearInterpolant LinearInterpolant] جديدًا من page:KeyframeTrack.times times] و [page:KeyframeTrack.times values]. يمكن تمرير Float32Array الذي سيتلقى النتائج. وإلا فسيتم إنشاء مصفوفة جديدة بالحجم المناسب تلقائيًا.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<p>
+			قم بإنشاء [page:CubicInterpolant CubicInterpolant] جديد من [page:KeyframeTrack.times times] و [page:KeyframeTrack.times values]. يمكن تمرير Float32Array الذي سيحصل على النتائج. وإلا فسيتم إنشاء مصفوفة جديدة بالحجم المناسب تلقائيًا.
+		</p>
+
+		<h3>[method:this optimize]()</h3>
+		<p>
+			يزيل المفاتيح المتسلسلة المكافئة الشائعة في تسلسلات الهدف التحويلية.
+		</p>
+
+		<h3>[method:this scale]()</h3>
+		<p>
+			يغير قياس جميع مرات الإطار الرئيسي بعامل.<br /><br />
+
+			ملاحظة: هذا مفيد ، على سبيل المثال ، للتحويلات إلى معدل معين من الإطارات في الثانية (كما يتم داخليًا بواسطة [page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]).
+		</p>
+
+		<h3>[method:this setInterpolation]( [param:Constant interpolationType] )</h3>
+		<p>
+			يحدد نوع الاستيفاء. انظر [page:Animation Animation Constants] للاختيارات.
+		</p>
+
+		<h3>[method:this shift]( [param:Number timeOffsetInSeconds] )</h3>
+		<p>
+			ينقل جميع الإطارات الرئيسية إما للأمام أو للخلف في الوقت المناسب.
+		</p>
+
+
+		<h3>[method:this trim]( [param:Number startTimeInSeconds], [param:Number endTimeInSeconds] )</h3>
+		<p>
+			يزيل الإطارات الرئيسية قبل *startTime* وبعد *endTime* ، بدون تغيير أي قيم في النطاق  [*startTime*, *endTime*].
+		</p>
+
+		<h3>[method:Boolean validate]()</h3>
+		<p>
+			يؤدي الحد الأدنى من التحقق من الصحة على المسارات. يرجع *true* إذا كان صحيحا.
+		</p>
+
+		<p>
+			تقوم هذه الطريقة بتسجيل الأخطاء في وحدة التحكم ، إذا كان المسار فارغًا ، أو إذا كان [page:.valueSize value size] غير صالح ، أو إذا كان عنصر في المصفوفة [page:.times times] أو [page:.values values] ليس رقمًا صالحًا أو إذا كانت العناصر الموجودة في المصفوفة *times* خارج الترتيب.
+		</p>
+
+		<h2>الوظائف الساكنة (Static Methods)</h2>
+
+		<h3>[method:JSON toJSON]( [param:KeyframeTrack track] )</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>

+ 132 - 0
docs/api/ar/animation/PropertyBinding.html

@@ -0,0 +1,132 @@
+<!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:Object3D rootNode], path, parsedPath )</h3>
+		<p>
+			-- [page:Object3D rootNode]:
+			-- path
+			-- parsedPath (optional)
+
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:Number path]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number parsedPath]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number node]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number rootNode]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Object BindingType]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Object Versioning]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Array GetterByBindingType]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
+		<p>
+
+		</p>
+
+
+
+		<h2>الوظائف (Methods)</h2>
+
+		<h3>[method:null getValue]( [param:Array targetArray], [param:Number offset] )</h3>
+		<p>
+		</p>
+
+		<h3>[method:null setValue]( [param:Array sourceArray], [param:Number offset] )</h3>
+		<p>
+		</p>
+
+		<h3>[method:null bind]( )</h3>
+		<p>
+			إنشاء زوج getter / setter لخاصية في الرسم البياني للمشهد. تستخدم داخليا من قبل
+			[page:PropertyBinding.getValue getValue] و [page:PropertyBinding.setValue setValue].
+		</p>
+
+		<h3>[method:null unbind]( )</h3>
+		<p>
+			تقوم بفك ربط زوج getter / setter لخاصية في الرسم البياني للمشهد.
+		</p>
+
+		<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
+		<p>
+			قم بإنشاء مركب جديد PropertyBinding.
+		</p>
+
+		<h3>[method:Constructor create]( root, path, parsedPath )</h3>
+		<p>
+			تقوم بإنشاء رابط خاصية مركب جديد (إذا كان الجذر هو [page:AnimationObjectGroup) أو PropertyBinding.
+		</p>
+
+		<h3>[method:Constructor parseTrackName]( trackName )</h3>
+		<p>
+			يطابق الـ strings في الأشكال التالية:<br />
+			-- nodeName.property<br />
+			-- nodeName.property[accessor]<br />
+			-- nodeName.material.property[accessor]<br />
+			-- uuid.property[accessor]<br />
+			-- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
+			-- parentName/nodeName.property<br />
+			-- parentName/parentName/nodeName.property[index]<br />
+			-- .bone[Armature.DEF_cog].position<br />
+			-- scene:helium_balloon_model:helium_balloon_model.position
+		</p>
+
+		<h3>[method:Constructor findNode]( root, nodeName )</h3>
+		<p>
+			تبحث عن عقدة في شجرة العقدة أو [page:Skeleton Skeleton].
+		</p>
+
+
+
+
+		<h2>المصدر (Source)</h2>
+
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 98 - 0
docs/api/ar/animation/PropertyMixer.html

@@ -0,0 +1,98 @@
+<!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:PropertyBinding binding], [param:String typeName], [param:Number valueSize] )</h3>
+		<p>
+			-- binding <br />
+			-- typeName <br />
+			-- valueSize <br />
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<h3>[property:PropertyBinding binding]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:TypedArray buffer]</h3>
+		<p>
+			 حاجز (buffer)  بحجم [page:PropertyMixer valueSize] * 4. <br /><br />
+			هذا لديه التخطيط: [ incoming | accu0 | accu1 | orig ]<br /><br />
+			يمكن Interpolators استخدام .buffer كـ .result ثم تنتقل البيانات إلى "incoming". <br/>
+			يتم استخدام 'accu0' و 'accu1' مع ​​الإطارات المتداخلة للنتيجة التراكمية ويتم مقارنتها لاكتشاف التغييرات. يقوم "orig" بتخزين الحالة الأصلية للممتلكات.
+		</p>
+
+		<h3>[property:Number cumulativeWeight]</h3>
+		<p>
+			الافتراضي هو *0*.
+		</p>
+
+		<h3>[property:Number valueSize]</h3>
+		<p>
+
+		</p>
+
+		<h3>[property:Number referenceCount]</h3>
+		<p>
+			الافتراضي هو *0*.
+		</p>
+
+		<h3>[property:Number useCount]</h3>
+		<p>
+			الافتراضي هو *0*.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:null accumulate]( [param:Number accuIndex], [param:Number weight] )</h3>
+		<p>
+			تجميع البيانات في [page:PropertyMixer.buffer buffer][accuIndex] منطقة 'incoming' في 'accu[i]'.<br />
+
+			إذا كان الوزن *0* فهذا لا يفعل شيئًا.
+		</p>
+
+		<h3>[method:null apply]( [param:Number accuIndex] )</h3>
+		<p>
+			تطبيق حالة [page:PropertyMixer.buffer buffer] 'accu[i]' على الربط عند اختلاف الاتهام.
+		</p>
+
+		<h3>[method:null saveOriginalState]( )</h3>
+		<p>
+			تذكر حالة الملكية المقيدة وتنسخها إلى كلا المتهمين.
+		</p>
+
+		<h3>[method:null restoreOriginalState](  )</h3>
+		<p>
+			تقوم بتطبيق الحالة التي تم التقاطها مسبقًا عبر 'saveOriginalState' إلى binding.
+		</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/animation/tracks/BooleanKeyframeTrack.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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تتبع للقيمة الخاصة بـ*boolean keyframe*.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (ضرورية) المعرف الخاص بـ*KeyframeTrack*.<br />
+			[page:Array times] - (ضرورية) جدول يتضمن مجموعة من الـ*keyframe times*.<br />
+			[page:Array values] - القيم الخاصة بـ *keyframes* في وقت محدد لها.<br />
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			الـ*interpolation* الإفتراضي للإستعمال، [page:Animation InterpolateDiscrete].
+		</p>
+
+		<h3>[property:Array ValueBufferType]</h3>
+		<p>
+			جدول عادي (ليس *Float32Array* في هذه الحالة، ما عدى *ValueBufferType* الخاص بـ [page:KeyframeTrack]).
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'bool'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear ]()</h3>
+		<p>
+			قيمة هذه الوضيفة هي 'undefined'، حيث أنه لا يوجد سبب لإستعمالها على الخصائص المتفردة.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth ]()</h3>
+		<p>
+			قيمة هذه الوضيفة هي 'undefined'، حيث أنه لا يوجد سبب لإستعمالها على الخصائص المتفردة.
+		</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/animation/tracks/ColorKeyframeTrack.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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تتبع للقيم التابعة لـ*keyframe* التي تمثل تغيرات لون ما.<br /><br />
+			التنفيذ الأساسي لهذه الفئة الفرعية فلا يوجد أي شيء خاص حتى الآن. ومع ذلك ، هذا هو المكان المناسب لوضع معلمات مساحة اللون.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (ضرورية) المعرف الخاص بـ*KeyframeTrack*.<br />
+			[page:Array times] - (ضرورية) جدول الأوقات الخاصة بـ*keyframe*.<br />
+			[page:Array values] - القيم الخاصة بالـ*keyframes* في وقت محدد.<br />
+			[page:Constant interpolation] - نوع الـ*interpolation* الذي يجب إستعماله. أنظر
+			[page:Animation Animation Constants] للقيم الممكنة. الإفتراضي هو
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'color'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 63 - 0
docs/api/ar/animation/tracks/NumberKeyframeTrack.html

@@ -0,0 +1,63 @@
+<!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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تتبع للقيمة الرقمية الخاصة بـ*keyframe* ما.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (ضرورية) المعرف الخاص بالـ*KeyframeTrack*.<br />
+			[page:Array times] - (ضرورية) جدول الأوقات الخاصة بـ*keyframe*.<br />
+			[page:Array values] - القيم الخاصة بالـ*keyframes* في وقت محدد.<br />
+			[page:Constant interpolation] - نوع الـ*interpolation* الذي يجب إستعماله. أنظر
+			[page:Animation Animation Constants] من أجل القيم المتاحة. الإفتراضي هو
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'number'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</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/animation/tracks/QuaternionKeyframeTrack.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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			 تتبع للقيمة الرقمية الخاصة بـإطار رباعي *quaternion keyframe*.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] (ضرورية) المعرف الخاص بالـ*KeyframeTrack*.<br />
+			[page:Array times] - (ضرورية) جدول الأوقات الخاصة بـ*keyframe*.<br />
+			[page:Array values] - القيم الخاصة بالـ*keyframes* في وقت محدد.<br />
+			[page:Constant interpolation] - نوع الـ*interpolation*  الذي يجب إستعماله. أنظر
+			[page:Animation Animation Constants] من أجل القيم المتاحة. الإفتراضي هو
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+			نوع الـ*interpolation* الافتراضي المراد استخدامه ،
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'quaternion'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<p>
+			إرجاع قيمة من نوع [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] بناءا على
+			[page:KeyframeTrack.values values], [page:KeyframeTrack.times times] و
+			[page:KeyframeTrack.valueSize valueSize] التابعين لـ*keyframes*.
+		</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/animation/tracks/StringKeyframeTrack.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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			 تتبع للقيم الخاصة بـ*string keyframe*.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (ضرورية) معرّف KeyframeTrack.<br />
+			[page:Array times] - (ضرورية) جدول الأوقات الخاصة بـ*keyframe*.<br />
+			[page:Array values] - القيم الخاصة بالـ*keyframes* في وقت محدد.<br />
+			[page:Constant interpolation] - نوع الـ*interpolation*  الذي يجب إستعماله. أنظر
+			[page:Animation Animation Constants] من أجل القيم المتاحة. الإفتراضي هو
+			[page:Animation InterpolateDiscrete].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<p>
+				نوع الـ*interpolation* الافتراضي المراد استخدامه ، [page:Animation InterpolateDiscrete].
+		</p>
+
+		<h3>[property:Array ValueBufferType]</h3>
+		<p>
+			جدول (مصفوفة) عادي (ليس Float32Array في هذه الحالة، بخلاف *ValueBufferType* من [page:KeyframeTrack]).
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'string'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<p>
+			قيمة هذه الطريقة هنا 'undefined' ، لأنها لا معنى لها بالنسبة للخصائص المنفصلة.
+		</p>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth]()</h3>
+		<p>
+			قيمة هذه الطريقة هنا 'undefined' ، لأنها لا معنى لها بالنسبة للخصائص المنفصلة.
+		</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/animation/tracks/VectorKeyframeTrack.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:KeyframeTrack] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			 تتبع للقيم الخاصة بـ*vector keyframe*.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:String name], [param:Array times], [param:Array values] )</h3>
+		<p>
+			[page:String name] - (ضرورية) معرّف KeyframeTrack.<br />
+			[page:Array times] - (ضرورية) جدول الأوقات الخاصة بـ*keyframe*.<br />
+			[page:Array values] - القيم الخاصة بالـ*keyframes* في وقت محدد.<br />
+			[page:Constant interpolation] - نوع الـ*interpolation*  الذي يجب إستعماله. أنظر
+			[page:Animation Animation Constants] من أجل القيم المتاحة. الإفتراضي هو
+			[page:Animation InterpolateLinear].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+		<h3>[property:String ValueTypeName]</h3>
+		<p>
+			String 'vector'.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<p class="desc">
+			أنظر [page:KeyframeTrack] من أجل الخصائص الموروثة
+		</p>
+
+
+		<h2>المصدر (Source)</h2>
+
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 229 - 0
docs/api/ar/audio/Audio.html

@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يقوم بإنشاء كائن صوتي غير موضعي (عام).<br /><br />
+
+			يستخدم هذا [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+		<h2>مثال التعليمة البرمجية</h2>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		const listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create a global audio source
+		const sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		const audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop( true );
+			sound.setVolume( 0.5 );
+			sound.play();
+		});
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:AudioListener listener] )</h3>
+		<p>
+		listener — (ضرورية) كائن [page:AudioListener AudioListener].
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:Boolean autoplay]</h3>
+		<p>ما إذا كان سيتم بدء التشغيل تلقائيًا. الافتراضي هو *false*.</p>
+
+		<h3>[property:AudioContext context]</h3>
+		<p>الـ[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] من [page:AudioListener listener] المعطاة في المنشئ.</p>
+
+		<h3>[property:Number detune]</h3>
+		<p>تعديل درجة الصوت ، مقاسة بالسنت. +/- 100 نصف نغمة. +/- 1200 هو *octave*. الافتراضي هو *0*.</p>
+
+		<h3>[property:Array filters]</h3>
+		<p>يمثل مجموعة من [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]. يمكن استخدامه لتطبيق مجموعة متنوعة من المرشحات ذات الترتيب المنخفض لإنشاء مؤثرات صوتية أكثر تعقيدًا. يتم ضبط المرشحات عبر [page:Audio.setFilter] أو [page:Audio.setFilters].</p>
+
+		<h3>[property:GainNode gain]</h3>
+		<p>[link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] تم إنشاؤه باستخدام [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]().</p>
+
+		<h3>[property:Boolean hasPlaybackControl]</h3>
+		<p>ما إذا كان يمكن التحكم في التشغيل باستخدام طرق [page:Audio.play play]() و [page:Audio.pause pause]() وما إلى ذلك. الافتراضي هو *true*.</p>
+
+		<h3>[property:Boolean isPlaying]</h3>
+		<p>ما إذا كان الصوت قيد التشغيل حاليًا.</p>
+
+		<h3>[property:AudioListener listener]</h3>
+		<p>مرجع إلى كائن المستمع لهذا الصوت.</p>
+
+		<h3>[property:Number playbackRate]</h3>
+		<p>سرعة التشغيل. الافتراضي هو *1*.</p>
+
+		<h3>[property:Number offset]</h3>
+		<p>إزاحة للوقت الذي يجب أن يبدأ فيه التشغيل داخل المخزن المؤقت للصوت. مثل المعلمة *offset* لـ [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). القيمة الافتراضية هي *0*.</p>
+
+		<h3>[property:Number duration]</h3>
+		<p>يتجاوز مدة الصوت. مثل المعلمة *duration* لـ[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). الافتراضي هو *undefined* لتشغيل المخزن المؤقت بالكامل.</p>
+
+		<h3>[property:String source]</h3>
+		<p>[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode]  تم إنشاؤها باستخدام [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBufferSource AudioContext.createBufferSource]().</p>
+
+		<h3>[property:String sourceType]</h3>
+		<p>نوع مصدر الصوت. الافتراضي هو السلسلة 'empty'.</p>
+
+		<h3>[property:String type]</h3>
+		<p>سلسلة تشير إلى النوع ، مضبوطة على 'Audio'.</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+		<h3>[method:Audio connect]()</h3>
+		<p>
+		متصل بـ [page:Audio.source]. يستخدم هذا داخليًا عند التهيئة وعند ضبط / إزالة المرشحات.
+		</p>
+
+		<h3>[method:Audio disconnect]()</h3>
+		<p>
+		قطع الاتصال من [page:Audio.source]. يستخدم هذا داخليًا عند تعيين / إزالة المرشحات.
+		</p>
+
+		<h3>[method:BiquadFilterNode getFilter]()</h3>
+		<p>
+		إرجاع العنصر الأول من الجدول [page:Audio.filters filters].
+		</p>
+
+		<h3>[method:Array getFilters]()</h3>
+		<p>
+		تُرجع جدول (مصفوفة)  [page:Audio.filters filters].
+		</p>
+
+		<h3>[method:Boolean getLoop]()</h3>
+		<p>
+		تقوم بإرجاع القيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop] (ما إذا كان يجب تكرار التشغيل).
+		</p>
+
+		<h3>[method:GainNode getOutput]()</h3>
+		<p>
+		ترجع [page:Audio.gain gainNode].
+		</p>
+
+		<h3>[method:Float getPlaybackRate]()</h3>
+		<p>
+		ترجع القيمة الخاصة بـ[page:Audio.playbackRate playbackRate].
+		</p>
+
+		<h3>[method:Float getVolume]( value )</h3>
+		<p>
+		إعادة الحجم الحالي.
+		</p>
+
+		<h3>[method:Audio play]( delay )</h3>
+		<p>
+		إذا كانت [page:Audio.hasPlaybackControl hasPlaybackControl] تحمل قيمة *true* ، يبدأ التشغيل.
+		</p>
+
+		<h3>[method:Audio pause]()</h3>
+		<p>
+		إذا كانت [page:Audio.hasPlaybackControl hasPlaybackControl] تحمل قيمة *true* ، يقوم بإقاف التشغيل.
+		</p>
+
+		<h3>[method:null onEnded]()</h3>
+		<p>
+		يتم مناداته تلقائيًا عند انتهاء التشغيل.
+		</p>
+
+		<h3>[method:Audio setBuffer]( audioBuffer )</h3>
+		<p>
+		تقوم بإعداد [page:Audio.source source] إلى *audioBuffer* ، وتقوم بتعيين [page:Audio.sourceType sourceType] إلى 'buffer'.<br />
+		إذا كان [page:Audio.autoplay autoplay] ، يبدأ التشغيل أيضًا.
+		</p>
+
+		<h3>[method:Audio setFilter]( filter )</h3>
+		<p>
+		يطبق [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNode] واحدًا على الصوت.
+		</p>
+
+		<h3>[method:Audio setFilters]( [param:Array value] )</h3>
+		<p>
+		value - جداول (صفائف) المرشحات.<br />
+		يطبق جدول (مصفوفة) من [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes] على الصوت.
+		</p>
+
+		<h3>[method:Audio setLoop]( [param:Boolean value] )</h3>
+		<p>
+		يضبط [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop] على *value* (ما إذا كان يجب تكرار التشغيل).
+		</p>
+
+		<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
+		<p>
+		يضبط [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart] على *value*.
+		</p>
+
+		<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
+		<p>
+		يضبط [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd] على *value*.
+		</p>
+
+		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
+		<p>
+		يطبق الكائن المحدد من النوع [link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement] كمصدر لهذا الصوت.<br />
+		يحدد أيضًا [page:Audio.hasPlaybackControl hasPlaybackControl] إلى false.
+		</p>
+
+		<h3>[method:Audio setMediaStreamSource]( mediaStream )</h3>
+		<p>
+		يطبق الكائن المحدد من النوع [link:https://developer.mozilla.org/en-US/docs/Web/API/MediaStream MediaStream] كمصدر لهذا الصوت.<br />
+		يحدد أيضًا [page:Audio.hasPlaybackControl hasPlaybackControl] إلى false.
+		</p>
+
+		<h3>[method:Audio setNodeSource]( audioNode )</h3>
+		<p>
+		يقوم بإعداد [page:Audio.source source] إلى audioBuffer ، ويقوم بتعيين [page:Audio.sourceType sourceType] على 'audioNode'.<br />
+		يضبط أيضًا [page:Audio.hasPlaybackControl hasPlaybackControl] إلى false.
+		</p>
+
+		<h3>[method:Audio setPlaybackRate]( [param:Float value] )</h3>
+		<p>
+		إذا تم تمكين [page:Audio.hasPlaybackControl hasPlaybackControl] ، فيتم ضبط [page:Audio.playbackRate playbackRate] على *value*.
+		</p>
+
+		<h3>[method:Audio setVolume]( [param:Float value] )</h3>
+		<p>
+		تضبط مستوى الصوت.
+		</p>
+
+		<h3>[method:Audio stop]()</h3>
+		<p>
+		إذا تم تمكين [page:Audio.hasPlaybackControl hasPlaybackControl] ، فسيتوقف عن التشغيل.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 97 - 0
docs/api/ar/audio/AudioAnalyser.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يقوم بإنشاء كائن AudioAnalyser ، والذي يستخدم [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode AnalyserNode] لتحليل البيانات الصوتية.<br /><br />
+
+			هذا يستخدم [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+
+		</p>
+
+		<h2>مثال التعليمة البرمجية</h2>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		const listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create an Audio source
+		const sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		const audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop(true);
+			sound.setVolume(0.5);
+			sound.play();
+		});
+
+		// create an AudioAnalyser, passing in the sound and desired fftSize
+		const analyser = new THREE.AudioAnalyser( sound, 32 );
+
+		// get the average frequency of the sound
+		const data = analyser.getAverageFrequency();
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( audio, [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize fftSize] )</h3>
+		<p>
+		يقوم بإنشاء [page:AudioAnalyser AudioAnalyser] جديد.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:AnalyserNode analyser]</h3>
+		<p>[link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode AnalyserNode] يستخدم لتحليل الصوت.</p>
+
+		<h3>[property:Integer fftSize]</h3>
+		<p>
+		قدرة غير صفرية تصل إلى 2048 ، تمثل حجم FFT (Fast Fourier Transform) لاستخدامها لتحديد مجال التردد (frequency domain).
+		انظر [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize this page] للحصول على التفاصيل.
+		</p>
+
+		<h3>[property:Uint8Array data]</h3>
+		<p>
+		*Uint8Array* بالحجم المحدد بواسطة [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/frequencyBinCount analyser.frequencyBinCount] يستخدم للاحتفاظ ببيانات التحليل.
+		</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:Uint8Array getFrequencyData]()</h3>
+		<p>
+		يستخدم طريقة [link:https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/getByteFrequencyData getByteFrequencyData] الخاصة بـ Web Audio. انظر تلك الصفحة.
+		</p>
+
+		<h3>[method:Number getAverageFrequency]()</h3>
+		<p>
+		تقوم بإرجاع  متوسط ​​الترددات المعادة بطريقة [page:AudioAnalyser.getFrequencyData getFrequencyData].
+		</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/audio/AudioContext.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">
+		هذا يحتوي على طرق لإعداد [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].<br /><br />
+
+		تستخدم داخليا من قبل فئتي [page: AudioListener AudioListener] و [page:AudioLoader AudioLoader].<br /><br />
+
+		يستخدم هذا [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+
+
+		<h2>الوظائف (Methods)</h2>
+
+		<h3>[method:AudioContext getContext]()</h3>
+		<p>
+		تقوم بإرجاع قيمة المتغير *context* في النطاق الخارجي ، إذا تم تحديده ، أو قم بتعيينه على [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] جديدًا.
+		</p>
+
+		<h3>[method:AudioContext setContext]( [param:AudioContext value] )</h3>
+		<p>
+		 تضبط المتغير *context* في النطاق الخارجي على *value*.
+		</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/audio/AudioListener.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمثل هذا المكون [link:https://developer.mozilla.org/de/docs/Web/API/AudioListener listener] افتراضيًا من جميع المؤثرات الصوتية الموضعية وغير الموضعية في المشهد.<br />
+			عادةً ما يُنشئ تطبيق three.js مثيلاً واحدًا من هذا الكائن. إنها معلمة تفسير إلزامية لكيانات الصوت مثل [page:Audio Audio] و [page:PositionalAudio PositionalAudio].<br />
+			في معظم الحالات ، يكون الكائن المستمع هو كائن فرعي للكاميرا. لذا فإن التحول ثلاثي الأبعاد للكاميرا يمثل التحول ثلاثي الأبعاد للمستمع.
+		</p>
+
+		<h2>مثال التعليمة البرمجية</h2>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		const listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create a global audio source
+		const sound = new THREE.Audio( listener );
+
+		// load a sound and set it as the Audio object's buffer
+		const audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setLoop(true);
+			sound.setVolume(0.5);
+			sound.play();
+		});
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_timing webaudio / timing ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name](  )</h3>
+		<p>
+		يقوم بإنشاء AudioListener جديد.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+		<h3>[property:AudioContext context]</h3>
+		<p>الـ[link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] الخاصة بـ[page:AudioListener listener] المعطاة في المنشئ.</p>
+
+		<h3>[property:GainNode gain]</h3>
+		<p>[link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] تم إنشاؤه باستخدام [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain](). </p>
+
+		<h3>[property:AudioNode filter]</h3>
+		<p>الافتراضي هو *null*.</p>
+
+		<h3>[property:Number timeDelta]</h3>
+		<p>قيمة دلتا الخاصة بالوقت للكيانات الصوتية. استخدم في سياق [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioParam/linearRampToValueAtTime AudioParam.linearRampToValueAtTimeDefault](). الافتراضي هو *0*.</p>
+
+		<h2>الوظائف (Methods)</h2>
+
+
+		<h3>[method:GainNode getInput]()</h3>
+		<p>
+		ترجع قيمة [page:AudioListener.gain gainNode].
+		</p>
+
+		<h3>[method:AudioListener removeFilter]()</h3>
+		<p>
+		اضبط قيمة [page:AudioListener.filter filter] على *null*.
+		</p>
+
+		<h3>[method:AudioNode getFilter]()</h3>
+		<p>
+		ترجع قيمة الخاصة بـ[page:AudioListener.filter filter].
+		</p>
+
+		<h3>[method:AudioListener setFilter]( [param:AudioNode value] )</h3>
+		<p>
+		تقوم بتعيين خاصية [page:AudioListener.filter filter] إلى *value*.
+		</p>
+
+		<h3>[method:Float getMasterVolume]()</h3>
+		<p>
+		إعادة *volume*.
+		</p>
+
+		<h3>[method:AudioListener setMasterVolume]( [param:Number value] )</h3>
+		<p>
+		ضبط مستوى الصوت (volume).
+		</p>
+
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 136 - 0
docs/api/ar/audio/PositionalAudio.html

@@ -0,0 +1,136 @@
+<!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:Audio] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			تقوم بإنشاء كائن صوتي موضعي (positional).<br /><br />
+
+			يستخدم هذا [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
+		</p>
+
+		<h2>مثال التعليمة البرمجية</h2>
+
+		<code>
+		// create an AudioListener and add it to the camera
+		const listener = new THREE.AudioListener();
+		camera.add( listener );
+
+		// create the PositionalAudio object (passing in the listener)
+		const sound = new THREE.PositionalAudio( listener );
+
+		// load a sound and set it as the PositionalAudio object's buffer
+		const audioLoader = new THREE.AudioLoader();
+		audioLoader.load( 'sounds/song.ogg', function( buffer ) {
+			sound.setBuffer( buffer );
+			sound.setRefDistance( 20 );
+			sound.play();
+		});
+
+		// create an object for the sound to play from
+		const sphere = new THREE.SphereBufferGeometry( 20, 32, 16 );
+		const material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
+		const mesh = new THREE.Mesh( sphere, material );
+		scene.add( mesh );
+
+		// finally add the sound to the mesh
+		mesh.add( sound );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+			[example:webaudio_orientation webaudio / orientation ]<br />
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_timing webaudio / timing ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:AudioListener listener] )</h3>
+		<p>
+		listener — (ضرورية) كائن [page:AudioListener AudioListener] .
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+
+		<p>
+			تراجع فئة [page:Audio Audio] من أجل الخصائص الموروثة.
+		</p>
+
+		<h3>[property:PannerNode panner]</h3>
+		<p>		خاصية [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode PannerNode] التابعة لـ*PositionalAudio*.</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+
+		<p>
+			راجع فئة [page:Audio Audio] من أجل الوظائف الموروثة.
+		</p>
+
+		<h3>[method:PannerNode getOutput]()</h3>
+		<p>
+		ترجع الـ[page:PositionalAudio.panner panner].
+		</p>
+
+		<h3>[method:Float getRefDistance]()</h3>
+		<p>
+		تُرجع القيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance panner.refDistance].
+		</p>
+
+		<h3>[method:PositionalAudio setRefDistance]( [param:Float value] )</h3>
+		<p>
+		يضبط قيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/refDistance panner.refDistance].
+		</p>
+
+		<h3>[method:Float getRolloffFactor]()</h3>
+		<p>
+		تُرجع القيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor panner.rolloffFactor].
+		</p>
+
+		<h3>[method:PositionalAudio setRolloffFactor]( [param:Float value] )</h3>
+		<p>
+		يضبط قيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/rolloffFactor panner.rolloffFactor].
+		</p>
+
+		<h3>[method:String getDistanceModel]()</h3>
+		<p>
+		تُرجع القيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel panner.distanceModel].
+		</p>
+
+		<h3>[method:PositionalAudio setDistanceModel]( [param:String value] )</h3>
+		<p>
+		يضبط قيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/distanceModel panner.distanceModel].
+		</p>
+
+		<h3>[method:Float getMaxDistance]()</h3>
+		<p>
+		تُرجع القيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
+		</p>
+
+		<h3>[method:PositionalAudio setMaxDistance]( [param:Float value] )</h3>
+		<p>
+		يضبط قيمة [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
+		</p>
+
+		<h3>[method:PositionalAudio setDirectionalCone]( [param:Float coneInnerAngle], [param:Float coneOuterAngle], [param:Float coneOuterGain] )</h3>
+		<p>
+		يمكن استخدام هذه الطريقة لتحويل الصوت متعدد الاتجاهات إلى [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode directional sound].
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 48 - 0
docs/api/ar/cameras/ArrayCamera.html

@@ -0,0 +1,48 @@
+<!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; [page:PerspectiveCamera] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمكن استخدام [name] لتقديم مشهد بكفاءة مع مجموعة محددة مسبقًا من الكاميرات. يعد هذا جانبًا مهمًا من جوانب الأداء لعرض مشاهد الواقع الافتراضي.<br />
+			يحمل دائمًا نموذج لـ [name] مصفوفة من الكاميرات الفرعية. من الضروري تحديد خاصية *viewport* لكل كاميرا فرعية والتي تحدد جزء منفذ العرض الذي يتم تقديمه باستخدام هذه الكاميرا.
+		</p>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>[example:webgl_camera_array camera / array ]</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Array array] )</h3>
+		<p>
+			مجموعة من الكاميرات.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة [page:PerspectiveCamera] الأساسية للممتلكات العامة.</p>
+
+		<h3>[property:Array cameras]</h3>
+		<p>
+			مجموعة من الكاميرات.
+		</p>
+
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:PerspectiveCamera]  للتعرف على الطرق الشائعة.</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/cameras/Camera.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<p class="desc">
+			فئة أساسية مجردة للكاميرات. يجب أن يتم توريث هذه الفئة دائمًا عند إنشاء كاميرا جديدة.
+		</p>
+
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]()</h3>
+		<p>
+			ينشئ كائن [name] جديد. لاحظ أن هذه الفئة لا يُقصد أن يتم استدعاؤها مباشرة ؛
+ربما تريد [page:PerspectiveCamera] أو [page:OrthographicCamera] بدلاً من ذلك.
+		</p>
+
+
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع الفئة [page: Object3D] الأساسية للممتلكات العامة.</p>
+
+		<h3>[property:Layers layers]</h3>
+		<p>
+		ال [page:Layers layers] التي تعد الكاميرا عضو فيها. هذه ملكية موروثة من [page:Object3D].<br /><br />
+
+		يجب أن تشترك الكائنات في طبقة واحدة على الأقل مع الكاميرا لتظهر عند عرض وجهة نظر الكاميرا.
+		</p>
+
+		<h3>[property:Matrix4 matrixWorldInverse]</h3>
+		<p>
+			هذه القيمة هي نتيجة عكس matrixWorld. يحتوي MatrixWorld على Matrix الذي يحتوي على عالم تحويل الكاميرا.
+		</p>
+
+		<h3>[property:Matrix4 projectionMatrix]</h3>
+		<p>هذه هي المصفوفة التي تحتوي على الإسقاط.</p>
+
+		<h3>[property:Matrix4 projectionMatrixInverse]</h3>
+		<p>معكوس مصفوفة الإسقاط *projectionMatrix*.</p>
+
+
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع الفئة الأساسية [page:Object3D] للتعرف على الطرق الشائعة.</p>
+
+		<h3>[method:Camera clone]( )</h3>
+		<p>
+			ترجع كاميرا جديدة بنفس خصائص هذه الكاميرا.
+		</p>
+
+		<h3>[method:Camera copy]( [param:Camera source], [param:Boolean recursive] )</h3>
+		<p>
+			تنسخ الخصائص من الكاميرا المصدر إلى هذه الكاميرا.
+		</p>
+
+		<h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في الـ*Vector3* الحالي. <br /><br />
+
+		ترجع [page:Vector3] التي تمثل اتجاه الفضاء العالمي الذي تنظر فيه الكاميرا.
+		(ملاحظة: تنظر الكاميرا إلى محورها z المحلي والسالب).<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>

+ 95 - 0
docs/api/ar/cameras/CubeCamera.html

@@ -0,0 +1,95 @@
+<!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">يقوم بإنشاء 6 كاميرات يتم تحويلها إلى [page:WebGLCubeRenderTarget].</p>
+
+		<h2>مثال التعليمة البرمجية</h2>
+
+		<code>
+		// Create cube render target
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+
+		// Create cube camera
+		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
+		scene.add( cubeCamera );
+
+		// Create car
+		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
+		const car = new Mesh( carGeometry, chromeMaterial );
+		scene.add( car );
+
+		// Update the render target cube
+		car.setVisible( false );
+		cubeCamera.position.copy( car.position );
+		cubeCamera.update( renderer, scene );
+
+		// Render the scene
+		car.setVisible( true );
+		renderer.render( scene, camera );
+		</code>
+
+		<h2>أمثلة (Examples)</h2>
+
+		<p>
+			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
+			[example:webgl_shading_physical shading / physical ]
+		</p>
+
+		<h2>المنشئ (Constructor)</h2>
+
+
+		<h3>[name]( [param:Number near], [param:Number far], [param:WebGLCubeRenderTarget renderTarget] )</h3>
+		<p>
+		near -- مسافة الاقتطاع القريبة. <br />
+		far -- مسافة القطع البعيدة <br />
+		renderTarget -- هدف عرض مكعب الوجهة *cube render target*.
+		</p>
+
+		<p>
+			ينشئ CubeCamera الذي يحتوي على 6 [page:PerspectiveCamera PerspectiveCameras] ذلك
+			الذي سيتم عرضه من خلال [page:WebGLCubeRenderTarget].
+		</p>
+
+		<h2>الخصائص (Properties)</h2>
+		<p>راجع فئة [page: Object3D] الأساسية للخصائص العامة.</p>
+
+		<h3>[property:WebGLCubeRenderTarget renderTarget]</h3>
+		<p>
+		الهدف الخاص بـ*cube render target*.
+		</p>
+
+		<h2>الوظائف (Methods)</h2>
+		<p>راجع فئة [page: Object3D] الأساسية للخصائص العامة.</p>
+
+		<h3>[method:null update]( [param:WebGLRenderer renderer], [param:Scene scene] )</h3>
+		<p>
+		renderer -- عارض WebGL الحالي <br />
+		scene -- المشهد الحالي
+		</p>
+		<p>
+		استدعاء هذا لتحديث [page:CubeCamera.renderTarget renderTarget].
+		</p>
+
+		<h3>[method:null clear]( [param:WebGLRenderer renderer], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
+		<p>
+		قم باستدعاء هذا لمسح لون وعمق و / أو مخازن الاستنسل *stencil buffers* المؤقتة الخاصة بالهدف.
+		يتم تعيين مخزن الألوان على اللون الواضح الحالي لجهاز العرض. القيم الافتراضية هي *true*.
+		</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/Polyfills.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/Template.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/AnimationAction.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 5 - 1
docs/api/en/animation/AnimationClip.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -83,6 +82,11 @@
 			[page:KeyframeTrack].
 		</p>
 
+		<h3>[method:Object toJSON]()</h3>
+		<p>
+			Returns a JSON object representing the serialized animation clip.
+		</p>
+
 		<h3>[method:this trim]()</h3>
 		<p>
 			Trims all tracks to the clip's duration.

+ 0 - 1
docs/api/en/animation/AnimationMixer.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 6 - 7
docs/api/en/animation/AnimationObjectGroup.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -37,15 +36,15 @@
 
 		<h2>Constructor</h2>
 
-		<h3>[name]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<h3>[name]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
 		<p>
-			[page:object obj] - an abitrary number of meshes that share the same animation state.
+			[page:Object obj] - an abitrary number of meshes that share the same animation state.
 		</p>
 
 		<h2>Properties</h2>
 
 
-		<h3>[property:object stats]</h3>
+		<h3>[property:Object stats]</h3>
 		<p>
 			An object that contains some informations of this *AnimationObjectGroup* (total number, number
 			in use, number of bindings per object)
@@ -61,17 +60,17 @@
 		<h2>Methods</h2>
 
 
-		<h3>[method:null add]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<h3>[method:null add]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
 		<p>
 			Adds an arbitrary number of objects to this *AnimationObjectGroup*.
 		</p>
 
-		<h3>[method:null remove]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<h3>[method:null remove]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
 		<p>
 			Removes an arbitrary number of objects from this *AnimationObjectGroup*.
 		</p>
 
-		<h3>[method:null uncache]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
+		<h3>[method:null uncache]( [param:Object obj1], [param:Object obj2], [param:Object obj3], ... )</h3>
 		<p>
 			Deallocates all memory resources for the passed objects of this *AnimationObjectGroup*.
 		</p>

+ 0 - 1
docs/api/en/animation/AnimationUtils.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 6
docs/api/en/animation/KeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -250,11 +249,6 @@
 
 		<h2>Static Methods</h2>
 
-		<h3>[method:KeyframeTrack parse]( [param:JSON json] )</h3>
-		<p>
-		Parses a JSON object and returns a new keyframe track of the correct type.
-		</p>
-
 		<h3>[method:JSON toJSON]( [param:KeyframeTrack track] )</h3>
 		<p>
 		Converts the track to JSON.

+ 0 - 1
docs/api/en/animation/PropertyBinding.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/PropertyMixer.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/BooleanKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/ColorKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/NumberKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/QuaternionKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/StringKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/animation/tracks/VectorKeyframeTrack.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 3 - 4
docs/api/en/audio/Audio.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -22,14 +21,14 @@
 
 		<code>
 		// create an AudioListener and add it to the camera
-		var listener = new THREE.AudioListener();
+		const listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create a global audio source
-		var sound = new THREE.Audio( listener );
+		const sound = new THREE.Audio( listener );
 
 		// load a sound and set it as the Audio object's buffer
-		var audioLoader = new THREE.AudioLoader();
+		const audioLoader = new THREE.AudioLoader();
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setLoop( true );

+ 5 - 6
docs/api/en/audio/AudioAnalyser.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -22,14 +21,14 @@
 
 		<code>
 		// create an AudioListener and add it to the camera
-		var listener = new THREE.AudioListener();
+		const listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create an Audio source
-		var sound = new THREE.Audio( listener );
+		const sound = new THREE.Audio( listener );
 
 		// load a sound and set it as the Audio object's buffer
-		var audioLoader = new THREE.AudioLoader();
+		const audioLoader = new THREE.AudioLoader();
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setLoop(true);
@@ -38,10 +37,10 @@
 		});
 
 		// create an AudioAnalyser, passing in the sound and desired fftSize
-		var analyser = new THREE.AudioAnalyser( sound, 32 );
+		const analyser = new THREE.AudioAnalyser( sound, 32 );
 
 		// get the average frequency of the sound
-		var data = analyser.getAverageFrequency();
+		const data = analyser.getAverageFrequency();
 		</code>
 
 		<h2>Examples</h2>

+ 0 - 1
docs/api/en/audio/AudioContext.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 3 - 4
docs/api/en/audio/AudioListener.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -22,14 +21,14 @@
 
 		<code>
 		// create an AudioListener and add it to the camera
-		var listener = new THREE.AudioListener();
+		const listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create a global audio source
-		var sound = new THREE.Audio( listener );
+		const sound = new THREE.Audio( listener );
 
 		// load a sound and set it as the Audio object's buffer
-		var audioLoader = new THREE.AudioLoader();
+		const audioLoader = new THREE.AudioLoader();
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setLoop(true);

+ 6 - 7
docs/api/en/audio/PositionalAudio.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -22,14 +21,14 @@
 
 		<code>
 		// create an AudioListener and add it to the camera
-		var listener = new THREE.AudioListener();
+		const listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create the PositionalAudio object (passing in the listener)
-		var sound = new THREE.PositionalAudio( listener );
+		const sound = new THREE.PositionalAudio( listener );
 
 		// load a sound and set it as the PositionalAudio object's buffer
-		var audioLoader = new THREE.AudioLoader();
+		const audioLoader = new THREE.AudioLoader();
 		audioLoader.load( 'sounds/song.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setRefDistance( 20 );
@@ -37,9 +36,9 @@
 		});
 
 		// create an object for the sound to play from
-		var sphere = new THREE.SphereBufferGeometry( 20, 32, 16 );
-		var material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
-		var mesh = new THREE.Mesh( sphere, material );
+		const sphere = new THREE.SphereBufferGeometry( 20, 32, 16 );
+		const material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
+		const mesh = new THREE.Mesh( sphere, material );
 		scene.add( mesh );
 
 		// finally add the sound to the mesh

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 6 - 13
docs/api/en/cameras/CubeCamera.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -18,24 +17,24 @@
 
 		<code>
 		// Create cube render target
-		var cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
+		const cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
 		// Create cube camera
-		var cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
+		const cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
 		scene.add( cubeCamera );
 
 		// Create car
-		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
-		var car = new Mesh( carGeometry, chromeMaterial );
+		const chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
+		const car = new Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
 		// Update the render target cube
-		car.setVisible( false );
+		car.visible = false;
 		cubeCamera.position.copy( car.position );
 		cubeCamera.update( renderer, scene );
 
 		// Render the scene
-		car.setVisible( true );
+		car.visible = true;
 		renderer.render( scene, camera );
 		</code>
 
@@ -81,12 +80,6 @@
 		Call this to update the [page:CubeCamera.renderTarget renderTarget].
 		</p>
 
-		<h3>[method:null clear]( [param:WebGLRenderer renderer], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
-		<p>
-		Call this to clear the renderTarget's color, depth, and/or stencil buffers.
-		The color buffer is set to the renderer's current clear color. Arguments default to *true*.
-		</p>
-
 		<h2>Source</h2>
 
 		<p>

+ 2 - 3
docs/api/en/cameras/OrthographicCamera.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -24,7 +23,7 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
+		const camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
 		scene.add( camera );
 		</code>
 
@@ -126,7 +125,7 @@
 		Updates the camera projection matrix. Must be called after any change of parameters.
 		</p>
 
-		<h3>[method:Object toJSON]([param:object meta])</h3>
+		<h3>[method:Object toJSON]([param:Object meta])</h3>
 		<p>
 		meta -- object containing metadata such as textures or images in objects' descendants.<br />
 		Convert the camera to three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].

+ 7 - 8
docs/api/en/cameras/PerspectiveCamera.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -22,7 +21,7 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
+		const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
 		scene.add( camera );
 		</code>
 
@@ -30,7 +29,7 @@
 
 		<p>
 			[example:webgl_animation_skinning_blending animation / skinning / blending ]<br />
-			[example:webgl_animation_skinning_morph 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 ]
@@ -160,10 +159,10 @@
 
 		then for each monitor you would call it like this:<br />
 
-		<code>var w = 1920;
-var h = 1080;
-var fullWidth = w * 3;
-var fullHeight = h * 2;
+		<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 );
@@ -187,7 +186,7 @@ camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
 		Updates the camera projection matrix. Must be called after any change of parameters.
 		</p>
 
-		<h3>[method:Object toJSON]([param:object meta])</h3>
+		<h3>[method:Object toJSON]([param:Object meta])</h3>
 		<p>
 		meta -- object containing metadata such as textures or images in objects' descendants.<br />
 		Convert the camera to three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/constants/Animation.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 1 - 2
docs/api/en/constants/Core.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -13,7 +12,7 @@
 		<h2>Revision Number</h2>
 
 		<code>
-		THREE.REV
+		THREE.REVISION
 		</code>
 
 		<div id="rev">

+ 1 - 2
docs/api/en/constants/CustomBlendingEquations.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -17,7 +16,7 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
+		const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		material.blending = THREE.CustomBlending;
 		material.blendEquation = THREE.AddEquation; //default
 		material.blendSrc = THREE.SrcAlphaFactor; //default

+ 0 - 1
docs/api/en/constants/Materials.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/constants/Renderer.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 8 - 6
docs/api/en/core/BufferGeometry.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -24,10 +23,10 @@
 
 		<h2>Code Example</h2>
 		<code>
-		var geometry = new THREE.BufferGeometry();
+		const geometry = new THREE.BufferGeometry();
 		// create a simple square shape. We duplicate the top left and bottom right
 		// vertices because each vertex needs to appear once per triangle.
-		var vertices = new Float32Array( [
+		const vertices = new Float32Array( [
 			-1.0, -1.0,  1.0,
 			 1.0, -1.0,  1.0,
 			 1.0,  1.0,  1.0,
@@ -39,8 +38,8 @@
 
 		// itemSize = 3 because there are 3 values (components) per vertex
 		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
-		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
-		var mesh = new THREE.Mesh( geometry, material );
+		const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		const mesh = new THREE.Mesh( geometry, material );
 		</code>
 
 		<h2>Examples</h2>
@@ -234,6 +233,9 @@
 		<h3>[method:BufferAttribute getIndex] ()</h3>
 		<p>Return the [page:.index] buffer.</p>
 
+		<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
+		<p>Returns *true* if the attribute with the specified name exists.</p>
+
 		<h3>[method:BufferGeometry lookAt] ( [param:Vector3 vector] )</h3>
 		<p>
 		vector - A world vector to look at.<br /><br />
@@ -278,7 +280,7 @@
 		Use [page:Object3D.scale] for typical real-time mesh scaling.
 		</p>
 
-		<h3>[method:null setIndex] ( [param:BufferAttribute index] )</h3>
+		<h3>[method:BufferGeometry setIndex] ( [param:BufferAttribute index] )</h3>
 		<p>Set the [page:.index] buffer.</p>
 
 		<h3>[method:null setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>

+ 0 - 1
docs/api/en/core/Clock.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/core/DirectGeometry.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 7 - 12
docs/api/en/core/EventDispatcher.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -20,27 +19,23 @@
 		<code>
 		// Adding events to a custom object
 
-		var Car = function () {
+		class Car extends EventDispatcher {
 
-		    this.start = function () {
+			start() {
 
-		        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+				this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
 
-		    };
+			}
 
 		};
 
-		// Mixing the EventDispatcher.prototype with the custom object prototype
-
-		Object.assign( Car.prototype, EventDispatcher.prototype );
-
 		// Using events with the custom object
 
-		var car = new Car();
+		const car = new Car();
 
 		car.addEventListener( 'start', function ( event ) {
 
-		    alert( event.message );
+			alert( event.message );
 
 		} );
 
@@ -84,7 +79,7 @@
 		Removes a listener from an event type.
 		</p>
 
-		<h3>[method:null dispatchEvent]( [param:object event] )</h3>
+		<h3>[method:null dispatchEvent]( [param:Object event] )</h3>
 		<p>
 		event - The event that gets fired.
 		</p>

+ 6 - 7
docs/api/en/core/Face3.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -19,19 +18,19 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
+		const material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
 
 		//create a triangular geometry
-		var geometry = new THREE.Geometry();
+		const geometry = new THREE.Geometry();
 		geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
 		geometry.vertices.push( new THREE.Vector3(  50, -50, 0 ) );
 		geometry.vertices.push( new THREE.Vector3(  50,  50, 0 ) );
 
 		//create a new face using vertices 0, 1, 2
-		var normal = new THREE.Vector3( 0, 0, 1 ); //optional
-		var color = new THREE.Color( 0xffaa00 ); //optional
-		var materialIndex = 0; //optional
-		var face = new THREE.Face3( 0, 1, 2, normal, color, materialIndex );
+		const normal = new THREE.Vector3( 0, 0, 1 ); //optional
+		const color = new THREE.Color( 0xffaa00 ); //optional
+		const materialIndex = 0; //optional
+		const face = new THREE.Face3( 0, 1, 2, normal, color, materialIndex );
 
 		//add the face to the geometry's faces array
 		geometry.faces.push( face );

+ 116 - 0
docs/api/en/core/GLBufferAttribute.html

@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+			This buffer attribute class does not construct a VBO. Instead, it uses
+			whatever VBO is passed in constructor and can later be altered via the
+			*buffer* property.<br /><br />
+			It is required to pass additional params alongside the VBO. Those are:
+			the GL context, the GL data type, the number of components per vertex,
+			the number of bytes per component, and the number of vertices.<br /><br />
+			The most common use case for this class is when some kind of GPGPU
+			calculation interferes or even produces the VBOs in question.
+		</p>
+
+		<h2>Constructor</h2>
+		<h3>[name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )</h3>
+		<p>
+		*buffer* — Must be a <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer" target="_blank">WebGLBuffer</a>.
+		<br />
+		*type* — One of <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types" target="_blank">WebGL Data Types</a>.
+		<br />
+		*itemSize* — The number of values of the array that should be associated with
+		a particular vertex. For instance, if this
+		attribute is storing a 3-component vector (such as a position, normal, or color), then itemSize should be 3.
+		<br />
+		*elementSize* — 1, 2 or 4. The corresponding size (in bytes) for the given "type" param.
+		<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>
+		*count* — The expected number of vertices in VBO.
+		</p>
+
+		<h2>Properties</h2>
+
+		<h3>[property:WebGLBuffer buffer]</h3>
+		<p>
+			The current <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer" target="_blank">WebGLBuffer</a> instance.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The expected number of vertices in VBO.
+		</p>
+
+		<h3>[property:Integer itemSize]</h3>
+		<p>
+			How many values make up each item (vertex).
+		</p>
+
+		<h3>[property:Integer elementSize]</h3>
+		<p>
+			Stores the corresponding size in bytes for the current *type* property value.
+		</p>
+		<p>
+			See above (constructor) for a list of known type sizes.
+		</p>
+
+		<h3>[property:GLenum type]</h3>
+		<p>
+			A <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types" target="_blank">WebGL Data Type</a>
+			describing the underlying VBO contents.
+		</p>
+		<p>
+			Set this property together with *elementSize*. The recommended way is
+			using the *setType* method.
+		</p>
+
+		<h3>[property:Boolean isGLBufferAttribute]</h3>
+		<p>
+			Read-only. Always *true*.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null setBuffer]( buffer ) </h3>
+		<p>Sets the *buffer* property.</p>
+
+		<h3>[method:null setType]( type, elementSize ) </h3>
+		<p>Sets the both *type* and *elementSize* properties.</p>
+
+		<h3>[method:null setItemSize]( itemSize ) </h3>
+		<p>Sets the *itemSize* property.</p>
+
+		<h3>[method:null setCount]( count ) </h3>
+		<p>Sets the *count* property.</p>
+
+		<h3>[property:Integer version]</h3>
+		<p>
+		A version number, incremented every time the needsUpdate property is set to true.
+		</p>
+
+		<h3>[property:Boolean needsUpdate]</h3>
+		<p>
+		Default is *false*. Setting this to true increments [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>

+ 3 - 4
docs/api/en/core/Geometry.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -24,7 +23,7 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var geometry = new THREE.Geometry();
+		const geometry = new THREE.Geometry();
 
 		geometry.vertices.push(
 			new THREE.Vector3( -10,  10, 0 ),
@@ -95,14 +94,14 @@
 		<h3>[property:Array faceVertexUvs]</h3>
 		<p>
 		Array of face [link:https://en.wikipedia.org/wiki/UV_mapping UV] layers, used for mapping textures onto the geometry.<br />
-		Each UV layer is an array of [page:UV]s matching the order and number of vertices in faces.<br /><br />
+		Each UV layer is an array of [page:Vector2]s matching the order and number of vertices in faces.<br /><br />
 		To signal an update in this array, [page:Geometry Geometry.uvsNeedUpdate] needs to be set to true.
 		</p>
 
 		<h3>[property:Integer id]</h3>
 		<p>Unique number for this geometry instance.</p>
 
-		<h3>[property:array lineDistances]</h3>
+		<h3>[property:Array lineDistances]</h3>
 		<p>
 		An array containing distances between vertices for Line geometries.
 		This is required for [page:LineDashedMaterial] to render correctly.

+ 1 - 2
docs/api/en/core/InstancedBufferAttribute.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -26,7 +25,7 @@
 
 		<h3>[property:Number meshPerAttribute]</h3>
 		<p>
-			Default is *1*.
+			Defines how often a value of this buffer attribute should be repeated. A value of one means that each value of the instanced attribute is used for a single instance. A value of two means that each value is used for two consecutive instances (and so on). Default is *1*.
 		</p>
 
 		<h2>Methods</h2>

+ 0 - 1
docs/api/en/core/InstancedBufferGeometry.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/core/InstancedInterleavedBuffer.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/core/InterleavedBuffer.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/core/InterleavedBufferAttribute.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/core/Layers.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 19 - 9
docs/api/en/core/Object3D.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -30,6 +29,9 @@
 
 		<h2>Properties</h2>
 
+		<h3>[property:AnimationClip animations]</h3>
+		<p>Array with object's animation clips.</p>
+
 		<h3>[property:Boolean castShadow]</h3>
 		<p>Whether the object gets rendered into shadow map. Default is *false*.</p>
 
@@ -286,9 +288,9 @@
 
 		<h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3>
 		<p>
-		vector - A vector representing a position in local (object) space.<br /><br />
+		vector - A vector representing a position in this object's local space.<br /><br />
 
-		Converts the vector from local space to world space.
+		Converts the vector from this object's local space to world space.
 		</p>
 
 		<h3>[method:null lookAt]( [param:Vector3 vector] )<br />
@@ -314,6 +316,11 @@
 		Removes *object* as child of this object. An arbitrary number of objects may be removed.
 		</p>
 
+		<h3>[method:this clear]()</h3>
+		<p>
+		Removes all child objects.
+		</p>
+
 		<h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3>
 		<p>
 		axis -- A normalized vector in object space. <br />
@@ -386,7 +393,7 @@
 			Copy the given quaternion into [page:.quaternion].
 		</p>
 
-		<h3>[method:Object toJSON]( [param:object meta] )</h3>
+		<h3>[method:Object toJSON]( [param:Object meta] )</h3>
 		<p>
 		meta -- object containing metadata such as materials, textures or images for the object.<br />
 		Convert the object to three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
@@ -413,7 +420,8 @@
 		<p>
 		callback - A function with as first argument an object3D object.<br /><br />
 
-		Executes the callback on this object and all descendants.
+		Executes the callback on this object and all descendants.<br/>
+		Note: Modifying the scene graph inside the callback is discouraged.
 		</p>
 
 		<h3>[method:null traverseVisible]( [param:Function callback] )</h3>
@@ -421,14 +429,16 @@
 		callback - A function with as first argument an object3D object.<br /><br />
 
 		Like traverse, but the callback will only be executed for visible objects.
-		Descendants of invisible objects are not traversed.
+		Descendants of invisible objects are not traversed.<br/>
+		Note: Modifying the scene graph inside the callback is discouraged.
 		</p>
 
 		<h3>[method:null traverseAncestors]( [param:Function callback] )</h3>
 		<p>
 		callback - A function with as first argument an object3D object.<br /><br />
 
-		Executes the callback on all ancestors.
+		Executes the callback on all ancestors.<br/>
+		Note: Modifying the scene graph inside the callback is discouraged.
 		</p>
 
 		<h3>[method:null updateMatrix]()</h3>
@@ -447,9 +457,9 @@
 
 		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
 		<p>
-		vector - A world vector.<br /><br />
+		vector - A vector representing a position in world space.<br /><br />
 
-		Updates the vector from world space to local space.
+		Converts the vector from world space to this object's local space.
 		</p>
 
 		<h2>Source</h2>

+ 6 - 7
docs/api/en/core/Raycaster.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -18,8 +17,8 @@
 
 		<h2>Code Example</h2>
 		<code>
-		var raycaster = new THREE.Raycaster();
-		var mouse = new THREE.Vector2();
+		const raycaster = new THREE.Raycaster();
+		const mouse = new THREE.Vector2();
 
 		function onMouseMove( event ) {
 
@@ -37,9 +36,9 @@
 			raycaster.setFromCamera( mouse, camera );
 
 			// calculate objects intersecting the picking ray
-			var intersects = raycaster.intersectObjects( scene.children );
+			const intersects = raycaster.intersectObjects( scene.children );
 
-			for ( var i = 0; i < intersects.length; i++ ) {
+			for ( let i = 0; i < intersects.length; i ++ ) {
 
 				intersects[ i ].object.material.color.set( 0xff0000 );
 
@@ -85,13 +84,13 @@
 
 		<h2>Properties</h2>
 
-		<h3>[property:float far]</h3>
+		<h3>[property:Float far]</h3>
 		<p>
 		The far factor of the raycaster. This value indicates which objects can be discarded based on the distance.
 		This value shouldn't be negative and should be larger than the near property.
 		</p>
 
-		<h3>[property:float near]</h3>
+		<h3>[property:Float near]</h3>
 		<p>
 		The near factor of the raycaster. This value indicates which objects can be discarded based on the distance.
 		This value shouldn't be negative and should be smaller than the far property.

+ 2 - 3
docs/api/en/core/Uniform.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -218,11 +217,11 @@
 			It's also possible to manage *structs* in arrays. The syntax for this use case looks like so:
 		</p>
 		<code>
-		var entry1 = {
+		const entry1 = {
 			position: new Vector3(),
 			direction: new Vector3( 0, 0, 1 )
 		};
-		var entry2 = {
+		const entry2 = {
 			position: new Vector3( 1, 1, 1 ),
 			direction: new Vector3( 0, 1, 0 )
 		};

+ 2 - 2
docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -20,6 +19,7 @@
 		<code>
 		THREE.Float64BufferAttribute
 		THREE.Float32BufferAttribute
+		THREE.Float16BufferAttribute
 		THREE.Uint32BufferAttribute
 		THREE.Int32BufferAttribute
 		THREE.Uint16BufferAttribute
@@ -60,6 +60,6 @@
 
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
-		</p>	
+		</p>
 	</body>
 </html>

+ 31 - 0
docs/api/en/extras/DataUtils.html

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<p class="desc">
+		A class containing utility functions for data.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Number toHalfFloat]( [param:Number val] )</h3>
+		<p>
+		val -- A single precision floating point value.<br /><br />
+
+		Returns a half precision floating point value represented as an uint16 value.
+		</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/extras/Earcut.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/extras/ImageUtils.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/extras/PMREMGenerator.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/extras/ShapeUtils.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 0 - 1
docs/api/en/extras/core/Curve.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 6 - 11
docs/api/en/extras/core/CurvePath.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -17,29 +16,22 @@
 		but retains the api of a curve.
 		</p>
 
-
 		<h2>Constructor</h2>
 
-
 		<h3>[name]()</h3>
 		<p>
 		The constructor take no parameters.
 		</p>
 
-
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:array curves]</h3>
+		<h3>[property:Array curves]</h3>
 		<p>The array of [page:Curve Curves].</p>
 
-		<h3>[property:boolean autoClose]</h3>
+		<h3>[property:Boolean autoClose]</h3>
 		<p>Whether or not to automatically close the path.</p>
 
-
-
-
-
 		<h2>Methods</h2>
 		<p>See the base [page:Curve] class for common methods.</p>
 
@@ -63,7 +55,10 @@
 		<p>
 			divisions -- number of pieces to divide the curve into. Default is *12*.<br /><br />
 
-			Returns a set of divisions + 1 points using getPoint( t ).
+			Returns an array of points representing a sequence of curves. The *division* parameter defines
+			the number of pieces each curve is divided into. However, for optimization and quality purposes,
+			the actual sampling resolution for each curve depends on its type. For example, for a [page:LineCurve],
+			the returned number of points is always just 2.
 		</p>
 
 		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -34,7 +33,7 @@
 
 		<h2>Properties</h2>
 
-		<h3>[property:array data]</h3>
+		<h3>[property:Array data]</h3>
 		<p>The JSON data passed in the constructor.</p>
 
 		<h2>Methods</h2>

+ 0 - 1
docs/api/en/extras/core/Interpolations.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 6 - 7
docs/api/en/extras/core/Path.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -19,18 +18,18 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var path = new THREE.Path();
+		const path = new THREE.Path();
 
 		path.lineTo( 0, 0.8 );
 		path.quadraticCurveTo( 0, 1, 0.2, 1 );
 		path.lineTo( 1, 1 );
 
-		var points = path.getPoints();
+		const points = path.getPoints();
 
-		var geometry = new THREE.BufferGeometry().setFromPoints( points );
-		var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
+		const material = new THREE.LineBasicMaterial( { color: 0xffffff } );
 
-		var line = new THREE.Line( geometry, material );
+		const line = new THREE.Line( geometry, material );
 		scene.add( line );
 		</code>
 
@@ -53,7 +52,7 @@
 		<h2>Properties</h2>
 		<p>See the base [page:CurvePath] class for common properties.</p>
 
-		<h3>[property:array currentPoint]</h3>
+		<h3>[property:Array currentPoint]</h3>
 		<p>The current offset of the path. Any new [page:Curve] added will start here.</p>
 
 

+ 5 - 6
docs/api/en/extras/core/Shape.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -20,7 +19,7 @@
 		<h2>Code Example</h2>
 
 		<code>
-		var heartShape = new THREE.Shape();
+		const heartShape = new THREE.Shape();
 
 		heartShape.moveTo( 25, 25 );
 		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
@@ -30,11 +29,11 @@
 		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
 		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
 
-		var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+		const extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
 
-		var geometry = new THREE.ExtrudeBufferGeometry( heartShape, extrudeSettings );
+		const geometry = new THREE.ExtrudeBufferGeometry( heartShape, extrudeSettings );
 
-		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
+		const mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
 		</code>
 
 		<h2>Examples</h2>
@@ -69,7 +68,7 @@
 		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this instance. This gets automatically assigned, so this shouldn't be edited.
 		</p>
 
-		<h3>[property:array holes]</h3>
+		<h3>[property:Array holes]</h3>
 		<p>An array of [page:Path paths] that define the holes in the shape.</p>
 
 		<h2>Methods</h2>

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

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -33,12 +32,12 @@
 
 		<h2>Properties</h2>
 
-		<h3>[property:array subPaths]</h3>
+		<h3>[property:Array subPaths]</h3>
 		<p>
 		Array of [page:Path]s.
 		</p>
 
-		<h3>[property:array currentPath]</h3>
+		<h3>[property:Array currentPath]</h3>
 		<p>
 		The current [page:Path] that is being generated.
 		</p>

+ 0 - 1
docs/api/en/extras/curves/ArcCurve.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>

+ 6 - 7
docs/api/en/extras/curves/CatmullRomCurve3.html

@@ -3,7 +3,6 @@
 	<head>
 		<meta charset="utf-8" />
 		<base href="../../../../" />
-		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
@@ -19,7 +18,7 @@
 
 		<code>
 		//Create a closed wavey loop
-		var curve = new THREE.CatmullRomCurve3( [
+		const curve = new THREE.CatmullRomCurve3( [
 			new THREE.Vector3( -10, 0, 10 ),
 			new THREE.Vector3( -5, 5, 5 ),
 			new THREE.Vector3( 0, 0, 0 ),
@@ -27,13 +26,13 @@
 			new THREE.Vector3( 10, 0, 10 )
 		] );
 
-		var points = curve.getPoints( 50 );
-		var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		const points = curve.getPoints( 50 );
+		const geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		const material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 		// Create the final object to add to the scene
-		var curveObject = new THREE.Line( geometry, material );
+		const curveObject = new THREE.Line( geometry, material );
 		</code>
 
 		<h2>Examples</h2>
@@ -65,7 +64,7 @@
 		<h3>[property:String curveType]</h3>
 		<p>Possible values are *centripetal*, *chordal* and *catmullrom*.</p>
 
-		<h3>[property:float tension]</h3>
+		<h3>[property:Float tension]</h3>
 		<p>When [page:.curveType] is *catmullrom*, defines catmullrom's tension.</p>
 
 

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно