Import Cobalt 4.11837
diff --git a/src/base/platform_file_starboard.cc b/src/base/platform_file_starboard.cc
index c28fd65..cc116c6 100644
--- a/src/base/platform_file_starboard.cc
+++ b/src/base/platform_file_starboard.cc
@@ -161,21 +161,7 @@
int ReadPlatformFileAtCurrentPos(PlatformFile file, char *data, int size) {
base::ThreadRestrictions::AssertIOAllowed();
- if (file < 0 || size < 0)
- return -1;
-
- int bytes_read = 0;
- int rv;
- do {
- rv = SbFileRead(file, data, size);
- if (rv <= 0) {
- break;
- }
-
- bytes_read += rv;
- } while (bytes_read < size);
-
- return bytes_read ? bytes_read : rv;
+ return SbFileReadAll(file, data, size);
}
int ReadPlatformFileNoBestEffort(PlatformFile file,
@@ -251,22 +237,7 @@
const char* data,
int size) {
base::ThreadRestrictions::AssertIOAllowed();
- if (size < 0) {
- return -1;
- }
-
- int bytes_written = 0;
- int result;
- do {
- result = SbFileWrite(file, data, size);
- if (result <= 0) {
- break;
- }
-
- bytes_written += result;
- } while (bytes_written < size);
-
- return bytes_written ? bytes_written : result;
+ return SbFileWriteAll(file, data, size);
}
int WritePlatformFileCurPosNoBestEffort(PlatformFile file,
diff --git a/src/cobalt/base/tokens.h b/src/cobalt/base/tokens.h
index b2e24cd..cae31dd 100644
--- a/src/cobalt/base/tokens.h
+++ b/src/cobalt/base/tokens.h
@@ -83,6 +83,7 @@
MacroOpWithNameAndValue(class_selector_prefix, ".") \
MacroOpWithNameAndValue(comment_node_name, "#comment") \
MacroOpWithNameAndValue(document_name, "#document") \
+ MacroOpWithNameAndValue(domcontentloaded, "DOMContentLoaded") \
MacroOpWithNameAndValue(empty_pseudo_class_selector, "empty") \
MacroOpWithNameAndValue(focus_pseudo_class_selector, "focus") \
MacroOpWithNameAndValue(hover_pseudo_class_selector, "hover") \
diff --git a/src/cobalt/bindings/generated/mozjs/testing/MozjsSingleOperationInterface.cc b/src/cobalt/bindings/generated/mozjs/testing/MozjsSingleOperationInterface.cc
index aaf933d..2bd13c6 100644
--- a/src/cobalt/bindings/generated/mozjs/testing/MozjsSingleOperationInterface.cc
+++ b/src/cobalt/bindings/generated/mozjs/testing/MozjsSingleOperationInterface.cc
@@ -58,13 +58,13 @@
bool* had_exception) const {
bool success = false;
base::optional<int32_t > cobalt_return_value;
+ JSAutoRequest auto_request(context_);
JSExceptionState* previous_exception_state = JS_SaveExceptionState(context_);
// This could be set to NULL if it was garbage collected.
JS::RootedObject implementing_object(context_, implementing_object_.Get());
DLOG_IF(WARNING, !implementing_object) << "Implementing object is NULL.";
if (implementing_object) {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, implementing_object);
// Get callable object.
diff --git a/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template b/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template
index f307bbc..115f228 100644
--- a/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template
+++ b/src/cobalt/bindings/mozjs/templates/callback-interface.cc.template
@@ -56,13 +56,13 @@
{% if overload.type != 'void' %}
{{overload.type}} cobalt_return_value;
{% endif %}
+ JSAutoRequest auto_request(context_);
JSExceptionState* previous_exception_state = JS_SaveExceptionState(context_);
// This could be set to NULL if it was garbage collected.
JS::RootedObject implementing_object(context_, implementing_object_.Get());
DLOG_IF(WARNING, !implementing_object) << "Implementing object is NULL.";
if (implementing_object) {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, implementing_object);
// Get callable object.
diff --git a/src/cobalt/bindings/testing/global_interface_bindings_test.cc b/src/cobalt/bindings/testing/global_interface_bindings_test.cc
index 5f8b90c..5f50d61 100644
--- a/src/cobalt/bindings/testing/global_interface_bindings_test.cc
+++ b/src/cobalt/bindings/testing/global_interface_bindings_test.cc
@@ -38,7 +38,9 @@
} // namespace
TEST_F(GlobalInterfaceBindingsTest, GlobalWindowIsThis) {
- EXPECT_TRUE(EvaluateScript("window === this;", NULL));
+ std::string result;
+ EXPECT_TRUE(EvaluateScript("window === this;", &result));
+ EXPECT_STREQ("true", result.c_str());
}
TEST_F(GlobalInterfaceBindingsTest, GlobalOperation) {
diff --git a/src/cobalt/browser/cobalt.gyp b/src/cobalt/browser/cobalt.gyp
index 4f73099..f5bcfe9 100644
--- a/src/cobalt/browser/cobalt.gyp
+++ b/src/cobalt/browser/cobalt.gyp
@@ -94,4 +94,17 @@
},
],
+ 'conditions': [
+ ['final_executable_type == "shared_library"', {
+ 'targets': [
+ {
+ 'target_name': 'cobalt_bin',
+ 'type': 'executable',
+ 'dependencies': [
+ 'cobalt',
+ ],
+ },
+ ],
+ }],
+ ],
}
diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index deb3c7d..70cae86 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-11565
\ No newline at end of file
+11837
\ No newline at end of file
diff --git a/src/cobalt/build/config/base.gypi b/src/cobalt/build/config/base.gypi
index 7170bcb..02d4c04 100644
--- a/src/cobalt/build/config/base.gypi
+++ b/src/cobalt/build/config/base.gypi
@@ -128,6 +128,7 @@
# - scratch_surface_cache_size_in_bytes
# - surface_cache_size_in_bytes
# - image_cache_size_in_bytes
+ # - skia_glyph_atlas_width * skia_glyph_atlas_height
#
# The other caches affect CPU memory usage.
@@ -168,6 +169,15 @@
# image_cache_capacity_multiplier_when_playing_video.
'image_cache_capacity_multiplier_when_playing_video%': '1.0f',
+ # Determines the size in pixels of the glyph atlas where rendered glyphs are
+ # cached. The resulting memory usage is 2 bytes of GPU memory per pixel.
+ # When a value is used that is too small, thrashing may occur that will
+ # result in visible stutter. Such thrashing is more likely to occur when CJK
+ # language glyphs are rendered and when the size of the glyphs in pixels is
+ # larger, such as for higher resolution displays.
+ 'skia_glyph_atlas_width%': '2048',
+ 'skia_glyph_atlas_height%': '2048',
+
# Compiler configuration.
# The following variables are used to specify compiler and linker
@@ -268,13 +278,25 @@
'include_dirs': [ '<(DEPTH)' ],
'libraries': [ '<@(platform_libraries)' ],
- # TODO: This is needed to support the option to include
- # posix_emulation.h to all compiled source files. This dependency should
- # be refactored and removed.
- 'include_dirs_target': [
- '<(DEPTH)/lbshell/src',
- ],
'conditions': [
+ ['final_executable_type=="shared_library"', {
+ 'target_conditions': [
+ ['_toolset=="target"', {
+ 'defines': [
+ # Rewrite main() functions into StarboardMain. TODO: This is a
+ # hack, it would be better to be more surgical, here.
+ 'main=StarboardMain',
+ ],
+ 'cflags': [
+ # To link into a shared library on Linux and similar platforms,
+ # the compiler must be told to generate Position Independent Code.
+ # This appears to cause errors when linking the code statically,
+ # however.
+ '-fPIC',
+ ],
+ }],
+ ],
+ }],
['posix_emulation_target_type == "shared_library"', {
'defines': [
'__LB_BASE_SHARED__=1',
@@ -294,6 +316,10 @@
'<(DEPTH)/lbshell/src/platform/<(target_arch)/posix_emulation/lb_shell',
# headers that we don't need, but should exist somewhere in the path:
'<(DEPTH)/lbshell/src/platform/<(target_arch)/posix_emulation/place_holders',
+ # TODO: This is needed to support the option to include
+ # posix_emulation.h to all compiled source files. This dependency
+ # should be refactored and removed.
+ '<(DEPTH)/lbshell/src',
],
}], # OS == "lb_shell"
['OS == "starboard"', {
diff --git a/src/cobalt/dom/event_target.cc b/src/cobalt/dom/event_target.cc
index 87553ff..39175e3 100644
--- a/src/cobalt/dom/event_target.cc
+++ b/src/cobalt/dom/event_target.cc
@@ -107,6 +107,9 @@
void EventTarget::PostToDispatchEventAndRunCallback(
const tracked_objects::Location& location, base::Token event_name,
const base::Closure& callback) {
+ if (!MessageLoop::current()) {
+ return;
+ }
MessageLoop::current()->PostTask(
location,
base::Bind(base::IgnoreResult(&EventTarget::DispatchEventAndRunCallback),
diff --git a/src/cobalt/dom/event_target.h b/src/cobalt/dom/event_target.h
index 462d7a6..3fc4df9 100644
--- a/src/cobalt/dom/event_target.h
+++ b/src/cobalt/dom/event_target.h
@@ -68,12 +68,14 @@
void DispatchEventAndRunCallback(base::Token event_name,
const base::Closure& dispatched_callback);
- // Posts a task on the current message loop to dispatch event.
+ // Posts a task on the current message loop to dispatch event. It does nothing
+ // if there is no current message loop.
void PostToDispatchEvent(const tracked_objects::Location& location,
base::Token event_name);
// Posts a task on the current message loop to dispatch event, and runs
- // dispatched_callback after finish.
+ // dispatched_callback after finish. It does nothing if there is no current
+ // message loop.
void PostToDispatchEventAndRunCallback(
const tracked_objects::Location& location, base::Token event_name,
const base::Closure& dispatched_callback);
diff --git a/src/cobalt/dom/media_error.h b/src/cobalt/dom/media_error.h
index 339c386..124b437 100644
--- a/src/cobalt/dom/media_error.h
+++ b/src/cobalt/dom/media_error.h
@@ -44,7 +44,7 @@
// Web API: MediaError
//
- Code code() const { return code_; }
+ uint32 code() const { return code_; }
DEFINE_WRAPPABLE_TYPE(MediaError);
diff --git a/src/cobalt/dom_parser/libxml_html_parser_wrapper.cc b/src/cobalt/dom_parser/libxml_html_parser_wrapper.cc
index e65ef8f..75e760b 100644
--- a/src/cobalt/dom_parser/libxml_html_parser_wrapper.cc
+++ b/src/cobalt/dom_parser/libxml_html_parser_wrapper.cc
@@ -110,9 +110,7 @@
return;
}
- if (!IsStringUTF8(std::string(data, size))) {
- static const char* kWarningNotUTF8 = "Ignoring non-UTF8 HTML input.";
- OnParsingIssue(kWarning, kWarningNotUTF8);
+ if (CheckInputAndUpdateSeverity(data, size) >= kError) {
return;
}
@@ -127,7 +125,7 @@
NULL /*filename*/, XML_CHAR_ENCODING_UTF8);
if (!html_parser_context_) {
- static const char* kErrorUnableCreateParser =
+ static const char kErrorUnableCreateParser[] =
"Unable to create the libxml2 parser.";
OnParsingIssue(kFatal, kErrorUnableCreateParser);
} else {
@@ -149,12 +147,8 @@
}
if (html_parser_context_) {
- // TODO: The check on issue level is a workaround for the fact that libxml
- // doesn't recover fully from error related to encoding.
- if (issue_level() <= kWarning) {
- htmlParseChunk(html_parser_context_, NULL, 0,
- 1 /*terminate*/); // Triggers EndDocument
- }
+ htmlParseChunk(html_parser_context_, NULL, 0,
+ 1 /*terminate*/); // Triggers EndDocument
if (IsFullDocument()) {
document()->DecreaseLoadingCounterAndMaybeDispatchLoadEvent();
}
diff --git a/src/cobalt/dom_parser/libxml_parser_wrapper.cc b/src/cobalt/dom_parser/libxml_parser_wrapper.cc
index 3acaf88..67521c2 100644
--- a/src/cobalt/dom_parser/libxml_parser_wrapper.cc
+++ b/src/cobalt/dom_parser/libxml_parser_wrapper.cc
@@ -19,6 +19,7 @@
#include "base/logging.h"
#include "base/string_util.h"
#include "base/stringprintf.h"
+#include "cobalt/base/tokens.h"
#include "cobalt/dom/cdata_section.h"
#include "cobalt/dom/comment.h"
#include "cobalt/dom/element.h"
@@ -150,6 +151,10 @@
if (!node_stack_.empty() && !error_callback_.is_null()) {
error_callback_.Run("Node stack not empty at end of document.");
}
+
+ if (IsFullDocument()) {
+ document_->PostToDispatchEvent(FROM_HERE, base::Tokens::domcontentloaded());
+ }
}
void LibxmlParserWrapper::OnStartElement(
@@ -214,8 +219,8 @@
void LibxmlParserWrapper::OnParsingIssue(IssueSeverity severity,
const std::string& message) {
- if (severity > issue_level_) {
- issue_level_ = severity;
+ if (severity > max_severity_) {
+ max_severity_ = severity;
}
if (severity < LibxmlParserWrapper::kFatal) {
LOG(WARNING) << message;
@@ -230,5 +235,31 @@
node_stack_.top()->AppendChild(new dom::CDATASection(document_, value));
}
+LibxmlParserWrapper::IssueSeverity
+LibxmlParserWrapper::CheckInputAndUpdateSeverity(const char* data,
+ size_t size) {
+ if (max_severity_ >= kError) {
+ return max_severity_;
+ }
+
+ // Check the total input size.
+ total_input_size_ += size;
+ if (total_input_size_ > kMaxTotalInputSize) {
+ static const char kErrorTooLong[] = "Parser input is too long.";
+ OnParsingIssue(kError, kErrorTooLong);
+ return max_severity_;
+ }
+
+ // Check the encoding of the input.
+ if (!IsStringUTF8(std::string(data, size))) {
+ static const char kErrorNotUTF8[] =
+ "Parser input contains non-UTF8 characters.";
+ OnParsingIssue(kError, kErrorNotUTF8);
+ return max_severity_;
+ }
+
+ return max_severity_;
+}
+
} // namespace dom_parser
} // namespace cobalt
diff --git a/src/cobalt/dom_parser/libxml_parser_wrapper.h b/src/cobalt/dom_parser/libxml_parser_wrapper.h
index 61f3d04..bbeb21a 100644
--- a/src/cobalt/dom_parser/libxml_parser_wrapper.h
+++ b/src/cobalt/dom_parser/libxml_parser_wrapper.h
@@ -92,7 +92,8 @@
first_chunk_location_(first_chunk_location),
error_callback_(error_callback),
depth_limit_exceeded_(false),
- issue_level_(kNoIssue) {}
+ max_severity_(kNoIssue),
+ total_input_size_(0) {}
virtual ~LibxmlParserWrapper() {}
// These functions are for Libxml interface, calls are forwarded here by
@@ -120,6 +121,9 @@
// Returns true when the input is a full document, false when it's a fragment.
bool IsFullDocument() { return document_ == parent_node_; }
+ // Checks the input, updates and returns the maximum issue severity.
+ IssueSeverity CheckInputAndUpdateSeverity(const char* data, size_t size);
+
const scoped_refptr<dom::Document>& document() { return document_; }
const base::SourceLocation& first_chunk_location() {
return first_chunk_location_;
@@ -128,13 +132,14 @@
return error_callback_;
}
- IssueSeverity issue_level() const { return issue_level_; }
-
const std::stack<scoped_refptr<dom::Node> >& node_stack() {
return node_stack_;
}
private:
+ // Maximum total input size, 1MB.
+ static const size_t kMaxTotalInputSize = 1 * 1024 * 1024;
+
const scoped_refptr<dom::Document> document_;
const scoped_refptr<dom::Node> parent_node_;
const scoped_refptr<dom::Node> reference_node_;
@@ -145,7 +150,8 @@
const base::Callback<void(const std::string&)> error_callback_;
bool depth_limit_exceeded_;
- IssueSeverity issue_level_;
+ IssueSeverity max_severity_;
+ size_t total_input_size_;
std::stack<scoped_refptr<dom::Node> > node_stack_;
diff --git a/src/cobalt/dom_parser/libxml_xml_parser_wrapper.cc b/src/cobalt/dom_parser/libxml_xml_parser_wrapper.cc
index edab9f0..c933f5e 100644
--- a/src/cobalt/dom_parser/libxml_xml_parser_wrapper.cc
+++ b/src/cobalt/dom_parser/libxml_xml_parser_wrapper.cc
@@ -79,9 +79,7 @@
return;
}
- if (!IsStringUTF8(std::string(data, size))) {
- static const char* kWarningNotUTF8 = "Ignoring non-UTF8 XML input.";
- OnParsingIssue(kWarning, kWarningNotUTF8);
+ if (CheckInputAndUpdateSeverity(data, size) >= kError) {
return;
}
diff --git a/src/cobalt/layout/render_tree_animations.h b/src/cobalt/layout/render_tree_animations.h
index 0c8a862..e2087ab 100644
--- a/src/cobalt/layout/render_tree_animations.h
+++ b/src/cobalt/layout/render_tree_animations.h
@@ -93,11 +93,13 @@
populate_base_style_function.Run(css_computed_style_declaration.data(),
base_style);
+ web_animations::BakedAnimationSet baked_animation_set(
+ *css_computed_style_declaration.animations());
+
node_animation_map_builder->Add(
target_node, base::Bind(&ApplyAnimation<T>, apply_style_function,
- web_animations::BakedAnimationSet(
- *css_computed_style_declaration.animations()),
- base_style));
+ baked_animation_set, base_style),
+ baked_animation_set.end_time());
}
} // namespace layout
diff --git a/src/cobalt/layout_tests/layout_benchmarks.cc b/src/cobalt/layout_tests/layout_benchmarks.cc
index 164741c..bace1ed 100644
--- a/src/cobalt/layout_tests/layout_benchmarks.cc
+++ b/src/cobalt/layout_tests/layout_benchmarks.cc
@@ -45,14 +45,18 @@
RendererBenchmarkRunner()
: done_gathering_samples_(true, false),
system_window_(system_window::CreateSystemWindow(
- &event_dispatcher_, math::Size(kViewportWidth, kViewportHeight))),
- renderer_module_(system_window_.get(),
- renderer::RendererModule::Options()) {}
+ &event_dispatcher_, math::Size(kViewportWidth, kViewportHeight))) {
+ // Since we'd like to measure the renderer, we force it to rasterize each
+ // frame despite the fact that the render tree may not be changing.
+ renderer::RendererModule::Options renderer_options;
+ renderer_options.submit_even_if_render_tree_is_unchanged = true;
+ renderer_module_.emplace(system_window_.get(), renderer_options);
+ }
// Return the resource provider from the internal renderer so that it can
// be used during layout.
render_tree::ResourceProvider* GetResourceProvider() {
- return renderer_module_.pipeline()->GetResourceProvider();
+ return renderer_module_->pipeline()->GetResourceProvider();
}
// Run the renderer benchmarks and perform the measurements.
@@ -67,11 +71,11 @@
submission_with_callback.on_rasterized_callback = base::Bind(
&RendererBenchmarkRunner::OnSubmitComplete, base::Unretained(this));
- renderer_module_.pipeline()->Submit(submission_with_callback);
+ renderer_module_->pipeline()->Submit(submission_with_callback);
done_gathering_samples_.Wait();
- renderer_module_.pipeline()->Clear();
+ renderer_module_->pipeline()->Clear();
}
private:
@@ -93,7 +97,7 @@
base::EventDispatcher event_dispatcher_;
scoped_ptr<system_window::SystemWindow> system_window_;
- renderer::RendererModule renderer_module_;
+ base::optional<renderer::RendererModule> renderer_module_;
};
} // namespace
diff --git a/src/cobalt/layout_tests/testdata/cobalt/100-dynamically-created-nested-elements.html b/src/cobalt/layout_tests/testdata/cobalt/100-dynamically-created-nested-elements.html
index 498e1a7..2c692ea 100644
--- a/src/cobalt/layout_tests/testdata/cobalt/100-dynamically-created-nested-elements.html
+++ b/src/cobalt/layout_tests/testdata/cobalt/100-dynamically-created-nested-elements.html
@@ -16,12 +16,12 @@
that max element depth is 32. -->
<script>
- var parent = document.body;
+ var parent_element = document.body;
for (var i = 1; i <= 100; i++) {
var new_child = document.createElement("span");
new_child.textContent = i + " ";
- parent.appendChild(new_child);
- parent = new_child;
+ parent_element.appendChild(new_child);
+ parent_element = new_child;
}
</script>
diff --git a/src/cobalt/media/media_buffer_allocator.h b/src/cobalt/media/media_buffer_allocator.h
new file mode 100644
index 0000000..ef7f620
--- /dev/null
+++ b/src/cobalt/media/media_buffer_allocator.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef COBALT_MEDIA_MEDIA_BUFFER_ALLOCATOR_H_
+#define COBALT_MEDIA_MEDIA_BUFFER_ALLOCATOR_H_
+
+#include "base/optional.h"
+#include "nb/memory_pool.h"
+
+namespace cobalt {
+namespace media {
+
+class MediaBufferAllocator {
+ public:
+ MediaBufferAllocator(void* pool, size_t main_pool_size,
+ size_t small_allocation_pool_size,
+ size_t small_allocation_threshold)
+ : pool_(reinterpret_cast<uint8*>(pool)),
+ main_pool_size_(main_pool_size),
+ small_allocation_pool_size_(small_allocation_pool_size),
+ small_allocation_threshold_(small_allocation_threshold),
+ main_pool_(pool_, main_pool_size_, true, /* thread_safe */
+ true /* verify_full_capacity */) {
+ if (small_allocation_pool_size_ > 0u) {
+ DCHECK_GT(small_allocation_threshold_, 0u);
+ small_allocation_pool_.emplace(pool_ + main_pool_size_,
+ small_allocation_pool_size_,
+ true, /* thread_safe */
+ true /* verify_full_capacity */);
+ } else {
+ DCHECK_EQ(small_allocation_pool_size_, 0u);
+ DCHECK_EQ(small_allocation_threshold_, 0u);
+ }
+ }
+
+ void* Allocate(size_t size, size_t alignment) {
+ void* p = NULL;
+ if (size < small_allocation_threshold_ && small_allocation_pool_) {
+ p = small_allocation_pool_->Allocate(size, alignment);
+ }
+ if (!p) {
+ p = main_pool_.Allocate(size, alignment);
+ }
+ if (!p && small_allocation_pool_) {
+ p = small_allocation_pool_->Allocate(size, alignment);
+ }
+ return p;
+ }
+
+ void Free(void* p) {
+ if (p >= pool_ + main_pool_size_ && small_allocation_pool_) {
+ DCHECK_LT(p, pool_ + main_pool_size_ + small_allocation_pool_size_);
+ small_allocation_pool_->Free(p);
+ return;
+ }
+ DCHECK_GE(p, pool_);
+ DCHECK_LT(p, pool_ + main_pool_size_);
+ main_pool_.Free(p);
+ }
+
+ private:
+ uint8* pool_;
+ size_t main_pool_size_;
+ size_t small_allocation_pool_size_;
+ size_t small_allocation_threshold_;
+
+ nb::MemoryPool main_pool_;
+ base::optional<nb::MemoryPool> small_allocation_pool_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaBufferAllocator);
+};
+
+} // namespace media
+} // namespace cobalt
+
+#endif // COBALT_MEDIA_MEDIA_BUFFER_ALLOCATOR_H_
diff --git a/src/cobalt/media/shell_media_platform_starboard.cc b/src/cobalt/media/shell_media_platform_starboard.cc
index 096b670..9b9bf31 100644
--- a/src/cobalt/media/shell_media_platform_starboard.cc
+++ b/src/cobalt/media/shell_media_platform_starboard.cc
@@ -38,6 +38,8 @@
const size_t kGPUMemoryBufferBudget = SB_MEDIA_GPU_BUFFER_BUDGET;
const size_t kMainMemoryBufferBudget = SB_MEDIA_MAIN_BUFFER_BUDGET;
+const size_t kSmallAllocationThreshold = 768U;
+
} // namespace
ShellMediaPlatformStarboard::ShellMediaPlatformStarboard(
@@ -58,7 +60,7 @@
gpu_memory_pool_.reset(new nb::MemoryPool(
gpu_memory_buffer_space_->GetMemory(),
gpu_memory_buffer_space_->GetSizeInBytes(), true, /* thread_safe */
- true /* verify_full_capacity */));
+ true /* verify_full_capacity */, kSmallAllocationThreshold));
}
DCHECK_LE(0, kMainMemoryBufferBudget > 0);
@@ -68,7 +70,8 @@
main_memory_pool_.reset(new nb::MemoryPool(main_memory_buffer_space_.get(),
kMainMemoryBufferBudget,
true, /* thread_safe */
- true /* verify_full_capacity */));
+ true, /* verify_full_capacity */
+ kSmallAllocationThreshold));
ShellBufferFactory::Initialize();
ShellAudioStreamer::Initialize();
diff --git a/src/cobalt/render_tree/animations/animate_node.cc b/src/cobalt/render_tree/animations/animate_node.cc
index d51732a..6363ec9 100644
--- a/src/cobalt/render_tree/animations/animate_node.cc
+++ b/src/cobalt/render_tree/animations/animate_node.cc
@@ -16,6 +16,8 @@
#include "cobalt/render_tree/animations/animate_node.h"
+#include <algorithm>
+
#include "base/debug/trace_event.h"
#include "cobalt/base/enable_if.h"
#include "cobalt/base/polymorphic_downcast.h"
@@ -63,7 +65,9 @@
public:
TraverseListBuilder(const AnimateNode::Builder::InternalMap& animation_map,
TraverseList* traverse_list)
- : animation_map_(animation_map), traverse_list_(traverse_list) {}
+ : animation_map_(animation_map),
+ traverse_list_(traverse_list),
+ expiry_(-base::TimeDelta::Max()) {}
void Visit(animations::AnimateNode* animate) OVERRIDE;
void Visit(CompositionNode* composition) OVERRIDE { VisitNode(composition); }
@@ -108,6 +112,9 @@
// this visitor's associated node with in its list of child nodes.
scoped_refptr<Node> replace_with_;
+ // The time after which all animations will have completed and be constant.
+ base::TimeDelta expiry_;
+
friend class AnimateNode;
};
@@ -134,6 +141,9 @@
// maintain the invariant that an AnimateNode does not contain any
// AnimateNode descendants.
replace_with_ = animate->source_;
+
+ // Update our expiry in accordance with the sub-AnimateNode's expiry.
+ expiry_ = std::max(expiry_, animate->expiry());
}
template <typename T>
@@ -197,6 +207,7 @@
Node* node, AnimateNode::Builder::InternalMap::const_iterator found) {
if (found != animation_map_.end()) {
traverse_list_->push_back(TraverseListEntry(node, found->second));
+ expiry_ = std::max(expiry_, found->second->GetExpiry());
} else {
traverse_list_->push_back(TraverseListEntry(node));
}
@@ -394,6 +405,8 @@
std::reverse(traverse_list_.begin(), traverse_list_.end());
DCHECK(source_.get() == traverse_list_.begin()->node);
}
+
+ expiry_ = traverse_list_builder.expiry_;
}
} // namespace animations
diff --git a/src/cobalt/render_tree/animations/animate_node.h b/src/cobalt/render_tree/animations/animate_node.h
index 4b9bfae..b5a11e1 100644
--- a/src/cobalt/render_tree/animations/animate_node.h
+++ b/src/cobalt/render_tree/animations/animate_node.h
@@ -73,9 +73,19 @@
// Convenience method to attach a single animation to a target node.
template <typename T>
void Add(const scoped_refptr<T>& target_node,
+ const typename Animation<T>::Function& single_animation,
+ base::TimeDelta expiry) {
+ AddInternal(target_node,
+ scoped_refptr<AnimationListBase>(
+ new AnimationList<T>(single_animation, expiry)));
+ }
+
+ template <typename T>
+ void Add(const scoped_refptr<T>& target_node,
const typename Animation<T>::Function& single_animation) {
- AddInternal(target_node, scoped_refptr<AnimationListBase>(
- new AnimationList<T>(single_animation)));
+ AddInternal(target_node,
+ scoped_refptr<AnimationListBase>(new AnimationList<T>(
+ single_animation, base::TimeDelta::Max())));
}
// Merge all mappings from another AnimateNode::Builder into this one.
@@ -137,6 +147,12 @@
// Returns the sub-tree for which the animations apply to.
const scoped_refptr<Node> source() const { return source_; }
+ // Returns the time at which all animations will have completed, or
+ // base::TimeDelta::Max() if they will never complete.
+ // It will be true that AnimateNode::Apply(x) == AnimateNode::Apply(y) for
+ // all x, y >= expiry().
+ const base::TimeDelta& expiry() const { return expiry_; }
+
private:
// A helper render tree visitor class used to compile sub render-tree
// animations.
@@ -168,6 +184,7 @@
// that guides us towards all nodes that need to be animated.
TraverseList traverse_list_;
scoped_refptr<Node> source_;
+ base::TimeDelta expiry_;
};
} // namespace animations
diff --git a/src/cobalt/render_tree/animations/animation_list.h b/src/cobalt/render_tree/animations/animation_list.h
index a37bd3f..89c12fd 100644
--- a/src/cobalt/render_tree/animations/animation_list.h
+++ b/src/cobalt/render_tree/animations/animation_list.h
@@ -77,6 +77,9 @@
// letting us collect animation lists in a single collection, at the cost of
// needing to type cast in a few places.
class AnimationListBase : public base::RefCountedThreadSafe<AnimationListBase> {
+ public:
+ virtual base::TimeDelta GetExpiry() const = 0;
+
protected:
virtual ~AnimationListBase() {}
friend class base::RefCountedThreadSafe<AnimationListBase>;
@@ -99,24 +102,33 @@
struct Builder {
DECLARE_AS_MOVABLE(Builder);
- Builder() {}
+ Builder() : expiry(base::TimeDelta::Max()) {}
explicit Builder(Moved moved) { animations.swap(moved->animations); }
- explicit Builder(const typename Animation<T>::Function& single_animation) {
+ explicit Builder(const typename Animation<T>::Function& single_animation,
+ base::TimeDelta expiry)
+ : expiry(expiry) {
animations.push_back(single_animation);
}
InternalList animations;
+ // When do the animations expire? base::TimeDelta::Max() implies that they
+ // never expire.
+ base::TimeDelta expiry;
};
explicit AnimationList(typename Builder::Moved builder) : data_(builder) {}
// Convenience constructor to allow for easy construction of AnimationLists
- // containing a single Animation.
+ // containing a single Animation. |expiry| indicates the time at which the
+ // animation ceases, or base::TimeDelta::Max() if that never occurs.
explicit AnimationList(
- const typename Animation<T>::Function& single_animation)
- : data_(single_animation) {}
+ const typename Animation<T>::Function& single_animation,
+ base::TimeDelta expiry)
+ : data_(single_animation, expiry) {}
const Builder& data() const { return data_; }
+ base::TimeDelta GetExpiry() const OVERRIDE { return data_.expiry; }
+
private:
~AnimationList() OVERRIDE {}
diff --git a/src/cobalt/renderer/animations_test.cc b/src/cobalt/renderer/animations_test.cc
index 033a78f..b46c59e 100644
--- a/src/cobalt/renderer/animations_test.cc
+++ b/src/cobalt/renderer/animations_test.cc
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -171,7 +171,7 @@
Pipeline pipeline(
base::Bind(render_module_options.create_rasterizer_function,
graphics_context.get(), render_module_options),
- dummy_output_surface, NULL);
+ dummy_output_surface, NULL, true);
// Our test render tree will consist of only a single ImageNode.
scoped_refptr<ImageNode> test_node = new ImageNode(
diff --git a/src/cobalt/renderer/pipeline.cc b/src/cobalt/renderer/pipeline.cc
index a1c5aba..9974067 100644
--- a/src/cobalt/renderer/pipeline.cc
+++ b/src/cobalt/renderer/pipeline.cc
@@ -65,12 +65,15 @@
Pipeline::Pipeline(const CreateRasterizerFunction& create_rasterizer_function,
const scoped_refptr<backend::RenderTarget>& render_target,
- backend::GraphicsContext* graphics_context)
+ backend::GraphicsContext* graphics_context,
+ bool submit_even_if_render_tree_is_unchanged)
: rasterizer_created_event_(true, false),
render_target_(render_target),
graphics_context_(graphics_context),
rasterizer_thread_("Rasterizer"),
submission_disposal_thread_("Rasterizer Submission Disposal"),
+ submit_even_if_render_tree_is_unchanged_(
+ submit_even_if_render_tree_is_unchanged),
rasterize_current_tree_interval_timer_(
"Renderer.Rasterize.Interval",
kRasterizeCurrentTreeTimerTimeIntervalInMs),
@@ -121,6 +124,11 @@
base::Unretained(&submission_queue_shutdown)));
submission_queue_shutdown.Wait();
+ // This potential reference to a render tree whose animations may have ended
+ // must be destroyed before we shutdown the rasterizer thread since it may
+ // contain references to render tree nodes and resources.
+ last_rendered_expired_render_tree_ = NULL;
+
// Submit a shutdown task to the rasterizer thread so that it can shutdown
// anything that must be shutdown from that thread.
rasterizer_thread_.message_loop()->PostTask(
@@ -190,11 +198,11 @@
// Start the rasterization timer if it is not yet started.
if (!rasterize_timer_) {
- // We submit render trees as fast as the rasterizer can consume them.
- // Practically, this will result in the rate being limited to the
- // display's refresh rate.
+ // We artificially limit the period between submissions to 15ms, in case
+ // a platform does not rate limit itself during swaps. This limit may need
+ // to be reduced if we wish to support 120 FPS animations.
rasterize_timer_.emplace(
- FROM_HERE, base::TimeDelta(),
+ FROM_HERE, base::TimeDelta::FromMilliseconds(15),
base::Bind(&Pipeline::RasterizeCurrentTree, base::Unretained(this)),
true, true);
rasterize_timer_->Reset();
@@ -219,14 +227,37 @@
TRACE_EVENT0("cobalt::renderer", "Pipeline::RasterizeCurrentTree()");
base::TimeTicks now = base::TimeTicks::Now();
+ Submission submission = submission_queue_->GetCurrentSubmission(now);
+
+ // If our render tree hasn't changed from the one that was previously rendered
+ // and the animations on the previously rendered tree have expired, and it's
+ // okay on this system to not flip the display buffer frequently, then we
+ // can just not do anything here.
+ if (!submit_even_if_render_tree_is_unchanged_ &&
+ submission.render_tree == last_rendered_expired_render_tree_) {
+ return;
+ }
+
rasterize_current_tree_interval_timer_.Start(now);
rasterize_current_tree_timer_.Start(now);
// Rasterize the last submitted render tree.
- RasterizeSubmissionToRenderTarget(
- submission_queue_->GetCurrentSubmission(now), render_target_);
+ RasterizeSubmissionToRenderTarget(submission, render_target_);
rasterize_current_tree_timer_.Stop();
+
+ // Check whether the animations in the render tree that was just rasterized
+ // have expired or not, and if so, mark that down so that if we see it in
+ // the future we don't spend the time re-rendering it.
+ if (!submit_even_if_render_tree_is_unchanged_) {
+ render_tree::animations::AnimateNode* animate_node =
+ base::polymorphic_downcast<render_tree::animations::AnimateNode*>(
+ submission.render_tree.get());
+ last_rendered_expired_render_tree_ =
+ animate_node->expiry() <= submission.time_offset
+ ? submission.render_tree
+ : NULL;
+ }
}
void Pipeline::RasterizeSubmissionToRenderTarget(
diff --git a/src/cobalt/renderer/pipeline.h b/src/cobalt/renderer/pipeline.h
index ad05b29..975f593 100644
--- a/src/cobalt/renderer/pipeline.h
+++ b/src/cobalt/renderer/pipeline.h
@@ -59,7 +59,8 @@
// thread safe objects.
Pipeline(const CreateRasterizerFunction& create_rasterizer_function,
const scoped_refptr<backend::RenderTarget>& render_target,
- backend::GraphicsContext* graphics_context);
+ backend::GraphicsContext* graphics_context,
+ bool submit_even_if_render_tree_is_unchanged);
~Pipeline();
// Submit a new render tree to the renderer pipeline. After calling this
@@ -166,6 +167,15 @@
// the future.
base::optional<SubmissionQueue> submission_queue_;
+ // Keep track of the last render tree we rendered whose animations have
+ // expired so that if we see that we are asked to rasterize that render tree
+ // again, we know that we do not have to do anything.
+ scoped_refptr<render_tree::Node> last_rendered_expired_render_tree_;
+
+ // If true, we will submit the current render tree to the rasterizer every
+ // frame, even if it hasn't changed.
+ const bool submit_even_if_render_tree_is_unchanged_;
+
// Timers for tracking how frequently |RasterizeCurrentTree| is called and
// the amount of time spent in |RasterizeCurrentTree| each call.
base::CValTimeIntervalTimer<base::CValPublic>
diff --git a/src/cobalt/renderer/pipeline_test.cc b/src/cobalt/renderer/pipeline_test.cc
index db7585a..c258641 100644
--- a/src/cobalt/renderer/pipeline_test.cc
+++ b/src/cobalt/renderer/pipeline_test.cc
@@ -88,15 +88,30 @@
submission_count_ = 0;
start_time_ = base::TimeTicks::Now();
pipeline_.reset(new Pipeline(
- base::Bind(&CreateMockRasterizer, &submission_count_), NULL, NULL));
-
- // We create a render tree here composed of only a single, empty
- // CompositionNode that is meant to act as a dummy/placeholder.
- dummy_render_tree_ = scoped_refptr<cobalt::render_tree::Node>(
- new cobalt::render_tree::CompositionNode(
- cobalt::render_tree::CompositionNode::Builder()));
+ base::Bind(&CreateMockRasterizer, &submission_count_), NULL, NULL,
+ true));
}
+ static void DummyAnimateFunction(
+ cobalt::render_tree::CompositionNode::Builder* composition_node_builder,
+ base::TimeDelta time) {}
+
+ // We create a render tree composed of only a single, empty CompositionNode
+ // that is meant to act as a dummy/placeholder. It is animated to ensure that
+ // it changes every frame and so the Pipeline must rasterize it each frame.
+ scoped_refptr<cobalt::render_tree::Node> MakeDummyAnimatedRenderTree() {
+ scoped_refptr<cobalt::render_tree::CompositionNode> dummy_node(
+ new cobalt::render_tree::CompositionNode(
+ cobalt::render_tree::CompositionNode::Builder()));
+
+ cobalt::render_tree::animations::AnimateNode::Builder animate_builder;
+ animate_builder.Add(dummy_node, base::Bind(&DummyAnimateFunction));
+ scoped_refptr<cobalt::render_tree::animations::AnimateNode> animate_node(
+ new cobalt::render_tree::animations::AnimateNode(animate_builder,
+ dummy_node));
+
+ return animate_node;
+ }
// Checks that Submit() was called on mock_rasterizer_ the expect number of
// times given the refresh rate and lower/upper bounds for how long the
// pipeline was active.
@@ -131,7 +146,6 @@
base::TimeTicks start_time_; // Record the time that we started the pipeline.
scoped_ptr<Pipeline> pipeline_;
- scoped_refptr<cobalt::render_tree::Node> dummy_render_tree_;
int submission_count_;
};
@@ -146,7 +160,8 @@
TEST_F(
RendererPipelineTest,
FLAKY_RasterizerSubmitCalledAtExpectedFrequencyAfterSinglePipelineSubmit) {
- pipeline_->Submit(cobalt::renderer::Submission(dummy_render_tree_));
+ pipeline_->Submit(
+ cobalt::renderer::Submission(MakeDummyAnimatedRenderTree()));
// Wait a little bit to give the pipeline some time to rasterize the submitted
// render tree.
@@ -179,7 +194,8 @@
break;
}
- pipeline_->Submit(cobalt::renderer::Submission(dummy_render_tree_));
+ pipeline_->Submit(
+ cobalt::renderer::Submission(MakeDummyAnimatedRenderTree()));
const base::TimeDelta kSubmitDelay(base::TimeDelta::FromMilliseconds(1));
// While we want to submit faster than the rasterizer is rasterizing,
diff --git a/src/cobalt/renderer/rasterizer/skia/skia/skia_library.gypi b/src/cobalt/renderer/rasterizer/skia/skia/skia_library.gypi
index 49aee75..dba75b6 100644
--- a/src/cobalt/renderer/rasterizer/skia/skia/skia_library.gypi
+++ b/src/cobalt/renderer/rasterizer/skia/skia/skia_library.gypi
@@ -151,6 +151,9 @@
'<(DEPTH)/third_party/skia/src/fonts/SkGScalerContext.h',
'<(DEPTH)/third_party/skia/src/fonts/SkTestScalerContext.cpp',
'<(DEPTH)/third_party/skia/src/fonts/SkTestScalerContext.h',
+
+ # Conflicts with cobalt implementation.
+ '<(DEPTH)/third_party/skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
],
# Exclude Skia OpenGL backend source files.
diff --git a/src/cobalt/renderer/renderer_module.cc b/src/cobalt/renderer/renderer_module.cc
index 5806add..ebe8531 100644
--- a/src/cobalt/renderer/renderer_module.cc
+++ b/src/cobalt/renderer/renderer_module.cc
@@ -62,7 +62,8 @@
pipeline_ = make_scoped_ptr(new renderer::Pipeline(
base::Bind(options.create_rasterizer_function, graphics_context_.get(),
options),
- display_->GetRenderTarget(), graphics_context_.get()));
+ display_->GetRenderTarget(), graphics_context_.get(),
+ options.submit_even_if_render_tree_is_unchanged));
}
}
diff --git a/src/cobalt/renderer/renderer_module.h b/src/cobalt/renderer/renderer_module.h
index f60a29d..fab4b63 100644
--- a/src/cobalt/renderer/renderer_module.h
+++ b/src/cobalt/renderer/renderer_module.h
@@ -60,6 +60,12 @@
// nodes that are most CPU-expensive to render into surfaces.
int surface_cache_size_in_bytes;
+ // If this flag is set to true, the pipeline will not re-submit a render
+ // tree if it has not changed from the previous submission. This can save
+ // CPU time so long as there's no problem with the fact that the display
+ // buffer will not be frequently swapped.
+ bool submit_even_if_render_tree_is_unchanged;
+
private:
// Implemented per-platform, and allows each platform to customize
// the renderer options.
diff --git a/src/cobalt/renderer/renderer_module_default_options_starboard.cc b/src/cobalt/renderer/renderer_module_default_options_starboard.cc
index db5086b..7a00bd5 100644
--- a/src/cobalt/renderer/renderer_module_default_options_starboard.cc
+++ b/src/cobalt/renderer/renderer_module_default_options_starboard.cc
@@ -71,6 +71,12 @@
scratch_surface_cache_size_in_bytes =
COBALT_SCRATCH_SURFACE_CACHE_SIZE_IN_BYTES;
+ // If there is no need to frequently flip the display buffer, then enable
+ // support for an optimization where the scene is not re-rasterized each frame
+ // if it has not changed from the last frame.
+ submit_even_if_render_tree_is_unchanged =
+ SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER;
+
create_rasterizer_function = base::Bind(&CreateRasterizer);
}
diff --git a/src/cobalt/renderer/renderer_module_default_options_win.cc b/src/cobalt/renderer/renderer_module_default_options_win.cc
index 6b08fc9..b96c5f0 100644
--- a/src/cobalt/renderer/renderer_module_default_options_win.cc
+++ b/src/cobalt/renderer/renderer_module_default_options_win.cc
@@ -47,6 +47,8 @@
scratch_surface_cache_size_in_bytes =
COBALT_SCRATCH_SURFACE_CACHE_SIZE_IN_BYTES;
+ submit_even_if_render_tree_is_unchanged = true;
+
create_rasterizer_function = base::Bind(&CreateRasterizer);
}
diff --git a/src/cobalt/script/mozjs/conversion_helpers.h b/src/cobalt/script/mozjs/conversion_helpers.h
index 19a8ec8..6166bfa 100644
--- a/src/cobalt/script/mozjs/conversion_helpers.h
+++ b/src/cobalt/script/mozjs/conversion_helpers.h
@@ -368,6 +368,10 @@
context,
global_environment->wrapper_factory()->GetWrapperProxy(in_object));
DCHECK(object);
+ JS::RootedObject proxy_target(context, js::GetProxyTargetObject(object));
+ if (JS_IsGlobalObject(proxy_target)) {
+ object = proxy_target;
+ }
out_value.set(OBJECT_TO_JSVAL(object));
}
diff --git a/src/cobalt/script/mozjs/mozjs_callback_function.h b/src/cobalt/script/mozjs/mozjs_callback_function.h
index a2714de..cb3abc6 100644
--- a/src/cobalt/script/mozjs/mozjs_callback_function.h
+++ b/src/cobalt/script/mozjs/mozjs_callback_function.h
@@ -58,12 +58,12 @@
CallbackResult<R> Run()
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -111,12 +111,12 @@
typename base::internal::CallbackParamTraits<A1>::ForwardType a1)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -170,12 +170,12 @@
typename base::internal::CallbackParamTraits<A2>::ForwardType a2)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -231,12 +231,12 @@
typename base::internal::CallbackParamTraits<A3>::ForwardType a3)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -294,12 +294,12 @@
typename base::internal::CallbackParamTraits<A4>::ForwardType a4)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -360,12 +360,12 @@
typename base::internal::CallbackParamTraits<A5>::ForwardType a5)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -428,12 +428,12 @@
typename base::internal::CallbackParamTraits<A6>::ForwardType a6)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
@@ -498,12 +498,12 @@
typename base::internal::CallbackParamTraits<A7>::ForwardType a7)
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
diff --git a/src/cobalt/script/mozjs/mozjs_callback_function.h.pump b/src/cobalt/script/mozjs/mozjs_callback_function.h.pump
index 810dcc5..14067e9 100644
--- a/src/cobalt/script/mozjs/mozjs_callback_function.h.pump
+++ b/src/cobalt/script/mozjs/mozjs_callback_function.h.pump
@@ -77,12 +77,12 @@
typename base::internal::CallbackParamTraits<A$(ARG)>::ForwardType a$(ARG)]])
const OVERRIDE {
CallbackResult<R> callback_result;
+ JSAutoRequest auto_request(context_);
JS::RootedObject function(context_, weak_function_.Get());
if (!function) {
DLOG(WARNING) << "Function was garbage collected.";
callback_result.exception = true;
} else {
- JSAutoRequest auto_request(context_);
JSAutoCompartment auto_compartment(context_, function);
JSExceptionState* previous_exception_state =
JS_SaveExceptionState(context_);
diff --git a/src/cobalt/script/mozjs/mozjs_user_object_holder.h b/src/cobalt/script/mozjs/mozjs_user_object_holder.h
index 2ee384f..c70ad1a 100644
--- a/src/cobalt/script/mozjs/mozjs_user_object_holder.h
+++ b/src/cobalt/script/mozjs/mozjs_user_object_holder.h
@@ -51,6 +51,7 @@
wrapper_factory_(wrapper_factory) {}
void RegisterOwner(Wrappable* owner) OVERRIDE {
+ JSAutoRequest auto_request(context_);
JS::RootedObject owned_object(context_, js_object());
DLOG_IF(WARNING, !owned_object)
<< "Owned object has been garbage collected.";
@@ -65,6 +66,7 @@
void DeregisterOwner(Wrappable* owner) OVERRIDE {
// |owner| may be in the process of being destructed, so don't use it.
+ JSAutoRequest auto_request(context_);
JS::RootedObject owned_object(context_, js_object());
if (owned_object) {
MozjsGlobalEnvironment* global_environment =
@@ -82,6 +84,7 @@
scoped_ptr<BaseClass> MakeCopy() const OVERRIDE {
DCHECK(object_handle_);
+ JSAutoRequest auto_request(context_);
JS::RootedObject rooted_object(context_, js_object());
return make_scoped_ptr<BaseClass>(
new MozjsUserObjectHolder(rooted_object, context_, wrapper_factory_));
diff --git a/src/cobalt/script/mozjs/opaque_root_tracker.cc b/src/cobalt/script/mozjs/opaque_root_tracker.cc
index 1ae8d32..dfc405e 100644
--- a/src/cobalt/script/mozjs/opaque_root_tracker.cc
+++ b/src/cobalt/script/mozjs/opaque_root_tracker.cc
@@ -20,6 +20,7 @@
#include <vector>
#include "cobalt/script/mozjs/weak_heap_object.h"
+#include "third_party/mozjs/js/src/jsapi.h"
namespace cobalt {
namespace script {
@@ -45,6 +46,7 @@
}
~OpaqueRootStateImpl() {
+ JSAutoRequest auto_request(context_);
for (ReferencedObjectPairVector::iterator it = referenced_objects_.begin();
it != referenced_objects_.end(); ++it) {
if (it->second.Get()) {
diff --git a/src/cobalt/script/mozjs/util/exception_helpers.cc b/src/cobalt/script/mozjs/util/exception_helpers.cc
index 030f45a..ce0ca06 100644
--- a/src/cobalt/script/mozjs/util/exception_helpers.cc
+++ b/src/cobalt/script/mozjs/util/exception_helpers.cc
@@ -20,6 +20,7 @@
#include "cobalt/script/mozjs/conversion_helpers.h"
#include "cobalt/script/mozjs/mozjs_exception_state.h"
+#include "third_party/mozjs/js/src/jsapi.h"
#include "third_party/mozjs/js/src/jsdbgapi.h"
#include "third_party/mozjs/js/src/jsscript.h"
@@ -28,6 +29,7 @@
namespace mozjs {
namespace util {
std::vector<StackFrame> GetStackTrace(JSContext* context, int max_frames) {
+ JSAutoRequest auto_request(context);
JS::StackDescription* stack_description =
JS::DescribeStack(context, max_frames);
if (max_frames == 0) {
diff --git a/src/cobalt/storage/storage.gyp b/src/cobalt/storage/storage.gyp
index 599f95a..ca9bc16 100644
--- a/src/cobalt/storage/storage.gyp
+++ b/src/cobalt/storage/storage.gyp
@@ -32,13 +32,17 @@
'savegame_fake.cc',
'storage_manager.cc',
'storage_manager.h',
+ 'upgrade/upgrade_reader.cc',
+ 'upgrade/upgrade_reader.h',
'virtual_file.cc',
'virtual_file.h',
'virtual_file_system.cc',
'virtual_file_system.h',
],
'dependencies': [
+ '<(DEPTH)/base/base.gyp:base',
'<(DEPTH)/cobalt/base/base.gyp:base',
+ '<(DEPTH)/net/net.gyp:net',
'<(DEPTH)/sql/sql.gyp:sql',
],
'conditions': [
@@ -70,6 +74,7 @@
'sources': [
'savegame_test.cc',
'storage_manager_test.cc',
+ 'upgrade/storage_upgrade_test.cc',
'virtual_file_system_test.cc',
],
'dependencies': [
@@ -78,6 +83,7 @@
'<(DEPTH)/testing/gmock.gyp:gmock',
'<(DEPTH)/testing/gtest.gyp:gtest',
'storage',
+ 'storage_upgrade_copy_test_data',
],
},
{
@@ -91,5 +97,21 @@
},
'includes': [ '../../starboard/build/deploy.gypi' ],
},
+ {
+ 'target_name': 'storage_upgrade_copy_test_data',
+ 'type': 'none',
+ 'actions': [
+ {
+ 'action_name': 'storage_upgrade_copy_test_data',
+ 'variables': {
+ 'input_files': [
+ '<(DEPTH)/cobalt/storage/upgrade/testdata/',
+ ],
+ 'output_dir': 'cobalt/storage/upgrade/testdata/',
+ },
+ 'includes': [ '../build/copy_test_data.gypi' ],
+ },
+ ],
+ },
],
}
diff --git a/src/cobalt/storage/upgrade/schema_v1.proto b/src/cobalt/storage/upgrade/schema_v1.proto
new file mode 100644
index 0000000..6907806
--- /dev/null
+++ b/src/cobalt/storage/upgrade/schema_v1.proto
@@ -0,0 +1,83 @@
+// Copyright 2016 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// File schema for "upgrade" save data.
+//
+// A platform migrating to Cobalt from a pre-existing HTML5 container may need
+// to load save data in the legacy format into Cobalt. In this case, it is
+// expected the platform implementation will return the legacy save data in the
+// format described by this schema (JSON-encoded data prefixed by a fixed
+// identifier), which will then be detected by Cobalt and upgraded to the
+// current save data format.
+
+// The first 4 bytes of the data must be the ASCII characters: "UPG0".
+// The remainder of the data must be JSON-encoded according to the schema below.
+// For details of how the proto3 syntax used here maps to JSON, see:
+// https://developers.google.com/protocol-buffers/docs/proto3#json
+
+syntax = "proto3";
+
+message SaveData {
+ // Array (possibly empty) of Cookie objects, defined below.
+ repeated Cookie cookies = 1;
+
+ // Array (possibly empty) of LocalStorageEntry objects, defined below.
+ repeated LocalStorageEntry local_storage_entries = 2;
+
+ // A single cookie.
+ mesage Cookie {
+ // URL in canonical form, e.g. "https://www.youtube.com/". Must be provided
+ // or the cookie will be ignored.
+ string url = 1;
+
+ // Application-defined key. Must be provided or the cookie will be ignored.
+ string name = 2;
+
+ // Application-defined value, treated opaquely by Cobalt. Must be provided
+ // or the cookie will be ignored.
+ string value = 3;
+
+ // Domain, e.g. ".youtube.com". Defaults to the domain of the "url" field.
+ string domain = 4;
+
+ // Optional virtual path, defaults to "/".
+ string path = 5;
+
+ // Microseconds since Windows epoch (1601-01-01 00:00:00 UTC), as ASCII
+ // decimal string. Defaults to now.
+ int64 creation = 6;
+
+ // Microseconds since Windows epoch (1601-01-01 00:00:00 UTC), as ASCII
+ // decimal string. Defaults to maximum expiration period from now.
+ int64 expiration = 7;
+
+ // Microseconds since Windows epoch (1601-01-01 00:00:00 UTC), as ASCII
+ // decimal string. Defaults to now.
+ int64 last_access = 8;
+
+ // Whether this is an HTTP-only cookie. Defaults to false.
+ bool http_only = 9;
+ }
+
+ // A single local storage entry.
+ message LocalStorageEntry {
+ // Application-defined key. Must be provided or the local storage entry will
+ // be ignored.
+ string key = 1;
+
+ // Application-defined value, treated opaquely by Cobalt. Must be provided
+ // or the local storage entry will be ignored.
+ string value = 2;
+ }
+}
diff --git a/src/cobalt/storage/upgrade/storage_upgrade_test.cc b/src/cobalt/storage/upgrade/storage_upgrade_test.cc
new file mode 100644
index 0000000..e7b64f0
--- /dev/null
+++ b/src/cobalt/storage/upgrade/storage_upgrade_test.cc
@@ -0,0 +1,229 @@
+/*
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cstring>
+
+#include "base/base_paths.h"
+#include "base/file_util.h"
+#include "base/logging.h"
+#include "base/path_service.h"
+#include "base/platform_file.h"
+#include "base/time.h"
+#include "cobalt/storage/upgrade/upgrade_reader.h"
+#include "googleurl/src/gurl.h"
+#include "net/cookies/canonical_cookie.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace cobalt {
+namespace storage {
+namespace upgrade {
+
+namespace {
+
+const int kHeaderSize = 4;
+const char kHeader[] = "UPG0";
+
+void ReadFileToString(const char* pathname, std::string* string_out) {
+ EXPECT_TRUE(pathname);
+ EXPECT_TRUE(string_out);
+ FilePath file_path;
+ EXPECT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &file_path));
+ file_path = file_path.Append(pathname);
+ EXPECT_TRUE(file_util::ReadFileToString(file_path, string_out));
+ EXPECT_GT(string_out->length(), static_cast<size_t>(kHeaderSize));
+ EXPECT_LE(string_out->length(), static_cast<size_t>(10 * 1024 * 1024));
+ EXPECT_EQ(string_out->find(kHeader), 0);
+}
+
+void ValidateCookie(const net::CanonicalCookie* cookie, const std::string& url,
+ const std::string& name, const std::string& value,
+ const std::string domain, const std::string& path,
+ const base::Time& creation, const base::Time expiration,
+ bool http_only) {
+ EXPECT_TRUE(cookie);
+ EXPECT_EQ(cookie->Source(),
+ net::CanonicalCookie::GetCookieSourceFromURL(GURL(url)));
+ EXPECT_EQ(cookie->Name(), name);
+ EXPECT_EQ(cookie->Value(), value);
+ EXPECT_EQ(cookie->Domain(), domain);
+ EXPECT_EQ(cookie->Path(), path);
+ EXPECT_EQ((cookie->CreationDate() - creation).InSeconds(), 0);
+ EXPECT_EQ((cookie->ExpiryDate() - expiration).InSeconds(), 0);
+ EXPECT_EQ((cookie->LastAccessDate() - base::Time::Now()).InSeconds(), 0);
+ EXPECT_EQ(cookie->IsSecure(), true);
+ EXPECT_EQ(cookie->IsHttpOnly(), http_only);
+}
+
+void ValidateCookie(const net::CanonicalCookie* cookie, const std::string& url,
+ const std::string& name, const std::string& value) {
+ const std::string host = GURL(url).host();
+ const std::string domain = host.empty() ? "" : host.substr(host.find("."));
+ const std::string path = "/";
+ const base::Time creation = base::Time::Now();
+ const base::Time expiration = creation;
+ const bool http_only = false;
+ ValidateCookie(cookie, url, name, value, domain, path, creation, expiration,
+ http_only);
+}
+
+void ValidateLocalStorageEntry(
+ const UpgradeReader::LocalStorageEntry* local_storage_entry,
+ const std::string& key, const std::string& value) {
+ EXPECT_TRUE(local_storage_entry);
+ EXPECT_EQ(local_storage_entry->key, key);
+ EXPECT_EQ(local_storage_entry->value, value);
+}
+
+} // namespace
+
+TEST(StorageUpgradeTest, UpgradeMinimalCookie) {
+ std::string file_contents;
+ ReadFileToString("cobalt/storage/upgrade/testdata/minimal_cookie_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // 1 cookie.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 1);
+ const net::CanonicalCookie* cookie = upgrade_reader.GetCookie(0);
+ ValidateCookie(cookie, "https://www.youtube.com/", "cookie_name",
+ "cookie_value");
+ EXPECT_FALSE(upgrade_reader.GetCookie(1));
+
+ // 0 local storage entries.
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 0);
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(0));
+}
+
+TEST(StorageUpgradeTest, UpgradeMinimalLocalStorageEntry) {
+ std::string file_contents;
+ ReadFileToString(
+ "cobalt/storage/upgrade/testdata/minimal_local_storage_entry_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // 0 cookies.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 0);
+ EXPECT_FALSE(upgrade_reader.GetCookie(0));
+
+ // 1 local storage entry.
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 1);
+ const UpgradeReader::LocalStorageEntry* local_storage_entry =
+ upgrade_reader.GetLocalStorageEntry(0);
+ ValidateLocalStorageEntry(local_storage_entry, "key-1", "value-1");
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(1));
+}
+
+TEST(StorageUpgradeTest, UpgradeFullData) {
+ std::string file_contents;
+ ReadFileToString("cobalt/storage/upgrade/testdata/full_data_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // 2 cookies.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 2);
+ const net::CanonicalCookie* cookie = upgrade_reader.GetCookie(0);
+ base::Time creation = base::Time::FromInternalValue(13119668760000000L);
+ base::Time expiration = base::Time::FromInternalValue(13120000000000000L);
+ ValidateCookie(cookie, "https://www.youtube.com/", "cookie_name",
+ "cookie_value", "cookie.domain", "cookie/path", creation,
+ expiration, true);
+ cookie = upgrade_reader.GetCookie(1);
+ creation = base::Time::FromInternalValue(13109668760000000L);
+ expiration = base::Time::FromInternalValue(13110000000000000L);
+ ValidateCookie(cookie, "https://www.somewhere.com/", "cookie_name_2",
+ "cookie_value_2", "cookie.domain2", "cookie/path/2", creation,
+ expiration, true);
+ EXPECT_FALSE(upgrade_reader.GetCookie(2));
+
+ // 2 local storage entries.
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 2);
+ const UpgradeReader::LocalStorageEntry* local_storage_entry =
+ upgrade_reader.GetLocalStorageEntry(0);
+ ValidateLocalStorageEntry(local_storage_entry, "key-1", "value-1");
+ local_storage_entry = upgrade_reader.GetLocalStorageEntry(1);
+ ValidateLocalStorageEntry(local_storage_entry, "key-2", "value-2");
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(2));
+}
+
+TEST(StorageUpgradeTest, UpgradeMissingFields) {
+ std::string file_contents;
+ ReadFileToString("cobalt/storage/upgrade/testdata/missing_fields_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // 1 cookie with missing fields, 2 local storage entries with missing fields,
+ // 1 valid local storage entry.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 0);
+ EXPECT_FALSE(upgrade_reader.GetCookie(0));
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 1);
+ const UpgradeReader::LocalStorageEntry* local_storage_entry =
+ upgrade_reader.GetLocalStorageEntry(0);
+ ValidateLocalStorageEntry(local_storage_entry, "key-3", "value-3");
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(1));
+}
+
+TEST(StorageUpgradeTest, UpgradeMalformed) {
+ std::string file_contents;
+ ReadFileToString("cobalt/storage/upgrade/testdata/malformed_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // No cookies or local storage entries available in malformed data.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 0);
+ EXPECT_FALSE(upgrade_reader.GetCookie(0));
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 0);
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(0));
+}
+
+TEST(StorageUpgradeTest, UpgradeExtraFields) {
+ std::string file_contents;
+ ReadFileToString("cobalt/storage/upgrade/testdata/extra_fields_v1.json",
+ &file_contents);
+ UpgradeReader upgrade_reader(
+ file_contents.c_str() + kHeaderSize,
+ static_cast<int>(file_contents.length()) - kHeaderSize);
+
+ // 1 cookie, extra fields should be ignored.
+ EXPECT_EQ(upgrade_reader.GetNumCookies(), 1);
+ const net::CanonicalCookie* cookie = upgrade_reader.GetCookie(0);
+ ValidateCookie(cookie, "https://www.youtube.com/", "cookie_name",
+ "cookie_value");
+ EXPECT_FALSE(upgrade_reader.GetCookie(1));
+
+ // 2 local storage entries, extra fields should be ignored.
+ EXPECT_EQ(upgrade_reader.GetNumLocalStorageEntries(), 2);
+ const UpgradeReader::LocalStorageEntry* local_storage_entry =
+ upgrade_reader.GetLocalStorageEntry(0);
+ ValidateLocalStorageEntry(local_storage_entry, "key-1", "value-1");
+ local_storage_entry = upgrade_reader.GetLocalStorageEntry(1);
+ ValidateLocalStorageEntry(local_storage_entry, "key-2", "value-2");
+ EXPECT_FALSE(upgrade_reader.GetLocalStorageEntry(2));
+}
+
+} // namespace upgrade
+} // namespace storage
+} // namespace cobalt
diff --git a/src/cobalt/storage/upgrade/testdata/extra_fields_v1.json b/src/cobalt/storage/upgrade/testdata/extra_fields_v1.json
new file mode 100644
index 0000000..7709e50
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/extra_fields_v1.json
@@ -0,0 +1,22 @@
+UPG0
+{
+ "cookies": [
+ {
+ "url": "https://www.youtube.com",
+ "name": "cookie_name",
+ "value": "cookie_value",
+ "unexpected": "dummy_value"
+ }
+ ],
+ "local_storage_entries": [
+ {
+ "key": "key-1",
+ "value": "value-1",
+ "unexpected": "dummy_value"
+ },
+ {
+ "key": "key-2",
+ "value": "value-2"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/testdata/full_data_v1.json b/src/cobalt/storage/upgrade/testdata/full_data_v1.json
new file mode 100644
index 0000000..c5a039f
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/full_data_v1.json
@@ -0,0 +1,37 @@
+UPG0
+{
+ "cookies": [
+ {
+ "url": "https://www.youtube.com",
+ "name": "cookie_name",
+ "value": "cookie_value",
+ "domain": "cookie.domain",
+ "path": "cookie/path",
+ "creation": "13119668760000000",
+ "expiration": "13120000000000000",
+ "last_acess": "13119668770000000",
+ "http_only": true
+ },
+ {
+ "url": "http://www.somewhere.com",
+ "name": "cookie_name_2",
+ "value": "cookie_value_2",
+ "domain": "cookie.domain2",
+ "path": "cookie/path/2",
+ "creation": "13109668760000000",
+ "expiration": "13110000000000000",
+ "last_acess": "13109668770000000",
+ "http_only": true
+ }
+ ],
+ "local_storage_entries": [
+ {
+ "key": "key-1",
+ "value": "value-1"
+ },
+ {
+ "key": "key-2",
+ "value": "value-2"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/testdata/malformed_v1.json b/src/cobalt/storage/upgrade/testdata/malformed_v1.json
new file mode 100644
index 0000000..6d87bf0
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/malformed_v1.json
@@ -0,0 +1,36 @@
+UPG0
+{
+ "cookies": [
+ {
+ "url": "https://www.youtube.com",
+ "name": "cookie_name",
+ "value": "cookie_value"
+ "domain": "cookie.domain",
+ "path": "cookie/path",
+ "creation": "13119668760000000",
+ "expiration": "13120000000000000",
+ "last_acess": "13119668770000000",
+ "http_only": true
+ },
+ {
+ "url": "http://www.somewhere.com",
+ "name": "cookie_name_2",
+ "value": "cookie_value_2",
+ "domain": "cookie.domain2",
+ "path": "cookie/path/2",
+ "creation": "13109668760000000",
+ "expiration": "13110000000000000",
+ "last_acess": "13109668770000000",
+ "http_only": true
+ ],
+ "local_storage_entries":
+ {
+ "key": "key-1",
+ "value": "value-1"
+ },
+ {
+ "key": "key-2",
+ "value": "value-2"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/testdata/minimal_cookie_v1.json b/src/cobalt/storage/upgrade/testdata/minimal_cookie_v1.json
new file mode 100644
index 0000000..7dbd209
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/minimal_cookie_v1.json
@@ -0,0 +1,10 @@
+UPG0
+{
+ "cookies": [
+ {
+ "url": "https://www.youtube.com",
+ "name": "cookie_name",
+ "value": "cookie_value"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/testdata/minimal_local_storage_entry_v1.json b/src/cobalt/storage/upgrade/testdata/minimal_local_storage_entry_v1.json
new file mode 100644
index 0000000..555e62d
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/minimal_local_storage_entry_v1.json
@@ -0,0 +1,9 @@
+UPG0
+{
+ "local_storage_entries": [
+ {
+ "key": "key-1",
+ "value": "value-1"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/testdata/missing_fields_v1.json b/src/cobalt/storage/upgrade/testdata/missing_fields_v1.json
new file mode 100644
index 0000000..52a2a4e
--- /dev/null
+++ b/src/cobalt/storage/upgrade/testdata/missing_fields_v1.json
@@ -0,0 +1,21 @@
+UPG0
+{
+ "cookies": [
+ {
+ "name": "cookie_name",
+ "value": "cookie_value"
+ }
+ ],
+ "local_storage_entries": [
+ {
+ "key": "key-1"
+ },
+ {
+ "value": "value-2"
+ },
+ {
+ "key": "key-3",
+ "value": "value-3"
+ }
+ ]
+}
diff --git a/src/cobalt/storage/upgrade/upgrade_reader.cc b/src/cobalt/storage/upgrade/upgrade_reader.cc
new file mode 100644
index 0000000..35fdb53
--- /dev/null
+++ b/src/cobalt/storage/upgrade/upgrade_reader.cc
@@ -0,0 +1,227 @@
+/*
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "cobalt/storage/upgrade/upgrade_reader.h"
+
+#include <string>
+
+#include "base/json/json_reader.h"
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/string_number_conversions.h"
+#include "googleurl/src/gurl.h"
+
+namespace cobalt {
+namespace storage {
+namespace upgrade {
+
+namespace {
+
+// Used as a sanity check.
+const int kMaxUpgradeDataSize = 10 * 1024 * 1024;
+
+// Deseralize a time value encoded as a possibly empty ASCII decimal string.
+base::Time StringToTime(const std::string& time_as_string) {
+ if (!time_as_string.empty()) {
+ int64 time_as_int64;
+ if (base::StringToInt64(time_as_string, &time_as_int64)) {
+ return base::Time::FromInternalValue(time_as_int64);
+ }
+ }
+
+ // Default value.
+ return base::Time::Now();
+}
+
+base::Time GetSerializedTime(const base::DictionaryValue* dictionary,
+ const std::string& field_name) {
+ std::string time_string;
+ dictionary->GetString(field_name, &time_string);
+ return StringToTime(time_string);
+}
+
+// Get a list contained in a dictionary.
+const base::ListValue* GetList(const base::DictionaryValue* dictionary,
+ const std::string& list_name) {
+ if (!dictionary) {
+ return NULL;
+ }
+
+ const base::ListValue* list = NULL;
+ if (!dictionary->GetList(list_name, &list)) {
+ return NULL;
+ }
+
+ return list;
+}
+
+// Get the size of a list contained in a dictionary.
+int GetListSize(const base::DictionaryValue* dictionary,
+ const std::string& list_name) {
+ const base::ListValue* list = GetList(dictionary, list_name);
+ if (!list) {
+ return 0;
+ }
+
+ return static_cast<int>(list->GetSize());
+}
+
+// Get a dictionary in a list contained in a dictionary.
+const base::DictionaryValue* GetListItem(
+ const base::DictionaryValue* dictionary, const std::string& list_name,
+ int index) {
+ const base::ListValue* list = GetList(dictionary, list_name);
+ if (!list) {
+ return NULL;
+ }
+
+ if (index < 0 || index >= static_cast<int>(list->GetSize())) {
+ return NULL;
+ }
+
+ const base::DictionaryValue* list_item = NULL;
+ if (!list->GetDictionary(static_cast<size_t>(index), &list_item)) {
+ return NULL;
+ }
+
+ return list_item;
+}
+
+} // namespace
+
+UpgradeReader::UpgradeReader(const char* data, int size) {
+ DCHECK(data);
+ DCHECK_GT(size, 0);
+ DCHECK_LE(size, kMaxUpgradeDataSize);
+
+ base::JSONReader json_reader;
+ scoped_ptr<base::Value> parsed(
+ json_reader.ReadToValue(std::string(data, static_cast<size_t>(size))));
+ base::DictionaryValue* valid_dictionary = NULL;
+ if (parsed) {
+ parsed->GetAsDictionary(&valid_dictionary);
+ }
+
+ if (valid_dictionary) {
+ ProcessValues(valid_dictionary);
+ } else {
+ DLOG(ERROR) << "Cannot parse upgrade save data: "
+ << base::JSONReader::ErrorCodeToString(
+ json_reader.error_code());
+ }
+}
+
+int UpgradeReader::GetNumCookies() const {
+ return static_cast<int>(cookies_.size());
+}
+
+int UpgradeReader::GetNumLocalStorageEntries() const {
+ return static_cast<int>(local_storage_entries_.size());
+}
+
+const net::CanonicalCookie* UpgradeReader::GetCookie(int index) const {
+ if (index >= 0 && index < static_cast<int>(cookies_.size())) {
+ return &cookies_[static_cast<size_t>(index)];
+ } else {
+ return static_cast<const net::CanonicalCookie*>(NULL);
+ }
+}
+
+void UpgradeReader::AddCookieIfValid(const base::DictionaryValue* cookie) {
+ DCHECK(cookie);
+
+ // Required attributes.
+ std::string url;
+ std::string name;
+ std::string value;
+ cookie->GetString("url", &url);
+ cookie->GetString("name", &name);
+ cookie->GetString("value", &value);
+ if (url.empty() || name.empty() || value.empty()) {
+ return;
+ }
+
+ // Optional attributes with default values.
+ const GURL gurl(url);
+ const std::string host = gurl.host();
+ std::string domain = host.empty() ? "" : host.substr(host.find("."));
+ cookie->GetString("domain", &domain);
+ std::string path = "/";
+ cookie->GetString("path", &path);
+ base::Time creation = GetSerializedTime(cookie, "creation");
+ base::Time expiration = GetSerializedTime(cookie, "expiration");
+ base::Time last_access = GetSerializedTime(cookie, "last_access");
+ bool http_only = false;
+ cookie->GetBoolean("http_only", &http_only);
+
+ // Attributes not defined in upgrade data.
+ const std::string mac_key;
+ const std::string mac_algorithm;
+ const bool secure = true;
+
+ cookies_.push_back(net::CanonicalCookie(
+ gurl, name, value, domain, path, mac_key, mac_algorithm, creation,
+ expiration, last_access, secure, http_only));
+}
+
+const UpgradeReader::LocalStorageEntry* UpgradeReader::GetLocalStorageEntry(
+ int index) const {
+ if (index >= 0 && index < static_cast<int>(local_storage_entries_.size())) {
+ return &local_storage_entries_[static_cast<size_t>(index)];
+ } else {
+ return static_cast<const LocalStorageEntry*>(NULL);
+ }
+}
+
+void UpgradeReader::AddLocalStorageEntryIfValid(
+ const base::DictionaryValue* local_storage_entry) {
+ DCHECK(local_storage_entry);
+ std::string key;
+ std::string value;
+ if (!local_storage_entry->GetString("key", &key) ||
+ !local_storage_entry->GetString("value", &value) || key.empty() ||
+ value.empty()) {
+ return;
+ }
+
+ local_storage_entries_.push_back(LocalStorageEntry(key, value));
+}
+
+void UpgradeReader::ProcessValues(const base::DictionaryValue* dictionary) {
+ DCHECK(dictionary);
+
+ const int num_cookies = GetListSize(dictionary, "cookies");
+ for (int n = 0; n < num_cookies; n++) {
+ const base::DictionaryValue* cookie = GetListItem(dictionary, "cookies", n);
+ if (cookie) {
+ AddCookieIfValid(cookie);
+ }
+ }
+
+ const int num_local_storage_entries =
+ GetListSize(dictionary, "local_storage_entries");
+ for (int n = 0; n < num_local_storage_entries; n++) {
+ const base::DictionaryValue* local_storage_entry =
+ GetListItem(dictionary, "local_storage_entries", n);
+ if (local_storage_entry) {
+ AddLocalStorageEntryIfValid(local_storage_entry);
+ }
+ }
+}
+
+} // namespace upgrade
+} // namespace storage
+} // namespace cobalt
diff --git a/src/cobalt/storage/upgrade/upgrade_reader.h b/src/cobalt/storage/upgrade/upgrade_reader.h
new file mode 100644
index 0000000..00d1462
--- /dev/null
+++ b/src/cobalt/storage/upgrade/upgrade_reader.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef COBALT_STORAGE_UPGRADE_UPGRADE_READER_H_
+#define COBALT_STORAGE_UPGRADE_UPGRADE_READER_H_
+
+#include <string>
+#include <vector>
+
+#include "base/values.h"
+#include "net/cookies/canonical_cookie.h"
+
+namespace cobalt {
+namespace storage {
+namespace upgrade {
+
+// Class description goes here.
+class UpgradeReader {
+ public:
+ struct LocalStorageEntry {
+ LocalStorageEntry(const std::string& key, const std::string& value)
+ : key(key), value(value) {}
+ std::string key;
+ std::string value;
+ };
+
+ // Parse |data| in JSON-encoded legacy save data upgrade format.
+ UpgradeReader(const char* data, int size);
+
+ // The number of valid cookies found in the parsed data. May be zero.
+ int GetNumCookies() const;
+
+ // The number of valid local storage entries found in the parsed data. May be
+ // zero.
+ int GetNumLocalStorageEntries() const;
+
+ // Get one of the cookies found in the parsed data, specified by |index|
+ // between 0 and |GetNumCookies| - 1. If the cookie doesn't exist, return
+ // NULL.
+ const net::CanonicalCookie* GetCookie(int index) const;
+
+ // Get one of the local storage entries found in the parsed data, specified
+ // by |index| between 0 and |GetNumLocalStorageEntries| - 1. If the local
+ // storage entry doesn't exist, return NULL.
+ const LocalStorageEntry* GetLocalStorageEntry(int index) const;
+
+ private:
+ // Process the parsed values and populate |cookies_| and
+ // |local_storage_entries_|.
+ void ProcessValues(const base::DictionaryValue* dictionary);
+
+ // Add an entry to |cookies_| if |cookie| encodes a valid cookie.
+ void AddCookieIfValid(const base::DictionaryValue* cookie);
+
+ // Add an entry to |local_storage_entries_| if |local_storage_entry| encodes a
+ // valid local storage entry.
+ void AddLocalStorageEntryIfValid(
+ const base::DictionaryValue* local_storage_entry);
+
+ std::vector<net::CanonicalCookie> cookies_;
+ std::vector<LocalStorageEntry> local_storage_entries_;
+};
+
+} // namespace upgrade
+} // namespace storage
+} // namespace cobalt
+
+#endif // COBALT_STORAGE_UPGRADE_UPGRADE_READER_H_
diff --git a/src/cobalt/web_animations/animation.cc b/src/cobalt/web_animations/animation.cc
index 0c8a578..16c7d30 100644
--- a/src/cobalt/web_animations/animation.cc
+++ b/src/cobalt/web_animations/animation.cc
@@ -65,14 +65,18 @@
UpdatePendingTasks();
}
-// https://www.w3.org/TR/2015/WD-web-animations-1-20150707/#the-current-time-of-an-animation
-base::optional<double> Animation::current_time() const {
+base::optional<base::TimeDelta> Animation::current_time_as_time_delta() const {
if (!timeline_) {
return base::nullopt;
}
- base::optional<base::TimeDelta> current_time =
- data_.ComputeLocalTimeFromTimelineTime(timeline_->current_time());
+ return data_.ComputeLocalTimeFromTimelineTime(
+ timeline_->current_time_as_time_delta());
+}
+
+// https://www.w3.org/TR/2015/WD-web-animations-1-20150707/#the-current-time-of-an-animation
+base::optional<double> Animation::current_time() const {
+ base::optional<base::TimeDelta> current_time = current_time_as_time_delta();
return current_time ? base::optional<double>(current_time->InMillisecondsF())
: base::nullopt;
}
@@ -86,16 +90,27 @@
// https://www.w3.org/TR/2015/WD-web-animations-1-20150707/#the-current-time-of-an-animation
base::optional<base::TimeDelta>
Animation::Data::ComputeLocalTimeFromTimelineTime(
- const base::optional<double>& timeline_time_in_milliseconds) const {
+ const base::optional<base::TimeDelta>& timeline_time) const {
// TODO: Take into account the hold time.
- if (!timeline_time_in_milliseconds || !start_time_) {
+ if (!timeline_time || !start_time_) {
return base::nullopt;
}
- return ScaleTime(
- base::TimeDelta::FromMillisecondsD(*timeline_time_in_milliseconds) -
- *start_time_,
- playback_rate_);
+ return ScaleTime(*timeline_time - *start_time_, playback_rate_);
+}
+
+base::optional<base::TimeDelta>
+Animation::Data::ComputeTimelineTimeFromLocalTime(
+ const base::optional<base::TimeDelta>& local_time) const {
+ if (!start_time_ || !local_time) {
+ return base::nullopt;
+ }
+
+ if (local_time == base::TimeDelta::Max()) {
+ return base::TimeDelta::Max();
+ }
+
+ return ScaleTime(*local_time, 1.0 / playback_rate_) + *start_time_;
}
// https://www.w3.org/TR/2015/WD-web-animations-1-20150707/#setting-the-current-time-of-an-animation
@@ -116,35 +131,29 @@
}
void Animation::UpdatePendingTasks() {
- base::optional<double> local_time_in_ms = current_time();
+ if (!effect_) {
+ return;
+ }
- if (!local_time_in_ms) {
- // If the local time is unresolved, then we cannot know when we will enter
- // the "after phase".
- on_enter_after_phase_.reset();
+ base::TimeDelta end_time_local =
+ effect_->timing()->data().time_until_after_phase(base::TimeDelta());
+
+ base::optional<base::TimeDelta> end_time_timeline =
+ data_.ComputeTimelineTimeFromLocalTime(end_time_local);
+
+ // If the local time is unresolved, then we cannot know when we will enter
+ // the "after phase".
+ if (end_time_timeline &&
+ *end_time_timeline >= *timeline_->current_time_as_time_delta() &&
+ *end_time_timeline != base::TimeDelta::Max()) {
+ // Setup the "upon entering the after phase" event to fire at the
+ // specified timeline time.
+ on_enter_after_phase_ = timeline_->QueueTask(
+ *end_time_timeline,
+ base::Bind(&Animation::OnEnterAfterPhase, base::Unretained(this)));
} else {
- if (!effect_) {
- return;
- }
-
- base::TimeDelta local_time =
- base::TimeDelta::FromMillisecondsD(*local_time_in_ms);
-
- base::TimeDelta time_to_after_phase =
- effect_->timing()->data().time_until_after_phase(local_time);
- if (time_to_after_phase >= base::TimeDelta() &&
- time_to_after_phase != base::TimeDelta::Max()) {
- // Setup the "upon entering the after phase" event to fire at the
- // specified timeline time.
- if (timeline_) {
- on_enter_after_phase_ = timeline_->QueueTask(
- *data_.start_time() + time_to_after_phase,
- base::Bind(&Animation::OnEnterAfterPhase, base::Unretained(this)));
- }
- } else {
- // We are already in the after phase, so clear this task.
- on_enter_after_phase_.reset();
- }
+ // We are already in the after phase, so clear this task.
+ on_enter_after_phase_.reset();
}
}
diff --git a/src/cobalt/web_animations/animation.h b/src/cobalt/web_animations/animation.h
index f7eb113..3240dbe 100644
--- a/src/cobalt/web_animations/animation.h
+++ b/src/cobalt/web_animations/animation.h
@@ -69,7 +69,9 @@
// Converts the animation's timeline's time into the animation's local
// time, which takes into account this animation's start_time().
base::optional<base::TimeDelta> ComputeLocalTimeFromTimelineTime(
- const base::optional<double>& timeline_time_in_milliseconds) const;
+ const base::optional<base::TimeDelta>& timeline_time) const;
+ base::optional<base::TimeDelta> ComputeTimelineTimeFromLocalTime(
+ const base::optional<base::TimeDelta>& local_time) const;
private:
base::optional<base::TimeDelta> start_time_;
@@ -128,6 +130,8 @@
}
base::optional<double> current_time() const;
+ base::optional<base::TimeDelta> current_time_as_time_delta() const;
+
void set_current_time(const base::optional<double>& current_time);
double playback_rate() const { return data_.playback_rate(); }
diff --git a/src/cobalt/web_animations/animation_test.cc b/src/cobalt/web_animations/animation_test.cc
index f07a57a..c4bba2b 100644
--- a/src/cobalt/web_animations/animation_test.cc
+++ b/src/cobalt/web_animations/animation_test.cc
@@ -32,7 +32,8 @@
TEST(AnimationDataTests, LocalTimeIsUnresolvedIfStartTimeIsUnresolved) {
Animation::Data animation;
base::optional<base::TimeDelta> local_time =
- animation.ComputeLocalTimeFromTimelineTime(3000.0);
+ animation.ComputeLocalTimeFromTimelineTime(
+ base::TimeDelta::FromMilliseconds(3000));
EXPECT_FALSE(local_time);
}
@@ -41,7 +42,8 @@
Animation::Data animation;
animation.set_start_time(base::TimeDelta::FromSeconds(2));
base::optional<base::TimeDelta> local_time =
- animation.ComputeLocalTimeFromTimelineTime(3000.0);
+ animation.ComputeLocalTimeFromTimelineTime(
+ base::TimeDelta::FromMilliseconds(3000));
ASSERT_TRUE(local_time);
EXPECT_EQ(1.0, local_time->InSecondsF());
@@ -52,7 +54,8 @@
animation.set_start_time(base::TimeDelta::FromSeconds(2));
animation.set_playback_rate(2.0);
base::optional<base::TimeDelta> local_time =
- animation.ComputeLocalTimeFromTimelineTime(3000.0);
+ animation.ComputeLocalTimeFromTimelineTime(
+ base::TimeDelta::FromMilliseconds(3000));
ASSERT_TRUE(local_time);
EXPECT_EQ(2.0, local_time->InSecondsF());
diff --git a/src/cobalt/web_animations/animation_timeline.cc b/src/cobalt/web_animations/animation_timeline.cc
index c006496..04adc73 100644
--- a/src/cobalt/web_animations/animation_timeline.cc
+++ b/src/cobalt/web_animations/animation_timeline.cc
@@ -41,7 +41,7 @@
// Returns the current time for the document. This is based off of the last
// sampled time.
// https://www.w3.org/TR/web-animations-1/#the-animationtimeline-interface
-base::optional<double> AnimationTimeline::current_time() {
+base::optional<double> AnimationTimeline::current_time() const {
if (sampled_clock_time_) {
return sampled_clock_time_->InMillisecondsF();
} else {
diff --git a/src/cobalt/web_animations/animation_timeline.h b/src/cobalt/web_animations/animation_timeline.h
index 57e0f57..3225f6f 100644
--- a/src/cobalt/web_animations/animation_timeline.h
+++ b/src/cobalt/web_animations/animation_timeline.h
@@ -39,10 +39,16 @@
// Returns the current sample time of the timeline, in milliseconds. If the
// returned optional is not engaged, this timeline is 'unresolved'.
- base::optional<double> current_time();
+ base::optional<double> current_time() const;
// Custom, not in any spec.
+ // Helper class to return the current time as a base::TimeDelta instead of a
+ // double.
+ const base::optional<base::TimeDelta>& current_time_as_time_delta() const {
+ return sampled_clock_time_;
+ }
+
// The owner of this timeline should call Sample() each time a new sample
// time is ready.
void Sample();
diff --git a/src/cobalt/web_animations/baked_animation_set.cc b/src/cobalt/web_animations/baked_animation_set.cc
index 63fce67..02d5f28 100644
--- a/src/cobalt/web_animations/baked_animation_set.cc
+++ b/src/cobalt/web_animations/baked_animation_set.cc
@@ -16,6 +16,8 @@
#include "cobalt/web_animations/baked_animation_set.h"
+#include <algorithm>
+
#include "cobalt/web_animations/animation_effect_read_only.h"
namespace cobalt {
@@ -33,8 +35,7 @@
cssom::CSSComputedStyleData* in_out_style) const {
// Get the animation's local time from the Animation::Data object.
base::optional<base::TimeDelta> local_time =
- animation_data_.ComputeLocalTimeFromTimelineTime(
- timeline_time.InMillisecondsF());
+ animation_data_.ComputeLocalTimeFromTimelineTime(timeline_time);
// Obtain the iteration progress from the AnimationEffectTimingReadOnly::Data
// object.
@@ -52,6 +53,13 @@
*iteration_progress.current_iteration);
}
+base::TimeDelta BakedAnimation::end_time() const {
+ base::TimeDelta end_time_local =
+ effect_timing_data_.time_until_after_phase(base::TimeDelta());
+
+ return *animation_data_.ComputeTimelineTimeFromLocalTime(end_time_local);
+}
+
BakedAnimationSet::BakedAnimationSet(const AnimationSet& animation_set) {
for (AnimationSet::InternalSet::const_iterator iter =
animation_set.animations().begin();
@@ -77,5 +85,15 @@
}
}
+base::TimeDelta BakedAnimationSet::end_time() const {
+ base::TimeDelta max_end_time = -base::TimeDelta::Max();
+ for (AnimationList::const_iterator iter = animations_.begin();
+ iter != animations_.end(); ++iter) {
+ base::TimeDelta animation_end_time = (*iter)->end_time();
+ max_end_time = std::max(animation_end_time, max_end_time);
+ }
+ return max_end_time;
+}
+
} // namespace web_animations
} // namespace cobalt
diff --git a/src/cobalt/web_animations/baked_animation_set.h b/src/cobalt/web_animations/baked_animation_set.h
index 4bdb083..b414aeb 100644
--- a/src/cobalt/web_animations/baked_animation_set.h
+++ b/src/cobalt/web_animations/baked_animation_set.h
@@ -49,6 +49,10 @@
void Apply(const base::TimeDelta& timeline_time,
cssom::CSSComputedStyleData* in_out_style) const;
+ // Returns the timeline time at which this animation will end. If the
+ // animation has no ending, base::TimeDelta::Max() will be returned.
+ base::TimeDelta end_time() const;
+
private:
const Animation::Data animation_data_;
const AnimationEffectTimingReadOnly::Data effect_timing_data_;
@@ -67,6 +71,10 @@
void Apply(const base::TimeDelta& timeline_time,
cssom::CSSComputedStyleData* in_out_style) const;
+ // Returns the timeline time at which point all animations in the set are
+ // ended, or base::TimeDelta::Max() if at leats one animation will never end.
+ base::TimeDelta end_time() const;
+
private:
typedef ScopedVector<BakedAnimation> AnimationList;
AnimationList animations_;
diff --git a/src/media/base/sbplayer_pipeline.cc b/src/media/base/sbplayer_pipeline.cc
index 971f574..9c09927 100644
--- a/src/media/base/sbplayer_pipeline.cc
+++ b/src/media/base/sbplayer_pipeline.cc
@@ -111,6 +111,18 @@
}
}
+// Used to post parameters to SbPlayerPipeline::StartTask() as the number of
+// parameters exceed what base::Bind() can support.
+struct StartTaskParameters {
+ scoped_refptr<Demuxer> demuxer;
+ SetDecryptorReadyCB decryptor_ready_cb;
+ PipelineStatusCB ended_cb;
+ PipelineStatusCB error_cb;
+ PipelineStatusCB seek_cb;
+ Pipeline::BufferingStateCB buffering_state_cb;
+ base::Closure duration_change_cb;
+};
+
class SetBoundsCaller : public base::RefCountedThreadSafe<SetBoundsCaller> {
public:
SetBoundsCaller() : player_(kSbPlayerInvalid) {}
@@ -180,7 +192,10 @@
typedef std::map<const void*, std::pair<scoped_refptr<DecoderBuffer>, int> >
DecodingBuffers;
- void StartTask();
+ void StartTask(const StartTaskParameters& parameters);
+ void SetVolumeTask(float volume);
+ void SetPlaybackRateTask(float volume);
+ void SetDurationTask(TimeDelta duration);
// DataSourceHost (by way of DemuxerHost) implementation.
void SetTotalBytes(int64 total_bytes) OVERRIDE;
@@ -222,20 +237,18 @@
void UpdateDecoderConfig(const scoped_refptr<DemuxerStream>& stream);
- // Message loop used to execute pipeline tasks.
+ // Message loop used to execute pipeline tasks. It is thread-safe.
scoped_refptr<base::MessageLoopProxy> message_loop_;
- // MediaLog to which to log events.
- scoped_refptr<MediaLog> media_log_;
-
- // Lock used to serialize access for the following data members.
- mutable base::Lock lock_;
-
- // The window this player associates with.
+ // The window this player associates with. It should only be assigned in the
+ // dtor and accesed once by SbPlayerCreate().
PipelineWindow window_;
- // Whether or not the pipeline is running.
- bool running_;
+ // The current ticket associated with the |player_|.
+ int ticket_;
+
+ // Lock used to serialize access for the following member variables.
+ mutable base::Lock lock_;
// Amount of available buffered data. Set by filters.
Ranges<int64> buffered_byte_ranges_;
@@ -261,12 +274,6 @@
// the filters.
float playback_rate_;
- // Status of the pipeline. Initialized to PIPELINE_OK which indicates that
- // the pipeline is operating correctly. Any other value indicates that the
- // pipeline is stopped or is stopping. Clients can call the Stop() method to
- // reset the pipeline state, and restore this to PIPELINE_OK.
- PipelineStatus status_;
-
// Whether the media contains rendered audio and video streams.
// TODO(fischman,scherkus): replace these with checks for
// {audio,video}_decoder_ once extraction of {Audio,Video}Decoder from the
@@ -274,15 +281,10 @@
bool has_audio_;
bool has_video_;
- int ticket_;
+ mutable PipelineStatistics statistics_;
- // The following data members are only accessed by tasks posted to
+ // The following member variables are only accessed by tasks posted to
// |message_loop_|.
- scoped_ptr<FilterCollection> filter_collection_;
-
- // Temporary callback used for Start() and Seek().
- PipelineStatusCB seek_cb_;
- SbMediaTime seek_time_;
// Temporary callback used for Stop().
base::Closure stop_cb_;
@@ -300,14 +302,20 @@
bool video_read_in_progress_;
TimeDelta duration_;
- mutable PipelineStatistics statistics_;
-
- SbPlayer player_;
-
DecodingBuffers decoding_buffers_;
-
scoped_refptr<SetBoundsCaller> set_bounds_caller_;
+ // The following member variables can be accessed from WMPI thread but all
+ // modifications to them happens on the pipeline thread. So any access of
+ // them from the WMPI thread and any modification to them on the pipeline
+ // thread has to guarded by lock. Access to them from the pipeline thread
+ // needn't to be guarded.
+
+ // Temporary callback used for Start() and Seek().
+ PipelineStatusCB seek_cb_;
+ SbMediaTime seek_time_;
+ SbPlayer player_;
+
DISALLOW_COPY_AND_ASSIGN(SbPlayerPipeline);
};
@@ -316,19 +324,19 @@
const scoped_refptr<base::MessageLoopProxy>& message_loop,
MediaLog* media_log)
: window_(window),
+ ticket_(SB_PLAYER_INITIAL_TICKET),
message_loop_(message_loop),
- media_log_(media_log),
total_bytes_(0),
natural_size_(0, 0),
volume_(1.f),
playback_rate_(0.f),
has_audio_(false),
has_video_(false),
- ticket_(SB_PLAYER_INITIAL_TICKET),
audio_read_in_progress_(false),
video_read_in_progress_(false),
- player_(kSbPlayerInvalid),
- set_bounds_caller_(new SetBoundsCaller) {}
+ set_bounds_caller_(new SetBoundsCaller),
+ seek_time_(0),
+ player_(kSbPlayerInvalid) {}
SbPlayerPipeline::~SbPlayerPipeline() {
DCHECK(player_ == kSbPlayerInvalid);
@@ -341,24 +349,19 @@
const PipelineStatusCB& seek_cb,
const BufferingStateCB& buffering_state_cb,
const base::Closure& duration_change_cb) {
- DCHECK(!filter_collection_);
DCHECK(filter_collection);
- // Assign the parameters here instead of posting it to StartTask() as the
- // number of parameters exceeds the maximum number of parameters that Bind
- // supports.
- filter_collection_ = filter_collection.Pass();
- decryptor_ready_cb_ = decryptor_ready_cb;
- ended_cb_ = ended_cb;
- error_cb_ = error_cb;
- seek_cb_ = seek_cb;
- buffering_state_cb_ = buffering_state_cb;
- duration_change_cb_ = duration_change_cb;
+ StartTaskParameters parameters;
+ parameters.demuxer = filter_collection->GetDemuxer();
+ parameters.decryptor_ready_cb = decryptor_ready_cb;
+ parameters.ended_cb = ended_cb;
+ parameters.error_cb = error_cb;
+ parameters.seek_cb = seek_cb;
+ parameters.buffering_state_cb = buffering_state_cb;
+ parameters.duration_change_cb = duration_change_cb;
- demuxer_ = filter_collection_->GetDemuxer();
-
- message_loop_->PostTask(FROM_HERE,
- base::Bind(&SbPlayerPipeline::StartTask, this));
+ message_loop_->PostTask(
+ FROM_HERE, base::Bind(&SbPlayerPipeline::StartTask, this, parameters));
}
void SbPlayerPipeline::Stop(const base::Closure& stop_cb) {
@@ -373,11 +376,17 @@
if (SbPlayerIsValid(player_)) {
set_bounds_caller_->SetPlayer(kSbPlayerInvalid);
+ SbPlayer player = player_;
+ {
+ base::AutoLock auto_lock(lock_);
+ player_ = kSbPlayerInvalid;
+ }
+
DLOG(INFO) << "Destroying SbPlayer.";
- SbPlayerDestroy(player_);
+ SbPlayerDestroy(player);
DLOG(INFO) << "SbPlayer destroyed.";
- player_ = kSbPlayerInvalid;
}
+
// When Stop() is in progress, we no longer need to call |error_cb_|.
error_cb_.Reset();
if (demuxer_) {
@@ -405,8 +414,11 @@
// Increase |ticket_| so all upcoming need data requests from the SbPlayer
// are ignored.
++ticket_;
- seek_cb_ = seek_cb;
- seek_time_ = TimeDeltaToSbMediaTime(time);
+ {
+ base::AutoLock auto_lock(lock_);
+ seek_cb_ = seek_cb;
+ seek_time_ = TimeDeltaToSbMediaTime(time);
+ }
demuxer_->Seek(time, BindToCurrentLoop(base::Bind(
&SbPlayerPipeline::OnDemuxerSeeked, this)));
}
@@ -432,9 +444,9 @@
base::AutoLock auto_lock(lock_);
playback_rate_ = playback_rate;
- if (SbPlayerIsValid(player_)) {
- SbPlayerSetPause(player_, playback_rate_ == 0.0);
- }
+ message_loop_->PostTask(
+ FROM_HERE,
+ base::Bind(&SbPlayerPipeline::SetPlaybackRateTask, this, playback_rate));
}
float SbPlayerPipeline::GetVolume() const {
@@ -448,9 +460,8 @@
base::AutoLock auto_lock(lock_);
volume_ = volume;
- if (SbPlayerIsValid(player_)) {
- // SbPlayerSetVolume(player_, volume_);
- }
+ message_loop_->PostTask(
+ FROM_HERE, base::Bind(&SbPlayerPipeline::SetVolumeTask, this, volume));
}
TimeDelta SbPlayerPipeline::GetMediaTime() const {
@@ -526,14 +537,50 @@
#endif // SB_IS(PLAYER_PUNCHED_OUT)
}
-void SbPlayerPipeline::StartTask() {
+void SbPlayerPipeline::StartTask(const StartTaskParameters& parameters) {
DCHECK(message_loop_->BelongsToCurrentThread());
+ DCHECK(!demuxer_);
+
+ demuxer_ = parameters.demuxer;
+ decryptor_ready_cb_ = parameters.decryptor_ready_cb;
+ ended_cb_ = parameters.ended_cb;
+ error_cb_ = parameters.error_cb;
+ {
+ base::AutoLock auto_lock(lock_);
+ seek_cb_ = parameters.seek_cb;
+ }
+ buffering_state_cb_ = parameters.buffering_state_cb;
+ duration_change_cb_ = parameters.duration_change_cb;
+
demuxer_->Initialize(
this, BindToCurrentLoop(
base::Bind(&SbPlayerPipeline::OnDemuxerInitialized, this)));
}
+void SbPlayerPipeline::SetVolumeTask(float volume) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+
+ if (SbPlayerIsValid(player_)) {
+ SbPlayerSetVolume(player_, volume_);
+ }
+}
+
+void SbPlayerPipeline::SetPlaybackRateTask(float volume) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+
+ if (SbPlayerIsValid(player_)) {
+ SbPlayerSetPause(player_, playback_rate_ == 0.0);
+ }
+}
+
+void SbPlayerPipeline::SetDurationTask(TimeDelta duration) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+ if (!duration_change_cb_.is_null()) {
+ duration_change_cb_.Run();
+ }
+}
+
void SbPlayerPipeline::SetTotalBytes(int64 total_bytes) {
base::AutoLock auto_lock(lock_);
total_bytes_ = total_bytes;
@@ -542,11 +589,21 @@
void SbPlayerPipeline::SetDuration(TimeDelta duration) {
base::AutoLock auto_lock(lock_);
duration_ = duration;
- duration_change_cb_.Run();
+ message_loop_->PostTask(
+ FROM_HERE,
+ base::Bind(&SbPlayerPipeline::SetDurationTask, this, duration));
}
void SbPlayerPipeline::OnDemuxerError(PipelineStatus error) {
- NOTIMPLEMENTED();
+ if (!message_loop_->BelongsToCurrentThread()) {
+ message_loop_->PostTask(
+ FROM_HERE, base::Bind(&SbPlayerPipeline::OnDemuxerError, this, error));
+ return;
+ }
+
+ if (error != PIPELINE_OK && !error_cb_.is_null()) {
+ base::ResetAndReturn(&error_cb_).Run(error);
+ }
}
void SbPlayerPipeline::AddBufferedByteRange(int64 start, int64 end) {
@@ -562,6 +619,8 @@
}
void SbPlayerPipeline::CreatePlayer(SbDrmSystem drm_system) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+
const AudioDecoderConfig& audio_config =
demuxer_->GetStream(DemuxerStream::AUDIO)->audio_decoder_config();
SbMediaAudioHeader audio_header;
@@ -573,14 +632,23 @@
audio_header.block_alignment = 4;
audio_header.bits_per_sample = audio_config.bits_per_channel();
audio_header.audio_specific_config_size = 0;
- player_ =
- SbPlayerCreate(window_, kSbMediaVideoCodecH264, kSbMediaAudioCodecAac,
- SB_PLAYER_NO_DURATION, drm_system, &audio_header,
- DeallocateSampleCB, DecoderStatusCB, PlayerStatusCB, this);
+
+ {
+ base::AutoLock auto_lock(lock_);
+ player_ = SbPlayerCreate(window_, kSbMediaVideoCodecH264,
+ kSbMediaAudioCodecAac, SB_PLAYER_NO_DURATION,
+ drm_system, &audio_header, DeallocateSampleCB,
+ DecoderStatusCB, PlayerStatusCB, this);
+ SetPlaybackRateTask(playback_rate_);
+ SetVolumeTask(volume_);
+ }
+
set_bounds_caller_->SetPlayer(player_);
}
void SbPlayerPipeline::SetDecryptor(Decryptor* decryptor) {
+ DCHECK(message_loop_->BelongsToCurrentThread());
+
if (!decryptor) {
return;
}
@@ -599,28 +667,30 @@
return;
}
- base::AutoLock auto_lock(lock_);
- has_audio_ = demuxer_->GetStream(DemuxerStream::AUDIO) != NULL;
- DCHECK(has_audio_);
- has_video_ = demuxer_->GetStream(DemuxerStream::VIDEO) != NULL;
+ {
+ base::AutoLock auto_lock(lock_);
+ has_audio_ = demuxer_->GetStream(DemuxerStream::AUDIO) != NULL;
+ DCHECK(has_audio_);
+ has_video_ = demuxer_->GetStream(DemuxerStream::VIDEO) != NULL;
- buffering_state_cb_.Run(kHaveMetadata);
+ buffering_state_cb_.Run(kHaveMetadata);
- NOTIMPLEMENTED() << "Dynamically determinate codecs";
+ NOTIMPLEMENTED() << "Dynamically determinate codecs";
- const AudioDecoderConfig& audio_config =
- demuxer_->GetStream(DemuxerStream::AUDIO)->audio_decoder_config();
- bool is_encrypted = audio_config.is_encrypted();
- if (has_video_) {
- const VideoDecoderConfig& video_config =
- demuxer_->GetStream(DemuxerStream::VIDEO)->video_decoder_config();
- natural_size_ = video_config.natural_size();
- is_encrypted |= video_config.is_encrypted();
- }
- if (is_encrypted) {
- decryptor_ready_cb_.Run(
- BindToCurrentLoop(base::Bind(&SbPlayerPipeline::SetDecryptor, this)));
- return;
+ const AudioDecoderConfig& audio_config =
+ demuxer_->GetStream(DemuxerStream::AUDIO)->audio_decoder_config();
+ bool is_encrypted = audio_config.is_encrypted();
+ if (has_video_) {
+ const VideoDecoderConfig& video_config =
+ demuxer_->GetStream(DemuxerStream::VIDEO)->video_decoder_config();
+ natural_size_ = video_config.natural_size();
+ is_encrypted |= video_config.is_encrypted();
+ }
+ if (is_encrypted) {
+ decryptor_ready_cb_.Run(
+ BindToCurrentLoop(base::Bind(&SbPlayerPipeline::SetDecryptor, this)));
+ return;
+ }
}
CreatePlayer(kSbDrmSystemInvalid);
@@ -642,7 +712,12 @@
}
void SbPlayerPipeline::OnDemuxerStopped() {
- base::AutoLock auto_lock(lock_);
+ if (!message_loop_->BelongsToCurrentThread()) {
+ message_loop_->PostTask(
+ FROM_HERE, base::Bind(&SbPlayerPipeline::OnDemuxerStopped, this));
+ return;
+ }
+
base::ResetAndReturn(&stop_cb_).Run();
}
@@ -685,7 +760,12 @@
}
if (!seek_cb_.is_null()) {
buffering_state_cb_.Run(kPrerollCompleted);
- base::ResetAndReturn(&seek_cb_).Run(PIPELINE_OK);
+ PipelineStatusCB seek_cb;
+ {
+ base::AutoLock auto_lock(lock_);
+ seek_cb = base::ResetAndReturn(&seek_cb_);
+ }
+ seek_cb.Run(PIPELINE_OK);
}
return;
}
@@ -807,7 +887,12 @@
case kSbPlayerStatePresenting:
buffering_state_cb_.Run(kPrerollCompleted);
if (!seek_cb_.is_null()) {
- base::ResetAndReturn(&seek_cb_).Run(PIPELINE_OK);
+ PipelineStatusCB seek_cb;
+ {
+ base::AutoLock auto_lock(lock_);
+ seek_cb = base::ResetAndReturn(&seek_cb_);
+ }
+ seek_cb.Run(PIPELINE_OK);
}
break;
case kSbPlayerStateEndOfStream:
@@ -816,7 +901,9 @@
case kSbPlayerStateDestroyed:
break;
case kSbPlayerStateError:
- // TODO: Handle error
+ if (!error_cb_.is_null()) {
+ base::ResetAndReturn(&error_cb_).Run(PIPELINE_ERROR_DECODE);
+ }
break;
}
}
@@ -843,7 +930,6 @@
SbPlayerDecoderState state,
int ticket) {
SbPlayerPipeline* pipeline = reinterpret_cast<SbPlayerPipeline*>(context);
- DCHECK_EQ(pipeline->player_, player);
pipeline->message_loop_->PostTask(
FROM_HERE, base::Bind(&SbPlayerPipeline::OnDecoderStatus, pipeline, type,
state, ticket));
@@ -865,7 +951,6 @@
void* context,
const void* sample_buffer) {
SbPlayerPipeline* pipeline = reinterpret_cast<SbPlayerPipeline*>(context);
- DCHECK_EQ(pipeline->player_, player);
pipeline->message_loop_->PostTask(
FROM_HERE, base::Bind(&SbPlayerPipeline::OnDeallocateSample, pipeline,
sample_buffer));
diff --git a/src/net/socket/tcp_client_socket_starboard.cc b/src/net/socket/tcp_client_socket_starboard.cc
index 042acd7..0a915a5 100644
--- a/src/net/socket/tcp_client_socket_starboard.cc
+++ b/src/net/socket/tcp_client_socket_starboard.cc
@@ -132,6 +132,25 @@
net_log_.EndEvent(NetLog::TYPE_SOCKET_ALIVE);
}
+int TCPClientSocketStarboard::AdoptSocket(SbSocket socket) {
+ DCHECK(!SbSocketIsValid(socket_));
+
+ int error = SetupSocket(socket);
+ if (error) {
+ return error;
+ }
+
+ socket_ = socket;
+
+ // This is to make GetPeerAddress() work. It's up to the caller to ensure that
+ // |address_| contains a reasonable address for this socket. (i.e. at least
+ // match IPv4 vs IPv6!).
+ current_address_index_ = 0;
+ use_history_.set_was_ever_connected();
+
+ return OK;
+}
+
int TCPClientSocketStarboard::Connect(const CompletionCallback& callback) {
DCHECK(CalledOnValidThread());
diff --git a/src/net/udp/udp_listen_socket_unittest.cc b/src/net/udp/udp_listen_socket_unittest.cc
index 4f3a077..dddabd2 100644
--- a/src/net/udp/udp_listen_socket_unittest.cc
+++ b/src/net/udp/udp_listen_socket_unittest.cc
@@ -71,6 +71,7 @@
// Create another socket.
SocketDescriptor cs = SbSocketCreate(sb_address.type, kSbSocketProtocolUdp);
SbSocketSendTo(cs, data, size, &sb_address);
+ SbSocketDestroy(cs);
#else // defined(OS_STARBOARD)
// Get the watching address
SockaddrStorage bind_addr;
diff --git a/src/starboard/atomic.h b/src/starboard/atomic.h
index bdc3ad1..e47391f 100644
--- a/src/starboard/atomic.h
+++ b/src/starboard/atomic.h
@@ -41,23 +41,23 @@
// Always return the old value of "*ptr"
//
// This routine implies no memory barriers.
-SbAtomic32 SbAtomicNoBarrier_CompareAndSwap(volatile SbAtomic32* ptr,
- SbAtomic32 old_value,
- SbAtomic32 new_value);
+static SbAtomic32 SbAtomicNoBarrier_CompareAndSwap(volatile SbAtomic32* ptr,
+ SbAtomic32 old_value,
+ SbAtomic32 new_value);
// Atomically store new_value into *ptr, returning the previous value held in
// *ptr. This routine implies no memory barriers.
-SbAtomic32 SbAtomicNoBarrier_Exchange(volatile SbAtomic32* ptr,
- SbAtomic32 new_value);
+static SbAtomic32 SbAtomicNoBarrier_Exchange(volatile SbAtomic32* ptr,
+ SbAtomic32 new_value);
// Atomically increment *ptr by "increment". Returns the new value of
// *ptr with the increment applied. This routine implies no memory barriers.
-SbAtomic32 SbAtomicNoBarrier_Increment(volatile SbAtomic32* ptr,
- SbAtomic32 increment);
+static SbAtomic32 SbAtomicNoBarrier_Increment(volatile SbAtomic32* ptr,
+ SbAtomic32 increment);
// Same as SbAtomicNoBarrier_Increment, but with a memory barrier.
-SbAtomic32 SbAtomicBarrier_Increment(volatile SbAtomic32* ptr,
- SbAtomic32 increment);
+static SbAtomic32 SbAtomicBarrier_Increment(volatile SbAtomic32* ptr,
+ SbAtomic32 increment);
// These following lower-level operations are typically useful only to people
// implementing higher-level synchronization operations like spinlocks, mutexes,
@@ -68,54 +68,55 @@
// after the operation. "Barrier" operations have both "Acquire" and "Release"
// semantics. A SbAtomicMemoryBarrier() has "Barrier" semantics, but does no
// memory access.
-SbAtomic32 SbAtomicAcquire_CompareAndSwap(volatile SbAtomic32* ptr,
- SbAtomic32 old_value,
- SbAtomic32 new_value);
-SbAtomic32 SbAtomicRelease_CompareAndSwap(volatile SbAtomic32* ptr,
- SbAtomic32 old_value,
- SbAtomic32 new_value);
+static SbAtomic32 SbAtomicAcquire_CompareAndSwap(volatile SbAtomic32* ptr,
+ SbAtomic32 old_value,
+ SbAtomic32 new_value);
+static SbAtomic32 SbAtomicRelease_CompareAndSwap(volatile SbAtomic32* ptr,
+ SbAtomic32 old_value,
+ SbAtomic32 new_value);
-void SbAtomicMemoryBarrier();
-void SbAtomicNoBarrier_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
-void SbAtomicAcquire_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
-void SbAtomicRelease_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
+static void SbAtomicMemoryBarrier();
+static void SbAtomicNoBarrier_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
+static void SbAtomicAcquire_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
+static void SbAtomicRelease_Store(volatile SbAtomic32* ptr, SbAtomic32 value);
-SbAtomic32 SbAtomicNoBarrier_Load(volatile const SbAtomic32* ptr);
-SbAtomic32 SbAtomicAcquire_Load(volatile const SbAtomic32* ptr);
-SbAtomic32 SbAtomicRelease_Load(volatile const SbAtomic32* ptr);
+static SbAtomic32 SbAtomicNoBarrier_Load(volatile const SbAtomic32* ptr);
+static SbAtomic32 SbAtomicAcquire_Load(volatile const SbAtomic32* ptr);
+static SbAtomic32 SbAtomicRelease_Load(volatile const SbAtomic32* ptr);
// 64-bit atomic operations (only available on 64-bit processors).
#if SB_HAS(64_BIT_ATOMICS)
typedef int64_t SbAtomic64;
-SbAtomic64 SbAtomicNoBarrier_CompareAndSwap64(volatile SbAtomic64* ptr,
- SbAtomic64 old_value,
- SbAtomic64 new_value);
-SbAtomic64 SbAtomicNoBarrier_Exchange64(volatile SbAtomic64* ptr,
- SbAtomic64 new_value);
-SbAtomic64 SbAtomicNoBarrier_Increment64(volatile SbAtomic64* ptr,
- SbAtomic64 increment);
-SbAtomic64 SbAtomicBarrier_Increment64(volatile SbAtomic64* ptr,
- SbAtomic64 increment);
-SbAtomic64 SbAtomicAcquire_CompareAndSwap64(volatile SbAtomic64* ptr,
- SbAtomic64 old_value,
- SbAtomic64 new_value);
-SbAtomic64 SbAtomicRelease_CompareAndSwap64(volatile SbAtomic64* ptr,
- SbAtomic64 old_value,
- SbAtomic64 new_value);
-void SbAtomicNoBarrier_Store64(volatile SbAtomic64* ptr, SbAtomic64 value);
-void SbAtomicAcquire_Store64(volatile SbAtomic64* ptr, SbAtomic64 value);
-void SbAtomicRelease_Store64(volatile SbAtomic64* ptr, SbAtomic64 value);
-SbAtomic64 SbAtomicNoBarrier_Load64(volatile const SbAtomic64* ptr);
-SbAtomic64 SbAtomicAcquire_Load64(volatile const SbAtomic64* ptr);
-SbAtomic64 SbAtomicRelease_Load64(volatile const SbAtomic64* ptr);
+static SbAtomic64 SbAtomicNoBarrier_CompareAndSwap64(volatile SbAtomic64* ptr,
+ SbAtomic64 old_value,
+ SbAtomic64 new_value);
+static SbAtomic64 SbAtomicNoBarrier_Exchange64(volatile SbAtomic64* ptr,
+ SbAtomic64 new_value);
+static SbAtomic64 SbAtomicNoBarrier_Increment64(volatile SbAtomic64* ptr,
+ SbAtomic64 increment);
+static SbAtomic64 SbAtomicBarrier_Increment64(volatile SbAtomic64* ptr,
+ SbAtomic64 increment);
+static SbAtomic64 SbAtomicAcquire_CompareAndSwap64(volatile SbAtomic64* ptr,
+ SbAtomic64 old_value,
+ SbAtomic64 new_value);
+static SbAtomic64 SbAtomicRelease_CompareAndSwap64(volatile SbAtomic64* ptr,
+ SbAtomic64 old_value,
+ SbAtomic64 new_value);
+static void SbAtomicNoBarrier_Store64(volatile SbAtomic64* ptr,
+ SbAtomic64 value);
+static void SbAtomicAcquire_Store64(volatile SbAtomic64* ptr, SbAtomic64 value);
+static void SbAtomicRelease_Store64(volatile SbAtomic64* ptr, SbAtomic64 value);
+static SbAtomic64 SbAtomicNoBarrier_Load64(volatile const SbAtomic64* ptr);
+static SbAtomic64 SbAtomicAcquire_Load64(volatile const SbAtomic64* ptr);
+static SbAtomic64 SbAtomicRelease_Load64(volatile const SbAtomic64* ptr);
#endif // SB_HAS(64_BIT_ATOMICS)
// Pointer-sized atomic operations. Forwards to either 32-bit or 64-bit
// functions as appropriate.
typedef intptr_t SbAtomicPtr;
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicNoBarrier_CompareAndSwapPtr(volatile SbAtomicPtr* ptr,
SbAtomicPtr old_value,
SbAtomicPtr new_value) {
@@ -126,7 +127,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicNoBarrier_ExchangePtr(volatile SbAtomicPtr* ptr,
SbAtomicPtr new_value) {
#if SB_HAS(64_BIT_POINTERS)
@@ -136,7 +137,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicNoBarrier_IncrementPtr(volatile SbAtomicPtr* ptr,
SbAtomicPtr increment) {
#if SB_HAS(64_BIT_POINTERS)
@@ -146,7 +147,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicBarrier_IncrementPtr(volatile SbAtomicPtr* ptr, SbAtomicPtr increment) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicBarrier_Increment64(ptr, increment);
@@ -155,7 +156,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicAcquire_CompareAndSwapPtr(volatile SbAtomicPtr* ptr,
SbAtomicPtr old_value,
SbAtomicPtr new_value) {
@@ -166,7 +167,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicRelease_CompareAndSwapPtr(volatile SbAtomicPtr* ptr,
SbAtomicPtr old_value,
SbAtomicPtr new_value) {
@@ -177,8 +178,8 @@
#endif
}
-SB_C_FORCE_INLINE void SbAtomicNoBarrier_StorePtr(volatile SbAtomicPtr* ptr,
- SbAtomicPtr value) {
+static SB_C_FORCE_INLINE void
+SbAtomicNoBarrier_StorePtr(volatile SbAtomicPtr* ptr, SbAtomicPtr value) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicNoBarrier_Store64(ptr, value);
#else
@@ -186,8 +187,8 @@
#endif
}
-SB_C_FORCE_INLINE void SbAtomicAcquire_StorePtr(volatile SbAtomicPtr* ptr,
- SbAtomicPtr value) {
+static SB_C_FORCE_INLINE void
+SbAtomicAcquire_StorePtr(volatile SbAtomicPtr* ptr, SbAtomicPtr value) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicAcquire_Store64(ptr, value);
#else
@@ -195,8 +196,8 @@
#endif
}
-SB_C_FORCE_INLINE void SbAtomicRelease_StorePtr(volatile SbAtomicPtr* ptr,
- SbAtomicPtr value) {
+static SB_C_FORCE_INLINE void
+SbAtomicRelease_StorePtr(volatile SbAtomicPtr* ptr, SbAtomicPtr value) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicRelease_Store64(ptr, value);
#else
@@ -204,7 +205,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicNoBarrier_LoadPtr(volatile const SbAtomicPtr* ptr) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicNoBarrier_Load64(ptr);
@@ -213,7 +214,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicAcquire_LoadPtr(volatile const SbAtomicPtr* ptr) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicAcquire_Load64(ptr);
@@ -222,7 +223,7 @@
#endif
}
-SB_C_FORCE_INLINE SbAtomicPtr
+static SB_C_FORCE_INLINE SbAtomicPtr
SbAtomicRelease_LoadPtr(volatile const SbAtomicPtr* ptr) {
#if SB_HAS(64_BIT_POINTERS)
return SbAtomicRelease_Load64(ptr);
diff --git a/src/starboard/configuration.h b/src/starboard/configuration.h
index cff8fa8..e075b47 100644
--- a/src/starboard/configuration.h
+++ b/src/starboard/configuration.h
@@ -364,6 +364,10 @@
#error "Only one SB_HAS_{MANY, 1, 2, 4, 6}_CORE[S] can be defined per platform."
#endif
+#if !defined(SB_HAS_THREAD_PRIORITY_SUPPORT)
+#error "Your platform must define SB_HAS_THREAD_PRIORITY_SUPPORT."
+#endif
+
#if !defined(SB_PREFERRED_RGBA_BYTE_ORDER)
// Legal values for SB_PREFERRED_RGBA_BYTE_ORDER are defined in this file above
// as SB_PREFERRED_RGBA_BYTE_ORDER_*.
@@ -386,6 +390,10 @@
#error "Your platform must define SB_HAS_NV12_TEXTURE_SUPPORT."
#endif
+#if !defined(SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER)
+#error "Your platform must define SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER."
+#endif
+
// --- Derived Configuration -------------------------------------------------
// Whether the current platform is little endian.
diff --git a/src/starboard/file.h b/src/starboard/file.h
index d1ecc11..bda6f3a 100644
--- a/src/starboard/file.h
+++ b/src/starboard/file.h
@@ -178,6 +178,49 @@
// Converts an ISO fopen() mode string into flags that can be equivalently
// passed into SbFileOpen().
SB_EXPORT int SbFileModeStringToFlags(const char* mode);
+
+// Reads the given number of bytes (or until EOF is reached). Returns the number
+// of bytes read, or -1 on error. Note that this function makes a best effort to
+// read all data on all platforms, so it is not intended for stream oriented
+// files but instead for cases when the normal expectation is that actually
+// |size| bytes are read unless there is an error.
+static inline int SbFileReadAll(SbFile file, char* data, int size) {
+ if (!SbFileIsValid(file) || size < 0) {
+ return -1;
+ }
+ int bytes_read = 0;
+ int rv;
+ do {
+ rv = SbFileRead(file, data + bytes_read, size - bytes_read);
+ if (bytes_read <= 0) {
+ break;
+ }
+ bytes_read += rv;
+ } while (bytes_read < size);
+
+ return bytes_read ? bytes_read : rv;
+}
+
+// Writes the given buffer into the file, overwritting any data that was
+// previously there. Returns the number of bytes written, or -1 on error. Note
+// that this function makes a best effort to write all data on all platforms.
+static inline int SbFileWriteAll(SbFile file, const char* data, int size) {
+ if (!SbFileIsValid(file) || size < 0) {
+ return -1;
+ }
+ int bytes_written = 0;
+ int rv;
+ do {
+ rv = SbFileWrite(file, data + bytes_written, size - bytes_written);
+ if (bytes_written <= 0) {
+ break;
+ }
+ bytes_written += rv;
+ } while (bytes_written < size);
+
+ return bytes_written ? bytes_written : rv;
+}
+
#ifdef __cplusplus
} // extern "C"
#endif
@@ -219,10 +262,18 @@
int Read(char* data, int size) const { return SbFileRead(file_, data, size); }
+ int ReadAll(char* data, int size) const {
+ return SbFileReadAll(file_, data, size);
+ }
+
int Write(const char* data, int size) const {
return SbFileWrite(file_, data, size);
}
+ int WriteAll(const char* data, int size) const {
+ return SbFileWriteAll(file_, data, size);
+ }
+
bool Truncate(int64_t length) const { return SbFileTruncate(file_, length); }
bool Flush() const { return SbFileFlush(file_); }
@@ -231,6 +282,12 @@
return SbFileGetInfo(file_, out_info);
}
+ int64_t GetSize() const {
+ SbFileInfo file_info;
+ static bool success = GetInfo(&file_info);
+ return (success ? file_info.size : -1);
+ }
+
private:
SbFile file_;
};
diff --git a/src/starboard/input.h b/src/starboard/input.h
index dec4b29..fbce0f2 100644
--- a/src/starboard/input.h
+++ b/src/starboard/input.h
@@ -79,7 +79,7 @@
//
// Produces Move, Press, and Unpress events.
kSbInputDeviceTypeTouchPad,
-} SbInputType;
+} SbInputDeviceType;
// The action that an input event represents.
typedef enum SbInputEventType {
diff --git a/src/starboard/linux/shared/configuration_public.h b/src/starboard/linux/shared/configuration_public.h
index 624909f..9859ced 100644
--- a/src/starboard/linux/shared/configuration_public.h
+++ b/src/starboard/linux/shared/configuration_public.h
@@ -69,6 +69,12 @@
#define SB_IS_WCHAR_T_SIGNED 1
#endif
+// --- Architecture Configuration --------------------------------------------
+
+// On default Linux desktop, you must be a superuser in order to set real time
+// scheduling on threads.
+#define SB_HAS_THREAD_PRIORITY_SUPPORT 0
+
// --- Attribute Configuration -----------------------------------------------
// The platform's annotation for forcing a C function to be inlined.
@@ -232,6 +238,12 @@
// working properly.
#define SB_HAS_BILINEAR_FILTERING_SUPPORT 1
+// Whether the current platform should frequently flip their display buffer.
+// If this is not required (e.g. SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER is set
+// to 0), then optimizations where the display buffer is not flipped if the
+// scene hasn't changed are enabled.
+#define SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER 0
+
// --- Media Configuration ---------------------------------------------------
// Specifies whether this platform has support for a possibly-decrypting
@@ -288,7 +300,7 @@
// macro should be set to a value that is greater than the sum of the above
// source buffer stream memory limits with extra room to take account of
// fragmentations and memory used by demuxers.
-#define SB_MEDIA_MAIN_BUFFER_BUDGET (128U * 1024U * 1024U)
+#define SB_MEDIA_MAIN_BUFFER_BUDGET (32U * 1024U * 1024U)
// Specifies how much GPU memory to reserve up-front for media source buffers.
// This should only be set to non-zero on system with limited CPU memory and
diff --git a/src/starboard/linux/shared/gyp_configuration.gypi b/src/starboard/linux/shared/gyp_configuration.gypi
index 703b774..e4ca809 100644
--- a/src/starboard/linux/shared/gyp_configuration.gypi
+++ b/src/starboard/linux/shared/gyp_configuration.gypi
@@ -28,8 +28,7 @@
# This should have a default value in cobalt/base.gypi. See the comment
# there for acceptable values for this variable.
'javascript_engine': 'mozjs',
- # JIT is temporarily disabled for spidermonkey.
- 'cobalt_enable_jit': 0,
+ 'cobalt_enable_jit': 1,
# Define platform specific compiler and linker flags.
# Refer to base.gypi for a list of all available variables.
diff --git a/src/starboard/linux/x64x11/main.cc b/src/starboard/linux/x64x11/main.cc
index 7feb245..12cbce1 100644
--- a/src/starboard/linux/x64x11/main.cc
+++ b/src/starboard/linux/x64x11/main.cc
@@ -19,7 +19,7 @@
#include "starboard/shared/signal/suspend_signals.h"
#include "starboard/shared/x11/application_x11.h"
-int main(int argc, char** argv) {
+extern "C" SB_EXPORT_PLATFORM int main(int argc, char** argv) {
tzset();
starboard::shared::signal::InstallCrashSignalHandlers();
starboard::shared::signal::InstallSuspendSignalHandlers();
diff --git a/src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRectInterpolated-expected.png b/src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRectInterpolated-expected.png
new file mode 100644
index 0000000..27424c4
--- /dev/null
+++ b/src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRectInterpolated-expected.png
Binary files differ
diff --git a/src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRect-expected.png b/src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRectNotInterpolated-expected.png
similarity index 100%
rename from src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRect-expected.png
rename to src/starboard/nplb/blitter_pixel_tests/data/MagnifyBlitRectToRectNotInterpolated-expected.png
Binary files differ
diff --git a/src/starboard/nplb/blitter_pixel_tests/tests.cc b/src/starboard/nplb/blitter_pixel_tests/tests.cc
index 871c074..30c8a8b 100644
--- a/src/starboard/nplb/blitter_pixel_tests/tests.cc
+++ b/src/starboard/nplb/blitter_pixel_tests/tests.cc
@@ -101,7 +101,11 @@
SbBlitterMakeRect(0, 0, GetWidth(), GetHeight()));
}
-TEST_F(SbBlitterPixelTest, MagnifyBlitRectToRect) {
+#if SB_HAS(BILINEAR_FILTERING_SUPPORT)
+TEST_F(SbBlitterPixelTest, MagnifyBlitRectToRectInterpolated) {
+#else
+TEST_F(SbBlitterPixelTest, MagnifyBlitRectToRectNotInterpolated) {
+#endif
// Create an image with a height and width of 2x2.
SbBlitterSurface checker_image = CreateCheckerImageWithBlits(
device_, context_, SbBlitterColorFromRGBA(255, 255, 255, 255),
diff --git a/src/starboard/nplb/file_read_test.cc b/src/starboard/nplb/file_read_test.cc
index e294bca..a4c828d 100644
--- a/src/starboard/nplb/file_read_test.cc
+++ b/src/starboard/nplb/file_read_test.cc
@@ -22,17 +22,39 @@
namespace nplb {
namespace {
+// Sets up an empty test fixture, required for typed tests.
+template <class SbFileReadType>
+class SbFileReadTest : public testing::Test {};
+
+class SbFileReader {
+ public:
+ static int Read(SbFile file, char* data, int size) {
+ return SbFileRead(file, data, size);
+ }
+};
+
+class SbFileReaderAll {
+ public:
+ static int Read(SbFile file, char* data, int size) {
+ return SbFileReadAll(file, data, size);
+ }
+};
+
+typedef testing::Types<SbFileReader, SbFileReaderAll> SbFileReadTestTypes;
+
+TYPED_TEST_CASE(SbFileReadTest, SbFileReadTestTypes);
+
const int kBufferLength = 16 * 1024;
-TEST(SbFileReadTest, InvalidFileErrors) {
+TYPED_TEST(SbFileReadTest, InvalidFileErrors) {
char buffer[kBufferLength];
- int result = SbFileRead(kSbFileInvalid, buffer, kBufferLength);
+ int result = TypeParam::Read(kSbFileInvalid, buffer, kBufferLength);
EXPECT_EQ(-1, result);
}
-TEST(SbFileReadTest, BasicReading) {
- // Create a pattern file that is not an even multiple of the buffer size, but
- // is over several times the size of the buffer.
+TYPED_TEST(SbFileReadTest, BasicReading) {
+ // Create a pattern file that is not an even multiple of the buffer size,
+ // but is over several times the size of the buffer.
const int kFileSize = kBufferLength * 16 / 3;
ScopedRandomFile random_file(kFileSize);
const std::string& filename = random_file.filename();
@@ -41,8 +63,8 @@
SbFileOpen(filename.c_str(), kSbFileOpenOnly | kSbFileRead, NULL, NULL);
ASSERT_TRUE(SbFileIsValid(file));
- // Create a bigger buffer than necessary, so we can test the memory around the
- // portion given to SbFileRead.
+ // Create a bigger buffer than necessary, so we can test the memory around
+ // the portion given to SbFileRead.
const int kRealBufferLength = kBufferLength * 2;
char real_buffer[kRealBufferLength] = {0};
const int kBufferOffset = kBufferLength / 2;
@@ -58,7 +80,7 @@
int previous_total = 0;
int max = 0;
while (true) {
- int bytes_read = SbFileRead(file, buffer, kBufferLength);
+ int bytes_read = TypeParam::Read(file, buffer, kBufferLength);
if (bytes_read == 0) {
break;
}
@@ -96,7 +118,7 @@
EXPECT_TRUE(result);
}
-TEST(SbFileReadTest, ReadPastEnd) {
+TYPED_TEST(SbFileReadTest, ReadPastEnd) {
const int kFileSize = kBufferLength;
ScopedRandomFile random_file(kFileSize);
const std::string& filename = random_file.filename();
@@ -105,8 +127,8 @@
SbFileOpen(filename.c_str(), kSbFileOpenOnly | kSbFileRead, NULL, NULL);
ASSERT_TRUE(SbFileIsValid(file));
- // Create a bigger buffer than necessary, so we can test the memory around the
- // portion given to SbFileRead.
+ // Create a bigger buffer than necessary, so we can test the memory around
+ // the portion given to SbFileRead.
const int kRealBufferLength = kBufferLength * 2;
char real_buffer[kRealBufferLength] = {0};
const int kBufferOffset = kBufferLength / 2;
@@ -120,7 +142,7 @@
// Read off the end of the file.
int position = SbFileSeek(file, kSbFileFromEnd, 0);
EXPECT_EQ(kFileSize, position);
- int bytes_read = SbFileRead(file, buffer, kBufferLength);
+ int bytes_read = TypeParam::Read(file, buffer, kBufferLength);
EXPECT_EQ(0, bytes_read);
for (int i = 0; i < kRealBufferLength; ++i) {
@@ -131,7 +153,7 @@
EXPECT_TRUE(result);
}
-TEST(SbFileReadTest, ReadZeroBytes) {
+TYPED_TEST(SbFileReadTest, ReadZeroBytes) {
const int kFileSize = kBufferLength;
ScopedRandomFile random_file(kFileSize);
const std::string& filename = random_file.filename();
@@ -140,8 +162,8 @@
SbFileOpen(filename.c_str(), kSbFileOpenOnly | kSbFileRead, NULL, NULL);
ASSERT_TRUE(SbFileIsValid(file));
- // Create a bigger buffer than necessary, so we can test the memory around the
- // portion given to SbFileRead.
+ // Create a bigger buffer than necessary, so we can test the memory around
+ // the portion given to SbFileRead.
const int kRealBufferLength = kBufferLength * 2;
char real_buffer[kRealBufferLength] = {0};
const int kBufferOffset = kBufferLength / 2;
@@ -154,7 +176,7 @@
// Read zero bytes.
for (int i = 0; i < 10; ++i) {
- int bytes_read = SbFileRead(file, buffer, 0);
+ int bytes_read = TypeParam::Read(file, buffer, 0);
EXPECT_EQ(0, bytes_read);
}
@@ -166,7 +188,7 @@
EXPECT_TRUE(result);
}
-TEST(SbFileReadTest, ReadFromMiddle) {
+TYPED_TEST(SbFileReadTest, ReadFromMiddle) {
const int kFileSize = kBufferLength * 2;
ScopedRandomFile random_file(kFileSize);
const std::string& filename = random_file.filename();
@@ -175,8 +197,8 @@
SbFileOpen(filename.c_str(), kSbFileOpenOnly | kSbFileRead, NULL, NULL);
ASSERT_TRUE(SbFileIsValid(file));
- // Create a bigger buffer than necessary, so we can test the memory around the
- // portion given to SbFileRead.
+ // Create a bigger buffer than necessary, so we can test the memory around
+ // the portion given to SbFileRead.
const int kRealBufferLength = kBufferLength * 2;
char real_buffer[kRealBufferLength] = {0};
const int kBufferOffset = kBufferLength / 2;
@@ -190,7 +212,7 @@
// Read from the middle of the file.
int position = SbFileSeek(file, kSbFileFromBegin, kFileSize / 4);
EXPECT_EQ(kFileSize / 4, position);
- int bytes_read = SbFileRead(file, buffer, kBufferLength);
+ int bytes_read = TypeParam::Read(file, buffer, kBufferLength);
EXPECT_GE(kBufferLength, bytes_read);
EXPECT_LT(0, bytes_read);
diff --git a/src/starboard/nplb/file_write_test.cc b/src/starboard/nplb/file_write_test.cc
index 3b49a8d..e503a86 100644
--- a/src/starboard/nplb/file_write_test.cc
+++ b/src/starboard/nplb/file_write_test.cc
@@ -25,28 +25,50 @@
namespace nplb {
namespace {
+// Sets up an empty test fixture, required for typed tests.
+template <class SbFileWriteType>
+class SbFileWriteTest : public testing::Test {};
+
+class SbFileWriter {
+ public:
+ static int Write(SbFile file, char* data, int size) {
+ return SbFileWrite(file, data, size);
+ }
+};
+
+class SbFileWriterAll {
+ public:
+ static int Write(SbFile file, char* data, int size) {
+ return SbFileWriteAll(file, data, size);
+ }
+};
+
+typedef testing::Types<SbFileWriter, SbFileWriterAll> SbFileWriteTestTypes;
+
+TYPED_TEST_CASE(SbFileWriteTest, SbFileWriteTestTypes);
+
const int kBufferLength = 16 * 1024;
-TEST(SbFileWriteTest, InvalidFileErrors) {
+TYPED_TEST(SbFileWriteTest, InvalidFileErrors) {
char buffer[kBufferLength] = {0};
- int result = SbFileWrite(kSbFileInvalid, buffer, kBufferLength);
+ int result = TypeParam::Write(kSbFileInvalid, buffer, kBufferLength);
EXPECT_EQ(-1, result);
}
-TEST(SbFileWriteTest, BasicWriting) {
- // Choose a file size that is not an even multiple of the buffer size, but is
- // over several times the size of the buffer.
+TYPED_TEST(SbFileWriteTest, BasicWriting) {
+ // Choose a file size that is not an even multiple of the buffer size, but
+ // is over several times the size of the buffer.
const int kFileSize = kBufferLength * 16 / 3;
ScopedRandomFile random_file(0, ScopedRandomFile::kDontCreate);
const std::string& filename = random_file.filename();
- SbFile file =
- SbFileOpen(filename.c_str(),
- kSbFileCreateAlways | kSbFileWrite | kSbFileRead, NULL, NULL);
+ SbFile file = SbFileOpen(filename.c_str(),
+ kSbFileCreateAlways | kSbFileWrite | kSbFileRead,
+ NULL, NULL);
ASSERT_TRUE(SbFileIsValid(file));
- // Create a bigger buffer than necessary, so we can test the memory around the
- // portion given to SbFileRead.
+ // Create a bigger buffer than necessary, so we can test the memory around
+ // the portion given to SbFileRead.
char buffer[kBufferLength] = {0};
// Initialize to some arbitrary pattern so we can verify it later.
@@ -63,7 +85,7 @@
int remaining = kFileSize - total;
int to_write = remaining < kBufferLength ? remaining : kBufferLength;
- int bytes_written = SbFileWrite(file, buffer, to_write);
+ int bytes_written = TypeParam::Write(file, buffer, to_write);
// Check that we didn't write more than the buffer size.
EXPECT_GE(to_write, bytes_written);
@@ -85,7 +107,7 @@
total = 0;
int previous_total = 0;
while (true) {
- int bytes_read = SbFileRead(file, buffer, kBufferLength);
+ int bytes_read = SbFileReadAll(file, buffer, kBufferLength);
if (bytes_read == 0) {
break;
}
@@ -111,7 +133,7 @@
EXPECT_TRUE(result);
}
-TEST(SbFileWriteTest, WriteZeroBytes) {
+TYPED_TEST(SbFileWriteTest, WriteZeroBytes) {
ScopedRandomFile random_file(0, ScopedRandomFile::kDontCreate);
const std::string& filename = random_file.filename();
@@ -123,7 +145,7 @@
// Write zero bytes.
for (int i = 0; i < 10; ++i) {
- int bytes_written = SbFileWrite(file, buffer, 0);
+ int bytes_written = TypeParam::Write(file, buffer, 0);
EXPECT_EQ(0, bytes_written);
}
diff --git a/src/starboard/nplb/include_all.c b/src/starboard/nplb/include_all.c
index 95f0147..1ff7637 100644
--- a/src/starboard/nplb/include_all.c
+++ b/src/starboard/nplb/include_all.c
@@ -15,6 +15,7 @@
// Includes all headers in a C context to make sure they compile as C files.
#include "starboard/atomic.h"
+#include "starboard/audio_sink.h"
#include "starboard/blitter.h"
#include "starboard/byte_swap.h"
#include "starboard/character.h"
@@ -26,6 +27,7 @@
#include "starboard/event.h"
#include "starboard/export.h"
#include "starboard/file.h"
+#include "starboard/input.h"
#include "starboard/key.h"
#include "starboard/log.h"
#include "starboard/media.h"
diff --git a/src/starboard/nplb/include_all_too.c b/src/starboard/nplb/include_all_too.c
new file mode 100644
index 0000000..f7d6644
--- /dev/null
+++ b/src/starboard/nplb/include_all_too.c
@@ -0,0 +1,19 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// A second translation unit that includes all the headers to verify there are
+// no duplicate symbols.
+
+#include "starboard/nplb/include_all.c"
+
diff --git a/src/starboard/nplb/nplb.gyp b/src/starboard/nplb/nplb.gyp
index 5b66821..1938621 100644
--- a/src/starboard/nplb/nplb.gyp
+++ b/src/starboard/nplb/nplb.gyp
@@ -100,6 +100,7 @@
'file_truncate_test.cc',
'file_write_test.cc',
'include_all.c',
+ 'include_all_too.c',
'log_flush_test.cc',
'log_format_test.cc',
'log_is_tty_test.cc',
diff --git a/src/starboard/raspi/shared/configuration_public.h b/src/starboard/raspi/shared/configuration_public.h
index b7ba3a6..03cb289 100644
--- a/src/starboard/raspi/shared/configuration_public.h
+++ b/src/starboard/raspi/shared/configuration_public.h
@@ -63,6 +63,14 @@
#define SB_IS_WCHAR_T_SIGNED 1
#endif
+// --- Architecture Configuration --------------------------------------------
+
+// On the current version of Raspbian, real time thread scheduling seems to be
+// broken in that higher priority threads do not always have priority over lower
+// priority threads. It looks like the thread created last will always have the
+// highest priority.
+#define SB_HAS_THREAD_PRIORITY_SUPPORT 0
+
// --- Attribute Configuration -----------------------------------------------
// The platform's annotation for forcing a C function to be inlined.
@@ -227,6 +235,12 @@
// textures. These textures typically originate from video decoders.
#define SB_HAS_NV12_TEXTURE_SUPPORT 1
+// Whether the current platform should frequently flip their display buffer.
+// If this is not required (e.g. SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER is set
+// to 0), then optimizations where the display buffer is not flipped if the
+// scene hasn't changed are enabled.
+#define SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER 0
+
// --- Media Configuration ---------------------------------------------------
// Specifies whether this platform has support for a possibly-decrypting
@@ -283,7 +297,7 @@
// macro should be set to a value that is greater than the sum of the above
// source buffer stream memory limits with extra room to take account of
// fragmentations and memory used by demuxers.
-#define SB_MEDIA_MAIN_BUFFER_BUDGET (128U * 1024U * 1024U)
+#define SB_MEDIA_MAIN_BUFFER_BUDGET (32U * 1024U * 1024U)
// Specifies how much GPU memory to reserve up-front for media source buffers.
// This should only be set to non-zero on system with limited CPU memory and
diff --git a/src/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc b/src/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc
index 9010e37..eafff4c 100644
--- a/src/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc
+++ b/src/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc
@@ -148,7 +148,9 @@
SbThreadJoin(decoder_thread_, NULL);
}
- avcodec_flush_buffers(codec_context_);
+ if (codec_context_ != NULL) {
+ avcodec_flush_buffers(codec_context_);
+ }
decoder_thread_ = kSbThreadInvalid;
stream_ended_ = false;
diff --git a/src/starboard/shared/gcc/atomic_gcc_public.h b/src/starboard/shared/gcc/atomic_gcc_public.h
index 655d2be..9c7afc6 100644
--- a/src/starboard/shared/gcc/atomic_gcc_public.h
+++ b/src/starboard/shared/gcc/atomic_gcc_public.h
@@ -24,7 +24,7 @@
extern "C" {
#endif
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicNoBarrier_CompareAndSwap(volatile SbAtomic32* ptr,
SbAtomic32 old_value,
SbAtomic32 new_value) {
@@ -37,7 +37,7 @@
return prev_value;
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicNoBarrier_Exchange(volatile SbAtomic32* ptr, SbAtomic32 new_value) {
SbAtomic32 old_value;
do {
@@ -46,13 +46,14 @@
return old_value;
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicNoBarrier_Increment(volatile SbAtomic32* ptr, SbAtomic32 increment) {
return SbAtomicBarrier_Increment(ptr, increment);
}
-SB_C_FORCE_INLINE SbAtomic32 SbAtomicBarrier_Increment(volatile SbAtomic32* ptr,
- SbAtomic32 increment) {
+static SB_C_FORCE_INLINE SbAtomic32
+SbAtomicBarrier_Increment(volatile SbAtomic32* ptr,
+ SbAtomic32 increment) {
for (;;) {
// Atomic exchange the old value with an incremented one.
SbAtomic32 old_value = *ptr;
@@ -65,7 +66,7 @@
}
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicAcquire_CompareAndSwap(volatile SbAtomic32* ptr,
SbAtomic32 old_value,
SbAtomic32 new_value) {
@@ -74,47 +75,47 @@
return SbAtomicNoBarrier_CompareAndSwap(ptr, old_value, new_value);
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicRelease_CompareAndSwap(volatile SbAtomic32* ptr,
SbAtomic32 old_value,
SbAtomic32 new_value) {
return SbAtomicNoBarrier_CompareAndSwap(ptr, old_value, new_value);
}
-SB_C_FORCE_INLINE void SbAtomicMemoryBarrier() {
+static SB_C_FORCE_INLINE void SbAtomicMemoryBarrier() {
__sync_synchronize();
}
-SB_C_FORCE_INLINE void SbAtomicNoBarrier_Store(volatile SbAtomic32* ptr,
- SbAtomic32 value) {
+static SB_C_FORCE_INLINE void SbAtomicNoBarrier_Store(volatile SbAtomic32* ptr,
+ SbAtomic32 value) {
*ptr = value;
}
-SB_C_FORCE_INLINE void SbAtomicAcquire_Store(volatile SbAtomic32* ptr,
- SbAtomic32 value) {
+static SB_C_FORCE_INLINE void SbAtomicAcquire_Store(volatile SbAtomic32* ptr,
+ SbAtomic32 value) {
*ptr = value;
SbAtomicMemoryBarrier();
}
-SB_C_FORCE_INLINE void SbAtomicRelease_Store(volatile SbAtomic32* ptr,
- SbAtomic32 value) {
+static SB_C_FORCE_INLINE void SbAtomicRelease_Store(volatile SbAtomic32* ptr,
+ SbAtomic32 value) {
SbAtomicMemoryBarrier();
*ptr = value;
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicNoBarrier_Load(volatile const SbAtomic32* ptr) {
return *ptr;
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicAcquire_Load(volatile const SbAtomic32* ptr) {
SbAtomic32 value = *ptr;
SbAtomicMemoryBarrier();
return value;
}
-SB_C_FORCE_INLINE SbAtomic32
+static SB_C_FORCE_INLINE SbAtomic32
SbAtomicRelease_Load(volatile const SbAtomic32* ptr) {
SbAtomicMemoryBarrier();
return *ptr;
@@ -122,7 +123,7 @@
// 64-bit atomic operations (only available on 64-bit processors).
#if SB_HAS(64_BIT_ATOMICS)
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicNoBarrier_CompareAndSwap64(volatile SbAtomic64* ptr,
SbAtomic64 old_value,
SbAtomic64 new_value) {
@@ -135,7 +136,7 @@
return prev_value;
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicNoBarrier_Exchange64(volatile SbAtomic64* ptr, SbAtomic64 new_value) {
SbAtomic64 old_value;
do {
@@ -144,12 +145,12 @@
return old_value;
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicNoBarrier_Increment64(volatile SbAtomic64* ptr, SbAtomic64 increment) {
return SbAtomicBarrier_Increment64(ptr, increment);
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicBarrier_Increment64(volatile SbAtomic64* ptr, SbAtomic64 increment) {
for (;;) {
// Atomic exchange the old value with an incremented one.
@@ -163,50 +164,51 @@
}
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicAcquire_CompareAndSwap64(volatile SbAtomic64* ptr,
SbAtomic64 old_value,
SbAtomic64 new_value) {
return SbAtomicNoBarrier_CompareAndSwap64(ptr, old_value, new_value);
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicRelease_CompareAndSwap64(volatile SbAtomic64* ptr,
SbAtomic64 old_value,
SbAtomic64 new_value) {
return SbAtomicNoBarrier_CompareAndSwap64(ptr, old_value, new_value);
}
-SB_C_FORCE_INLINE void SbAtomicNoBarrier_Store64(volatile SbAtomic64* ptr,
- SbAtomic64 value) {
+static SB_C_FORCE_INLINE void
+SbAtomicNoBarrier_Store64(volatile SbAtomic64* ptr,
+ SbAtomic64 value) {
*ptr = value;
}
-SB_C_FORCE_INLINE void SbAtomicAcquire_Store64(volatile SbAtomic64* ptr,
- SbAtomic64 value) {
+static SB_C_FORCE_INLINE void SbAtomicAcquire_Store64(volatile SbAtomic64* ptr,
+ SbAtomic64 value) {
*ptr = value;
SbAtomicMemoryBarrier();
}
-SB_C_FORCE_INLINE void SbAtomicRelease_Store64(volatile SbAtomic64* ptr,
- SbAtomic64 value) {
+static SB_C_FORCE_INLINE void SbAtomicRelease_Store64(volatile SbAtomic64* ptr,
+ SbAtomic64 value) {
SbAtomicMemoryBarrier();
*ptr = value;
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicNoBarrier_Load64(volatile const SbAtomic64* ptr) {
return *ptr;
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicAcquire_Load64(volatile const SbAtomic64* ptr) {
SbAtomic64 value = *ptr;
SbAtomicMemoryBarrier();
return value;
}
-SB_C_FORCE_INLINE SbAtomic64
+static SB_C_FORCE_INLINE SbAtomic64
SbAtomicRelease_Load64(volatile const SbAtomic64* ptr) {
SbAtomicMemoryBarrier();
return *ptr;
diff --git a/src/starboard/shared/pthread/thread_create.cc b/src/starboard/shared/pthread/thread_create.cc
index 70a1fdb..1971d0d 100644
--- a/src/starboard/shared/pthread/thread_create.cc
+++ b/src/starboard/shared/pthread/thread_create.cc
@@ -1,4 +1,4 @@
-// Copyright 2015 Google Inc. All Rights Reserved.
+// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,17 +16,50 @@
#include <pthread.h>
#include <sched.h>
+#include <unistd.h>
+#include "starboard/log.h"
#include "starboard/shared/pthread/is_success.h"
#include "starboard/string.h"
+#if SB_HAS(THREAD_PRIORITY_SUPPORT)
+#if !defined(_POSIX_PRIORITY_SCHEDULING)
+#error "The _POSIX_PRIORITY_SCHEDULING define indicates that a pthreads \
+system supports thread priorities, however this define is not \
+defined on this system, contradicting the Starboard configuration \
+indicating that priority scheduling is supported."
+#endif // !defined(_POSIX_PRIORITY_SCHEDULING)
+#endif // SB_HAS(THREAD_PRIORITY_SUPPORT)
+
namespace {
+int SbThreadPriorityToPthread(SbThreadPriority priority) {
+ switch (priority) {
+ case kSbThreadPriorityLowest:
+ SB_NOTREACHED() << "Lowest priority threads should use SCHED_OTHER.";
+ return 0;
+ break;
+ case kSbThreadPriorityLow: return 2;
+ case kSbThreadNoPriority:
+ // Fall through on purpose to default to kThreadPriority_Normal.
+ case kSbThreadPriorityNormal: return 3;
+ case kSbThreadPriorityHigh: return 4;
+ case kSbThreadPriorityHighest: return 5;
+ case kSbThreadPriorityRealTime: return 6;
+ default:
+ SB_NOTREACHED();
+ return 0;
+ }
+}
+
struct ThreadParams {
SbThreadAffinity affinity;
SbThreadEntryPoint entry_point;
char name[128];
void* context;
+#if SB_HAS(THREAD_PRIORITY_SUPPORT)
+ SbThreadPriority priority;
+#endif // #if SB_HAS(THREAD_PRIORITY_SUPPORT)
};
void* ThreadFunc(void* context) {
@@ -38,6 +71,21 @@
SbThreadSetName(thread_params->name);
}
+#if SB_HAS(THREAD_PRIORITY_SUPPORT)
+ // Use Linux' regular scheduler for lowest priority threads. Real-time
+ // priority threads (of any priority) will always have priority over
+ // non-real-time threads (e.g. threads whose scheduler is setup to be
+ // SCHED_OTHER, the default scheduler).
+ if (thread_params->priority != kSbThreadPriorityLowest) {
+ // Note that use of sched_setscheduler() has been found to be more reliably
+ // supported than pthread_setschedparam(), so we are using that.
+ struct sched_param thread_sched_param;
+ thread_sched_param.sched_priority =
+ SbThreadPriorityToPthread(thread_params->priority);
+ sched_setscheduler(0, SCHED_FIFO, &thread_sched_param);
+ }
+#endif // #if SB_HAS(THREAD_PRIORITY_SUPPORT)
+
delete thread_params;
if (SbThreadIsValidAffinity(affinity)) {
@@ -84,10 +132,6 @@
pthread_attr_setstacksize(&attributes, stack_size);
}
- // Here is where we would use priority, but it doesn't really work on Linux
- // without using a realtime scheduling policy, according to this article:
- // http://stackoverflow.com/questions/3649281/how-to-increase-thread-priority-in-pthreads/3663250
-
ThreadParams* params = new ThreadParams();
params->affinity = affinity;
params->entry_point = entry_point;
@@ -99,6 +143,10 @@
params->name[0] = '\0';
}
+#if SB_HAS(THREAD_PRIORITY_SUPPORT)
+ params->priority = priority;
+#endif // #if SB_HAS(THREAD_PRIORITY_SUPPORT)
+
SbThread thread = kSbThreadInvalid;
result = pthread_create(&thread, &attributes, ThreadFunc, params);
diff --git a/src/starboard/shared/starboard/player/player_internal.cc b/src/starboard/shared/starboard/player/player_internal.cc
index 2c7c9f6..0443b2f 100644
--- a/src/starboard/shared/starboard/player/player_internal.cc
+++ b/src/starboard/shared/starboard/player/player_internal.cc
@@ -26,7 +26,8 @@
SbTimeMonotonic elapsed = SbTimeGetMonotonicNow() - media_pts_update_time;
return media_pts + elapsed * kSbMediaTimeSecond / kSbTimeSecond;
}
-}
+
+} // namespace
SbPlayerPrivate::SbPlayerPrivate(
SbWindow window,
diff --git a/src/starboard/shared/starboard/queue_application.cc b/src/starboard/shared/starboard/queue_application.cc
index 5a14ff2..6ef1cda 100644
--- a/src/starboard/shared/starboard/queue_application.cc
+++ b/src/starboard/shared/starboard/queue_application.cc
@@ -100,6 +100,15 @@
QueueApplication::TimedEventQueue::TimedEventQueue() : set_(&IsLess) {}
+QueueApplication::TimedEventQueue::~TimedEventQueue() {
+ ScopedLock lock(mutex_);
+ for (TimedEventMap::iterator i = map_.begin(); i != map_.end(); ++i) {
+ delete i->second;
+ }
+ map_.clear();
+ set_.clear();
+}
+
bool QueueApplication::TimedEventQueue::Inject(TimedEvent* timed_event) {
ScopedLock lock(mutex_);
SbTimeMonotonic oldTime = GetTimeLocked();
diff --git a/src/starboard/shared/starboard/queue_application.h b/src/starboard/shared/starboard/queue_application.h
index b48d8a7..1278dd0 100644
--- a/src/starboard/shared/starboard/queue_application.h
+++ b/src/starboard/shared/starboard/queue_application.h
@@ -85,6 +85,7 @@
class TimedEventQueue {
public:
TimedEventQueue();
+ ~TimedEventQueue();
// Returns whether the new event pushed up the next wakeup time.
bool Inject(TimedEvent* timed_event);
diff --git a/src/starboard/shared/starboard/shared_main_adapter.cc b/src/starboard/shared/starboard/shared_main_adapter.cc
new file mode 100644
index 0000000..2a6a911
--- /dev/null
+++ b/src/starboard/shared/starboard/shared_main_adapter.cc
@@ -0,0 +1,31 @@
+// Copyright 2016 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Imports and calls into StarboardMain() from main(). Can be used to
+// link into a shared Starboard executable to turn it into a traditional
+// executable.
+
+#include "starboard/configuration.h"
+
+#undef main
+
+extern "C" {
+
+SB_IMPORT_PLATFORM int StarboardMain(int argc, char** argv);
+
+int main(int argc, char** argv) {
+ return StarboardMain(argc, argv);
+}
+
+} // extern "C"
diff --git a/src/starboard/shared/stub/system_get_number_of_processors.cc b/src/starboard/shared/stub/system_get_number_of_processors.cc
index b0f3a8c..a02ba16 100644
--- a/src/starboard/shared/stub/system_get_number_of_processors.cc
+++ b/src/starboard/shared/stub/system_get_number_of_processors.cc
@@ -15,5 +15,5 @@
#include "starboard/system.h"
int SbSystemGetNumberOfProcessors() {
- return 0;
+ return 1;
}
diff --git a/src/starboard/socket_waiter.h b/src/starboard/socket_waiter.h
index 894f74e..c964d6f 100644
--- a/src/starboard/socket_waiter.h
+++ b/src/starboard/socket_waiter.h
@@ -79,7 +79,7 @@
int ready_interests);
// Well-defined value for an invalid socket watcher handle.
-const SbSocketWaiter kSbSocketWaiterInvalid = (SbSocketWaiter)NULL;
+#define kSbSocketWaiterInvalid ((SbSocketWaiter)NULL)
// Returns whether the given socket handle is valid.
static SB_C_INLINE bool SbSocketWaiterIsValid(SbSocketWaiter watcher) {
diff --git a/src/starboard/starboard.gyp b/src/starboard/starboard.gyp
index 639b3dc..086ee4a 100644
--- a/src/starboard/starboard.gyp
+++ b/src/starboard/starboard.gyp
@@ -23,15 +23,31 @@
'type': 'none',
'sources': [
'atomic.h',
+ 'audio_sink.h',
+ 'blitter.h',
+ 'byte_swap.h',
+ 'character.h',
'condition_variable.h',
'configuration.h',
'directory.h',
'double.h',
+ 'drm.h',
+ 'event.h',
'export.h',
'file.h',
+ 'input.h',
+ 'key.h',
'log.h',
+ 'media.h',
'memory.h',
'mutex.h',
+ 'once.h',
+ 'player.h',
+ 'queue.h',
+ 'socket.h',
+ 'socket_waiter.h',
+ 'spin_lock.h',
+ 'storage.h',
'string.h',
'system.h',
'thread.h',
@@ -39,11 +55,13 @@
'time.h',
'time_zone.h',
'types.h',
+ 'user.h',
+ 'window.h',
],
'conditions': [
['starboard_path == ""', {
# TODO: Make starboard_path required. This legacy condition is only
- # here to support starboard-linux while it still exists.
+ # here to support semi-starboard platforms while they still exist.
'dependencies': [
'<(DEPTH)/starboard/<(target_arch)/starboard_platform.gyp:starboard_platform',
],
@@ -58,6 +76,17 @@
'<(DEPTH)/<(starboard_path)/starboard_platform.gyp:starboard_platform',
],
}],
+ ['final_executable_type=="shared_library"', {
+ 'all_dependent_settings': {
+ 'target_conditions': [
+ ['_type=="executable" and _toolset=="target"', {
+ 'sources': [
+ '<(DEPTH)/starboard/shared/starboard/shared_main_adapter.cc',
+ ],
+ }],
+ ],
+ },
+ }],
],
},
],
diff --git a/src/starboard/stub/configuration_public.h b/src/starboard/stub/configuration_public.h
index af9c671..5af547f 100644
--- a/src/starboard/stub/configuration_public.h
+++ b/src/starboard/stub/configuration_public.h
@@ -85,6 +85,9 @@
// Whether the current platform is expected to have exactly 6 cores.
#define SB_HAS_6_CORES 0
+// Whether the current platform supports thread priorities.
+#define SB_HAS_THREAD_PRIORITY_SUPPORT 0
+
// Whether the current platform's thread scheduler will automatically balance
// threads between cores, as opposed to systems where threads will only ever run
// on the specifically pinned core.
@@ -300,6 +303,12 @@
// textures. These textures typically originate from video decoders.
#define SB_HAS_NV12_TEXTURE_SUPPORT 0
+// Whether the current platform should frequently flip their display buffer.
+// If this is not required (e.g. SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER is set
+// to 0), then optimizations where the display buffer is not flipped if the
+// scene hasn't changed are enabled.
+#define SB_MUST_FREQUENTLY_FLIP_DISPLAY_BUFFER 0
+
// --- Media Configuration ---------------------------------------------------
// Specifies whether this platform has support for a possibly-decrypting
@@ -356,7 +365,7 @@
// macro should be set to a value that is greater than the sum of the above
// source buffer stream memory limits with extra room to take account of
// fragmentations and memory used by demuxers.
-#define SB_MEDIA_MAIN_BUFFER_BUDGET (128U * 1024U * 1024U)
+#define SB_MEDIA_MAIN_BUFFER_BUDGET (32U * 1024U * 1024U)
// Specifies how much GPU memory to reserve up-front for media source buffers.
// This should only be set to non-zero on system with limited CPU memory and
diff --git a/src/starboard/window.h b/src/starboard/window.h
index c3e25dd..44bb3e1 100644
--- a/src/starboard/window.h
+++ b/src/starboard/window.h
@@ -48,7 +48,7 @@
//
// Values greater than 1.0f mean that the video resolution is higher (denser,
// larger) than the graphics resolution. This is a common case as devices
- // often have less video decoding capabilities than graphics rendering
+ // often have more video decoding capabilities than graphics rendering
// capabilities (or memory, etc...).
//
// Values less than 1.0f mean that the maximum video resolution is smaller
@@ -74,7 +74,7 @@
} SbWindowOptions;
// Well-defined value for an invalid window handle.
-const SbWindow kSbWindowInvalid = (SbWindow)NULL;
+#define kSbWindowInvalid ((SbWindow)NULL)
// Returns whether the given window handle is valid.
static SB_C_INLINE bool SbWindowIsValid(SbWindow window) {
diff --git a/src/third_party/glm/CMakeLists.txt b/src/third_party/glm/CMakeLists.txt
new file mode 100644
index 0000000..bdb9f43
--- /dev/null
+++ b/src/third_party/glm/CMakeLists.txt
@@ -0,0 +1,227 @@
+cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
+cmake_policy(VERSION 2.6)
+if (NOT CMAKE_VERSION VERSION_LESS "3.1")
+ cmake_policy(SET CMP0054 NEW)
+endif()
+
+project(glm)
+set(GLM_VERSION "0.9.9")
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+enable_testing()
+
+add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+
+option(GLM_STATIC_LIBRARY_ENABLE "GLM static library" OFF)
+if(GLM_STATIC_LIBRARY_ENABLE)
+ message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_STATIC_LIBRARY_ENABLE with ON to build an optional static library")
+endif()
+
+option(GLM_DYNAMIC_LIBRARY_ENABLE "GLM static library" OFF)
+if(GLM_DYNAMIC_LIBRARY_ENABLE)
+ message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_DYNAMIC_LIBRARY_ENABLE with ON to build an optional dynamic library")
+endif()
+
+option(GLM_TEST_ENABLE "GLM test" OFF)
+if(NOT GLM_TEST_ENABLE)
+ message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench")
+endif()
+
+option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF)
+
+if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX))
+ option(GLM_TEST_ENABLE_CXX_98 "Enable C++ 98" OFF)
+ option(GLM_TEST_ENABLE_CXX_0X "Enable C++ 0x" OFF)
+ option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF)
+ option(GLM_TEST_ENABLE_CXX_1Y "Enable C++ 1y" OFF)
+ option(GLM_TEST_ENABLE_CXX_14 "Enable C++ 14" OFF)
+ option(GLM_TEST_ENABLE_CXX_1Z "Enable C++ 1z" OFF)
+
+ if(GLM_TEST_ENABLE_CXX_1Z)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++1z")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++1Z")
+ elseif(GLM_TEST_ENABLE_CXX_14)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++14")
+ elseif(GLM_TEST_ENABLE_CXX_1Y)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++1y")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++1y")
+ elseif(GLM_TEST_ENABLE_CXX_11)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++11")
+ elseif(GLM_TEST_ENABLE_CXX_0X)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++0x")
+ elseif(GLM_TEST_ENABLE_CXX_98)
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++98")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
+ set(CMAKE_CXX_FLAGS "-std=c++98")
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ add_definitions(-Wno-long-long)
+ endif()
+ endif()
+endif()
+
+option(GLM_TEST_ENABLE_LANG_EXTENSIONS "Enable language extensions" OFF)
+
+if(GLM_TEST_ENABLE_LANG_EXTENSIONS)
+ if(GLM_TEST_ENABLE_FAST_MATH)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-ffast-math)
+ endif()
+
+ if(MSVC)
+ add_definitions(/fp:fast)
+ endif()
+ elseif(NOT GLM_TEST_ENABLE_FAST_MATH)
+ if(MSVC)
+ add_definitions(/fp:precise)
+ endif()
+ endif()
+else()
+ if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND WIN32))
+ add_definitions(/Za)
+ elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"))
+ add_definitions(-pedantic)
+ endif()
+endif()
+
+option(GLM_TEST_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF)
+option(GLM_TEST_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF)
+option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF)
+option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF)
+option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF)
+
+if(GLM_TEST_FORCE_PURE)
+ add_definitions(-DGLM_FORCE_PURE)
+
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-mfpmath=387)
+ endif()
+elseif(GLM_TEST_ENABLE_SIMD_AVX2)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-mavx2)
+ elseif(GLM_USE_INTEL)
+ add_definitions(/QxAVX2)
+ elseif(MSVC)
+ add_definitions(/arch:AVX2)
+ endif()
+elseif(GLM_TEST_ENABLE_SIMD_AVX)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-mavx)
+ elseif(GLM_USE_INTEL)
+ add_definitions(/QxAVX)
+ elseif(MSVC)
+ add_definitions(/arch:AVX)
+ endif()
+elseif(GLM_TEST_ENABLE_SIMD_SSE3)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-msse3)
+ elseif(GLM_USE_INTEL)
+ add_definitions(/QxSSE3)
+ elseif(MSVC AND NOT CMAKE_CL_64)
+ add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3
+ endif()
+elseif(GLM_TEST_ENABLE_SIMD_SSE2)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-msse2)
+ elseif(GLM_USE_INTEL)
+ add_definitions(/QxSSE2)
+ elseif(MSVC AND NOT CMAKE_CL_64)
+ add_definitions(/arch:SSE2)
+ endif()
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCXX)
+ #add_definitions(-S)
+ #add_definitions(-s)
+ add_definitions(-O2)
+
+ #add_definitions(-fprofile-arcs -ftest-coverage) gcov
+ #ctest_enable_coverage()
+endif()
+
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+ add_definitions(/FAs)
+endif()
+
+include_directories("${PROJECT_SOURCE_DIR}")
+include_directories("${PROJECT_SOURCE_DIR}/test/external")
+
+add_subdirectory(glm)
+add_subdirectory(test)
+
+set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
+install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+write_basic_package_version_file(
+ "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake"
+ VERSION ${GLM_VERSION}
+ COMPATIBILITY AnyNewerVersion
+)
+
+# build tree package config
+configure_file(
+ cmake/glmBuildConfig.cmake.in
+ glmConfig.cmake
+ @ONLY
+)
+
+# install tree package config
+configure_package_config_file(
+ cmake/glmConfig.cmake.in
+ ${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake
+ INSTALL_DESTINATION ${GLM_INSTALL_CONFIGDIR}
+ PATH_VARS CMAKE_INSTALL_INCLUDEDIR
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+
+install(
+ FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/glmVersion.cmake"
+ DESTINATION ${GLM_INSTALL_CONFIGDIR}
+)
+
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
+ add_library(glm INTERFACE)
+ target_include_directories(glm INTERFACE
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ )
+ install(TARGETS glm EXPORT glmTargets)
+
+ export(
+ EXPORT glmTargets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/glmTargets.cmake"
+ )
+
+ install(
+ EXPORT glmTargets FILE glmTargets.cmake
+ DESTINATION ${GLM_INSTALL_CONFIGDIR}
+ )
+endif()
+
+# build pkg-config file
+configure_file(
+ "./cmake/glm.pc.in"
+ "glm.pc"
+ @ONLY
+)
+
+# install pkg-config file
+install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/glm.pc"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
+)
+
+export(PACKAGE glm)
diff --git a/src/third_party/glm/cmake/CMakePackageConfigHelpers.cmake b/src/third_party/glm/cmake/CMakePackageConfigHelpers.cmake
new file mode 100644
index 0000000..d5bf4a2
--- /dev/null
+++ b/src/third_party/glm/cmake/CMakePackageConfigHelpers.cmake
@@ -0,0 +1,227 @@
+# - CONFIGURE_PACKAGE_CONFIG_FILE(), WRITE_BASIC_PACKAGE_VERSION_FILE()
+#
+# CONFIGURE_PACKAGE_CONFIG_FILE(<input> <output> INSTALL_DESTINATION <path>
+# [PATH_VARS <var1> <var2> ... <varN>]
+# [NO_SET_AND_CHECK_MACRO]
+# [NO_CHECK_REQUIRED_COMPONENTS_MACRO])
+#
+# CONFIGURE_PACKAGE_CONFIG_FILE() should be used instead of the plain
+# CONFIGURE_FILE() command when creating the <Name>Config.cmake or <Name>-config.cmake
+# file for installing a project or library. It helps making the resulting package
+# relocatable by avoiding hardcoded paths in the installed Config.cmake file.
+#
+# In a FooConfig.cmake file there may be code like this to make the
+# install destinations know to the using project:
+# set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
+# set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
+# set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" )
+# ...logic to determine installedPrefix from the own location...
+# set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
+# All 4 options shown above are not sufficient, since the first 3 hardcode
+# the absolute directory locations, and the 4th case works only if the logic
+# to determine the installedPrefix is correct, and if CONFIG_INSTALL_DIR contains
+# a relative path, which in general cannot be guaranteed.
+# This has the effect that the resulting FooConfig.cmake file would work poorly
+# under Windows and OSX, where users are used to choose the install location
+# of a binary package at install time, independent from how CMAKE_INSTALL_PREFIX
+# was set at build/cmake time.
+#
+# Using CONFIGURE_PACKAGE_CONFIG_FILE() helps. If used correctly, it makes the
+# resulting FooConfig.cmake file relocatable.
+# Usage:
+# 1. write a FooConfig.cmake.in file as you are used to
+# 2. insert a line containing only the string "@PACKAGE_INIT@"
+# 3. instead of SET(FOO_DIR "@SOME_INSTALL_DIR@"), use SET(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")
+# (this must be after the @PACKAGE_INIT@ line)
+# 4. instead of using the normal CONFIGURE_FILE(), use CONFIGURE_PACKAGE_CONFIG_FILE()
+#
+# The <input> and <output> arguments are the input and output file, the same way
+# as in CONFIGURE_FILE().
+#
+# The <path> given to INSTALL_DESTINATION must be the destination where the FooConfig.cmake
+# file will be installed to. This can either be a relative or absolute path, both work.
+#
+# The variables <var1> to <varN> given as PATH_VARS are the variables which contain
+# install destinations. For each of them the macro will create a helper variable
+# PACKAGE_<var...>. These helper variables must be used
+# in the FooConfig.cmake.in file for setting the installed location. They are calculated
+# by CONFIGURE_PACKAGE_CONFIG_FILE() so that they are always relative to the
+# installed location of the package. This works both for relative and also for absolute locations.
+# For absolute locations it works only if the absolute location is a subdirectory
+# of CMAKE_INSTALL_PREFIX.
+#
+# By default configure_package_config_file() also generates two helper macros,
+# set_and_check() and check_required_components() into the FooConfig.cmake file.
+#
+# set_and_check() should be used instead of the normal set()
+# command for setting directories and file locations. Additionally to setting the
+# variable it also checks that the referenced file or directory actually exists
+# and fails with a FATAL_ERROR otherwise. This makes sure that the created
+# FooConfig.cmake file does not contain wrong references.
+# When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the
+# FooConfig.cmake file.
+#
+# check_required_components(<package_name>) should be called at the end of the
+# FooConfig.cmake file if the package supports components.
+# This macro checks whether all requested, non-optional components have been found,
+# and if this is not the case, sets the Foo_FOUND variable to FALSE, so that the package
+# is considered to be not found.
+# It does that by testing the Foo_<Component>_FOUND variables for all requested
+# required components.
+# When using the NO_CHECK_REQUIRED_COMPONENTS option, this macro is not generated
+# into the FooConfig.cmake file.
+#
+# For an example see below the documentation for WRITE_BASIC_PACKAGE_VERSION_FILE().
+#
+#
+# WRITE_BASIC_PACKAGE_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion|ExactVersion) )
+#
+# Writes a file for use as <package>ConfigVersion.cmake file to <filename>.
+# See the documentation of FIND_PACKAGE() for details on this.
+# filename is the output filename, it should be in the build tree.
+# major.minor.patch is the version number of the project to be installed
+# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
+# will be considered compatible if it is newer or exactly the same as the requested version.
+# This mode should be used for packages which are fully backward compatible,
+# also across major versions.
+# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
+# in that the major version number must be the same as requested, e.g. version 2.0 will
+# not be considered compatible if 1.0 is requested.
+# This mode should be used for packages which guarantee backward compatibility within the
+# same major version.
+# If ExactVersion is used, then the package is only considered compatible if the requested
+# version matches exactly its own version number (not considering the tweak version).
+# For example, version 1.2.3 of a package is only considered compatible to requested version 1.2.3.
+# This mode is for packages without compatibility guarantees.
+# If your project has more elaborated version matching rules, you will need to write your
+# own custom ConfigVersion.cmake file instead of using this macro.
+#
+# Internally, this macro executes configure_file() to create the resulting
+# version file. Depending on the COMPATIBILITY, either the file
+# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
+# is used. Please note that these two files are internal to CMake and you should
+# not call configure_file() on them yourself, but they can be used as starting
+# point to create more sophisticted custom ConfigVersion.cmake files.
+#
+#
+# Example using both configure_package_config_file() and write_basic_package_version_file():
+# CMakeLists.txt:
+# set(INCLUDE_INSTALL_DIR include/ ... CACHE )
+# set(LIB_INSTALL_DIR lib/ ... CACHE )
+# set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
+# ...
+# include(CMakePackageConfigHelpers)
+# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
+# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
+# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
+# write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
+# VERSION 1.2.3
+# COMPATIBILITY SameMajorVersion )
+# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
+# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
+#
+# With a FooConfig.cmake.in:
+# set(FOO_VERSION x.y.z)
+# ...
+# @PACKAGE_INIT@
+# ...
+# set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+# set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
+#
+# check_required_components(Foo)
+
+
+#=============================================================================
+# Copyright 2012 Alexander Neundorf <neundorf@kde.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+include(CMakeParseArguments)
+
+include(WriteBasicConfigVersionFile)
+
+macro(WRITE_BASIC_PACKAGE_VERSION_FILE)
+ write_basic_config_version_file(${ARGN})
+endmacro()
+
+
+function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile)
+ set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+ set(oneValueArgs INSTALL_DESTINATION )
+ set(multiValueArgs PATH_VARS )
+
+ cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ if(CCF_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"")
+ endif()
+
+ if(NOT CCF_INSTALL_DESTINATION)
+ message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()")
+ endif()
+
+ if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}")
+ set(absInstallDir "${CCF_INSTALL_DESTINATION}")
+ else()
+ set(absInstallDir "${CMAKE_INSTALL_PREFIX}/${CCF_INSTALL_DESTINATION}")
+ endif()
+ file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${CMAKE_INSTALL_PREFIX}" )
+
+ foreach(var ${CCF_PATH_VARS})
+ if(NOT DEFINED ${var})
+ message(FATAL_ERROR "Variable ${var} does not exist")
+ else()
+ if(IS_ABSOLUTE "${${var}}")
+ string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${PACKAGE_PREFIX_DIR}"
+ PACKAGE_${var} "${${var}}")
+ else()
+ set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}")
+ endif()
+ endif()
+ endforeach()
+
+ set(PACKAGE_INIT "
+####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
+get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE)
+")
+
+ if(NOT CCF_NO_SET_AND_CHECK_MACRO)
+ set(PACKAGE_INIT "${PACKAGE_INIT}
+macro(set_and_check _var _file)
+ set(\${_var} \"\${_file}\")
+ if(NOT EXISTS \"\${_file}\")
+ message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\")
+ endif()
+endmacro()
+")
+ endif()
+
+
+ if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+ set(PACKAGE_INIT "${PACKAGE_INIT}
+macro(check_required_components _NAME)
+ foreach(comp \${\${_NAME}_FIND_COMPONENTS})
+ if(NOT \${_NAME}_\${comp}_FOUND)
+ if(\${_NAME}_FIND_REQUIRED_\${comp})
+ set(\${_NAME}_FOUND FALSE)
+ endif()
+ endif()
+ endforeach(comp)
+endmacro()
+")
+ endif()
+
+ set(PACKAGE_INIT "${PACKAGE_INIT}
+####################################################################################")
+
+ configure_file("${_inputFile}" "${_outputFile}" @ONLY)
+
+endfunction()
diff --git a/src/third_party/glm/cmake/GNUInstallDirs.cmake b/src/third_party/glm/cmake/GNUInstallDirs.cmake
new file mode 100644
index 0000000..4dc2d68
--- /dev/null
+++ b/src/third_party/glm/cmake/GNUInstallDirs.cmake
@@ -0,0 +1,188 @@
+# - Define GNU standard installation directories
+# Provides install directory variables as defined for GNU software:
+# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+# Inclusion of this module defines the following variables:
+# CMAKE_INSTALL_<dir> - destination for files of a given type
+# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
+# where <dir> is one of:
+# BINDIR - user executables (bin)
+# SBINDIR - system admin executables (sbin)
+# LIBEXECDIR - program executables (libexec)
+# SYSCONFDIR - read-only single-machine data (etc)
+# SHAREDSTATEDIR - modifiable architecture-independent data (com)
+# LOCALSTATEDIR - modifiable single-machine data (var)
+# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
+# INCLUDEDIR - C header files (include)
+# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
+# DATAROOTDIR - read-only architecture-independent data root (share)
+# DATADIR - read-only architecture-independent data (DATAROOTDIR)
+# INFODIR - info documentation (DATAROOTDIR/info)
+# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
+# MANDIR - man documentation (DATAROOTDIR/man)
+# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
+# install() commands for the corresponding file type. If the includer does
+# not define a value the above-shown default will be used and the value will
+# appear in the cache for editing by the user.
+# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
+# from the corresponding destination by prepending (if necessary) the value
+# of CMAKE_INSTALL_PREFIX.
+
+#=============================================================================
+# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
+# Copyright 2011 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# Installation directories
+#
+if(NOT DEFINED CMAKE_INSTALL_BINDIR)
+ set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
+ set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
+ set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
+ set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
+ set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
+ set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
+ set(_LIBDIR_DEFAULT "lib")
+ # Override this default 'lib' with 'lib64' iff:
+ # - we are on Linux system but NOT cross-compiling
+ # - we are NOT on debian
+ # - we are on a 64 bits system
+ # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
+ # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
+ # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
+ # See http://wiki.debian.org/Multiarch
+ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
+ AND NOT CMAKE_CROSSCOMPILING)
+ if (EXISTS "/etc/debian_version") # is this a debian system ?
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+ endif()
+ else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
+ if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
+ message(AUTHOR_WARNING
+ "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
+ "Please enable at least one language before including GNUInstallDirs.")
+ else()
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ set(_LIBDIR_DEFAULT "lib64")
+ endif()
+ endif()
+ endif()
+ endif()
+ set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
+ set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
+ set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
+endif()
+
+if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
+ set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
+endif()
+
+#-----------------------------------------------------------------------------
+# Values whose defaults are relative to DATAROOTDIR. Store empty values in
+# the cache and store the defaults in local variables if the cache values are
+# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
+
+if(NOT CMAKE_INSTALL_DATADIR)
+ set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
+ set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
+endif()
+
+if(NOT CMAKE_INSTALL_INFODIR)
+ set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
+ set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCALEDIR)
+ set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
+ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
+endif()
+
+if(NOT CMAKE_INSTALL_MANDIR)
+ set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
+ set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
+endif()
+
+if(NOT CMAKE_INSTALL_DOCDIR)
+ set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
+ set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
+endif()
+
+#-----------------------------------------------------------------------------
+
+mark_as_advanced(
+ CMAKE_INSTALL_BINDIR
+ CMAKE_INSTALL_SBINDIR
+ CMAKE_INSTALL_LIBEXECDIR
+ CMAKE_INSTALL_SYSCONFDIR
+ CMAKE_INSTALL_SHAREDSTATEDIR
+ CMAKE_INSTALL_LOCALSTATEDIR
+ CMAKE_INSTALL_LIBDIR
+ CMAKE_INSTALL_INCLUDEDIR
+ CMAKE_INSTALL_OLDINCLUDEDIR
+ CMAKE_INSTALL_DATAROOTDIR
+ CMAKE_INSTALL_DATADIR
+ CMAKE_INSTALL_INFODIR
+ CMAKE_INSTALL_LOCALEDIR
+ CMAKE_INSTALL_MANDIR
+ CMAKE_INSTALL_DOCDIR
+ )
+
+# Result directories
+#
+foreach(dir
+ BINDIR
+ SBINDIR
+ LIBEXECDIR
+ SYSCONFDIR
+ SHAREDSTATEDIR
+ LOCALSTATEDIR
+ LIBDIR
+ INCLUDEDIR
+ OLDINCLUDEDIR
+ DATAROOTDIR
+ DATADIR
+ INFODIR
+ LOCALEDIR
+ MANDIR
+ DOCDIR
+ )
+ if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
+ else()
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
+ endif()
+endforeach()
diff --git a/src/third_party/glm/cmake/glm.pc.in b/src/third_party/glm/cmake/glm.pc.in
new file mode 100644
index 0000000..fc5c7bb
--- /dev/null
+++ b/src/third_party/glm/cmake/glm.pc.in
@@ -0,0 +1,7 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=${prefix}/include
+
+Name: GLM
+Description: OpenGL Mathematics
+Version: @GLM_VERSION@
+Cflags: -I${includedir}
diff --git a/src/third_party/glm/cmake/glmBuildConfig.cmake.in b/src/third_party/glm/cmake/glmBuildConfig.cmake.in
new file mode 100644
index 0000000..1258dea
--- /dev/null
+++ b/src/third_party/glm/cmake/glmBuildConfig.cmake.in
@@ -0,0 +1,6 @@
+set(GLM_VERSION "@GLM_VERSION@")
+set(GLM_INCLUDE_DIRS "@CMAKE_CURRENT_SOURCE_DIR@")
+
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
+ include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake")
+endif()
diff --git a/src/third_party/glm/cmake/glmConfig.cmake.in b/src/third_party/glm/cmake/glmConfig.cmake.in
new file mode 100644
index 0000000..37d5ad8
--- /dev/null
+++ b/src/third_party/glm/cmake/glmConfig.cmake.in
@@ -0,0 +1,9 @@
+set(GLM_VERSION "@GLM_VERSION@")
+
+@PACKAGE_INIT@
+
+set_and_check(GLM_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
+ include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake")
+endif()
diff --git a/src/third_party/glm/copying.txt b/src/third_party/glm/copying.txt
new file mode 100644
index 0000000..7c20b4a
--- /dev/null
+++ b/src/third_party/glm/copying.txt
@@ -0,0 +1,54 @@
+================================================================================
+OpenGL Mathematics (GLM)
+--------------------------------------------------------------------------------
+GLM can be distributed and/or modified under the terms of either
+a) The Happy Bunny License, or b) the MIT License.
+
+================================================================================
+The Happy Bunny License (Modified MIT License)
+--------------------------------------------------------------------------------
+Copyright (c) 2005 - 2016 G-Truc Creation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Restrictions: By making use of the Software for military purposes, you choose
+to make a Bunny unhappy.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+================================================================================
+The MIT License
+--------------------------------------------------------------------------------
+Copyright (c) 2005 - 2016 G-Truc Creation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/src/third_party/glm/doc/api/a00001.html b/src/third_party/glm/doc/api/a00001.html
new file mode 100644
index 0000000..bf310c8
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00001.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _features.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_features.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00001_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00001_source.html">_features.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00001_source.html b/src/third_party/glm/doc/api/a00001_source.html
new file mode 100644
index 0000000..2c98fae
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00001_source.html
@@ -0,0 +1,457 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _features.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_features.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00001.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// #define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// Rvalue references - GCC 4.3</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Rvalue references for *this - GCC not supported</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Variadic templates - GCC 4.3</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Initializer lists - GCC 4.4</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// #define GLM_CXX11_STATIC_ASSERT </span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Static assertions - GCC 4.3</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// auto-typed variables - GCC 4.4</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// New function declarator syntax - GCC 4.4</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Declared type of an expression - GCC 4.3</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Right angle brackets - GCC 4.3</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Template aliases N2258 GCC 4.7</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// Extern templates N1987 Yes</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Alignment support N2341 GCC 4.8</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// New character types N2249 GCC 4.4</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// Range-based for N2930 GCC 4.6</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// Sequence points N2239 Yes</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// Memory model N2429 GCC 4.8</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// long long N1811 GCC 4.3</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// Extended integral types N1988 Yes</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"># if(GLM_COMPILER >= GLM_COMPILER_GCC43)</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor">#elif(GLM_COMPILER & GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor">#endif//(GLM_COMPILER & GLM_COMPILER_CLANG)</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00002.html b/src/third_party/glm/doc/api/a00002.html
new file mode 100644
index 0000000..523bac0
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00002.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _fixes.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_fixes.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00002_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00002_source.html">_fixes.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00002_source.html b/src/third_party/glm/doc/api/a00002_source.html
new file mode 100644
index 0000000..0941ab7
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00002_source.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _fixes.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_fixes.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00002.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#ifdef max</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#undef max</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifdef min</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#undef min</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifdef isnan</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#undef isnan</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef isinf</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#undef isinf</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef log2</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#undef log2</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00003.html b/src/third_party/glm/doc/api/a00003.html
new file mode 100644
index 0000000..b5ad770
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00003.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _noise.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_noise.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00003_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00003_source.html">_noise.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00003_source.html b/src/third_party/glm/doc/api/a00003_source.html
new file mode 100644
index 0000000..2575ec4
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00003_source.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _noise.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_noise.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00003.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keywordflow">return</span> x - <a class="code" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(289.0);</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  }</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  }</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  }</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  }</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> return mod289(((x * T(34)) + T(1)) * x);</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  GLM_FUNC_QUALIFIER tvec2<T, P> taylorInvSqrt(tvec2<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  GLM_FUNC_QUALIFIER tvec3<T, P> taylorInvSqrt(tvec3<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  GLM_FUNC_QUALIFIER tvec4<T, P> taylorInvSqrt(tvec4<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> return T(1.79284291400159) - T(0.85373472095314) * r;</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  GLM_FUNC_QUALIFIER tvec2<T, P> fade(tvec2<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  GLM_FUNC_QUALIFIER tvec3<T, P> fade(tvec3<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  GLM_FUNC_QUALIFIER tvec4<T, P> fade(tvec4<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> template <typename T, precision P, template <typename> class vecType></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00004.html b/src/third_party/glm/doc/api/a00004.html
new file mode 100644
index 0000000..dc12366
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00004.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _swizzle.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_swizzle.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00004_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00004_source.html">_swizzle.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00004_source.html b/src/third_party/glm/doc/api/a00004_source.html
new file mode 100644
index 0000000..2402657
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00004_source.html
@@ -0,0 +1,857 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _swizzle.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_swizzle.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00004.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  <span class="keyword">struct </span>_swizzle_base0</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  GLM_FUNC_QUALIFIER T& elem(<span class="keywordtype">size_t</span> i){ <span class="keywordflow">return</span> (reinterpret_cast<T*>(_buffer))[i]; }</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  GLM_FUNC_QUALIFIER T <span class="keyword">const</span>& elem(<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>{ <span class="keywordflow">return</span> (reinterpret_cast<const T*>(_buffer))[i]; }</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn't call a constructor.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  <span class="comment">// elem() </span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keywordtype">char</span> _buffer[1];</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  };</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0<T, N></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  };</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">struct </span>_swizzle_base1<2, T, P, vecType, E0,E1,-1,-2, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 2></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1)); }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  };</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">struct </span>_swizzle_base1<3, T, P, vecType, E0,E1,E2,-1, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 3></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2)); }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  };</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">struct </span>_swizzle_base1<4, T, P, vecType, E0,E1,E2,E3, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 4></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  { </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">/*</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> Template parameters:</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> ValueType = type of scalar values (e.g. float, double)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> VecType = class the swizzle is applies to (e.g. tvec3<float>)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> containing duplicate elements so that they cannot be used as r-values). </span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEMENTS></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (<span class="keyword">const</span> T& t)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  (*<span class="keyword">this</span>)[i] = t;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e = t; } </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  _apply_op(that, op());</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e -= t; } </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  _apply_op(that, op());</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e += t; } </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  _apply_op(that, op());</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e *= t; } </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  };</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  _apply_op(that, op());</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e /= t; } </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  _apply_op(that, op());</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  GLM_FUNC_QUALIFIER T& operator[](<span class="keywordtype">size_t</span> i)</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vecType<T, P> <span class="keyword">const</span>& that, U op)</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// Make a copy of the data in this == &that.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// properly inlined and the copy is not necessary.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  T t[N];</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  t[i] = that[i];</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  op( (*<span class="keyword">this</span>)[i], t[i] );</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  };</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">struct </span>_swizzle_base2<N, T, P, vecType, E0,E1,E2,E3, 1> : <span class="keyword">public</span> _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">struct </span>Stub {};</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub <span class="keyword">const</span> &) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  GLM_FUNC_QUALIFIER T operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  };</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">typedef</span> _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">using</span> base_type::operator=;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vecType<T, P> () <span class="keyword">const</span> { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  };</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3></span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, vecType, E0, E1, E2, E3></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, vecType, F0, F1, F2, F3></span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> return a() OPERAND b(); \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const vecType<T, P>& b) \</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const vecType<T, P>& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> return FUNCTION(a()); \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }<span class="comment">//namespace detail </span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="comment">// the function.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); </span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 1,1,-1,-2> E1 ## E1; }; </span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; </span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; };</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; };</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; };</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; </span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,3,-1,-2> E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,3,-1,-2> E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,3,-1,-2> E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,0,-1,-2> E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,1,-1,-2> E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,2,-1,-2> E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,3,-1,-2> E3 ## E3; }; </span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,3,-1> E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,3,-1> E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,3,-1> E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,0,-1> E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,1,-1> E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,2,-1> E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,3,-1> E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,3,-1> E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,3,-1> E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,3,-1> E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,0,-1> E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,1,-1> E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,2,-1> E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,3,-1> E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,3,-1> E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,3,-1> E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,3,-1> E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,0,-1> E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,1,-1> E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,2,-1> E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,3,-1> E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,0,-1> E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,1,-1> E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,2,-1> E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,3,-1> E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,0,-1> E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,1,-1> E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,2,-1> E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,3,-1> E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,0,-1> E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,1,-1> E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,2,-1> E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,3,-1> E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,0,-1> E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,1,-1> E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,2,-1> E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,3,-1> E3 ## E3 ## E3; }; </span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,3> E3 ## E3 ## E3 ## E3; };</span></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00005.html b/src/third_party/glm/doc/api/a00005.html
new file mode 100644
index 0000000..05e12ab
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00005.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _swizzle_func.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_swizzle_func.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00005_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00005_source.html">_swizzle_func.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00005_source.html b/src/third_party/glm/doc/api/a00005_source.html
new file mode 100644
index 0000000..b8cf723
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00005_source.html
@@ -0,0 +1,754 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _swizzle_func.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_swizzle_func.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00005.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#define GLM_MUTABLE</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00006.html b/src/third_party/glm/doc/api/a00006.html
new file mode 100644
index 0000000..2dd5b1d
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00006.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _vectorize.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_vectorize.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00006_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00006_source.html">_vectorize.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00006_source.html b/src/third_party/glm/doc/api/a00006_source.html
new file mode 100644
index 0000000..50c4a9b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00006_source.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: _vectorize.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">_vectorize.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00006.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">type_vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">struct </span>functor1{};</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">struct </span>functor1<R, T, P, tvec1></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  {</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<R, P> call(R (*Func) (T x), tvec1<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keywordflow">return</span> tvec1<R, P>(Func(v.x));</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  }</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  };</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keyword">struct </span>functor1<R, T, P, tvec2></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<R, P> call(R (*Func) (T x), tvec2<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> tvec2<R, P>(Func(v.x), Func(v.y));</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  };</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">struct </span>functor1<R, T, P, tvec3></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<R, P> call(R (*Func) (T x), tvec3<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">return</span> tvec3<R, P>(Func(v.x), Func(v.y), Func(v.z));</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">struct </span>functor1<R, T, P, tvec4></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<R, P> call(R (*Func) (T x), tvec4<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">return</span> tvec4<R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  };</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">struct </span>functor2{};</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">struct </span>functor2<T, P, tvec1></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, tvec1<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b.x));</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">struct </span>functor2<T, P, tvec2></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, tvec2<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">struct </span>functor2<T, P, tvec3></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, tvec3<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">struct </span>functor2<T, P, tvec4></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, tvec4<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">struct </span>functor2_vec_sca{};</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec1></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b));</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec2></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b), Func(a.y, b));</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec3></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  };</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec4></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00007.html b/src/third_party/glm/doc/api/a00007.html
new file mode 100644
index 0000000..cc8b373
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00007.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: associated_min_max.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">associated_min_max.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00007_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)</td></tr>
+<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)</td></tr>
+<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)</td></tr>
+<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)</td></tr>
+<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c)</td></tr>
+<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > const &c, vecType< T, P > const &w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00007_source.html">associated_min_max.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00007_source.html b/src/third_party/glm/doc/api/a00007_source.html
new file mode 100644
index 0000000..d3d9bb2
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00007_source.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: associated_min_max.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">associated_min_max.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00007.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_associated_min_max extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  T x, <span class="keyword">const</span> vecType<U, P>& a,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  T y, <span class="keyword">const</span> vecType<U, P>& b);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  T x, U a,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  T y, U b,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  T z, U c);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  T x, U a,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  T y, U b,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  T z, U c,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  T w, U d);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  T y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  T x, U a,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  T y, U b,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  T z, U c);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  T z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  vecType<T, P> <span class="keyword">const</span> & z, U c);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  T x, U a,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  T y, U b,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  T z, U c,</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  T w, U d);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#include "associated_min_max.inl"</span></div>
+<div class="ttc" id="a00181_html_ga3122fbe8133ea54749b10fb93e8a167e"><div class="ttname"><a href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMax(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associated variable values. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00181_html_ga00a949fd345f4b31b259f033d3ab4a1c"><div class="ttname"><a href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMin(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associated variable values. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00008.html b/src/third_party/glm/doc/api/a00008.html
new file mode 100644
index 0000000..2ac48be
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00008.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: bit.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bit.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00008_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00182.html">GLM_GTX_bit</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00008_source.html">bit.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00008_source.html b/src/third_party/glm/doc/api/a00008_source.html
new file mode 100644
index 0000000..0c428de
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00008_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: bit.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">bit.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00008.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/bitfield.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(genIUType Value);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(genIUType Value);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(genIUType Value);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#include "bit.inl"</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="ttc" id="a00182_html_gae33bb1ca2b55846b23a0f0796a679195"><div class="ttname"><a href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoBelow(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
+<div class="ttc" id="a00182_html_gafe08808a50226b75b50e640a08b32ddc"><div class="ttname"><a href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoAbove(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00182_html_ga2ff6568089f3a9b67f5c30918855fc6f"><div class="ttname"><a href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">glm::lowestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)</div></div>
+<div class="ttc" id="a00182_html_ga5eea3a4d429040af13d39a7d7cd84d73"><div class="ttname"><a href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > highestBitValue(vecType< T, P > const &value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
+<div class="ttc" id="a00182_html_ga2d7e85995d097518b8d70cd409bda39e"><div class="ttname"><a href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoNearest(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00009.html b/src/third_party/glm/doc/api/a00009.html
new file mode 100644
index 0000000..a1a9621
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00009.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: bitfield.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bitfield.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00009_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecIUType> </td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType< T, P > const &v)</td></tr>
+<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00160.html">GLM_GTC_bitfield</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00009_source.html">bitfield.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00009_source.html b/src/third_party/glm/doc/api/a00009_source.html
new file mode 100644
index 0000000..9d837c2
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00009_source.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: bitfield.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">bitfield.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00009.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/_vectorize.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_bitfield extension included")</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(genIUType Bits);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecIUType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL vecIUType<T, P> <a class="code" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(vecIUType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  GLM_FUNC_DECL int16 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  GLM_FUNC_DECL uint16 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#include "bitfield.inl"</span></div>
+<div class="ttc" id="a00160_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00160.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
+<div class="ttc" id="a00160_html_ga410d130917d85b865718e3ebc32cf0ef"><div class="ttname"><a href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00160_html_ga073dbd8642f550b51da3572541431c1c"><div class="ttname"><a href="a00160.html#ga073dbd8642f550b51da3572541431c1c">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vecIUType< T, P > mask(vecIUType< T, P > const &v)</div><div class="ttdoc">Build a mask of 'count' bits. </div></div>
+<div class="ttc" id="a00160_html_gad789042e84e8292ae95dc1af856f2ad5"><div class="ttname"><a href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillOne(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
+<div class="ttc" id="a00160_html_ga96b56fd2adad1eeaee9e10dfe83904ba"><div class="ttname"><a href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
+<div class="ttc" id="a00160_html_gaddba3196316b0bd240295b09b43c2958"><div class="ttname"><a href="a00160.html#gaddba3196316b0bd240295b09b43c2958">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillZero(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00010.html b/src/third_party/glm/doc/api/a00010.html
new file mode 100644
index 0000000..9efdc5e
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00010.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: closest_point.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">closest_point.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00010_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)</td></tr>
+<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</td></tr>
+<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00183.html">GLM_GTX_closest_point</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00010_source.html">closest_point.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00010_source.html b/src/third_party/glm/doc/api/a00010_source.html
new file mode 100644
index 0000000..9f0b6f4
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00010_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: closest_point.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">closest_point.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00010.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  tvec3<T, P> <span class="keyword">const</span> & point,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tvec3<T, P> <span class="keyword">const</span> & a, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  tvec3<T, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL tvec2<T, P> <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  tvec2<T, P> <span class="keyword">const</span> & point,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  tvec2<T, P> <span class="keyword">const</span> & a, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  tvec2<T, P> <span class="keyword">const</span> & b); </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "closest_point.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00183_html_gadc7010070bb0cacd284f560299b21660"><div class="ttname"><a href="a00183.html#gadc7010070bb0cacd284f560299b21660">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, P > closestPointOnLine(tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</div><div class="ttdoc">2d lines work as well </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00011.html b/src/third_party/glm/doc/api/a00011.html
new file mode 100644
index 0000000..0e586e7
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00011.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtc/color_space.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00011_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear)</td></tr>
+<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear, T Gamma)</td></tr>
+<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB)</td></tr>
+<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
+template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB, T Gamma)</td></tr>
+<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00161.html">GLM_GTC_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00161.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00011_source.html">gtc/color_space.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00011_source.html b/src/third_party/glm/doc/api/a00011_source.html
new file mode 100644
index 0000000..88bc75c
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00011_source.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtc/color_space.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00011.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_color_space extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear, T Gamma);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB, T Gamma);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "color_space.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00161_html_ga61c4f0efdf55c29d9cfbd26141fddef8"><div class="ttname"><a href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertSRGBToLinear(vecType< T, P > const &ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
+<div class="ttc" id="a00161_html_ga63f8b003da7acf44370eb47bfb8b3d42"><div class="ttname"><a href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertLinearToSRGB(vecType< T, P > const &ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00012.html b/src/third_party/glm/doc/api/a00012.html
new file mode 100644
index 0000000..6f932a3
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00012.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtx/color_space.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00012_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3< T, P > const &rgbValue)</td></tr>
+<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3< T, P > const &color)</td></tr>
+<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3< T, P > const &hsvValue)</td></tr>
+<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
+<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3< T, P > const &color)</td></tr>
+<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4< T, P > const &color)</td></tr>
+<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00184.html">GLM_GTX_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00012_source.html">gtx/color_space.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00012_source.html b/src/third_party/glm/doc/api/a00012_source.html
new file mode 100644
index 0000000..2b28d69
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00012_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtx/color_space.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00012.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  tvec3<T, P> <span class="keyword">const</span> & hsvValue);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  tvec3<T, P> <span class="keyword">const</span> & rgbValue);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  T <span class="keyword">const</span> s);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  tvec3<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  tvec4<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  GLM_FUNC_DECL T <a class="code" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  tvec3<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "color_space.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00184_html_ga2033e0566c595230714af396744e8a61"><div class="ttname"><a href="a00184.html#ga2033e0566c595230714af396744e8a61">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > saturation(T const s, tvec4< T, P > const &color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
+<div class="ttc" id="a00184_html_gae72039c00a7be2f03a3b94b37a54349a"><div class="ttname"><a href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > hsvColor(tvec3< T, P > const &rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00184_html_gaa2f38a5100c3e1c7d39920df43bd8cbe"><div class="ttname"><a href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(tvec3< T, P > const &color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00013.html b/src/third_party/glm/doc/api/a00013.html
new file mode 100644
index 0000000..8d7aaba
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00013.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space_YCoCg.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">color_space_YCoCg.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00013_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00013_source.html">color_space_YCoCg.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00013_source.html b/src/third_party/glm/doc/api/a00013_source.html
new file mode 100644
index 0000000..da22584
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00013_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: color_space_YCoCg.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">color_space_YCoCg.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00013.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "color_space_YCoCg.inl"</span></div>
+<div class="ttc" id="a00185_html_ga6d7e988a79b299ca1fa59f537e13800b"><div class="ttname"><a href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga2e534594cc8ad252d23b14fb363ae9e2"><div class="ttname"><a href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00185_html_ga19481f6947c5b5482debd41e71b8c941"><div class="ttname"><a href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga4bac5462c00df0ae89242ecdbbe5dbad"><div class="ttname"><a href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00014.html b/src/third_party/glm/doc/api/a00014.html
new file mode 100644
index 0000000..e30426b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00014.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: common.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">common.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00014_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00014_source.html">common.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00014_source.html b/src/third_party/glm/doc/api/a00014_source.html
new file mode 100644
index 0000000..ce900ea
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00014_source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: common.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">common.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00014.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">detail/func_common.hpp</a>"</span></div>
+<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00015.html b/src/third_party/glm/doc/api/a00015.html
new file mode 100644
index 0000000..b58716c
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00015.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: common.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtx/common.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00015_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &x)</td></tr>
+<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00186.html">GLM_GTX_common</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00015_source.html">gtx/common.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00015_source.html b/src/third_party/glm/doc/api/a00015_source.html
new file mode 100644
index 0000000..61e22f7
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00015_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: common.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtx/common.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_common extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "common.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00186_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
+<div class="ttc" id="a00186_html_ga2580f50d4064557d62f4a533dfc6c7e3"><div class="ttname"><a href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fmod(vecType< T, P > const &v)</div><div class="ttdoc">Similar to 'mod' but with a different rounding and integer support. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00016.html b/src/third_party/glm/doc/api/a00016.html
new file mode 100644
index 0000000..36a0921
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00016.html
@@ -0,0 +1,327 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: compatibility.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">compatibility.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00016_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
+<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
+<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
+typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
+<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
+typedef tmat2x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
+<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
+typedef tmat2x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
+<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
+typedef tmat2x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
+<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
+typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
+<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
+typedef tmat3x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
+<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
+typedef tmat3x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
+<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
+typedef tmat3x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
+<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
+typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
+<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
+typedef tmat4x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
+<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
+typedef tmat4x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
+<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
+typedef tmat4x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
+<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
+<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
+<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
+typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
+<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
+typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
+<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
+typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
+<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
+typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
+<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
+typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
+<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
+typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
+<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
+typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
+<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
+typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
+<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
+typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
+<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
+typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
+<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
+typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
+<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
+typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
+<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
+<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
+<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
+typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
+<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
+typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
+<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
+typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
+<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
+typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
+<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
+typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
+<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
+typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
+<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
+typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
+<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
+typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
+<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
+typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
+<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
+typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
+<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
+typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
+<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
+typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
+<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
+<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
+<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
+typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
+<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
+typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
+<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
+typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
+<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
+typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
+<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
+typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
+<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
+typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
+<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
+typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
+<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
+typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
+<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
+typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
+<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
+typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
+<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
+typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
+<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
+typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
+<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
+<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2< T, P > &x, const tvec2< T, P > &y)</td></tr>
+<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3< T, P > &x, const tvec3< T, P > &y)</td></tr>
+<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4< T, P > &x, const tvec4< T, P > &y)</td></tr>
+<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
+template<typename genType > </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &x)</td></tr>
+<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1< T, P > &x)</td></tr>
+<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
+template<typename T > </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
+<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)</td></tr>
+<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)</td></tr>
+<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)</td></tr>
+<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)</td></tr>
+<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)</td></tr>
+<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</td></tr>
+<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
+<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00187.html">GLM_GTX_compatibility</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00016_source.html">compatibility.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00016_source.html b/src/third_party/glm/doc/api/a00016_source.html
new file mode 100644
index 0000000..6a6d190
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00016_source.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: compatibility.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">compatibility.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00016.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_compatibility extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># include <cfloat></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># include <cmath></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># undef isfinite</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864"> 38</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe"> 39</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& y, T a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9"> 41</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& y, T a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60"> 42</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& y, T a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070"> 43</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& y, <span class="keyword">const</span> tvec2<T, P>& a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1"> 44</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& y, <span class="keyword">const</span> tvec3<T, P>& a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379"> 45</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& y, <span class="keyword">const</span> tvec4<T, P>& a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 47</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107"> 48</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec2<T, P>& x){<span class="keywordflow">return</span> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b"> 49</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec3<T, P>& x){<span class="keywordflow">return</span> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00187.html#ga63791409bdef9745b956406afe3157f1"> 50</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec4<T, P>& x){<span class="keywordflow">return</span> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T(0), T(1));} </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00187.html#gac63011205bf6d0be82589dc56dd26708"> 52</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9"> 53</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& y){<span class="keywordflow">return</span> <a class="code" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0"> 54</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& y){<span class="keywordflow">return</span> <a class="code" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5"> 55</a></span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& y){<span class="keywordflow">return</span> <a class="code" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, y);} </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(genType <span class="keyword">const</span> & x); </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec1<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec1<T, P>& x); </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec2<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec2<T, P>& x); </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec3<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec3<T, P>& x); </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec4<T, P>& x); </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e"> 63</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d"> 64</a></span>  <span class="keyword">typedef</span> tvec2<bool, highp> <a class="code" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a>; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659"> 65</a></span>  <span class="keyword">typedef</span> tvec3<bool, highp> <a class="code" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a>; </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e"> 66</a></span>  <span class="keyword">typedef</span> tvec4<bool, highp> <a class="code" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a>; </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090"> 68</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d"> 69</a></span>  <span class="keyword">typedef</span> tmat2x2<bool, highp> <a class="code" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a>; </div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe"> 70</a></span>  <span class="keyword">typedef</span> tmat2x3<bool, highp> <a class="code" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a>; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7"> 71</a></span>  <span class="keyword">typedef</span> tmat2x4<bool, highp> <a class="code" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a>; </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7"> 72</a></span>  <span class="keyword">typedef</span> tmat3x2<bool, highp> <a class="code" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a>; </div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605"> 73</a></span>  <span class="keyword">typedef</span> tmat3x3<bool, highp> <a class="code" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a>; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17"> 74</a></span>  <span class="keyword">typedef</span> tmat3x4<bool, highp> <a class="code" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a>; </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db"> 75</a></span>  <span class="keyword">typedef</span> tmat4x2<bool, highp> <a class="code" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a>; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb"> 76</a></span>  <span class="keyword">typedef</span> tmat4x3<bool, highp> <a class="code" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a>; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e"> 77</a></span>  <span class="keyword">typedef</span> tmat4x4<bool, highp> <a class="code" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a>; </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 79</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700"> 80</a></span>  <span class="keyword">typedef</span> tvec2<int, highp> <a class="code" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a>; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88"> 81</a></span>  <span class="keyword">typedef</span> tvec3<int, highp> <a class="code" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a>; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00187.html#gab19c2df22e9b14081390fabd074081f1"> 82</a></span>  <span class="keyword">typedef</span> tvec4<int, highp> <a class="code" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a>; </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a"> 84</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc"> 85</a></span>  <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a>; </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434"> 86</a></span>  <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a>; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e"> 87</a></span>  <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a>; </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db"> 88</a></span>  <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a>; </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f"> 89</a></span>  <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a>; </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00187.html#ga7b00c53838143bce963177122ab92c39"> 90</a></span>  <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a>; </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="a00187.html#gaa53815539021200c4e10fd282832dcd3"> 91</a></span>  <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a>; </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe"> 92</a></span>  <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a>; </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d"> 93</a></span>  <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a>; </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 95</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42"> 96</a></span>  <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a>; </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfa618285894e34f299e4984f092d56"> 97</a></span>  <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a>; </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b"> 98</a></span>  <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a>; </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c"> 100</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e"> 101</a></span>  <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a>; </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b"> 102</a></span>  <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a>; </div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde"> 103</a></span>  <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a>; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff"> 104</a></span>  <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a>; </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363"> 105</a></span>  <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a>; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e"> 106</a></span>  <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a>; </div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8"> 107</a></span>  <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a>; </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00187.html#gad749b26be059f35394fd71c7f7a44034"> 108</a></span>  <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a>; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136"> 109</a></span>  <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a>; </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b"> 111</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e"> 112</a></span>  <span class="keyword">typedef</span> tvec2<double, highp> <a class="code" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a>; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391"> 113</a></span>  <span class="keyword">typedef</span> tvec3<double, highp> <a class="code" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a>; </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56"> 114</a></span>  <span class="keyword">typedef</span> tvec4<double, highp> <a class="code" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a>; </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 116</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7"> 117</a></span>  <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a>; </div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7"> 118</a></span>  <span class="keyword">typedef</span> tmat2x3<double, highp> <a class="code" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a>; </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e"> 119</a></span>  <span class="keyword">typedef</span> tmat2x4<double, highp> <a class="code" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a>; </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6"> 120</a></span>  <span class="keyword">typedef</span> tmat3x2<double, highp> <a class="code" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a>; </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a"> 121</a></span>  <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a>; </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413"> 122</a></span>  <span class="keyword">typedef</span> tmat3x4<double, highp> <a class="code" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a>; </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd"> 123</a></span>  <span class="keyword">typedef</span> tmat4x2<double, highp> <a class="code" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a>; </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37"> 124</a></span>  <span class="keyword">typedef</span> tmat4x3<double, highp> <a class="code" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a>; </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6"> 125</a></span>  <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a>; </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#include "compatibility.inl"</span></div>
+<div class="ttc" id="a00187_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00084">compatibility.hpp:84</a></div></div>
+<div class="ttc" id="a00187_html_gae621c9eabcba552eea5f6ade1f403605"><div class="ttname"><a href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">glm::bool3x3</a></div><div class="ttdeci">tmat3x3< bool, highp > bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00073">compatibility.hpp:73</a></div></div>
+<div class="ttc" id="a00187_html_ga2692a729a69615d72dbebbdd0eba2363"><div class="ttname"><a href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">glm::float3x3</a></div><div class="ttdeci">tmat3x3< float, highp > float3x3</div><div class="ttdoc">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00105">compatibility.hpp:105</a></div></div>
+<div class="ttc" id="a00187_html_gad5da9e1b4e0c64c5436b5696ab49540e"><div class="ttname"><a href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">glm::int2x4</a></div><div class="ttdeci">tmat2x4< int, highp > int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00087">compatibility.hpp:87</a></div></div>
+<div class="ttc" id="a00187_html_gab2ce4c366abc06c8bf7fe097ecea0dde"><div class="ttname"><a href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">glm::float2x4</a></div><div class="ttdeci">tmat2x4< float, highp > float2x4</div><div class="ttdoc">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00103">compatibility.hpp:103</a></div></div>
+<div class="ttc" id="a00187_html_gad749b26be059f35394fd71c7f7a44034"><div class="ttname"><a href="a00187.html#gad749b26be059f35394fd71c7f7a44034">glm::float4x3</a></div><div class="ttdeci">tmat4x3< float, highp > float4x3</div><div class="ttdoc">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00108">compatibility.hpp:108</a></div></div>
+<div class="ttc" id="a00187_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00111">compatibility.hpp:111</a></div></div>
+<div class="ttc" id="a00187_html_ga320d0a71a4ad9f14a1992d40546cffa7"><div class="ttname"><a href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">glm::double2x2</a></div><div class="ttdeci">tmat2x2< double, highp > double2x2</div><div class="ttdoc">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00117">compatibility.hpp:117</a></div></div>
+<div class="ttc" id="a00187_html_gaad84a1ea83be8fce04c1570c5e719413"><div class="ttname"><a href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">glm::double3x4</a></div><div class="ttdeci">tmat3x4< double, highp > double3x4</div><div class="ttdoc">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00122">compatibility.hpp:122</a></div></div>
+<div class="ttc" id="a00187_html_gab1c5d0631a6ae34e28bfb2851da387cc"><div class="ttname"><a href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">glm::int2x2</a></div><div class="ttdeci">tmat2x2< int, highp > int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00085">compatibility.hpp:85</a></div></div>
+<div class="ttc" id="a00187_html_ga2eca687990bf3a08ef28bc4a9f2fe700"><div class="ttname"><a href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">glm::int2</a></div><div class="ttdeci">tvec2< int, highp > int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00080">compatibility.hpp:80</a></div></div>
+<div class="ttc" id="a00187_html_gaed4bc64196bd25d46f6a1f417320a391"><div class="ttname"><a href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">glm::double3</a></div><div class="ttdeci">tvec3< double, highp > double3</div><div class="ttdoc">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00113">compatibility.hpp:113</a></div></div>
+<div class="ttc" id="a00187_html_gae4b0244b0d882657bed0a99dfa33f379"><div class="ttname"><a href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > lerp(const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00045">compatibility.hpp:45</a></div></div>
+<div class="ttc" id="a00187_html_ga20c4d23defbc123ac4745c9b4262156f"><div class="ttname"><a href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">glm::int3x3</a></div><div class="ttdeci">tmat3x3< int, highp > int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00089">compatibility.hpp:89</a></div></div>
+<div class="ttc" id="a00187_html_gac934f579ee5cf3cbdbb25b73f2640c0a"><div class="ttname"><a href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">glm::double3x3</a></div><div class="ttdeci">tmat3x3< double, highp > double3x3</div><div class="ttdoc">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00121">compatibility.hpp:121</a></div></div>
+<div class="ttc" id="a00187_html_gad02e7dff74039bb1454643e293d85dfe"><div class="ttname"><a href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">glm::bool2x3</a></div><div class="ttdeci">tmat2x3< bool, highp > bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00070">compatibility.hpp:70</a></div></div>
+<div class="ttc" id="a00187_html_ga9770607032813e7b0ca7362a47efea1e"><div class="ttname"><a href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">glm::bool4x4</a></div><div class="ttdeci">tmat4x4< bool, highp > bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00077">compatibility.hpp:77</a></div></div>
+<div class="ttc" id="a00187_html_ga83e4c62ab1addfe708dc3409cc0e5dfb"><div class="ttname"><a href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">glm::bool4x3</a></div><div class="ttdeci">tmat4x3< bool, highp > bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00076">compatibility.hpp:76</a></div></div>
+<div class="ttc" id="a00187_html_gaad93cbc2b863e363d53d405d0451d03e"><div class="ttname"><a href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">glm::float2x2</a></div><div class="ttdeci">tmat2x2< float, highp > float2x2</div><div class="ttdoc">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00101">compatibility.hpp:101</a></div></div>
+<div class="ttc" id="a00187_html_ga63791409bdef9745b956406afe3157f1"><div class="ttname"><a href="a00187.html#ga63791409bdef9745b956406afe3157f1">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > saturate(const tvec4< T, P > &x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00050">compatibility.hpp:50</a></div></div>
+<div class="ttc" id="a00187_html_gafa8d0bc8dfa7eeb928208305714f648d"><div class="ttname"><a href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">glm::bool2</a></div><div class="ttdeci">tvec2< bool, highp > bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00064">compatibility.hpp:64</a></div></div>
+<div class="ttc" id="a00187_html_ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><div class="ttname"><a href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > isfinite(const tvec4< T, P > &x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
+<div class="ttc" id="a00187_html_ga5d49ed44dd9a9e944abc30371fc9045b"><div class="ttname"><a href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">glm::float4</a></div><div class="ttdeci">tvec4< float, highp > float4</div><div class="ttdoc">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00098">compatibility.hpp:98</a></div></div>
+<div class="ttc" id="a00187_html_gaf40529862492ded2f3b96a6c886f6136"><div class="ttname"><a href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">glm::float4x4</a></div><div class="ttdeci">tmat4x4< float, highp > float4x4</div><div class="ttdoc">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00109">compatibility.hpp:109</a></div></div>
+<div class="ttc" id="a00187_html_ga39a2af7aa8f2d29ca40afd2256c0e7c8"><div class="ttname"><a href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">glm::float4x2</a></div><div class="ttdeci">tmat4x2< float, highp > float4x2</div><div class="ttdoc">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00107">compatibility.hpp:107</a></div></div>
+<div class="ttc" id="a00187_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00095">compatibility.hpp:95</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00187_html_gaf30014e7b6874f45d58eb580d04764ff"><div class="ttname"><a href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">glm::float3x2</a></div><div class="ttdeci">tmat3x2< float, highp > float3x2</div><div class="ttdoc">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00104">compatibility.hpp:104</a></div></div>
+<div class="ttc" id="a00187_html_ga2f87500119da15e35e4a74780ba512bd"><div class="ttname"><a href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">glm::double4x2</a></div><div class="ttdeci">tmat4x2< double, highp > double4x2</div><div class="ttdoc">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00123">compatibility.hpp:123</a></div></div>
+<div class="ttc" id="a00187_html_gaa4e6d53c03780dfa76bd399324f9fe37"><div class="ttname"><a href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">glm::double4x3</a></div><div class="ttdeci">tmat4x3< double, highp > double4x3</div><div class="ttdoc">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00124">compatibility.hpp:124</a></div></div>
+<div class="ttc" id="a00187_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00116">compatibility.hpp:116</a></div></div>
+<div class="ttc" id="a00187_html_gaa53815539021200c4e10fd282832dcd3"><div class="ttname"><a href="a00187.html#gaa53815539021200c4e10fd282832dcd3">glm::int4x2</a></div><div class="ttdeci">tmat4x2< int, highp > int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00091">compatibility.hpp:91</a></div></div>
+<div class="ttc" id="a00187_html_gab19c2df22e9b14081390fabd074081f1"><div class="ttname"><a href="a00187.html#gab19c2df22e9b14081390fabd074081f1">glm::int4</a></div><div class="ttdeci">tvec4< int, highp > int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00082">compatibility.hpp:82</a></div></div>
+<div class="ttc" id="a00187_html_gab8d74ea4c4f4bd980b650ffb27cdb659"><div class="ttname"><a href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">glm::bool3</a></div><div class="ttdeci">tvec3< bool, highp > bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00065">compatibility.hpp:65</a></div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00152_html_ga461e769acb8b8cb695a5a89334546611"><div class="ttname"><a href="a00152.html#ga461e769acb8b8cb695a5a89334546611">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y, vecType< T, P > const &x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00187_html_gaa98b1a06b802c975f02a5583f43632db"><div class="ttname"><a href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">glm::int3x2</a></div><div class="ttdeci">tmat3x2< int, highp > int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00088">compatibility.hpp:88</a></div></div>
+<div class="ttc" id="a00187_html_gaeaac4d0e18164e4d2fe54432c0fbbcf6"><div class="ttname"><a href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">glm::double3x2</a></div><div class="ttdeci">tmat3x2< double, highp > double3x2</div><div class="ttdoc">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00120">compatibility.hpp:120</a></div></div>
+<div class="ttc" id="a00187_html_ga09d39c391a509a045b6c7061f15bdff5"><div class="ttname"><a href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > atan2(const tvec4< T, P > &x, const tvec4< T, P > &y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00055">compatibility.hpp:55</a></div></div>
+<div class="ttc" id="a00187_html_gab8bbb086c9a6c2deffbe0e80afd6be56"><div class="ttname"><a href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">glm::double4</a></div><div class="ttdeci">tvec4< double, highp > double4</div><div class="ttdoc">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00114">compatibility.hpp:114</a></div></div>
+<div class="ttc" id="a00187_html_ga184ee05ac2bbbf0a91dd364ba8e528db"><div class="ttname"><a href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">glm::bool4x2</a></div><div class="ttdeci">tmat4x2< bool, highp > bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00075">compatibility.hpp:75</a></div></div>
+<div class="ttc" id="a00187_html_gaf923922adf744404d5bfb3fafb7d0d8e"><div class="ttname"><a href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">glm::double2x4</a></div><div class="ttdeci">tmat2x4< double, highp > double2x4</div><div class="ttdoc">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00119">compatibility.hpp:119</a></div></div>
+<div class="ttc" id="a00187_html_ga4a3bf0ecd6f6ff60836c5bee26c14abe"><div class="ttname"><a href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">glm::int4x3</a></div><div class="ttdeci">tmat4x3< int, highp > int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00092">compatibility.hpp:92</a></div></div>
+<div class="ttc" id="a00187_html_gade37cf30c69bacb41ceea7e32717eac7"><div class="ttname"><a href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">glm::double2x3</a></div><div class="ttdeci">tmat2x3< double, highp > double2x3</div><div class="ttdoc">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00118">compatibility.hpp:118</a></div></div>
+<div class="ttc" id="a00187_html_ga098c33a30f901f4f6a76969d6db6b01b"><div class="ttname"><a href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">glm::float2x3</a></div><div class="ttdeci">tmat2x3< float, highp > float2x3</div><div class="ttdoc">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00102">compatibility.hpp:102</a></div></div>
+<div class="ttc" id="a00187_html_ga7b00c53838143bce963177122ab92c39"><div class="ttname"><a href="a00187.html#ga7b00c53838143bce963177122ab92c39">glm::int3x4</a></div><div class="ttdeci">tmat3x4< int, highp > int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00090">compatibility.hpp:90</a></div></div>
+<div class="ttc" id="a00187_html_ga379c0869949e8a69c3d06d7637caa5d7"><div class="ttname"><a href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">glm::bool2x4</a></div><div class="ttdeci">tmat2x4< bool, highp > bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00071">compatibility.hpp:71</a></div></div>
+<div class="ttc" id="a00187_html_ga3bacf576b4b29f2f2959abff7a36652d"><div class="ttname"><a href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">glm::int4x4</a></div><div class="ttdeci">tmat4x4< int, highp > int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00093">compatibility.hpp:93</a></div></div>
+<div class="ttc" id="a00187_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00079">compatibility.hpp:79</a></div></div>
+<div class="ttc" id="a00187_html_ga872a70333dd25af68b1ebba485be9e42"><div class="ttname"><a href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">glm::float2</a></div><div class="ttdeci">tvec2< float, highp > float2</div><div class="ttdoc">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00096">compatibility.hpp:96</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfb53bc320966c85149934fffb0329d"><div class="ttname"><a href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">glm::bool2x2</a></div><div class="ttdeci">tmat2x2< bool, highp > bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00069">compatibility.hpp:69</a></div></div>
+<div class="ttc" id="a00187_html_ga6e79dbfab5917c467a154638ba27898e"><div class="ttname"><a href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">glm::bool4</a></div><div class="ttdeci">tvec4< bool, highp > bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00066">compatibility.hpp:66</a></div></div>
+<div class="ttc" id="a00187_html_ga686a3a5590f0a0e721faba08bda301d6"><div class="ttname"><a href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">glm::double4x4</a></div><div class="ttdeci">tmat4x4< double, highp > double4x4</div><div class="ttdoc">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00125">compatibility.hpp:125</a></div></div>
+<div class="ttc" id="a00187_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00063">compatibility.hpp:63</a></div></div>
+<div class="ttc" id="a00187_html_gad13f8250579ebf79760dcf64215ddb17"><div class="ttname"><a href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">glm::bool3x4</a></div><div class="ttdeci">tmat3x4< bool, highp > bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00074">compatibility.hpp:74</a></div></div>
+<div class="ttc" id="a00187_html_ga0fc7ecb53df5be5f9d766fbbfe5190d7"><div class="ttname"><a href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">glm::bool3x2</a></div><div class="ttdeci">tmat3x2< bool, highp > bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00072">compatibility.hpp:72</a></div></div>
+<div class="ttc" id="a00187_html_gac38c8929ccc87a2dc81eaab97ad5190e"><div class="ttname"><a href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">glm::float3x4</a></div><div class="ttdeci">tmat3x4< float, highp > float3x4</div><div class="ttdoc">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00106">compatibility.hpp:106</a></div></div>
+<div class="ttc" id="a00187_html_ga6dc93f0794eb5fadd7f68b85141a2434"><div class="ttname"><a href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">glm::int2x3</a></div><div class="ttdeci">tmat2x3< int, highp > int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00086">compatibility.hpp:86</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfa618285894e34f299e4984f092d56"><div class="ttname"><a href="a00187.html#ga2bfa618285894e34f299e4984f092d56">glm::float3</a></div><div class="ttdeci">tvec3< float, highp > float3</div><div class="ttdoc">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00097">compatibility.hpp:97</a></div></div>
+<div class="ttc" id="a00146_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00187_html_gaaa6ceedf08a85e5fd73a482bc8b77b88"><div class="ttname"><a href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">glm::int3</a></div><div class="ttdeci">tvec3< int, highp > int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00081">compatibility.hpp:81</a></div></div>
+<div class="ttc" id="a00187_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00100">compatibility.hpp:100</a></div></div>
+<div class="ttc" id="a00187_html_gaa16a13c6f2768e83ca133430e82ab89e"><div class="ttname"><a href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">glm::double2</a></div><div class="ttdeci">tvec2< double, highp > double2</div><div class="ttdoc">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00112">compatibility.hpp:112</a></div></div>
+<div class="ttc" id="a00187_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00068">compatibility.hpp:68</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00017.html b/src/third_party/glm/doc/api/a00017.html
new file mode 100644
index 0000000..aa96a11
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00017.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: component_wise.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">component_wise.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00017_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &v)</td></tr>
+<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &v)</td></tr>
+<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &v)</td></tr>
+<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &v)</td></tr>
+<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplParams" colspan="2">template<typename floatType , typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplParams" colspan="2">template<typename T , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:gaea99a3271016bfd331d9fa7587f3db37"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00188.html">GLM_GTX_component_wise</a> </p>
+<dl class="section date"><dt>Date</dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
+<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00017_source.html">component_wise.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00017_source.html b/src/third_party/glm/doc/api/a00017_source.html
new file mode 100644
index 0000000..de76ebb
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00017_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: component_wise.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">component_wise.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00017.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_component_wise extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">float</span>Type, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  GLM_FUNC_DECL vecType<floatType, P> <a class="code" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a>(vecType<floatType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "component_wise.inl"</span></div>
+<div class="ttc" id="a00188_html_gaf71833350e15e74d31cbf8a3e7f27051"><div class="ttname"><a href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">glm::compAdd</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compAdd(genType const &v)</div><div class="ttdoc">Add all vector components together. </div></div>
+<div class="ttc" id="a00188_html_gaea99a3271016bfd331d9fa7587f3db37"><div class="ttname"><a href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">glm::compScale</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > compScale(vecType< floatType, P > const &v)</div><div class="ttdoc">Convert a normalized float vector to an integer vector. </div></div>
+<div class="ttc" id="a00188_html_gae8ab88024197202c9479d33bdc5a8a5d"><div class="ttname"><a href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">glm::compMul</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMul(genType const &v)</div><div class="ttdoc">Multiply all vector components together. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00188_html_gaeb34fdf090d2d4da9babcdfec267f09e"><div class="ttname"><a href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">glm::compNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< floatType, P > compNormalize(vecType< T, P > const &v)</div><div class="ttdoc">Convert an integer vector to a normalized float vector. </div></div>
+<div class="ttc" id="a00188_html_gab5d0832b5c7bb01b8d7395973bfb1425"><div class="ttname"><a href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">glm::compMin</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMin(genType const &v)</div><div class="ttdoc">Find the minimum value between single vector components. </div></div>
+<div class="ttc" id="a00188_html_gabfa4bb19298c8c73d4217ba759c496b6"><div class="ttname"><a href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">glm::compMax</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMax(genType const &v)</div><div class="ttdoc">Find the maximum value between single vector components. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00018.html b/src/third_party/glm/doc/api/a00018.html
new file mode 100644
index 0000000..76b2c5a
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00018.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: constants.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">constants.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00018_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> ()</td></tr>
+<tr class="separator:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a> ()</td></tr>
+<tr class="separator:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a> ()</td></tr>
+<tr class="separator:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a> ()</td></tr>
+<tr class="separator:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a> ()</td></tr>
+<tr class="separator:ga748cf8642830657c5b7eae04d0a80899"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a> ()</td></tr>
+<tr class="separator:ga0c36b41d462e45641faf7d7938948bac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a> ()</td></tr>
+<tr class="separator:gaca94292c839ed31a405ab7a81ae7e850"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a> ()</td></tr>
+<tr class="separator:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a> ()</td></tr>
+<tr class="separator:ga24f4d27765678116f41a2f336ab7975c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a> ()</td></tr>
+<tr class="separator:ga39c2fb227631ca25894326529bdd1ee5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a> ()</td></tr>
+<tr class="separator:ga555150da2b06d23c8738981d5013e0eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a> ()</td></tr>
+<tr class="separator:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a> ()</td></tr>
+<tr class="separator:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a> ()</td></tr>
+<tr class="separator:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a> ()</td></tr>
+<tr class="separator:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a> ()</td></tr>
+<tr class="separator:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a> ()</td></tr>
+<tr class="separator:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a> ()</td></tr>
+<tr class="separator:ga4129412e96b33707a77c1a07652e23e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a> ()</td></tr>
+<tr class="separator:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a> ()</td></tr>
+<tr class="separator:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a> ()</td></tr>
+<tr class="separator:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a> ()</td></tr>
+<tr class="separator:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a> ()</td></tr>
+<tr class="separator:ga3077c6311010a214b69ddc8214ec13b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a> ()</td></tr>
+<tr class="separator:gae94950df74b0ce382b1fc1d978ef7394"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a> ()</td></tr>
+<tr class="separator:ga74eadc8a211253079683219a3ea0462a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a> ()</td></tr>
+<tr class="separator:ga5827301817640843cf02026a8d493894"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a> ()</td></tr>
+<tr class="separator:gaa5276a4617566abcfe49286f40e3a256"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a> ()</td></tr>
+<tr class="separator:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a> ()</td></tr>
+<tr class="separator:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00162.html">GLM_GTC_constants</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00018_source.html">constants.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00018_source.html b/src/third_party/glm/doc/api/a00018_source.html
new file mode 100644
index 0000000..2468481
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00018_source.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: constants.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">constants.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00018.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_constants extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a>();</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a>();</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a>();</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a>();</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a>();</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a>();</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a>();</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a>();</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a>();</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a>();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a>();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a>();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a>();</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>();</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a>();</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a>();</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a>();</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a>();</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a>();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a>();</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a>();</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a>();</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a>();</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a>();</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "constants.inl"</span></div>
+<div class="ttc" id="a00162_html_ga74e607d29020f100c0d0dc46ce2ca950"><div class="ttname"><a href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">glm::root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two()</div><div class="ttdoc">Return sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_ga261380796b2cd496f68d2cf1d08b8eb9"><div class="ttname"><a href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">glm::root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi()</div><div class="ttdoc">Return square root of pi. </div></div>
+<div class="ttc" id="a00162_html_ga788f5a421fc0f40a1296ebc094cbaa8a"><div class="ttname"><a href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">glm::zero</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType zero()</div><div class="ttdoc">Return 0. </div></div>
+<div class="ttc" id="a00162_html_ga39c2fb227631ca25894326529bdd1ee5"><div class="ttname"><a href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">glm::one</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one()</div><div class="ttdoc">Return 1. </div></div>
+<div class="ttc" id="a00162_html_gad8fe2e6f90bce9d829e9723b649fbd42"><div class="ttname"><a href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">glm::euler</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType euler()</div><div class="ttdoc">Return Euler's constant. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00162_html_ga5827301817640843cf02026a8d493894"><div class="ttname"><a href="a00162.html#ga5827301817640843cf02026a8d493894">glm::two_over_root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi()</div><div class="ttdoc">Return 2 / sqrt(pi). </div></div>
+<div class="ttc" id="a00162_html_ga4f286be4abe88be1eed7d2a9f6cb193e"><div class="ttname"><a href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">glm::root_three</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_three()</div><div class="ttdoc">Return sqrt(3). </div></div>
+<div class="ttc" id="a00162_html_gaf97ebc6c059ffd788e6c4946f71ef66c"><div class="ttname"><a href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">glm::ln_ten</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten()</div><div class="ttdoc">Return ln(10). </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00162_html_ga3077c6311010a214b69ddc8214ec13b5"><div class="ttname"><a href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">glm::third</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType third()</div><div class="ttdoc">Return 1 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga24f4d27765678116f41a2f336ab7975c"><div class="ttname"><a href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">glm::ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two()</div><div class="ttdoc">Return ln(2). </div></div>
+<div class="ttc" id="a00162_html_ga788fa23a0939bac4d1d0205fb4f35818"><div class="ttname"><a href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">glm::one_over_root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two()</div><div class="ttdoc">Return 1 / sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_gaca94292c839ed31a405ab7a81ae7e850"><div class="ttname"><a href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">glm::ln_ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two()</div><div class="ttdoc">Return ln(ln(2)). </div></div>
+<div class="ttc" id="a00162_html_gae94950df74b0ce382b1fc1d978ef7394"><div class="ttname"><a href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">glm::three_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi()</div><div class="ttdoc">Return pi / 2 * 3. </div></div>
+<div class="ttc" id="a00162_html_ga0c36b41d462e45641faf7d7938948bac"><div class="ttname"><a href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">glm::half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()</div><div class="ttdoc">Return pi / 2. </div></div>
+<div class="ttc" id="a00162_html_ga7c922b427986cbb2e4c6ac69874eefbc"><div class="ttname"><a href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">glm::one_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi()</div><div class="ttdoc">Return 1 / (pi * 2). </div></div>
+<div class="ttc" id="a00162_html_gae9ebbded75b53d4faeb1e4ef8b3347a2"><div class="ttname"><a href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">glm::root_five</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_five()</div><div class="ttdoc">Return sqrt(5). </div></div>
+<div class="ttc" id="a00162_html_ga4e276cb823cc5e612d4f89ed99c75039"><div class="ttname"><a href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">glm::root_half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi()</div><div class="ttdoc">Return sqrt(pi / 2). </div></div>
+<div class="ttc" id="a00162_html_ga2bcedc575039fe0cd765742f8bbb0bd3"><div class="ttname"><a href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">glm::root_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi()</div><div class="ttdoc">Return sqrt(2 * pi). </div></div>
+<div class="ttc" id="a00162_html_ga753950e5140e4ea6a88e4a18ba61dc09"><div class="ttname"><a href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">glm::four_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi()</div><div class="ttdoc">Return 4 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga4129412e96b33707a77c1a07652e23e2"><div class="ttname"><a href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">glm::root_ln_four</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four()</div><div class="ttdoc">Return sqrt(ln(4)). </div></div>
+<div class="ttc" id="a00162_html_ga555150da2b06d23c8738981d5013e0eb"><div class="ttname"><a href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">glm::one_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi()</div><div class="ttdoc">Return 1 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga9b4d2f4322edcf63a6737b92a29dd1f5"><div class="ttname"><a href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">glm::two_thirds</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds()</div><div class="ttdoc">Return 2 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga3c9df42bd73c519a995c43f0f99e77e0"><div class="ttname"><a href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">glm::quarter_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi()</div><div class="ttdoc">Return pi / 4. </div></div>
+<div class="ttc" id="a00162_html_ga94bafeb2a0f23ab6450fed1f98ee4e45"><div class="ttname"><a href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
+<div class="ttc" id="a00162_html_ga74eadc8a211253079683219a3ea0462a"><div class="ttname"><a href="a00162.html#ga74eadc8a211253079683219a3ea0462a">glm::two_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi()</div><div class="ttdoc">Return 2 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga748cf8642830657c5b7eae04d0a80899"><div class="ttname"><a href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">glm::golden_ratio</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio()</div><div class="ttdoc">Return the golden ratio constant. </div></div>
+<div class="ttc" id="a00162_html_gaa5276a4617566abcfe49286f40e3a256"><div class="ttname"><a href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">glm::two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()</div><div class="ttdoc">Return pi * 2. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00019.html b/src/third_party/glm/doc/api/a00019.html
new file mode 100644
index 0000000..07d7a1b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00019.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: dual_quaternion.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dual_quaternion.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00019_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
+<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
+<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
+<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
+<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
+<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
+<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
+<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
+<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
+<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
+<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
+<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
+<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4< T, P > const &x)</td></tr>
+<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4< T, P > const &x)</td></tr>
+<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Maksim Vorobiev (<a href="#" onclick="location.href='mai'+'lto:'+'mso'+'me'+'one'+'@g'+'mai'+'l.'+'com'; return false;">msome<span style="display: none;">.nosp@m.</span>one@<span style="display: none;">.nosp@m.</span>gmail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00019_source.html b/src/third_party/glm/doc/api/a00019_source.html
new file mode 100644
index 0000000..9e03752
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00019_source.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: dual_quaternion.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">dual_quaternion.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00019.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_dual_quaternion extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">struct </span>tdualquat</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">typedef</span> glm::tquat<T, P> part_type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  glm::tquat<T, P> real, dual;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL part_type & operator[](length_type i);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  GLM_FUNC_DECL part_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  template <precision Q></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const & d);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tdualquat(ctor);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> const & translation);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  template <typename U, precision Q></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4<T, P> const & holder_mat);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4<T, P> const & aug_mat);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  template <typename U></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<U, P> const & m);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  template <typename U></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  GLM_FUNC_DECL tdualquat<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  template <typename U></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  GLM_FUNC_DECL tdualquat<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  };</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  GLM_FUNC_DECL tdualquat<T, P> operator-(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  GLM_FUNC_DECL tvec3<T, P> operator*(tdualquat<T, P> const & q, tvec3<T, P> const & v);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  GLM_FUNC_DECL tvec4<T, P> operator*(tdualquat<T, P> const & q, tvec4<T, P> const & v);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, T const & s);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  GLM_FUNC_DECL tdualquat<T, P> operator*(T const & s, tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  GLM_FUNC_DECL tdualquat<T, P> operator/(tdualquat<T, P> const & q, T const & s);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a>(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a>(tdualquat<T, P> const & x, tdualquat<T, P> const & y, T const & a);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a>(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  GLM_FUNC_DECL tmat2x4<T, P> <a class="code" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a>(tdualquat<T, P> const & x);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  GLM_FUNC_DECL tmat3x4<T, P> <a class="code" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a>(tdualquat<T, P> const & x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  template <typename T, precision P></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa"> 179</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad"> 184</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf"> 189</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860"> 195</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431"> 200</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564"> 205</a></span>  typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a"> 211</a></span>  typedef tdualquat<<span class="keywordtype">double</span>, lowp> <a class="code" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4"> 216</a></span>  typedef tdualquat<<span class="keywordtype">double</span>, mediump> <a class="code" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a"> 221</a></span>  typedef tdualquat<<span class="keywordtype">double</span>, highp> <a class="code" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930"> 233</a></span>  <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for single-precision floating-point types"</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">typedef</span> mediump_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">typedef</span> lowp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># error "GLM error: Multiple default precision requested for double-precision floating-point types"</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor">#include "dual_quaternion.inl"</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00189_html_gaa38f671be25a7f3b136a452a8bb42860"><div class="ttname"><a href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">glm::lowp_fdualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_fdualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00195">dual_quaternion.hpp:195</a></div></div>
+<div class="ttc" id="a00189_html_ga20eb5758beb73cc6dbc2d9104f03ec20"><div class="ttname"><a href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">glm::dualquat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > dualquat_cast(tmat3x4< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga237c2b9b42c9a930e49de5840ae0f930"><div class="ttname"><a href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">glm::fdualquat</a></div><div class="ttdeci">highp_fdualquat fdualquat</div><div class="ttdoc">Dual-quaternion of single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00233">dual_quaternion.hpp:233</a></div></div>
+<div class="ttc" id="a00189_html_ga0fb11e48e2d16348ccb06a25213641b4"><div class="ttname"><a href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">glm::mediump_ddualquat</a></div><div class="ttdeci">tdualquat< double, mediump > mediump_ddualquat</div><div class="ttdoc">Dual-quaternion of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00216">dual_quaternion.hpp:216</a></div></div>
+<div class="ttc" id="a00189_html_ga495818aa48c23e9e730f87a3c337d1d5"><div class="ttname"><a href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > normalize(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga4a6b594ff7e81150d8143001367a9431"><div class="ttname"><a href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">glm::mediump_fdualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_fdualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00200">dual_quaternion.hpp:200</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00189_html_gab4c5103338af3dac7e0fbc86895a3f1a"><div class="ttname"><a href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">glm::lowp_ddualquat</a></div><div class="ttdeci">tdualquat< double, lowp > lowp_ddualquat</div><div class="ttdoc">Dual-quaternion of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00211">dual_quaternion.hpp:211</a></div></div>
+<div class="ttc" id="a00189_html_ga3d71f98d84ba59dfe4e369fde4714cd6"><div class="ttname"><a href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">glm::ddualquat</a></div><div class="ttdeci">highp_ddualquat ddualquat</div><div class="ttdoc">Dual-quaternion of default double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00252">dual_quaternion.hpp:252</a></div></div>
+<div class="ttc" id="a00189_html_gae93abee0c979902fbec6a7bee0f6fae1"><div class="ttname"><a href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">glm::dualquat</a></div><div class="ttdeci">highp_fdualquat dualquat</div><div class="ttdoc">Dual-quaternion of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00228">dual_quaternion.hpp:228</a></div></div>
+<div class="ttc" id="a00189_html_ga4c4e55e9c99dc57b299ed590968da564"><div class="ttname"><a href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">glm::highp_fdualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_fdualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00205">dual_quaternion.hpp:205</a></div></div>
+<div class="ttc" id="a00189_html_gaa7aeb54c167712b38f2178a1be2360ad"><div class="ttname"><a href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">glm::mediump_dualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_dualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00184">dual_quaternion.hpp:184</a></div></div>
+<div class="ttc" id="a00189_html_ga8039b88397ca09275be924a26a806a59"><div class="ttname"><a href="a00189.html#ga8039b88397ca09275be924a26a806a59">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > lerp(tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</div><div class="ttdoc">Returns the linear interpolation of two dual quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga576745d979e3c079a64152490c816954"><div class="ttname"><a href="a00189.html#ga576745d979e3c079a64152490c816954">glm::mat3x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 4 matrix. </div></div>
+<div class="ttc" id="a00189_html_ga9ef5bf1da52a9d4932335a517086ceaf"><div class="ttname"><a href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">glm::highp_dualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_dualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00189">dual_quaternion.hpp:189</a></div></div>
+<div class="ttc" id="a00189_html_ga2d124748183e12db8288eeaca350298e"><div class="ttname"><a href="a00189.html#ga2d124748183e12db8288eeaca350298e">glm::mat2x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 2 * 4 matrix. </div></div>
+<div class="ttc" id="a00189_html_gade05d29ebd4deea0f883d0e1bb4169aa"><div class="ttname"><a href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">glm::lowp_dualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_dualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00179">dual_quaternion.hpp:179</a></div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00189_html_ga2149d3cb8af04d9530de0cd16aa1aab2"><div class="ttname"><a href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > inverse(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the q inverse. </div></div>
+<div class="ttc" id="a00189_html_ga8f67eafa7197d7a668dad5105a463d2a"><div class="ttname"><a href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">glm::highp_ddualquat</a></div><div class="ttdeci">tdualquat< double, highp > highp_ddualquat</div><div class="ttdoc">Dual-quaternion of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00221">dual_quaternion.hpp:221</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00020.html b/src/third_party/glm/doc/api/a00020.html
new file mode 100644
index 0000000..351c770
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00020.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: epsilon.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">epsilon.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00020_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)</td></tr>
+<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &x, genType const &y, typename genType::value_type const &epsilon)</td></tr>
+<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00163.html">GLM_GTC_epsilon</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00020_source.html">epsilon.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00020_source.html b/src/third_party/glm/doc/api/a00020_source.html
new file mode 100644
index 0000000..9444656
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00020_source.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: epsilon.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">epsilon.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00020.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_epsilon extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  vecType<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  genType <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::boolType <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  genType <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "epsilon.inl"</span></div>
+<div class="ttc" id="a00163_html_ga50a92103fb0cbd796908e1bf20c79aaf"><div class="ttname"><a href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">glm::epsilonNotEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| >= epsilon. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00163_html_gaa7f227999ca09e7ca994e8b35aba47bb"><div class="ttname"><a href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">glm::epsilonEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| < epsilon. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00021.html b/src/third_party/glm/doc/api/a00021.html
new file mode 100644
index 0000000..cc8303b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00021.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: euler_angles.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">euler_angles.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00021_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &angleX)</td></tr>
+<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &angleX, T const &angleY)</td></tr>
+<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &t1, T const &t2, T const &t3)</td></tr>
+<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &angleX, T const &angleZ)</td></tr>
+<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &angleY)</td></tr>
+<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &angleY, T const &angleX)</td></tr>
+<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &angleY, T const &angleZ)</td></tr>
+<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &angleZ)</td></tr>
+<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &angle, T const &angleX)</td></tr>
+<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &angleZ, T const &angleY)</td></tr>
+<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a> (tmat4x4< T, defaultp > const &M, T &t1, T &t2, T &t3)</td></tr>
+<tr class="separator:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &angle)</td></tr>
+<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &angle)</td></tr>
+<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00021_source.html">euler_angles.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00021_source.html b/src/third_party/glm/doc/api/a00021_source.html
new file mode 100644
index 0000000..8436efb
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00021_source.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: euler_angles.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">euler_angles.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00021.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_euler_angles extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  T <span class="keyword">const</span> & angleX,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  T <span class="keyword">const</span> & angleY,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a>(</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  T <span class="keyword">const</span> & angleX,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  T <span class="keyword">const</span> & angleY,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a>(</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  T <span class="keyword">const</span> & angleZ,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a>(</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  T <span class="keyword">const</span> & t1,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  T <span class="keyword">const</span> & t2,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  T <span class="keyword">const</span> & t3);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a>(</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a>(T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a>(tmat4x4<T, defaultp> <span class="keyword">const</span> & M,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  T & t1,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  T & t2,</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  T & t3);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#include "euler_angles.inl"</span></div>
+<div class="ttc" id="a00172_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat< T, P > const &x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga82cd3b8a04943f1a0d1a562aff358dc8"><div class="ttname"><a href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">glm::eulerAngleX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleX(T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </div></div>
+<div class="ttc" id="a00190_html_gab2d7dc94b9a7519d741aaa208c7a335b"><div class="ttname"><a href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">glm::eulerAngleXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga1033f84f51d61646145352ef0c1bb58c"><div class="ttname"><a href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">glm::eulerAngleYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </div></div>
+<div class="ttc" id="a00172_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat< T, P > const &x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_gaf9c8d0f1df88c5344165600774489bc5"><div class="ttname"><a href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">glm::yawPitchRoll</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaaedda1657a1aebe0a904d864b33844e8"><div class="ttname"><a href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">glm::eulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00190_html_ga0242b5ab68651db70c6025815549427f"><div class="ttname"><a href="a00190.html#ga0242b5ab68651db70c6025815549427f">glm::eulerAngleYXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaeb193af1184bdf39c23636d756e1ff33"><div class="ttname"><a href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">glm::eulerAngleY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleY(T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </div></div>
+<div class="ttc" id="a00190_html_ga02f037926568bbd12dfece3b28b20343"><div class="ttname"><a href="a00190.html#ga02f037926568bbd12dfece3b28b20343">glm::eulerAngleZY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </div></div>
+<div class="ttc" id="a00190_html_gaef83cf40bd9ae780011b29970f16f622"><div class="ttname"><a href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">glm::eulerAngleZX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </div></div>
+<div class="ttc" id="a00190_html_ga4e25c9468b6f002c76e9a2412bcfa503"><div class="ttname"><a href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">glm::orientate4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientate4(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gab59c4fe7f735568255cc19fddd3ddfcd"><div class="ttname"><a href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">glm::eulerAngleZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00190_html_gafdd02f9a37511190962119adef5c1c25"><div class="ttname"><a href="a00190.html#gafdd02f9a37511190962119adef5c1c25">glm::eulerAngleYX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </div></div>
+<div class="ttc" id="a00190_html_ga33f0d790cecd8337ee83f8e3a8109b11"><div class="ttname"><a href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">glm::orientate3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > orientate3(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga8bf84f92ca976a7f50dbe4b30ceb72dd"><div class="ttname"><a href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">glm::eulerAngleXY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </div></div>
+<div class="ttc" id="a00190_html_gad5838a4c87ce2b8ee4c4e17bd162fd14"><div class="ttname"><a href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">glm::extractEulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4< T, defaultp > const &M, T &t1, T &t2, T &t3)</div><div class="ttdoc">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </div></div>
+<div class="ttc" id="a00172_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat< T, P > const &x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga6f465681cbbc575ad93a53ec918dacf3"><div class="ttname"><a href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">glm::orientate2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > orientate2(T const &angle)</div><div class="ttdoc">Creates a 2D 2 * 2 rotation matrix from an euler angle. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00022.html b/src/third_party/glm/doc/api/a00022.html
new file mode 100644
index 0000000..1a875f0
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00022.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">exponential.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00022_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00022_source.html">exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00022_source.html b/src/third_party/glm/doc/api/a00022_source.html
new file mode 100644
index 0000000..ecad960
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00022_source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: exponential.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">exponential.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00022.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00030.html">detail/func_exponential.hpp</a>"</span></div>
+<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00023.html b/src/third_party/glm/doc/api/a00023.html
new file mode 100644
index 0000000..d873328
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00023.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: ext.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ext.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00023_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> (Dependence) </p>
+
+<p>Definition in file <a class="el" href="a00023_source.html">ext.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00023_source.html b/src/third_party/glm/doc/api/a00023_source.html
new file mode 100644
index 0000000..6638219
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00023_source.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: ext.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ext.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00023.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="a00040.html">glm.hpp</a>"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># pragma message("GLM: All extensions included (not recommanded)")</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00009.html">./gtc/bitfield.hpp</a>"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00011.html">./gtc/color_space.hpp</a>"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="a00018.html">./gtc/constants.hpp</a>"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="a00020.html">./gtc/epsilon.hpp</a>"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="a00037.html">./gtc/functions.hpp</a>"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="a00044.html">./gtc/integer.hpp</a>"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="a00061.html">./gtc/matrix_access.hpp</a>"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00064.html">./gtc/matrix_integer.hpp</a>"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00066.html">./gtc/matrix_inverse.hpp</a>"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00070.html">./gtc/matrix_transform.hpp</a>"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00073.html">./gtc/noise.hpp</a>"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="a00080.html">./gtc/packing.hpp</a>"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "<a class="code" href="a00087.html">./gtc/quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "<a class="code" href="a00089.html">./gtc/random.hpp</a>"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">./gtc/reciprocal.hpp</a>"</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "<a class="code" href="a00095.html">./gtc/round.hpp</a>"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//#include "./gtc/type_aligned.hpp"</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "<a class="code" href="a00124.html">./gtc/type_precision.hpp</a>"</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "<a class="code" href="a00125.html">./gtc/type_ptr.hpp</a>"</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">./gtc/ulp.hpp</a>"</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "<a class="code" href="a00133.html">./gtc/vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># include "<a class="code" href="a00108.html">./gtc/type_aligned.hpp</a>"</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "<a class="code" href="a00007.html">./gtx/associated_min_max.hpp</a>"</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "<a class="code" href="a00008.html">./gtx/bit.hpp</a>"</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "<a class="code" href="a00010.html">./gtx/closest_point.hpp</a>"</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "<a class="code" href="a00012.html">./gtx/color_space.hpp</a>"</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "<a class="code" href="a00013.html">./gtx/color_space_YCoCg.hpp</a>"</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "<a class="code" href="a00016.html">./gtx/compatibility.hpp</a>"</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "<a class="code" href="a00017.html">./gtx/component_wise.hpp</a>"</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="a00019.html">./gtx/dual_quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="a00021.html">./gtx/euler_angles.hpp</a>"</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="a00024.html">./gtx/extend.hpp</a>"</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "<a class="code" href="a00025.html">./gtx/extended_min_max.hpp</a>"</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="a00026.html">./gtx/fast_exponential.hpp</a>"</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "<a class="code" href="a00027.html">./gtx/fast_square_root.hpp</a>"</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="a00028.html">./gtx/fast_trigonometry.hpp</a>"</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="a00041.html">./gtx/gradient_paint.hpp</a>"</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "<a class="code" href="a00042.html">./gtx/handed_coordinate_space.hpp</a>"</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "<a class="code" href="a00045.html">./gtx/integer.hpp</a>"</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="a00047.html">./gtx/intersect.hpp</a>"</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#include "<a class="code" href="a00049.html">./gtx/log_base.hpp</a>"</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00062.html">./gtx/matrix_cross_product.hpp</a>"</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include "<a class="code" href="a00065.html">./gtx/matrix_interpolation.hpp</a>"</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include "<a class="code" href="a00067.html">./gtx/matrix_major_storage.hpp</a>"</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="a00068.html">./gtx/matrix_operation.hpp</a>"</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "<a class="code" href="a00069.html">./gtx/matrix_query.hpp</a>"</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="a00072.html">./gtx/mixed_product.hpp</a>"</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "<a class="code" href="a00074.html">./gtx/norm.hpp</a>"</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="a00075.html">./gtx/normal.hpp</a>"</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "<a class="code" href="a00076.html">./gtx/normalize_dot.hpp</a>"</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "<a class="code" href="a00077.html">./gtx/number_precision.hpp</a>"</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "<a class="code" href="a00078.html">./gtx/optimum_pow.hpp</a>"</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "<a class="code" href="a00079.html">./gtx/orthonormalize.hpp</a>"</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#include "<a class="code" href="a00083.html">./gtx/perpendicular.hpp</a>"</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#include "<a class="code" href="a00084.html">./gtx/polar_coordinates.hpp</a>"</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#include "<a class="code" href="a00086.html">./gtx/projection.hpp</a>"</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#include "<a class="code" href="a00088.html">./gtx/quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "<a class="code" href="a00091.html">./gtx/raw_data.hpp</a>"</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#include "<a class="code" href="a00094.html">./gtx/rotate_vector.hpp</a>"</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#include "<a class="code" href="a00102.html">./gtx/spline.hpp</a>"</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#include "<a class="code" href="a00103.html">./gtx/std_based_type.hpp</a>"</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#if !(GLM_COMPILER & GLM_COMPILER_CUDA)</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># include "<a class="code" href="a00104.html">./gtx/string_cast.hpp</a>"</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">./gtx/transform.hpp</a>"</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#include "<a class="code" href="a00106.html">./gtx/transform2.hpp</a>"</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#include "<a class="code" href="a00137.html">./gtx/vector_angle.hpp</a>"</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "<a class="code" href="a00138.html">./gtx/vector_query.hpp</a>"</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#include "<a class="code" href="a00140.html">./gtx/wrap.hpp</a>"</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#if GLM_HAS_TEMPLATE_ALIASES</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"># include "<a class="code" href="a00096.html">./gtx/scalar_multiplication.hpp</a>"</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#if GLM_HAS_RANGE_FOR</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># include "<a class="code" href="a00090.html">./gtx/range.hpp</a>"</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00024_html"><div class="ttname"><a href="a00024.html">extend.hpp</a></div><div class="ttdoc">GLM_GTX_extend </div></div>
+<div class="ttc" id="a00124_html"><div class="ttname"><a href="a00124.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
+<div class="ttc" id="a00010_html"><div class="ttname"><a href="a00010.html">closest_point.hpp</a></div><div class="ttdoc">GLM_GTX_closest_point </div></div>
+<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">matrix_operation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_operation </div></div>
+<div class="ttc" id="a00091_html"><div class="ttname"><a href="a00091.html">raw_data.hpp</a></div><div class="ttdoc">GLM_GTX_raw_data </div></div>
+<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">fast_square_root.hpp</a></div><div class="ttdoc">GLM_GTX_fast_square_root </div></div>
+<div class="ttc" id="a00044_html"><div class="ttname"><a href="a00044.html">integer.hpp</a></div><div class="ttdoc">GLM_GTC_integer </div></div>
+<div class="ttc" id="a00042_html"><div class="ttname"><a href="a00042.html">handed_coordinate_space.hpp</a></div><div class="ttdoc">GLM_GTX_handed_coordinate_space </div></div>
+<div class="ttc" id="a00103_html"><div class="ttname"><a href="a00103.html">std_based_type.hpp</a></div><div class="ttdoc">GLM_GTX_std_based_type </div></div>
+<div class="ttc" id="a00088_html"><div class="ttname"><a href="a00088.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_quaternion </div></div>
+<div class="ttc" id="a00076_html"><div class="ttname"><a href="a00076.html">normalize_dot.hpp</a></div><div class="ttdoc">GLM_GTX_normalize_dot </div></div>
+<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">intersect.hpp</a></div><div class="ttdoc">GLM_GTX_intersect </div></div>
+<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">matrix_integer.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_integer </div></div>
+<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">matrix_cross_product.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_cross_product </div></div>
+<div class="ttc" id="a00021_html"><div class="ttname"><a href="a00021.html">euler_angles.hpp</a></div><div class="ttdoc">GLM_GTX_euler_angles </div></div>
+<div class="ttc" id="a00079_html"><div class="ttname"><a href="a00079.html">orthonormalize.hpp</a></div><div class="ttdoc">GLM_GTX_orthonormalize </div></div>
+<div class="ttc" id="a00096_html"><div class="ttname"><a href="a00096.html">scalar_multiplication.hpp</a></div><div class="ttdoc">GTX Extensions (Experimental) </div></div>
+<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">matrix_major_storage.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_major_storage </div></div>
+<div class="ttc" id="a00084_html"><div class="ttname"><a href="a00084.html">polar_coordinates.hpp</a></div><div class="ttdoc">GLM_GTX_polar_coordinates </div></div>
+<div class="ttc" id="a00018_html"><div class="ttname"><a href="a00018.html">constants.hpp</a></div><div class="ttdoc">GLM_GTC_constants </div></div>
+<div class="ttc" id="a00070_html"><div class="ttname"><a href="a00070.html">matrix_transform.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_transform </div></div>
+<div class="ttc" id="a00041_html"><div class="ttname"><a href="a00041.html">gradient_paint.hpp</a></div><div class="ttdoc">GLM_GTX_gradient_paint </div></div>
+<div class="ttc" id="a00106_html"><div class="ttname"><a href="a00106.html">transform2.hpp</a></div><div class="ttdoc">GLM_GTX_transform2 </div></div>
+<div class="ttc" id="a00087_html"><div class="ttname"><a href="a00087.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTC_quaternion </div></div>
+<div class="ttc" id="a00075_html"><div class="ttname"><a href="a00075.html">normal.hpp</a></div><div class="ttdoc">GLM_GTX_normal </div></div>
+<div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">bitfield.hpp</a></div><div class="ttdoc">GLM_GTC_bitfield </div></div>
+<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">vector_query.hpp</a></div><div class="ttdoc">GLM_GTX_vector_query </div></div>
+<div class="ttc" id="a00090_html"><div class="ttname"><a href="a00090.html">range.hpp</a></div><div class="ttdoc">GLM_GTX_range </div></div>
+<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">matrix_access.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_access </div></div>
+<div class="ttc" id="a00026_html"><div class="ttname"><a href="a00026.html">fast_exponential.hpp</a></div><div class="ttdoc">GLM_GTX_fast_exponential </div></div>
+<div class="ttc" id="a00012_html"><div class="ttname"><a href="a00012.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTX_color_space </div></div>
+<div class="ttc" id="a00095_html"><div class="ttname"><a href="a00095.html">round.hpp</a></div><div class="ttdoc">GLM_GTC_round </div></div>
+<div class="ttc" id="a00083_html"><div class="ttname"><a href="a00083.html">perpendicular.hpp</a></div><div class="ttdoc">GLM_GTX_perpendicular </div></div>
+<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">component_wise.hpp</a></div><div class="ttdoc">GLM_GTX_component_wise </div></div>
+<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">transform.hpp</a></div><div class="ttdoc">GLM_GTX_transform </div></div>
+<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">ulp.hpp</a></div><div class="ttdoc">GLM_GTC_ulp </div></div>
+<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">epsilon.hpp</a></div><div class="ttdoc">GLM_GTC_epsilon </div></div>
+<div class="ttc" id="a00078_html"><div class="ttname"><a href="a00078.html">optimum_pow.hpp</a></div><div class="ttdoc">GLM_GTX_optimum_pow </div></div>
+<div class="ttc" id="a00049_html"><div class="ttname"><a href="a00049.html">log_base.hpp</a></div><div class="ttdoc">GLM_GTX_log_base </div></div>
+<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">matrix_inverse.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_inverse </div></div>
+<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">functions.hpp</a></div><div class="ttdoc">GLM_GTC_functions </div></div>
+<div class="ttc" id="a00137_html"><div class="ttname"><a href="a00137.html">vector_angle.hpp</a></div><div class="ttdoc">GLM_GTX_vector_angle </div></div>
+<div class="ttc" id="a00025_html"><div class="ttname"><a href="a00025.html">extended_min_max.hpp</a></div><div class="ttdoc">gtx_extended_min_max </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_ptr.hpp</a></div><div class="ttdoc">GLM_GTC_type_ptr </div></div>
+<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">color_space_YCoCg.hpp</a></div><div class="ttdoc">GLM_GTX_color_space_YCoCg </div></div>
+<div class="ttc" id="a00040_html"><div class="ttname"><a href="a00040.html">glm.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00011_html"><div class="ttname"><a href="a00011.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTC_color_space </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">wrap.hpp</a></div><div class="ttdoc">GLM_GTX_wrap </div></div>
+<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">matrix_query.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_query </div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">projection.hpp</a></div><div class="ttdoc">GLM_GTX_projection </div></div>
+<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">norm.hpp</a></div><div class="ttdoc">GLM_GTX_norm </div></div>
+<div class="ttc" id="a00045_html"><div class="ttname"><a href="a00045.html">integer.hpp</a></div><div class="ttdoc">GLM_GTX_integer </div></div>
+<div class="ttc" id="a00072_html"><div class="ttname"><a href="a00072.html">mixed_product.hpp</a></div><div class="ttdoc">GLM_GTX_mixed_producte </div></div>
+<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">bit.hpp</a></div><div class="ttdoc">GLM_GTX_bit </div></div>
+<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">vec1.hpp</a></div><div class="ttdoc">GLM_GTC_vec1 </div></div>
+<div class="ttc" id="a00108_html"><div class="ttname"><a href="a00108.html">type_aligned.hpp</a></div><div class="ttdoc">GLM_GTC_type_aligned </div></div>
+<div class="ttc" id="a00089_html"><div class="ttname"><a href="a00089.html">random.hpp</a></div><div class="ttdoc">GLM_GTC_random </div></div>
+<div class="ttc" id="a00077_html"><div class="ttname"><a href="a00077.html">number_precision.hpp</a></div><div class="ttdoc">GLM_GTX_number_precision </div></div>
+<div class="ttc" id="a00094_html"><div class="ttname"><a href="a00094.html">rotate_vector.hpp</a></div><div class="ttdoc">GLM_GTX_rotate_vector </div></div>
+<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">matrix_interpolation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_interpolation </div></div>
+<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">reciprocal.hpp</a></div><div class="ttdoc">GLM_GTC_reciprocal </div></div>
+<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">fast_trigonometry.hpp</a></div><div class="ttdoc">GLM_GTX_fast_trigonometry </div></div>
+<div class="ttc" id="a00080_html"><div class="ttname"><a href="a00080.html">packing.hpp</a></div><div class="ttdoc">GLM_GTC_packing </div></div>
+<div class="ttc" id="a00016_html"><div class="ttname"><a href="a00016.html">compatibility.hpp</a></div><div class="ttdoc">GLM_GTX_compatibility </div></div>
+<div class="ttc" id="a00104_html"><div class="ttname"><a href="a00104.html">string_cast.hpp</a></div><div class="ttdoc">GLM_GTX_string_cast </div></div>
+<div class="ttc" id="a00102_html"><div class="ttname"><a href="a00102.html">spline.hpp</a></div><div class="ttdoc">GLM_GTX_spline </div></div>
+<div class="ttc" id="a00073_html"><div class="ttname"><a href="a00073.html">noise.hpp</a></div><div class="ttdoc">GLM_GTC_noise </div></div>
+<div class="ttc" id="a00019_html"><div class="ttname"><a href="a00019.html">dual_quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_dual_quaternion </div></div>
+<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">associated_min_max.hpp</a></div><div class="ttdoc">GLM_GTX_associated_min_max </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00024.html b/src/third_party/glm/doc/api/a00024.html
new file mode 100644
index 0000000..a06b629
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00024.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: extend.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">extend.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00024_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &Origin, genType const &Source, typename genType::value_type const Length)</td></tr>
+<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00191.html">GLM_GTX_extend</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00024_source.html">extend.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00024_source.html b/src/third_party/glm/doc/api/a00024_source.html
new file mode 100644
index 0000000..e82d146
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00024_source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: extend.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">extend.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00024.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extend extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL genType <a class="code" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  genType <span class="keyword">const</span> & Origin, </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  genType <span class="keyword">const</span> & Source, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "extend.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00191_html_ga8140caae613b0f847ab0d7175dc03a37"><div class="ttname"><a href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">glm::extend</a></div><div class="ttdeci">GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)</div><div class="ttdoc">Extends of Length the Origin position using the (Source - Origin) direction. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00025.html b/src/third_party/glm/doc/api/a00025.html
new file mode 100644
index 0000000..e99d60e
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00025.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: extended_min_max.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">extended_min_max.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00025_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga95466987024d03039607f09e69813d69">min</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>gtx_extended_min_max </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtx_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00025_source.html">extended_min_max.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00025_source.html b/src/third_party/glm/doc/api/a00025_source.html
new file mode 100644
index 0000000..ff10605
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00025_source.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: extended_min_max.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">extended_min_max.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00025.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extented_min_max extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  C<T> <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  C<T> <span class="keyword">const</span> & z,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  C<T> <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  C<T> <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  C<T> <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  C<T> <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#include "extended_min_max.inl"</span></div>
+<div class="ttc" id="a00192_html_ga7471ea4159eed8dd9ea4ac5d46c2fead"><div class="ttname"><a href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the minimum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00192_html_gaacffbc466c2d08c140b181e7fd8a4858"><div class="ttname"><a href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the maximum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00026.html b/src/third_party/glm/doc/api/a00026.html
new file mode 100644
index 0000000..fe6542d
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00026.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fast_exponential.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00026_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
+<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
+<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
+<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
+<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
+<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template<typename genTypeT , typename genTypeU > </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
+<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtx_half_float (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00026_source.html">fast_exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00026_source.html b/src/third_party/glm/doc/api/a00026_source.html
new file mode 100644
index 0000000..67bf8b8
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00026_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_exponential.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">fast_exponential.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00026.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_exponential extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL genType <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genType x, genType y);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  GLM_FUNC_DECL genTypeT <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genTypeT x, genTypeU y);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL T <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(T x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  GLM_FUNC_DECL T <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(T x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL T <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(T x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  GLM_FUNC_DECL T <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(T x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "fast_exponential.inl"</span></div>
+<div class="ttc" id="a00193_html_ga789abcbc34d08008d2f5a4547dd6e5e3"><div class="ttname"><a href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">glm::fastLog</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga29924aea1aa11c5c504fb2d621221906"><div class="ttname"><a href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">glm::fastPow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastPow(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common pow function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00193_html_ga4faf0b61115de36efcf47c4ecb55a5fa"><div class="ttname"><a href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">glm::fastExp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga9e6219327b7a33077dbec7620d981fff"><div class="ttname"><a href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">glm::fastExp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_gabc46086fe6636b8be87f09e6c5d2bb58"><div class="ttname"><a href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">glm::fastLog2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common log2 function but less accurate. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00027.html b/src/third_party/glm/doc/api/a00027.html
new file mode 100644
index 0000000..7efc7ac
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00027.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_square_root.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fast_square_root.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00027_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
+<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
+<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
+<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &x)</td></tr>
+<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
+<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00027_source.html">fast_square_root.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00027_source.html b/src/third_party/glm/doc/api/a00027_source.html
new file mode 100644
index 0000000..4b314ef
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00027_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_square_root.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">fast_square_root.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00027.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_square_root extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL genType <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(genType x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(genType x);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL genType <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(genType x);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  GLM_FUNC_DECL T <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(genType x, genType y);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  GLM_FUNC_DECL T <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "fast_square_root.inl"</span></div>
+<div class="ttc" id="a00194_html_ga6d1ac559cd77d69119e30c3aca0e14b5"><div class="ttname"><a href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">glm::fastDistance</a></div><div class="ttdeci">GLM_FUNC_DECL T fastDistance(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Faster than the common distance function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga903878071f92e51e551791e584a171a1"><div class="ttname"><a href="a00194.html#ga903878071f92e51e551791e584a171a1">glm::fastInverseSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastInverseSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common inversesqrt function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00194_html_gaad9f601bbc3faa04dda384e4c4e1592c"><div class="ttname"><a href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_gae28a3099cbd6404a4ea8ef22147ed7b0"><div class="ttname"><a href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL T fastLength(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00028.html b/src/third_party/glm/doc/api/a00028.html
new file mode 100644
index 0000000..11c45da
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00028.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_trigonometry.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">fast_trigonometry.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00028_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
+<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
+<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
+<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
+<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
+<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
+<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
+<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
+<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00028_source.html">fast_trigonometry.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00028_source.html b/src/third_party/glm/doc/api/a00028_source.html
new file mode 100644
index 0000000..8e2af01
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00028_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fast_trigonometry.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">fast_trigonometry.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00028.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_trigonometry extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T y, T x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "fast_trigonometry.inl"</span></div>
+<div class="ttc" id="a00195_html_ga9721d63356e5d94fdc4b393a426ab26b"><div class="ttname"><a href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">glm::fastAcos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAcos(T angle)</div><div class="ttdoc">Faster than the common acos function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00195_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_ga069527c6dbd64f53435b8ebc4878b473"><div class="ttname"><a href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">glm::wrapAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T wrapAngle(T angle)</div><div class="ttdoc">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </div></div>
+<div class="ttc" id="a00195_html_ga562cb62c51fbfe7fac7db0bce706b81f"><div class="ttname"><a href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">glm::fastAsin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAsin(T angle)</div><div class="ttdoc">Faster than the common asin function but less accurate. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00195_html_gaf29b9c1101a10007b4f79ee89df27ba2"><div class="ttname"><a href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">glm::fastTan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastTan(T angle)</div><div class="ttdoc">Faster than the common tan function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gab34c8b45c23c0165a64dcecfcc3b302a"><div class="ttname"><a href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">glm::fastCos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastCos(T angle)</div><div class="ttdoc">Faster than the common cos function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gae25de86a968490ff56856fa425ec9d30"><div class="ttname"><a href="a00195.html#gae25de86a968490ff56856fa425ec9d30">glm::fastAtan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAtan(T angle)</div><div class="ttdoc">Faster than the common atan function but less accurate. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00029.html b/src/third_party/glm/doc/api/a00029.html
new file mode 100644
index 0000000..984be42
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00029.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_common.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_common.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00029_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
+<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
+<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
+<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
+<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
+<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
+<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
+<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
+<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
+<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
+<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
+<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
+<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
+<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
+<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
+<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
+<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
+<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00029_source.html">func_common.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00029_source.html b/src/third_party/glm/doc/api/a00029_source.html
new file mode 100644
index 0000000..7818dbb
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00029_source.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_common.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_common.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00029.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">type_int.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">_fixes.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a>(genType x);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga655598104195a60a950291485e84a97e">roundEven</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(genType x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  GLM_FUNC_DECL genType <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(genType x, genType y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType & i);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(genType x, genType y);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(genType x, genType y);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(genType x, genType minVal, genType maxVal);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, T minVal, T maxVal);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & minVal, vecType<T, P> <span class="keyword">const</span> & maxVal);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & a);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, U a);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  GLM_FUNC_DECL genTypeT <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(genType edge, genType x);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(T edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(vecType<T, P> <span class="keyword">const</span> & edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vecType<T, P> <span class="keyword">const</span> & edge0, vecType<T, P> <span class="keyword">const</span> & edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(vecType<int, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(vecType<uint, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span> & a, genType <span class="keyword">const</span> & b, genType <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a>(genType <span class="keyword">const</span> & x, genIType & <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga52e319d7289b849ec92055abd4830533">ldexp</a>(genType <span class="keyword">const</span> & x, genIType <span class="keyword">const</span> & <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor">#include "func_common.inl"</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="ttc" id="a00146_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
+<div class="ttc" id="a00146_html_ga52e319d7289b849ec92055abd4830533"><div class="ttname"><a href="a00146.html#ga52e319d7289b849ec92055abd4830533">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
+<div class="ttc" id="a00146_html_gad21ab176dd0e6b59d923db5efca87f4e"><div class="ttname"><a href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > intBitsToFloat(vecType< int, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00146_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
+<div class="ttc" id="a00146_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
+<div class="ttc" id="a00146_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
+<div class="ttc" id="a00146_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00146.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00146_html_ga655598104195a60a950291485e84a97e"><div class="ttname"><a href="a00146.html#ga655598104195a60a950291485e84a97e">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundEven(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00146_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
+<div class="ttc" id="a00146_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00146.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
+<div class="ttc" id="a00146_html_ga6cb8f202a52eed2331724a3800198ebf"><div class="ttname"><a href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isnan(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
+<div class="ttc" id="a00146_html_ga20620e83544d1a988857a3bc4ebe0e1d"><div class="ttname"><a href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType const &x, genIType &exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga1804d4c443605d8a27be644aa461afe4"><div class="ttname"><a href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > floatBitsToUint(vecType< float, P > const &v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga3acab37650ecd792dc84548094b58684"><div class="ttname"><a href="a00146.html#ga3acab37650ecd792dc84548094b58684">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > uintBitsToFloat(vecType< uint, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00146_html_ga6d84170051fb87c183c38883ec85b411"><div class="ttname"><a href="a00146.html#ga6d84170051fb87c183c38883ec85b411">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > step(vecType< T, P > const &edge, vecType< T, P > const &x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
+<div class="ttc" id="a00147_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00146_html_gaf28f7a4696746f081685c9fd05c7e2de"><div class="ttname"><a href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isinf(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="a00165_html_gaf5ae5330f6b30b4a35fb95f9a73d6134"><div class="ttname"><a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mod(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00146_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00146_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_gac4a0710238ae54c67931dd29a0b0f873"><div class="ttname"><a href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > floatBitsToInt(vecType< float, P > const &v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00146_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00146_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00030.html b/src/third_party/glm/doc/api/a00030.html
new file mode 100644
index 0000000..aafc203
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00030.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_exponential.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_exponential.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00030_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
+<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00030_source.html">func_exponential.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00030_source.html b/src/third_party/glm/doc/api/a00030_source.html
new file mode 100644
index 0000000..589a3b4
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00030_source.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_exponential.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_exponential.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00030.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">type_vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a>(vecType<T, P> <span class="keyword">const</span> & base, vecType<T, P> <span class="keyword">const</span> & exponent);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga21efca311e62d233de0ae96bab126b83">log</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#gabae30945338a555a03733f00dad95d0d">log2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">//template <typename genType></span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">//GLM_FUNC_DECL genType sqrt(genType const & x);</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#include "func_exponential.inl"</span></div>
+<div class="ttc" id="a00147_html_ga082b332a4b7c6ad1d43e09ff19e214dd"><div class="ttname"><a href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > pow(vecType< T, P > const &base, vecType< T, P > const &exponent)</div><div class="ttdoc">Returns 'base' raised to the power 'exponent'. </div></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga21efca311e62d233de0ae96bab126b83"><div class="ttname"><a href="a00147.html#ga21efca311e62d233de0ae96bab126b83">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...</div></div>
+<div class="ttc" id="a00147_html_ga42ca440d9062f1f456f5a9e896378f9c"><div class="ttname"><a href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp2(vecType< T, P > const &v)</div><div class="ttdoc">Returns 2 raised to the v power. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_gabae30945338a555a03733f00dad95d0d"><div class="ttname"><a href="a00147.html#gabae30945338a555a03733f00dad95d0d">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log2(vecType< T, P > const &v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...</div></div>
+<div class="ttc" id="a00147_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00031.html b/src/third_party/glm/doc/api/a00031.html
new file mode 100644
index 0000000..8ba48c7
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00031.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_geometric.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_geometric.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00031_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
+<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
+<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
+<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
+<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00031_source.html">func_geometric.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00031_source.html b/src/third_party/glm/doc/api/a00031_source.html
new file mode 100644
index 0000000..71f4c42
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00031_source.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_geometric.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_geometric.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00031.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  GLM_FUNC_DECL T <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL T <a class="code" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  vecType<T, P> <span class="keyword">const</span> & p0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  vecType<T, P> <span class="keyword">const</span> & p1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_FUNC_DECL T <a class="code" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  tvec3<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  vecType<T, P> <span class="keyword">const</span> & N,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  vecType<T, P> <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  vecType<T, P> <span class="keyword">const</span> & Nref);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  GLM_FUNC_DECL genType <a class="code" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  genType <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  genType <span class="keyword">const</span> & N);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  vecType<T, P> <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  vecType<T, P> <span class="keyword">const</span> & N,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  T eta);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#include "func_geometric.inl"</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00148_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
+<div class="ttc" id="a00148_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="ttc" id="a00148_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
+<div class="ttc" id="a00148_html_gaea854e5aec1b5839832ac2dfc7cd3c0d"><div class="ttname"><a href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">glm::faceforward</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > faceforward(vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</div><div class="ttdoc">If dot(Nref, I) < 0.0, return N, otherwise, return -N. </div></div>
+<div class="ttc" id="a00148_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00148.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
+<div class="ttc" id="a00148_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00148_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00032.html b/src/third_party/glm/doc/api/a00032.html
new file mode 100644
index 0000000..3d67986
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00032.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00032_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
+<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
+<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
+<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
+<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
+<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
+<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
+<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
+<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
+<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00032_source.html">func_integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00032_source.html b/src/third_party/glm/doc/api/a00032_source.html
new file mode 100644
index 0000000..ef3d916
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00032_source.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_integer.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_integer.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00032.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">func_common.hpp</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00036.html">func_vector_relational.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  vecType<uint, P> & carry);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  vecType<uint, P> & borrow);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  vecType<uint, P> & msb,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  vecType<uint, P> & lsb);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  vecType<int, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  vecType<int, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  vecType<int, P> & msb,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  vecType<int, P> & lsb);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  vecType<T, P> <span class="keyword">const</span> & Value,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a>(</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  vecType<T, P> <span class="keyword">const</span> & Base,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  vecType<T, P> <span class="keyword">const</span> & Insert,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(genType v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(genIUType x);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(genIUType x);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#include "func_integer.inl"</span></div>
+<div class="ttc" id="a00149_html_ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><div class="ttname"><a href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">glm::uaddCarry</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > uaddCarry(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</div><div class="ttdoc">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </div></div>
+<div class="ttc" id="a00149_html_ga22a889bf08313b7e547e2cdb8bb15ee4"><div class="ttname"><a href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">glm::usubBorrow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > usubBorrow(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</div><div class="ttdoc">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </div></div>
+<div class="ttc" id="a00149_html_ga5681dfac9239beb1b8bd995e3c6496d7"><div class="ttname"><a href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">glm::bitfieldInsert</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldInsert(vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</div><div class="ttdoc">Returns the insertion the bits least-significant bits of insert into base. </div></div>
+<div class="ttc" id="a00149_html_ga456ff9dcec42f6769a9ae2a2af7f1ce1"><div class="ttname"><a href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">glm::umulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void umulExtended(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00149_html_gab84b88f3a8e367774e5dd1c618c353cf"><div class="ttname"><a href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">glm::bitfieldExtract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldExtract(vecType< T, P > const &Value, int Offset, int Bits)</div><div class="ttdoc">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...</div></div>
+<div class="ttc" id="a00149_html_ga014a72009e68233c34c06a6dc2251b8c"><div class="ttname"><a href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">glm::findLSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findLSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the least significant bit set to 1 in the binary representation of value...</div></div>
+<div class="ttc" id="a00149_html_ga153e7e8d0c035f83cce50fc3e580930f"><div class="ttname"><a href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">glm::bitfieldReverse</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldReverse(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reversal of the bits of value. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00149_html_ga1f29640969a3c54564da06ac67a5392e"><div class="ttname"><a href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">glm::bitCount</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > bitCount(vecType< T, P > const &v)</div><div class="ttdoc">Returns the number of bits set to 1 in the binary representation of value. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00149_html_ga6e6e8b29ca40d8ca2df10b58ed17d426"><div class="ttname"><a href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">glm::imulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void imulExtended(vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00149_html_ga433104d77ec2ba58888aaefb77e9183f"><div class="ttname"><a href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">glm::findMSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findMSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the most significant bit in the binary representation of value...</div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00033.html b/src/third_party/glm/doc/api/a00033.html
new file mode 100644
index 0000000..3fc46b0
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00033.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_matrix.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_matrix.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00033_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
+<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType< T, P > const &m)</td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
+<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB> </td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
+<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00033_source.html">func_matrix.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00033_source.html b/src/third_party/glm/doc/api/a00033_source.html
new file mode 100644
index 0000000..c3a03bc
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00033_source.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_matrix.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_matrix.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00033.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/type_mat.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec2></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">typedef</span> tmat2x2<T, P> type;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec3></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">typedef</span> tmat3x2<T, P> type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec4></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">typedef</span> tmat4x2<T, P> type;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec2></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">typedef</span> tmat2x3<T, P> type;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec3></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">typedef</span> tmat3x3<T, P> type;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec4></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">typedef</span> tmat4x3<T, P> type;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec2></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">typedef</span> tmat2x4<T, P> type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec3></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">typedef</span> tmat3x4<T, P> type;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec4></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">typedef</span> tmat4x4<T, P> type;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  GLM_FUNC_DECL matType<T, P> <a class="code" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(matType<T, P> <span class="keyword">const</span> & x, matType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeA, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeB></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  GLM_FUNC_DECL <span class="keyword">typename</span> detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type <a class="code" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(vecTypeA<T, P> <span class="keyword">const</span> & c, vecTypeB<T, P> <span class="keyword">const</span> & r);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"># if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  GLM_FUNC_DECL <span class="keyword">typename</span> matType<T, P>::transpose_type transpose(matType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  GLM_FUNC_DECL T <a class="code" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  GLM_FUNC_DECL matType<T, P> <a class="code" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#include "func_matrix.inl"</span></div>
+<div class="ttc" id="a00150_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType< T, P > const &m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00150_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00150_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</div></div>
+<div class="ttc" id="a00150_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00034.html b/src/third_party/glm/doc/api/a00034.html
new file mode 100644
index 0000000..71f62da
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00034.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_packing.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_packing.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00034_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &v)</td></tr>
+<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd>
+<dd>
+<a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00034_source.html">func_packing.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00034_source.html b/src/third_party/glm/doc/api/a00034_source.html
new file mode 100644
index 0000000..be75162
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00034_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_packing.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_packing.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00034.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00151.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  GLM_FUNC_DECL <span class="keywordtype">double</span> <a class="code" href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a>(<a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <a class="code" href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a>(<span class="keywordtype">double</span> v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor">#include "func_packing.inl"</span></div>
+<div class="ttc" id="a00151_html_gaf7d2f7341a9eeb4a436929d6f9ad08f2"><div class="ttname"><a href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">glm::packUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00151_html_gaa916ca426b2bb0343ba17e3753e245c2"><div class="ttname"><a href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">glm::packDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)</div><div class="ttdoc">Returns a double-precision value obtained by packing the components of v into a 64-bit value...</div></div>
+<div class="ttc" id="a00151_html_ga20f134b07db3a3d3a38efb2617388c92"><div class="ttname"><a href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">glm::packHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a two-component floating-point v...</div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00151_html_ga2db488646d48b7c43d3218954523fe82"><div class="ttname"><a href="a00151.html#ga2db488646d48b7c43d3218954523fe82">glm::unpackSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00151_html_gaf59b52e6b28da9335322c4ae19b5d745"><div class="ttname"><a href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">glm::unpackHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)</div><div class="ttdoc">Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...</div></div>
+<div class="ttc" id="a00151_html_ga1f66188e5d65afeb9ffba1ad971e4007"><div class="ttname"><a href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">glm::unpackUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00151_html_ga0e2d107039fe608a209497af867b85fb"><div class="ttname"><a href="a00151.html#ga0e2d107039fe608a209497af867b85fb">glm::packUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00151_html_ga977ab172da5494e5ac63e952afacfbe2"><div class="ttname"><a href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">glm::packSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00151_html_gacd8f8971a3fe28418be0d0fa1f786b38"><div class="ttname"><a href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">glm::unpackSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00151_html_ga7f903259150b67e9466f5f8edffcd197"><div class="ttname"><a href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">glm::unpackUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00157_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00537">type_vec.hpp:537</a></div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00151_html_ga5f4296dc5f12f0aa67ac05b8bb322483"><div class="ttname"><a href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">glm::unpackDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)</div><div class="ttdoc">Returns a two-component unsigned integer vector representation of v. </div></div>
+<div class="ttc" id="a00151_html_ga85e8f17627516445026ab7a9c2e3531a"><div class="ttname"><a href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">glm::packSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00035.html b/src/third_party/glm/doc/api/a00035.html
new file mode 100644
index 0000000..7c3313d
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00035.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_trigonometric.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_trigonometric.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00035_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType< T, P > const &y, vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType< T, P > const &y_over_x)</td></tr>
+<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a> (vecType< T, P > const &radians)</td></tr>
+<tr class="separator:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a> (vecType< T, P > const &degrees)</td></tr>
+<tr class="separator:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00035_source.html">func_trigonometric.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00035_source.html b/src/third_party/glm/doc/api/a00035_source.html
new file mode 100644
index 0000000..0beb9f9
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00035_source.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_trigonometric.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_trigonometric.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00035.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> <a class="code" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> <a class="code" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">cos</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>); </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga88e29b8289e882859d76a25798dd9490">asin</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y_over_x);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga234e904a0075f88654a594b5f837711f">tanh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "func_trigonometric.inl"</span></div>
+<div class="ttc" id="a00152_html_gab3ae890c38b7d3aa4d5e00998fd296b2"><div class="ttname"><a href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">glm::tan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tan(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric tangent function. </div></div>
+<div class="ttc" id="a00152_html_ga4a0ddceb6b1e64ce0e4da209dcb021d5"><div class="ttname"><a href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">glm::sin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sin(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric sine function. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00152_html_gae8f22458bba8f2321ceb1bfc4a543216"><div class="ttname"><a href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y_over_x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00152_html_gaffa8decdd8620759f4e6fe4834768b87"><div class="ttname"><a href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">glm::atanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atanh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic tangent; returns the inverse of tanh. </div></div>
+<div class="ttc" id="a00152_html_ga660582a4e5e843b6c1cd535777e8c295"><div class="ttname"><a href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">glm::cosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cosh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00152_html_gad8f89c12efe6f8d3ae8046625b266254"><div class="ttname"><a href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">glm::sinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sinh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00152_html_ga58ad259b788528fe0a4bd2eeb5e381cc"><div class="ttname"><a href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">glm::acos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acos(vecType< T, P > const &x)</div><div class="ttdoc">Arc cosine. </div></div>
+<div class="ttc" id="a00152_html_ga72bf44c1984e1afb63acf821ba33cac7"><div class="ttname"><a href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">glm::asinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asinh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic sine; returns the inverse of sinh. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_gabccdcc282134fd62af0ff3d6e4bb21f1"><div class="ttname"><a href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">glm::degrees</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > degrees(vecType< T, P > const &radians)</div><div class="ttdoc">Converts radians to degrees and returns the result. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00152_html_ga88e29b8289e882859d76a25798dd9490"><div class="ttname"><a href="a00152.html#ga88e29b8289e882859d76a25798dd9490">glm::asin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asin(vecType< T, P > const &x)</div><div class="ttdoc">Arc sine. </div></div>
+<div class="ttc" id="a00152_html_ga234e904a0075f88654a594b5f837711f"><div class="ttname"><a href="a00152.html#ga234e904a0075f88654a594b5f837711f">glm::tanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tanh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </div></div>
+<div class="ttc" id="a00152_html_ga3f368ad3e1883b60748ca2634d816104"><div class="ttname"><a href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">glm::acosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acosh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic cosine; returns the non-negative inverse of cosh. </div></div>
+<div class="ttc" id="a00152_html_ga728fd86f14609e37d83f82429995b7b3"><div class="ttname"><a href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">glm::cos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cos(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric cosine function. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_gafffb5e533f75318bdf4e0967d8a6c05c"><div class="ttname"><a href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">glm::radians</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > radians(vecType< T, P > const &degrees)</div><div class="ttdoc">Converts degrees to radians and returns the result. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00036.html b/src/third_party/glm/doc/api/a00036.html
new file mode 100644
index 0000000..d05b9de
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00036.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_vector_relational.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">func_vector_relational.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00036_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+
+<p>Definition in file <a class="el" href="a00036_source.html">func_vector_relational.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00036_source.html b/src/third_party/glm/doc/api/a00036_source.html
new file mode 100644
index 0000000..6ee0fa2
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00036_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: func_vector_relational.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_e529a619cfdec1fa4c331fb042fd332f.html">detail</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">func_vector_relational.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00036.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00153.html#ga632a2644532d9332011c8860400d30b2">any</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#include "func_vector_relational.inl"</span></div>
+<div class="ttc" id="a00153_html_ga5aca2b745e5eb0096716bbc394846309"><div class="ttname"><a href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > notEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="ttc" id="a00153_html_gadd80263161a308462d3e3e287e79cccd"><div class="ttname"><a href="a00153.html#gadd80263161a308462d3e3e287e79cccd">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
+<div class="ttc" id="a00153_html_ga39c80d8baf49b0ce69f2bb22d45b3801"><div class="ttname"><a href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > equal(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
+<div class="ttc" id="a00153_html_ga6261970937a70b0b747ae0d3ade1c188"><div class="ttname"><a href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="ttc" id="a00153_html_ga632a2644532d9332011c8860400d30b2"><div class="ttname"><a href="a00153.html#ga632a2644532d9332011c8860400d30b2">glm::any</a></div><div class="ttdeci">GLM_FUNC_DECL bool any(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if any component of x is true. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00153_html_gaee7e101f8cc4ea43924f14dcdeb2ef26"><div class="ttname"><a href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00153_html_ga14bbc94f2ae2774a1d64d91f8767773e"><div class="ttname"><a href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">glm::all</a></div><div class="ttdeci">GLM_FUNC_DECL bool all(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if all components of x are true. </div></div>
+<div class="ttc" id="a00153_html_gaaf1d88119f11200c32011de7c5ec0102"><div class="ttname"><a href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00153_html_ga4329ecbc2ef012c9ec704bd09da1f177"><div class="ttname"><a href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">glm::not_</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)</div><div class="ttdoc">Returns the component-wise logical complement of x. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00037.html b/src/third_party/glm/doc/api/a00037.html
new file mode 100644
index 0000000..61979e1
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00037.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: functions.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">functions.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00037_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">gauss</a> (T x, T ExpectedValue, T StandardDeviation)</td></tr>
+<tr class="separator:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a> (tvec2< T, P > const &Coord, tvec2< T, P > const &ExpectedValue, tvec2< T, P > const &StandardDeviation)</td></tr>
+<tr class="separator:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00164.html">GLM_GTC_functions</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00037_source.html">functions.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00037_source.html b/src/third_party/glm/doc/api/a00037_source.html
new file mode 100644
index 0000000..ea52ded
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00037_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: functions.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">functions.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00037.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/type_vec2.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_functions extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  T x,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  T ExpectedValue,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  T StandardDeviation);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  tvec2<T, P> <span class="keyword">const</span>& Coord,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  tvec2<T, P> <span class="keyword">const</span>& ExpectedValue,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  tvec2<T, P> <span class="keyword">const</span>& StandardDeviation);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "functions.inl"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00164_html_ga7448f9eb74bb5924f6330ab532f2899c"><div class="ttname"><a href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">glm::gauss</a></div><div class="ttdeci">GLM_FUNC_DECL T gauss(tvec2< T, P > const &Coord, tvec2< T, P > const &ExpectedValue, tvec2< T, P > const &StandardDeviation)</div><div class="ttdoc">2D gauss function </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00038.html b/src/third_party/glm/doc/api/a00038.html
new file mode 100644
index 0000000..9573eab
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00038.html
@@ -0,0 +1,979 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fwd.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">fwd.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00038_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:af62ed3862b7f5db4da71756a7b1367be"><td class="memItemLeft" align="right" valign="top">typedef highp_dquat </td><td class="memItemRight" valign="bottom"><b>dquat</b></td></tr>
+<tr class="separator:af62ed3862b7f5db4da71756a7b1367be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
+<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
+<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
+<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
+<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
+<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
+<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
+<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
+<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
+<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
+<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
+<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
+<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
+<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
+<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
+<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
+<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
+<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
+<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
+<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
+<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
+<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
+<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
+<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
+<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
+<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
+<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
+<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
+<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
+<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
+<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
+<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
+<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
+<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
+<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
+<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
+<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
+<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
+<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
+<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
+<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
+<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
+<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
+<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
+<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
+<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
+<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
+<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
+<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
+<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
+<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af31dbba5cedde97099c8e30b9661edf0"><td class="memItemLeft" align="right" valign="top">typedef quat </td><td class="memItemRight" valign="bottom"><b>fquat</b></td></tr>
+<tr class="separator:af31dbba5cedde97099c8e30b9661edf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
+<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
+<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
+<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
+<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a30d694434c136946d9f98c8baa3d40a1"><td class="memItemLeft" align="right" valign="top">typedef tquat< double, highp > </td><td class="memItemRight" valign="bottom"><b>highp_dquat</b></td></tr>
+<tr class="separator:a30d694434c136946d9f98c8baa3d40a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6906e1ef0b34064b4b675489c5c38725"><td class="memItemLeft" align="right" valign="top">typedef float32 </td><td class="memItemRight" valign="bottom"><b>highp_f32</b></td></tr>
+<tr class="separator:a6906e1ef0b34064b4b675489c5c38725"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a298f7d4d273678d0282812368da27fda"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><b>highp_f32mat2</b></td></tr>
+<tr class="separator:a298f7d4d273678d0282812368da27fda"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abca6420c08917f60f9c76a924c3fa9ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x2</b></td></tr>
+<tr class="separator:abca6420c08917f60f9c76a924c3fa9ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a05a62dfea812122ea4a07ca23f9200a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x3</b></td></tr>
+<tr class="separator:a05a62dfea812122ea4a07ca23f9200a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat2x4</b></td></tr>
+<tr class="separator:a5ac9c94767805c13008b5ad3ceeb48b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a24f9ef3263b1638564713892cc37981f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><b>highp_f32mat3</b></td></tr>
+<tr class="separator:a24f9ef3263b1638564713892cc37981f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x2</b></td></tr>
+<tr class="separator:a0ac1c27267fb7e42ab4d16a60bc37d12"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aeb88d894a02f3c506e7895a364acf329"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x3</b></td></tr>
+<tr class="separator:aeb88d894a02f3c506e7895a364acf329"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2270e71161b53344ef300feea86ce8f8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat3x4</b></td></tr>
+<tr class="separator:a2270e71161b53344ef300feea86ce8f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a14c90ca49885723f51d06e295587236f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><b>highp_f32mat4</b></td></tr>
+<tr class="separator:a14c90ca49885723f51d06e295587236f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x2</b></td></tr>
+<tr class="separator:a5bbfbe5348102c80ff5ec5b25a8552e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7ccff35ecac00891d63998ace1369cf8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x3</b></td></tr>
+<tr class="separator:a7ccff35ecac00891d63998ace1369cf8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0ab79fc2711ccd850f42d5e816012397"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32mat4x4</b></td></tr>
+<tr class="separator:a0ab79fc2711ccd850f42d5e816012397"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abe379321f08ebc6fc89563908f3e4cda"><td class="memItemLeft" align="right" valign="top">typedef tquat< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32quat</b></td></tr>
+<tr class="separator:abe379321f08ebc6fc89563908f3e4cda"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0f40d1860ed9eb243181e025bfb5c479"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32vec1</b></td></tr>
+<tr class="separator:a0f40d1860ed9eb243181e025bfb5c479"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32vec2</b></td></tr>
+<tr class="separator:a51a457bcd2c0840cac5dd18b6547a32e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32vec3</b></td></tr>
+<tr class="separator:a78bfcaf2c007f183c973e6f46b8a9b0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a809699b904d856484f97d3ea89f45ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f32vec4</b></td></tr>
+<tr class="separator:a809699b904d856484f97d3ea89f45ed7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a51d5266017d88f62737c1973923a7cf4"><td class="memItemLeft" align="right" valign="top">typedef float64 </td><td class="memItemRight" valign="bottom"><b>highp_f64</b></td></tr>
+<tr class="separator:a51d5266017d88f62737c1973923a7cf4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af7adb92ce8de0afaff01436b039fd924"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><b>highp_f64mat2</b></td></tr>
+<tr class="separator:af7adb92ce8de0afaff01436b039fd924"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af538d136729000563979da800678fcdb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x2</b></td></tr>
+<tr class="separator:af538d136729000563979da800678fcdb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7d56d15ebc86c890d91b7a77415945d6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x3</b></td></tr>
+<tr class="separator:a7d56d15ebc86c890d91b7a77415945d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac451118b55d9c1c8645a13dc905da2ef"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat2x4</b></td></tr>
+<tr class="separator:ac451118b55d9c1c8645a13dc905da2ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><b>highp_f64mat3</b></td></tr>
+<tr class="separator:a609bf0ace941d6ab1bb2f9522a04e546"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x2</b></td></tr>
+<tr class="separator:ae9b193febd3179de366dfa1ba31ee6ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5b24baf9696ed586df64253fb58404af"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x3</b></td></tr>
+<tr class="separator:a5b24baf9696ed586df64253fb58404af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat3x4</b></td></tr>
+<tr class="separator:a7cbe7df03752d9ade687d4eaf9e2498e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><b>highp_f64mat4</b></td></tr>
+<tr class="separator:ad308e0ed27d64daa4213fb257fcbd5a5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x2</b></td></tr>
+<tr class="separator:afa65ad618b70fa8a2d6412d084c6abf3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4b7feceabacde08ca13d1f5ef120d128"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x3</b></td></tr>
+<tr class="separator:a4b7feceabacde08ca13d1f5ef120d128"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a097940f00a411b5982c35ed5ee66974d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64mat4x4</b></td></tr>
+<tr class="separator:a097940f00a411b5982c35ed5ee66974d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab51c057647a12b62a8a6a855ece8d167"><td class="memItemLeft" align="right" valign="top">typedef tquat< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64quat</b></td></tr>
+<tr class="separator:ab51c057647a12b62a8a6a855ece8d167"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a89237ecd4974b66bfeca50946f41e9c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64vec1</b></td></tr>
+<tr class="separator:a89237ecd4974b66bfeca50946f41e9c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a89dc53052e92cfafd97ecd391397baf0"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64vec2</b></td></tr>
+<tr class="separator:a89dc53052e92cfafd97ecd391397baf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aec720296a0a21668a2ed5a1d5f139169"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64vec3</b></td></tr>
+<tr class="separator:aec720296a0a21668a2ed5a1d5f139169"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0d2488c3fb459e4646405e1156e2e00c"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_f64vec4</b></td></tr>
+<tr class="separator:a0d2488c3fb459e4646405e1156e2e00c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adde4415e846cff13c6cb74a6fe73d01e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>highp_float32</b></td></tr>
+<tr class="separator:adde4415e846cff13c6cb74a6fe73d01e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>highp_float32_t</b></td></tr>
+<tr class="separator:a52ccfbf2e504ae2e5abcf2ad93b4f4a2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>highp_float64</b></td></tr>
+<tr class="separator:ae9b1ba717a8b1e9a7b028ac98d9998d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a982f41429168a9f2d557500008b0ec22"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>highp_float64_t</b></td></tr>
+<tr class="separator:a982f41429168a9f2d557500008b0ec22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae98c88d9a7befa9b5877f49176225535"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat2x2 </td><td class="memItemRight" valign="bottom"><b>highp_fmat2</b></td></tr>
+<tr class="separator:ae98c88d9a7befa9b5877f49176225535"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat2x2</b></td></tr>
+<tr class="separator:a7af72bc0af9dbd21139d6dc5f66ac5be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adb7ad165be67b8607d6fcac71a913f0b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat2x3</b></td></tr>
+<tr class="separator:adb7ad165be67b8607d6fcac71a913f0b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat2x4</b></td></tr>
+<tr class="separator:a3b10e8ada3693b02f55095efa35fdd8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat3x3 </td><td class="memItemRight" valign="bottom"><b>highp_fmat3</b></td></tr>
+<tr class="separator:aed2dc69e0d507d4191092dbd44b3eb75"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a24225ab930d68cda78866230d5f4c586"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat3x2</b></td></tr>
+<tr class="separator:a24225ab930d68cda78866230d5f4c586"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3de1e02382b33fa458eb55392136f55d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat3x3</b></td></tr>
+<tr class="separator:a3de1e02382b33fa458eb55392136f55d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a311a121ace2b2d2c1f065cfb0be47092"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat3x4</b></td></tr>
+<tr class="separator:a311a121ace2b2d2c1f065cfb0be47092"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abf28443ce0cc0959077ec39b21f32c39"><td class="memItemLeft" align="right" valign="top">typedef highp_fmat4x4 </td><td class="memItemRight" valign="bottom"><b>highp_fmat4</b></td></tr>
+<tr class="separator:abf28443ce0cc0959077ec39b21f32c39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2d63d03c71b1749daba2c810037b43cd"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat4x2</b></td></tr>
+<tr class="separator:a2d63d03c71b1749daba2c810037b43cd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7458dadd4d573105ea10a4f15660207e"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat4x3</b></td></tr>
+<tr class="separator:a7458dadd4d573105ea10a4f15660207e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fmat4x4</b></td></tr>
+<tr class="separator:a0c272cfdedd2d9fcea43a1eaecb2a414"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memItemLeft" align="right" valign="top">typedef highp_quat </td><td class="memItemRight" valign="bottom"><b>highp_fquat</b></td></tr>
+<tr class="separator:a9d8bda24be0d5c66b38ceda1a193f0c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fvec1</b></td></tr>
+<tr class="separator:a41c7b342ad9a120310e2f52ee14e3c2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9d93221df334ded08efdb7a231cdfd26"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fvec2</b></td></tr>
+<tr class="separator:a9d93221df334ded08efdb7a231cdfd26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fvec3</b></td></tr>
+<tr class="separator:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad473477b31e48387ad77054dfab93040"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fvec4</b></td></tr>
+<tr class="separator:ad473477b31e48387ad77054dfab93040"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
+<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2287f1712b96207a66cc858e930fb77a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec1</b></td></tr>
+<tr class="separator:a2287f1712b96207a66cc858e930fb77a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3b1278f471d04b27be00462deeef2e0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec2</b></td></tr>
+<tr class="separator:a3b1278f471d04b27be00462deeef2e0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a232957ed3eea2cddbc313de01a73c958"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec3</b></td></tr>
+<tr class="separator:a232957ed3eea2cddbc313de01a73c958"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2b1c2815452029cc1d605e02c754d8bd"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec4</b></td></tr>
+<tr class="separator:a2b1c2815452029cc1d605e02c754d8bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
+<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3650f851ca511552052df19fb6cf8f16"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec1</b></td></tr>
+<tr class="separator:a3650f851ca511552052df19fb6cf8f16"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a55ae77cc669bc16dce3b56786b3411b9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec2</b></td></tr>
+<tr class="separator:a55ae77cc669bc16dce3b56786b3411b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec3</b></td></tr>
+<tr class="separator:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a389eba6c2510da342d7c5890eae6fa03"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec4</b></td></tr>
+<tr class="separator:a389eba6c2510da342d7c5890eae6fa03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
+<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec1</b></td></tr>
+<tr class="separator:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9ac957028098e89887a0621d677e1a56"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec2</b></td></tr>
+<tr class="separator:a9ac957028098e89887a0621d677e1a56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec3</b></td></tr>
+<tr class="separator:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a239e24f52398e6f2fa7d8c731072c632"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec4</b></td></tr>
+<tr class="separator:a239e24f52398e6f2fa7d8c731072c632"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
+<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af405602f84fa85522d81f08b54354055"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec1</b></td></tr>
+<tr class="separator:af405602f84fa85522d81f08b54354055"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab78a1c49ec73e0113174902ccdac2aab"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec2</b></td></tr>
+<tr class="separator:ab78a1c49ec73e0113174902ccdac2aab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec3</b></td></tr>
+<tr class="separator:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec4</b></td></tr>
+<tr class="separator:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
+<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
+<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
+<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
+<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
+<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
+<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
+<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
+<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_quat</b></td></tr>
+<tr class="separator:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
+<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8bda7c2533299ff237e174c31f721aee"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec1</b></td></tr>
+<tr class="separator:a8bda7c2533299ff237e174c31f721aee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5f26537a923e8a99aa2722ccea04effe"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec2</b></td></tr>
+<tr class="separator:a5f26537a923e8a99aa2722ccea04effe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec3</b></td></tr>
+<tr class="separator:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a42101fecebea5b85deaedd7a397b4b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec4</b></td></tr>
+<tr class="separator:a42101fecebea5b85deaedd7a397b4b8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
+<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a400570a17c30a0d93be64df7aaeca498"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec1</b></td></tr>
+<tr class="separator:a400570a17c30a0d93be64df7aaeca498"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a450990091b6d2af3d5ce21badfdd409e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec2</b></td></tr>
+<tr class="separator:a450990091b6d2af3d5ce21badfdd409e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5ff192bf2205bec34497aa1f8ba05838"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec3</b></td></tr>
+<tr class="separator:a5ff192bf2205bec34497aa1f8ba05838"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a447c20d8123d9c4dbab2016337670fad"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec4</b></td></tr>
+<tr class="separator:a447c20d8123d9c4dbab2016337670fad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
+<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adcba17098bae31bcde33d72f71f96d44"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec1</b></td></tr>
+<tr class="separator:adcba17098bae31bcde33d72f71f96d44"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec2</b></td></tr>
+<tr class="separator:a1c4c47b6745fbe10d61dd86d4a5362ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a356770e957a30e5039860337a715f84e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec3</b></td></tr>
+<tr class="separator:a356770e957a30e5039860337a715f84e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec4</b></td></tr>
+<tr class="separator:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
+<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec1</b></td></tr>
+<tr class="separator:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad6f8afc722fcf494a808f31fe33a225f"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec2</b></td></tr>
+<tr class="separator:ad6f8afc722fcf494a808f31fe33a225f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aac99086122be840a2bb096e4e3c3f339"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec3</b></td></tr>
+<tr class="separator:aac99086122be840a2bb096e4e3c3f339"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec4</b></td></tr>
+<tr class="separator:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
+<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
+<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
+<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
+<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
+<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
+<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
+<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
+<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_vec1</b></td></tr>
+<tr class="separator:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
+<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
+<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
+<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
+<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
+<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
+<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
+<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
+<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
+<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
+<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
+<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
+<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
+<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
+<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
+<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
+<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
+<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
+<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
+<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
+<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
+<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
+<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
+<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
+<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memItemLeft" align="right" valign="top">typedef tquat< double, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_dquat</b></td></tr>
+<tr class="separator:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aeea53879fc327293cf3352a409b7867b"><td class="memItemLeft" align="right" valign="top">typedef float32 </td><td class="memItemRight" valign="bottom"><b>lowp_f32</b></td></tr>
+<tr class="separator:aeea53879fc327293cf3352a409b7867b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a52409bc6d4a2ce3421526c069220d685"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2</b></td></tr>
+<tr class="separator:a52409bc6d4a2ce3421526c069220d685"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x2</b></td></tr>
+<tr class="separator:acbfa3780fa74a8aceed53c6cac3d185e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7106f1c5fbb3e928556d2176c2828324"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x3</b></td></tr>
+<tr class="separator:a7106f1c5fbb3e928556d2176c2828324"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad63250829617716e7009216970a22a2e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat2x4</b></td></tr>
+<tr class="separator:ad63250829617716e7009216970a22a2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4187f89f196505b40e63f516139511e5"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3</b></td></tr>
+<tr class="separator:a4187f89f196505b40e63f516139511e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x2</b></td></tr>
+<tr class="separator:a1386a5915b7f4935ccae0f9a79bfb51f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x3</b></td></tr>
+<tr class="separator:ad746673e0c3ba5e7027ec0e0b1682d63"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a90a6dc116b6407408e033f73301468ee"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat3x4</b></td></tr>
+<tr class="separator:a90a6dc116b6407408e033f73301468ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a766aed2871e6173a81011a877f398f04"><td class="memItemLeft" align="right" valign="top">typedef lowp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4</b></td></tr>
+<tr class="separator:a766aed2871e6173a81011a877f398f04"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4663c5444a670dbcbd8a7fa907148add"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x2</b></td></tr>
+<tr class="separator:a4663c5444a670dbcbd8a7fa907148add"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x3</b></td></tr>
+<tr class="separator:a1b3cd59a64ede38fb8ec16f9db191544"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a752dff4232933964e899b1be27f30af4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32mat4x4</b></td></tr>
+<tr class="separator:a752dff4232933964e899b1be27f30af4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memItemLeft" align="right" valign="top">typedef tquat< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32quat</b></td></tr>
+<tr class="separator:aa27d7ca08ddd62647ce00b1981ac3967"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a065441db99acdc970d6b1bca51fb0e88"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32vec1</b></td></tr>
+<tr class="separator:a065441db99acdc970d6b1bca51fb0e88"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32vec2</b></td></tr>
+<tr class="separator:a7e6a3c71f9084c64dee3513de2c91e6a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acc51390c78531eff7546f1877c5a6e2a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32vec3</b></td></tr>
+<tr class="separator:acc51390c78531eff7546f1877c5a6e2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3c810baad7672618d387efd82824d3f0"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f32vec4</b></td></tr>
+<tr class="separator:a3c810baad7672618d387efd82824d3f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memItemLeft" align="right" valign="top">typedef float64 </td><td class="memItemRight" valign="bottom"><b>lowp_f64</b></td></tr>
+<tr class="separator:abc7a97c07cbfac8e35eb5e63beb4b679"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afc730f6b4242763b0eda0ffa25150292"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2</b></td></tr>
+<tr class="separator:afc730f6b4242763b0eda0ffa25150292"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9d8b766229a9613e023da6015273c5e0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x2</b></td></tr>
+<tr class="separator:a9d8b766229a9613e023da6015273c5e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7c9ae336839e72b32d8b54247a71ffba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x3</b></td></tr>
+<tr class="separator:a7c9ae336839e72b32d8b54247a71ffba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a842f6af7042f44a489c45e83cf62c58c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat2x4</b></td></tr>
+<tr class="separator:a842f6af7042f44a489c45e83cf62c58c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a58119a41d143ebaea0df70fe882e8a40"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3</b></td></tr>
+<tr class="separator:a58119a41d143ebaea0df70fe882e8a40"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x2</b></td></tr>
+<tr class="separator:a98cd9aafec70a9d83add4b67e20e4d52"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x3</b></td></tr>
+<tr class="separator:abb9146c6416d66b57e5c3aea6f2f5c99"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a002c5621e42eceb747ad4f8315122175"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat3x4</b></td></tr>
+<tr class="separator:a002c5621e42eceb747ad4f8315122175"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7451266e67794bd1125163502bc4a570"><td class="memItemLeft" align="right" valign="top">typedef lowp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4</b></td></tr>
+<tr class="separator:a7451266e67794bd1125163502bc4a570"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a691047f2c02376e3c33abc9b09fa7d11"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x2</b></td></tr>
+<tr class="separator:a691047f2c02376e3c33abc9b09fa7d11"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae5421a69235098aa087ec5fde0904854"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x3</b></td></tr>
+<tr class="separator:ae5421a69235098aa087ec5fde0904854"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adc09833bf36fd52048b27158ccf442f6"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64mat4x4</b></td></tr>
+<tr class="separator:adc09833bf36fd52048b27158ccf442f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memItemLeft" align="right" valign="top">typedef tquat< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64quat</b></td></tr>
+<tr class="separator:ac1a96856970fd9b3dfb5a57146ee9de7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64vec1</b></td></tr>
+<tr class="separator:a6b90a9dbb5fbb8ae29fd8fbf35d35127"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64vec2</b></td></tr>
+<tr class="separator:ac7be5ae5a2881cb153c0c3c3f7399b45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64vec3</b></td></tr>
+<tr class="separator:a7701bd67c12faf9a4bdb24a57d67a3b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abee657babf6feea4385d19eb6fa5278a"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_f64vec4</b></td></tr>
+<tr class="separator:abee657babf6feea4385d19eb6fa5278a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8234cea5c12583310da0fdfe62657638"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>lowp_float32</b></td></tr>
+<tr class="separator:a8234cea5c12583310da0fdfe62657638"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7a32491c689d3ff33652770868187f27"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>lowp_float32_t</b></td></tr>
+<tr class="separator:a7a32491c689d3ff33652770868187f27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a60503f200138a07e57c737abfa57f5f6"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>lowp_float64</b></td></tr>
+<tr class="separator:a60503f200138a07e57c737abfa57f5f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>lowp_float64_t</b></td></tr>
+<tr class="separator:a49a3b5a4f1565687927b5edb23f0b35e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5bba0ce31210e274f73efacd3364c03f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat2x2 </td><td class="memItemRight" valign="bottom"><b>lowp_fmat2</b></td></tr>
+<tr class="separator:a5bba0ce31210e274f73efacd3364c03f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a66f97ccbae05c652595d71ec931d7161"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x2</b></td></tr>
+<tr class="separator:a66f97ccbae05c652595d71ec931d7161"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x3</b></td></tr>
+<tr class="separator:ac9d407a7e137ee373b310dc0bf769bf9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a776e06fd5557d5dca4beecebad19aed3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat2x4</b></td></tr>
+<tr class="separator:a776e06fd5557d5dca4beecebad19aed3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat3x3 </td><td class="memItemRight" valign="bottom"><b>lowp_fmat3</b></td></tr>
+<tr class="separator:a83079315e230e8f39728f4bf0d2f9a9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad171c065fd8a50e85f3f61d04011ff17"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x2</b></td></tr>
+<tr class="separator:ad171c065fd8a50e85f3f61d04011ff17"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab67fff920716329c921e3f3fad4ea2c3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x3</b></td></tr>
+<tr class="separator:ab67fff920716329c921e3f3fad4ea2c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a769421d99e6514dd4ca99b3d3065f037"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat3x4</b></td></tr>
+<tr class="separator:a769421d99e6514dd4ca99b3d3065f037"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memItemLeft" align="right" valign="top">typedef lowp_fmat4x4 </td><td class="memItemRight" valign="bottom"><b>lowp_fmat4</b></td></tr>
+<tr class="separator:a5803cb9ae26399762d8bba9e0b2fc09f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x2</b></td></tr>
+<tr class="separator:a037f70890ec5808175f8b8fa2a1ffbe9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x3</b></td></tr>
+<tr class="separator:a0f5ea3f37178a6c8a6a6f26cb47145db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa389a235fe6788544cd168b6eba2e250"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fmat4x4</b></td></tr>
+<tr class="separator:aa389a235fe6788544cd168b6eba2e250"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memItemLeft" align="right" valign="top">typedef lowp_quat </td><td class="memItemRight" valign="bottom"><b>lowp_fquat</b></td></tr>
+<tr class="separator:afc9fc7b43c89cb6d7c989d427c3ec5a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fvec1</b></td></tr>
+<tr class="separator:a65eb3ab6e5f172c001e1160c6fbb4f22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a78c8523592fea346dea7561d12337fd8"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fvec2</b></td></tr>
+<tr class="separator:a78c8523592fea346dea7561d12337fd8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab7893b199d7493a88dea8bd38bd878b5"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fvec3</b></td></tr>
+<tr class="separator:ab7893b199d7493a88dea8bd38bd878b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fvec4</b></td></tr>
+<tr class="separator:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
+<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a29d17771c7521875f7972610a274437d"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec1</b></td></tr>
+<tr class="separator:a29d17771c7521875f7972610a274437d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9418f7f14075a2eb419d79dea795fe8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec2</b></td></tr>
+<tr class="separator:a9418f7f14075a2eb419d79dea795fe8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a572548327ac6277265d1fb0f3ba05f07"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec3</b></td></tr>
+<tr class="separator:a572548327ac6277265d1fb0f3ba05f07"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a877978ecba5f4186b045507593a92d90"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec4</b></td></tr>
+<tr class="separator:a877978ecba5f4186b045507593a92d90"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
+<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af4d1f110d2643d0911aeaa424dd342f3"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec1</b></td></tr>
+<tr class="separator:af4d1f110d2643d0911aeaa424dd342f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab1d50e964e3ba141afc193a1e135369a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec2</b></td></tr>
+<tr class="separator:ab1d50e964e3ba141afc193a1e135369a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a669898de66e7bb5695f7a86aa8915fd9"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec3</b></td></tr>
+<tr class="separator:a669898de66e7bb5695f7a86aa8915fd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a35522d761caa8f93185a96ed9e61795d"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec4</b></td></tr>
+<tr class="separator:a35522d761caa8f93185a96ed9e61795d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
+<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7852c10988de095e6e685300904cb2b3"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec1</b></td></tr>
+<tr class="separator:a7852c10988de095e6e685300904cb2b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a305eb0f7ba957bb53972b7690904a24f"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec2</b></td></tr>
+<tr class="separator:a305eb0f7ba957bb53972b7690904a24f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adce94f56b502977689df6693fa70c0ed"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec3</b></td></tr>
+<tr class="separator:adce94f56b502977689df6693fa70c0ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1f9cb33adc669bb6a72329af5381b690"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec4</b></td></tr>
+<tr class="separator:a1f9cb33adc669bb6a72329af5381b690"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
+<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7192dd365ce8d4fa4da3257c676de267"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec1</b></td></tr>
+<tr class="separator:a7192dd365ce8d4fa4da3257c676de267"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a02a47f2177b67de3ce1139e68196e56b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec2</b></td></tr>
+<tr class="separator:a02a47f2177b67de3ce1139e68196e56b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6f4179513be603c7494da45295c35bdc"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec3</b></td></tr>
+<tr class="separator:a6f4179513be603c7494da45295c35bdc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a76d872db6e41d64e338a36f09b5daeb7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec4</b></td></tr>
+<tr class="separator:a76d872db6e41d64e338a36f09b5daeb7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
+<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
+<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
+<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
+<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
+<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
+<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
+<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
+<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa2d7af2016aba4edc1a14fed266317d2"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_quat</b></td></tr>
+<tr class="separator:aa2d7af2016aba4edc1a14fed266317d2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
+<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec1</b></td></tr>
+<tr class="separator:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec2</b></td></tr>
+<tr class="separator:aa3bd6951d7eeae1b4f2cc50759dbf640"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae63c1dbdb499eb7664109fb39857bce4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec3</b></td></tr>
+<tr class="separator:ae63c1dbdb499eb7664109fb39857bce4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6baa0d373bf33bfa1aa666f557eae789"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec4</b></td></tr>
+<tr class="separator:a6baa0d373bf33bfa1aa666f557eae789"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
+<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec1</b></td></tr>
+<tr class="separator:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec2</b></td></tr>
+<tr class="separator:a0d0d6330a6a0e7c4885f6b554535b200"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a82ab625c16f826dc658bde310158ddff"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec3</b></td></tr>
+<tr class="separator:a82ab625c16f826dc658bde310158ddff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a061f6b150324b1913490c743e756d04f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec4</b></td></tr>
+<tr class="separator:a061f6b150324b1913490c743e756d04f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
+<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a318bf8bfd18ab389678d06828a28c39b"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec1</b></td></tr>
+<tr class="separator:a318bf8bfd18ab389678d06828a28c39b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a833371ce41eb501163ab6ebd6205fc9a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec2</b></td></tr>
+<tr class="separator:a833371ce41eb501163ab6ebd6205fc9a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae69228b98799312c02544febb1af766b"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec3</b></td></tr>
+<tr class="separator:ae69228b98799312c02544febb1af766b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec4</b></td></tr>
+<tr class="separator:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
+<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac31801407d2141204e74eefea0bf3ef0"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec1</b></td></tr>
+<tr class="separator:ac31801407d2141204e74eefea0bf3ef0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec2</b></td></tr>
+<tr class="separator:a4fbff016a05f8fb6bf793c42f4bf1cd5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec3</b></td></tr>
+<tr class="separator:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a764d9393e9aff7a84825a5760e2498b9"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec4</b></td></tr>
+<tr class="separator:a764d9393e9aff7a84825a5760e2498b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
+<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
+<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
+<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
+<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
+<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
+<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
+<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
+<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_vec1</b></td></tr>
+<tr class="separator:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memItemLeft" align="right" valign="top">typedef tquat< double, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_dquat</b></td></tr>
+<tr class="separator:a51178c7b0d10cc540c01ad4cf0ece261"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memItemLeft" align="right" valign="top">typedef float32 </td><td class="memItemRight" valign="bottom"><b>mediump_f32</b></td></tr>
+<tr class="separator:a3b27fcd9eaa2757f0aaf6b0ce0d85c80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af9020c6176a75bc84828ab01ea7dac25"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat2x2 </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2</b></td></tr>
+<tr class="separator:af9020c6176a75bc84828ab01ea7dac25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x2</b></td></tr>
+<tr class="separator:afaa92b781318fb3fe43ad3e6f32be86b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1f38dab02c05c75c87ee02d7896078ec"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x3</b></td></tr>
+<tr class="separator:a1f38dab02c05c75c87ee02d7896078ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat2x4</b></td></tr>
+<tr class="separator:a3798dd54ed8dbba79d5f6ef22c372be3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat3x3 </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3</b></td></tr>
+<tr class="separator:aaaf878d0d7bfc0aac054fe269a886ca8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x2</b></td></tr>
+<tr class="separator:a77b8afa61c836b25ba97d9ab433ff4ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1e653136fb7152f4c817aa264d58f9db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x3</b></td></tr>
+<tr class="separator:a1e653136fb7152f4c817aa264d58f9db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af8cef3c4749d9f699726b0b949dab473"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat3x4</b></td></tr>
+<tr class="separator:af8cef3c4749d9f699726b0b949dab473"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4491baaebbc46a20f1cb5da985576bf4"><td class="memItemLeft" align="right" valign="top">typedef mediump_f32mat4x4 </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4</b></td></tr>
+<tr class="separator:a4491baaebbc46a20f1cb5da985576bf4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0dacc0ae65346941372958a08d918bc3"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x2</b></td></tr>
+<tr class="separator:a0dacc0ae65346941372958a08d918bc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x3</b></td></tr>
+<tr class="separator:acc41b629cbdb64c7b8ba3c18646b8e32"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32mat4x4</b></td></tr>
+<tr class="separator:a01a6f096db7a15dfe2fa28ea1fed183c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abcc1b172969e868108974c92c09ba2e4"><td class="memItemLeft" align="right" valign="top">typedef tquat< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32quat</b></td></tr>
+<tr class="separator:abcc1b172969e868108974c92c09ba2e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af464ab0841bc7f942d55935101923e25"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32vec1</b></td></tr>
+<tr class="separator:af464ab0841bc7f942d55935101923e25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32vec2</b></td></tr>
+<tr class="separator:ab0dea9959015c0ae8294360e1aafeb2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a30b37671931aad948d1018ddc5718f34"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32vec3</b></td></tr>
+<tr class="separator:a30b37671931aad948d1018ddc5718f34"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac462ec17fc1037e679d1086d3f26581f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f32vec4</b></td></tr>
+<tr class="separator:ac462ec17fc1037e679d1086d3f26581f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6d40381d78472553f878f66e443feeef"><td class="memItemLeft" align="right" valign="top">typedef float64 </td><td class="memItemRight" valign="bottom"><b>mediump_f64</b></td></tr>
+<tr class="separator:a6d40381d78472553f878f66e443feeef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac1281da5ded55047e8892b0e1f1ae965"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat2x2 </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2</b></td></tr>
+<tr class="separator:ac1281da5ded55047e8892b0e1f1ae965"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a710c552051cdf26086a52724adeaa0b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x2</b></td></tr>
+<tr class="separator:a710c552051cdf26086a52724adeaa0b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x3</b></td></tr>
+<tr class="separator:af1f4fff1454eb66c97bd3eb123c86e85"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3a181f05bac20864c7b86976428cbbf2"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat2x4</b></td></tr>
+<tr class="separator:a3a181f05bac20864c7b86976428cbbf2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat3x3 </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3</b></td></tr>
+<tr class="separator:ad35fb67eb1d03c5a514f0bd7aed1c776"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5ac17da9eab988cac003014225ba5e9b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x2</b></td></tr>
+<tr class="separator:a5ac17da9eab988cac003014225ba5e9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4d09bdb868ee5f7063c70092a929cd38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x3</b></td></tr>
+<tr class="separator:a4d09bdb868ee5f7063c70092a929cd38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5a93213eb4f0876f713d4d00a38dab86"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat3x4</b></td></tr>
+<tr class="separator:a5a93213eb4f0876f713d4d00a38dab86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memItemLeft" align="right" valign="top">typedef mediump_f64mat4x4 </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4</b></td></tr>
+<tr class="separator:aa805ef691c711dc41e2776cfb67f5cf5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adb511a9a5fa678b1b859364b817cee76"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x2</b></td></tr>
+<tr class="separator:adb511a9a5fa678b1b859364b817cee76"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad2eae3525631e29f7e70dc79be1a9360"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x3</b></td></tr>
+<tr class="separator:ad2eae3525631e29f7e70dc79be1a9360"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aaae60e8c1cf13ee2bc088999e2726332"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64mat4x4</b></td></tr>
+<tr class="separator:aaae60e8c1cf13ee2bc088999e2726332"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a06275695b922e1b4f068379ee53d17f5"><td class="memItemLeft" align="right" valign="top">typedef tquat< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64quat</b></td></tr>
+<tr class="separator:a06275695b922e1b4f068379ee53d17f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memItemLeft" align="right" valign="top">typedef tvec1< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64vec1</b></td></tr>
+<tr class="separator:ac3ad0aef885256bf3508c4a97aa24ca7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64vec2</b></td></tr>
+<tr class="separator:af3a39604855bbd7d2bf01336dbd58c7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memItemLeft" align="right" valign="top">typedef tvec3< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64vec3</b></td></tr>
+<tr class="separator:a8621fc4ddd20c08f8c9f6f89039d7070"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac1dee1be60722fbaba56c5e8d4055224"><td class="memItemLeft" align="right" valign="top">typedef tvec4< f64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_f64vec4</b></td></tr>
+<tr class="separator:ac1dee1be60722fbaba56c5e8d4055224"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>mediump_float32</b></td></tr>
+<tr class="separator:a9a90f18a9d062cd5b8046cbb59ef7296"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memItemLeft" align="right" valign="top">typedef detail::float32 </td><td class="memItemRight" valign="bottom"><b>mediump_float32_t</b></td></tr>
+<tr class="separator:a8a3a6b5ac1518e864900bdbf6983b54e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a729f6f704ff850a84819c09daf22bf96"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>mediump_float64</b></td></tr>
+<tr class="separator:a729f6f704ff850a84819c09daf22bf96"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memItemLeft" align="right" valign="top">typedef detail::float64 </td><td class="memItemRight" valign="bottom"><b>mediump_float64_t</b></td></tr>
+<tr class="separator:a0cd2f21770615d0b0c46daa9a820f2e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat2x2 </td><td class="memItemRight" valign="bottom"><b>mediump_fmat2</b></td></tr>
+<tr class="separator:a74e9133378fd0b4da8ac0bc0876702ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x2</b></td></tr>
+<tr class="separator:a14e3419dd3ed51ae829fba0eeb37a798"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad419b656765f99413130f262902f70b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x3</b></td></tr>
+<tr class="separator:aad419b656765f99413130f262902f70b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat2x4</b></td></tr>
+<tr class="separator:a5ad760dc3087dbe4b81f4735b87c8bff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a80823dfad5dba98512c76af498343847"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat3x3 </td><td class="memItemRight" valign="bottom"><b>mediump_fmat3</b></td></tr>
+<tr class="separator:a80823dfad5dba98512c76af498343847"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x2</b></td></tr>
+<tr class="separator:a5f983e9b6ce2fc4b5bcf48bde86b6c1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x3</b></td></tr>
+<tr class="separator:a8122275ad0c77b823ed2d0d0fde9e6c8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8acbe700ac34420e69435e9a1e7106a6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat3x4</b></td></tr>
+<tr class="separator:a8acbe700ac34420e69435e9a1e7106a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memItemLeft" align="right" valign="top">typedef mediump_fmat4x4 </td><td class="memItemRight" valign="bottom"><b>mediump_fmat4</b></td></tr>
+<tr class="separator:ac1c38778c0b5a1263f07753c05a4f7b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a382a9afa22b0cb41c08e714e9964df18"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x2</b></td></tr>
+<tr class="separator:a382a9afa22b0cb41c08e714e9964df18"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:adca208020ec5e450122c5b78b92c311b"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x3</b></td></tr>
+<tr class="separator:adca208020ec5e450122c5b78b92c311b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a046dc4e877ae0f041b559ebb8986472f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< f32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fmat4x4</b></td></tr>
+<tr class="separator:a046dc4e877ae0f041b559ebb8986472f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4001f0bde084c58673e6e62116e90702"><td class="memItemLeft" align="right" valign="top">typedef mediump_quat </td><td class="memItemRight" valign="bottom"><b>mediump_fquat</b></td></tr>
+<tr class="separator:a4001f0bde084c58673e6e62116e90702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fvec1</b></td></tr>
+<tr class="separator:a218a7c4d23b962a9bb33adf59ceb8200"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a76feac551dafafd145eb95d558f86b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fvec2</b></td></tr>
+<tr class="separator:a76feac551dafafd145eb95d558f86b8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fvec3</b></td></tr>
+<tr class="separator:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a328c393cd9a393b33342acbf9b91bf72"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fvec4</b></td></tr>
+<tr class="separator:a328c393cd9a393b33342acbf9b91bf72"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
+<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aacc9b5576745206f26ffa9386d4aa883"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec1</b></td></tr>
+<tr class="separator:aacc9b5576745206f26ffa9386d4aa883"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac5c4faa5372f985078762db4574bb9d4"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec2</b></td></tr>
+<tr class="separator:ac5c4faa5372f985078762db4574bb9d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec3</b></td></tr>
+<tr class="separator:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abb0c81e9e6d4210216f4d911736aefad"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec4</b></td></tr>
+<tr class="separator:abb0c81e9e6d4210216f4d911736aefad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
+<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a75733ed8258c5e65ac97160c4a6c953a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec1</b></td></tr>
+<tr class="separator:a75733ed8258c5e65ac97160c4a6c953a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec2</b></td></tr>
+<tr class="separator:a9183cdcdfe5d810078b3eecd1e66aa0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec3</b></td></tr>
+<tr class="separator:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae3eec682aede6e122daed84e2f38971d"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec4</b></td></tr>
+<tr class="separator:ae3eec682aede6e122daed84e2f38971d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
+<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a42af3af0131095f8445ddd0738d76827"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec1</b></td></tr>
+<tr class="separator:a42af3af0131095f8445ddd0738d76827"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec2</b></td></tr>
+<tr class="separator:a80e458f3c0e9fb01d4695637a7ac0e5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa521bedc4cdd40c72880e426661f5603"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec3</b></td></tr>
+<tr class="separator:aa521bedc4cdd40c72880e426661f5603"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec4</b></td></tr>
+<tr class="separator:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
+<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec1</b></td></tr>
+<tr class="separator:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aafab5df83068e06bca1dbaa63da08f99"><td class="memItemLeft" align="right" valign="top">typedef tvec2< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec2</b></td></tr>
+<tr class="separator:aafab5df83068e06bca1dbaa63da08f99"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memItemLeft" align="right" valign="top">typedef tvec3< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec3</b></td></tr>
+<tr class="separator:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac6d4413001e39e2f0f2d32b501867a56"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec4</b></td></tr>
+<tr class="separator:ac6d4413001e39e2f0f2d32b501867a56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
+<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
+<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
+<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
+<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
+<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
+<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
+<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
+<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af519098b37a0cfefa5886647dc38e508"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_quat</b></td></tr>
+<tr class="separator:af519098b37a0cfefa5886647dc38e508"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
+<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec1</b></td></tr>
+<tr class="separator:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4be7f884cf27a80820cf5fcefeab1459"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec2</b></td></tr>
+<tr class="separator:a4be7f884cf27a80820cf5fcefeab1459"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec3</b></td></tr>
+<tr class="separator:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec4</b></td></tr>
+<tr class="separator:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
+<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec1</b></td></tr>
+<tr class="separator:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4611b14a12ec8b0b5988ed93c6060432"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec2</b></td></tr>
+<tr class="separator:a4611b14a12ec8b0b5988ed93c6060432"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec3</b></td></tr>
+<tr class="separator:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec4</b></td></tr>
+<tr class="separator:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
+<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec1</b></td></tr>
+<tr class="separator:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec2</b></td></tr>
+<tr class="separator:ad068ce110bf95f22cff8206a9fb4ba2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a6f514640b5b5827ede77642ebbbf5e68"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec3</b></td></tr>
+<tr class="separator:a6f514640b5b5827ede77642ebbbf5e68"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab41db7da28e5948330db80f5ca75d850"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec4</b></td></tr>
+<tr class="separator:ab41db7da28e5948330db80f5ca75d850"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
+<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec1</b></td></tr>
+<tr class="separator:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a020049aa2177e8e08d2b338a5e904dc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec2</b></td></tr>
+<tr class="separator:a020049aa2177e8e08d2b338a5e904dc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memItemLeft" align="right" valign="top">typedef tvec3< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec3</b></td></tr>
+<tr class="separator:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec4</b></td></tr>
+<tr class="separator:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
+<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
+<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
+<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
+<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
+<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
+<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
+<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
+<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_vec1</b></td></tr>
+<tr class="separator:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2fad291f6402e228d28779df175ba37a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fad291f6402e228d28779df175ba37a"></a>
+typedef highp_quat </td><td class="memItemRight" valign="bottom"><b>quat</b></td></tr>
+<tr class="separator:a2fad291f6402e228d28779df175ba37a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
+<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
+<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
+<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
+<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
+<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
+<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
+<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
+<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
+<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
+<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
+<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
+<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
+<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
+<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
+<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
+<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
+<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
+<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
+<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
+<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
+<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
+<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
+<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
+<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00038_source.html b/src/third_party/glm/doc/api/a00038_source.html
new file mode 100644
index 0000000..278b4d1
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00038_source.html
@@ -0,0 +1,1716 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: fwd.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">fwd.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00038.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">detail/type_int.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00110.html">detail/type_float.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">detail/type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">detail/type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// GLM_GTC_quaternion</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tquat;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  <span class="keyword">typedef</span> tquat<float, lowp> lowp_quat;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keyword">typedef</span> tquat<float, mediump> mediump_quat;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">typedef</span> tquat<float, highp> highp_quat;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">typedef</span> mediump_quat quat;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">typedef</span> lowp_quat quat;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">typedef</span> lowp_quat lowp_fquat;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">typedef</span> mediump_quat mediump_fquat;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">typedef</span> highp_quat highp_fquat;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">typedef</span> quat fquat;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">typedef</span> tquat<double, lowp> lowp_dquat;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">typedef</span> tquat<double, mediump> mediump_dquat;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">typedef</span> tquat<double, highp> highp_dquat;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">typedef</span> mediump_dquat dquat;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keyword">typedef</span> lowp_dquat dquat;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// GLM_GTC_precision</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6"> 100</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00177.html#ga698e36b01167fc0f037889334dce8def"> 104</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02"> 108</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c"> 112</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3"> 116</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a"> 120</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc"> 124</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847"> 128</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54"> 132</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7"> 136</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac"> 140</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8"> 144</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e"> 148</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d"> 152</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8"> 156</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866"> 160</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae"> 164</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54"> 168</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180"> 172</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64"> 176</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21"> 180</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a"> 184</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1"> 188</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f"> 192</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf"> 196</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718"> 200</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223"> 204</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac"> 208</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5"> 212</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff"> 216</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f"> 220</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3"> 224</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee"> 228</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8"> 232</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25"> 236</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd"> 240</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede"> 272</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710"> 276</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61"> 280</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355"> 285</a></span>  <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699"> 289</a></span>  <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb"> 293</a></span>  <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00177.html#gadb997e409103d4da18abd837e636a496"> 297</a></span>  <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">typedef</span> tvec1<i8, lowp> lowp_i8vec1;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">typedef</span> tvec2<i8, lowp> lowp_i8vec2;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">typedef</span> tvec3<i8, lowp> lowp_i8vec3;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">typedef</span> tvec4<i8, lowp> lowp_i8vec4;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">typedef</span> tvec1<i8, mediump> mediump_i8vec1;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">typedef</span> tvec2<i8, mediump> mediump_i8vec2;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">typedef</span> tvec3<i8, mediump> mediump_i8vec3;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">typedef</span> tvec4<i8, mediump> mediump_i8vec4;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">typedef</span> tvec1<i8, highp> highp_i8vec1;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">typedef</span> tvec2<i8, highp> highp_i8vec2;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">typedef</span> tvec3<i8, highp> highp_i8vec3;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">typedef</span> tvec4<i8, highp> highp_i8vec4;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  </div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keyword">typedef</span> lowp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">typedef</span> lowp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">typedef</span> lowp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">typedef</span> lowp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keyword">typedef</span> mediump_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">typedef</span> mediump_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">typedef</span> mediump_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">typedef</span> mediump_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>; </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keyword">typedef</span> highp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
+<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185"> 368</a></span>  <span class="keyword">typedef</span> highp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c"> 372</a></span>  <span class="keyword">typedef</span> highp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  </div>
+<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e"> 376</a></span>  <span class="keyword">typedef</span> highp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">typedef</span> tvec1<i16, lowp> lowp_i16vec1;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">typedef</span> tvec2<i16, lowp> lowp_i16vec2;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">typedef</span> tvec3<i16, lowp> lowp_i16vec3;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">typedef</span> tvec4<i16, lowp> lowp_i16vec4;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">typedef</span> tvec1<i16, mediump> mediump_i16vec1;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keyword">typedef</span> tvec2<i16, mediump> mediump_i16vec2;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">typedef</span> tvec3<i16, mediump> mediump_i16vec3;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  </div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">typedef</span> tvec4<i16, mediump> mediump_i16vec4;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">typedef</span> tvec1<i16, highp> highp_i16vec1;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">typedef</span> tvec2<i16, highp> highp_i16vec2;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keyword">typedef</span> tvec3<i16, highp> highp_i16vec3;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">typedef</span> tvec4<i16, highp> highp_i16vec4;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keyword">typedef</span> lowp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keyword">typedef</span> lowp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">typedef</span> lowp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keyword">typedef</span> lowp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">typedef</span> mediump_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keyword">typedef</span> mediump_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">typedef</span> mediump_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">typedef</span> mediump_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">typedef</span> highp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
+<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79"> 448</a></span>  <span class="keyword">typedef</span> highp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="a00177.html#ga973b226a9914db682c9372fc761fb535"> 452</a></span>  <span class="keyword">typedef</span> highp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  </div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426"> 456</a></span>  <span class="keyword">typedef</span> highp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  </div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  </div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c"> 527</a></span>  <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  </div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="a00177.html#ga40cd3f391c03512f158d10a70062264e"> 531</a></span>  <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  </div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="a00177.html#gae3364a8090e7e1408056e00403dfecab"> 535</a></span>  <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  </div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  </div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  </div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  </div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  </div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  </div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  </div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">typedef</span> tvec1<i64, lowp> lowp_i64vec1;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keyword">typedef</span> tvec2<i64, lowp> lowp_i64vec2;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keyword">typedef</span> tvec3<i64, lowp> lowp_i64vec3;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keyword">typedef</span> tvec4<i64, lowp> lowp_i64vec4;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keyword">typedef</span> tvec1<i64, mediump> mediump_i64vec1;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keyword">typedef</span> tvec2<i64, mediump> mediump_i64vec2;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keyword">typedef</span> tvec3<i64, mediump> mediump_i64vec3;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  </div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keyword">typedef</span> tvec4<i64, mediump> mediump_i64vec4;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keyword">typedef</span> tvec1<i64, highp> highp_i64vec1;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keyword">typedef</span> tvec2<i64, highp> highp_i64vec2;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keyword">typedef</span> tvec3<i64, highp> highp_i64vec3;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keyword">typedef</span> tvec4<i64, highp> highp_i64vec4;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keyword">typedef</span> lowp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="keyword">typedef</span> lowp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keyword">typedef</span> lowp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keyword">typedef</span> lowp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keyword">typedef</span> mediump_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keyword">typedef</span> mediump_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keyword">typedef</span> mediump_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keyword">typedef</span> mediump_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keyword">typedef</span> highp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="a00177.html#gade69872a31f066e5ae212f1af6008edb"> 686</a></span>  <span class="keyword">typedef</span> highp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  </div>
+<div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e"> 690</a></span>  <span class="keyword">typedef</span> highp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  </div>
+<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c"> 694</a></span>  <span class="keyword">typedef</span> highp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  </div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  </div>
+<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="a00177.html#gaf49470869e9be2c059629b250619804e"> 703</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  </div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78"> 707</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  </div>
+<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b"> 711</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  </div>
+<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="a00177.html#gaa212b805736a759998e312cbdd550fae"> 715</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  </div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  </div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="a00177.html#ga667b2ece2b258be898812dc2177995d1"> 720</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  </div>
+<div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f"> 724</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b"> 728</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  </div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153"> 732</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  </div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083"> 737</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  </div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126"> 741</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  </div>
+<div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250"> 745</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  </div>
+<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed"> 749</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  </div>
+<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3"> 755</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  </div>
+<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb"> 759</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  </div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f"> 763</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  </div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="a00177.html#ga30652709815ad9404272a31957daa59e"> 767</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  </div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="a00177.html#gadfe65c78231039e90507770db50c98c7"> 771</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  </div>
+<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e"> 775</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  </div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5"> 779</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  </div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9"> 783</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  </div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281"> 787</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  </div>
+<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80"> 791</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  </div>
+<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9"> 795</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  </div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610"> 799</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  </div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  </div>
+<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb"> 805</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  </div>
+<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="a00177.html#ga746dc6da204f5622e395f492997dbf57"> 809</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  </div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3"> 813</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  </div>
+<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce"> 817</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  </div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5"> 821</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  </div>
+<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7"> 825</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  </div>
+<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e"> 829</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  </div>
+<div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08"> 833</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  </div>
+<div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c"> 837</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  </div>
+<div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369"> 841</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  </div>
+<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf"> 845</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  </div>
+<div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="a00177.html#ga0c181fdf06a309691999926b6690c969"> 849</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  </div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  </div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  </div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  </div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  </div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  </div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keyword">using</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  </div>
+<div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf"> 881</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  </div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac"> 885</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  </div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee"> 889</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> </div>
+<div class="line"><a name="l00894"></a><span class="lineno"><a class="line" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36"> 894</a></span>  <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff"> 898</a></span>  <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> </div>
+<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="a00177.html#ga8165913e068444f7842302d40ba897b9"> 902</a></span>  <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div>
+<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="a00177.html#gaf3f312156984c365e9f65620354da70b"> 906</a></span>  <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keyword">typedef</span> tvec1<u8, lowp> lowp_u8vec1;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  </div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keyword">typedef</span> tvec2<u8, lowp> lowp_u8vec2;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keyword">typedef</span> tvec3<u8, lowp> lowp_u8vec3;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  </div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keyword">typedef</span> tvec4<u8, lowp> lowp_u8vec4;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  </div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keyword">typedef</span> tvec1<u8, mediump> mediump_u8vec1;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keyword">typedef</span> tvec2<u8, mediump> mediump_u8vec2;</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keyword">typedef</span> tvec3<u8, mediump> mediump_u8vec3;</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keyword">typedef</span> tvec4<u8, mediump> mediump_u8vec4;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keyword">typedef</span> tvec1<u8, highp> highp_u8vec1;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> </div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keyword">typedef</span> tvec2<u8, highp> highp_u8vec2;</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keyword">typedef</span> tvec3<u8, highp> highp_u8vec3;</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keyword">typedef</span> tvec4<u8, highp> highp_u8vec4;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keyword">typedef</span> lowp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keyword">typedef</span> lowp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keyword">typedef</span> lowp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keyword">typedef</span> lowp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <span class="keyword">typedef</span> mediump_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keyword">typedef</span> mediump_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keyword">typedef</span> mediump_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keyword">typedef</span> mediump_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>; </div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keyword">typedef</span> highp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
+<div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d"> 977</a></span>  <span class="keyword">typedef</span> highp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div>
+<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661"> 981</a></span>  <span class="keyword">typedef</span> highp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno"><a class="line" href="a00177.html#ga114e005014d910bea07954eee24b7efb"> 985</a></span>  <span class="keyword">typedef</span> highp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> </div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keyword">typedef</span> tvec1<u16, lowp> lowp_u16vec1;</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> </div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keyword">typedef</span> tvec2<u16, lowp> lowp_u16vec2;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> </div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keyword">typedef</span> tvec3<u16, lowp> lowp_u16vec3;</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keyword">typedef</span> tvec4<u16, lowp> lowp_u16vec4;</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> </div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keyword">typedef</span> tvec1<u16, mediump> mediump_u16vec1;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keyword">typedef</span> tvec2<u16, mediump> mediump_u16vec2;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keyword">typedef</span> tvec3<u16, mediump> mediump_u16vec3;</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keyword">typedef</span> tvec4<u16, mediump> mediump_u16vec4;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> </div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keyword">typedef</span> tvec1<u16, highp> highp_u16vec1;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keyword">typedef</span> tvec2<u16, highp> highp_u16vec2;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keyword">typedef</span> tvec3<u16, highp> highp_u16vec3;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keyword">typedef</span> tvec4<u16, highp> highp_u16vec4;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> </div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keyword">typedef</span> lowp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keyword">typedef</span> lowp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keyword">typedef</span> lowp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <span class="keyword">typedef</span> lowp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">typedef</span> mediump_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keyword">typedef</span> mediump_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keyword">typedef</span> mediump_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keyword">typedef</span> mediump_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keyword">typedef</span> highp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01057"></a><span class="lineno"><a class="line" href="a00177.html#ga426030555085ed6c39a54e73afbef962"> 1057</a></span>  <span class="keyword">typedef</span> highp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
+<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71"> 1061</a></span>  <span class="keyword">typedef</span> highp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
+<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae"> 1065</a></span>  <span class="keyword">typedef</span> highp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> </div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> </div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> </div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> </div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075"> 1136</a></span>  <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23"> 1140</a></span>  <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div>
+<div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6"> 1144</a></span>  <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> </div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> </div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> </div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  </div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> </div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  </div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  <span class="keyword">typedef</span> tvec1<u64, lowp> lowp_u64vec1;</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <span class="keyword">typedef</span> tvec2<u64, lowp> lowp_u64vec2;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> </div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keyword">typedef</span> tvec3<u64, lowp> lowp_u64vec3;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> </div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  <span class="keyword">typedef</span> tvec4<u64, lowp> lowp_u64vec4;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> </div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> </div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="keyword">typedef</span> tvec1<u64, mediump> mediump_u64vec1;</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <span class="keyword">typedef</span> tvec2<u64, mediump> mediump_u64vec2;</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  <span class="keyword">typedef</span> tvec3<u64, mediump> mediump_u64vec3;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <span class="keyword">typedef</span> tvec4<u64, mediump> mediump_u64vec4;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> </div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> </div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  <span class="keyword">typedef</span> tvec1<u64, highp> highp_u64vec1;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="keyword">typedef</span> tvec2<u64, highp> highp_u64vec2;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> </div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  <span class="keyword">typedef</span> tvec3<u64, highp> highp_u64vec3;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> </div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="keyword">typedef</span> tvec4<u64, highp> highp_u64vec4;</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> </div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  <span class="keyword">typedef</span> lowp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  <span class="keyword">typedef</span> lowp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  <span class="keyword">typedef</span> lowp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  <span class="keyword">typedef</span> lowp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  <span class="keyword">typedef</span> mediump_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  <span class="keyword">typedef</span> mediump_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <span class="keyword">typedef</span> mediump_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <span class="keyword">typedef</span> mediump_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  <span class="keyword">typedef</span> highp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> </div>
+<div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e"> 1295</a></span>  <span class="keyword">typedef</span> highp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  </div>
+<div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c"> 1299</a></span>  <span class="keyword">typedef</span> highp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  </div>
+<div class="line"><a name="l01303"></a><span class="lineno"><a class="line" href="a00177.html#gafb6ca34df28889a5db9d244aed375411"> 1303</a></span>  <span class="keyword">typedef</span> highp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  </div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  </div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> </div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> </div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> </div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> </div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> </div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> </div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> </div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> </div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> </div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> </div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> </div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> </div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> </div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  </div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> </div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> </div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  <span class="keyword">typedef</span> detail::float32 mediump_float32;</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> </div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  <span class="keyword">typedef</span> detail::float64 mediump_float64;</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> </div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <span class="keyword">typedef</span> detail::float32 mediump_float32_t;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> </div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <span class="keyword">typedef</span> detail::float64 mediump_float64_t;</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> mediump_f32;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> </div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> mediump_f64;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> </div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="keyword">typedef</span> detail::float32 highp_float32;</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> </div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  <span class="keyword">typedef</span> detail::float64 highp_float64;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> </div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="keyword">typedef</span> detail::float32 highp_float32_t;</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> </div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="keyword">typedef</span> detail::float64 highp_float64_t;</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> </div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> highp_f32;</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> highp_f64;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> </div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> </div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <span class="keyword">typedef</span> lowp_float32 <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="keyword">typedef</span> lowp_float64 <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> </div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  <span class="keyword">typedef</span> lowp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> </div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <span class="keyword">typedef</span> lowp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> </div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <span class="keyword">typedef</span> lowp_f32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <span class="keyword">typedef</span> lowp_f64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> </div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> </div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <span class="keyword">typedef</span> mediump_float32 float32;</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  <span class="keyword">typedef</span> mediump_float64 float64;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> </div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> </div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> </div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="preprocessor">#else//(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> </div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  <span class="keyword">typedef</span> highp_float32 float32;</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> </div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <span class="keyword">typedef</span> highp_float64 float64;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> </div>
+<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77"> 1497</a></span>  <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> </div>
+<div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37"> 1501</a></span>  <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01505"></a><span class="lineno"><a class="line" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"> 1505</a></span>  <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> </div>
+<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9"> 1509</a></span>  <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> </div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> </div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  <span class="keyword">typedef</span> tvec1<float, lowp> lowp_vec1;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> </div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  <span class="keyword">typedef</span> tvec2<float, lowp> <a class="code" href="a00158.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> </div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <span class="keyword">typedef</span> tvec3<float, lowp> <a class="code" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> </div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  <span class="keyword">typedef</span> tvec4<float, lowp> <a class="code" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> </div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  <span class="keyword">typedef</span> tvec1<float, lowp> lowp_fvec1;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> </div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  <span class="keyword">typedef</span> tvec2<float, lowp> lowp_fvec2;</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> </div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  <span class="keyword">typedef</span> tvec3<float, lowp> lowp_fvec3;</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> </div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <span class="keyword">typedef</span> tvec4<float, lowp> lowp_fvec4;</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> </div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> </div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keyword">typedef</span> tvec1<float, mediump> mediump_vec1;</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> </div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <span class="keyword">typedef</span> tvec2<float, mediump> <a class="code" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> </div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  <span class="keyword">typedef</span> tvec3<float, mediump> <a class="code" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> </div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  <span class="keyword">typedef</span> tvec4<float, mediump> <a class="code" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> </div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  <span class="keyword">typedef</span> tvec1<float, mediump> mediump_fvec1;</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> </div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <span class="keyword">typedef</span> tvec2<float, mediump> mediump_fvec2;</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> </div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  <span class="keyword">typedef</span> tvec3<float, mediump> mediump_fvec3;</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> </div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  <span class="keyword">typedef</span> tvec4<float, mediump> mediump_fvec4;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> </div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> </div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <span class="keyword">typedef</span> tvec1<float, highp> highp_vec1;</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> </div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> </div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> </div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> </div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <span class="keyword">typedef</span> tvec1<float, highp> highp_fvec1;</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> </div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <span class="keyword">typedef</span> tvec2<float, highp> highp_fvec2;</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  <span class="keyword">typedef</span> tvec3<float, highp> highp_fvec3;</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> </div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  <span class="keyword">typedef</span> tvec4<float, highp> highp_fvec4;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> </div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  <span class="keyword">typedef</span> tvec1<f32, lowp> lowp_f32vec1;</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> </div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  <span class="keyword">typedef</span> tvec2<f32, lowp> lowp_f32vec2;</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  <span class="keyword">typedef</span> tvec3<f32, lowp> lowp_f32vec3;</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> </div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <span class="keyword">typedef</span> tvec4<f32, lowp> lowp_f32vec4;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> </div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  <span class="keyword">typedef</span> tvec1<f32, mediump> mediump_f32vec1;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> </div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  <span class="keyword">typedef</span> tvec2<f32, mediump> mediump_f32vec2;</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  <span class="keyword">typedef</span> tvec3<f32, mediump> mediump_f32vec3;</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> </div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  <span class="keyword">typedef</span> tvec4<f32, mediump> mediump_f32vec4;</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> </div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  <span class="keyword">typedef</span> tvec1<f32, highp> highp_f32vec1;</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> </div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  <span class="keyword">typedef</span> tvec2<f32, highp> highp_f32vec2;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> </div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="keyword">typedef</span> tvec3<f32, highp> highp_f32vec3;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> </div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  <span class="keyword">typedef</span> tvec4<f32, highp> highp_f32vec4;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> </div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> </div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  <span class="keyword">typedef</span> tvec1<f64, lowp> lowp_f64vec1;</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> </div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  <span class="keyword">typedef</span> tvec2<f64, lowp> lowp_f64vec2;</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> </div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  <span class="keyword">typedef</span> tvec3<f64, lowp> lowp_f64vec3;</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> </div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  <span class="keyword">typedef</span> tvec4<f64, lowp> lowp_f64vec4;</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  <span class="keyword">typedef</span> tvec1<f64, mediump> mediump_f64vec1;</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> </div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  <span class="keyword">typedef</span> tvec2<f64, mediump> mediump_f64vec2;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> </div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <span class="keyword">typedef</span> tvec3<f64, mediump> mediump_f64vec3;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> </div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <span class="keyword">typedef</span> tvec4<f64, mediump> mediump_f64vec4;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> </div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <span class="keyword">typedef</span> tvec1<f64, highp> highp_f64vec1;</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> </div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <span class="keyword">typedef</span> tvec2<f64, highp> highp_f64vec2;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> </div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <span class="keyword">typedef</span> tvec3<f64, highp> highp_f64vec3;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> </div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <span class="keyword">typedef</span> tvec4<f64, highp> highp_f64vec4;</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> </div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> </div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <span class="comment">// Float matrix types</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> </div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  <span class="comment">//typedef lowp_f32 lowp_fmat1x1;</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> </div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_fmat2x2;</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> </div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_fmat2x3;</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> </div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_fmat2x4;</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> </div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_fmat3x2;</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> </div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_fmat3x3;</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> </div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_fmat3x4;</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> </div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_fmat4x2;</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> </div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_fmat4x3;</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> </div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_fmat4x4;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> </div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  <span class="comment">//typedef lowp_fmat1x1 lowp_fmat1;</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> </div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>  <span class="keyword">typedef</span> lowp_fmat2x2 lowp_fmat2;</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> </div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>  <span class="keyword">typedef</span> lowp_fmat3x3 lowp_fmat3;</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> </div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  <span class="keyword">typedef</span> lowp_fmat4x4 lowp_fmat4;</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> </div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>  <span class="comment">//typedef mediump_f32 mediump_fmat1x1;</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> </div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_fmat2x2;</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> </div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_fmat2x3;</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> </div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_fmat2x4;</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> </div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_fmat3x2;</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>  <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_fmat3x3;</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> </div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_fmat3x4;</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> </div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>  <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_fmat4x2;</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> </div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_fmat4x3;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> </div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_fmat4x4;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> </div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <span class="comment">//typedef mediump_fmat1x1 mediump_fmat1;</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> </div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  <span class="keyword">typedef</span> mediump_fmat2x2 mediump_fmat2;</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> </div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  <span class="keyword">typedef</span> mediump_fmat3x3 mediump_fmat3;</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> </div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  <span class="keyword">typedef</span> mediump_fmat4x4 mediump_fmat4;</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> </div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> </div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>  <span class="comment">//typedef highp_f32 highp_fmat1x1;</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> </div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>  <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_fmat2x2;</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> </div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_fmat2x3;</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> </div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_fmat2x4;</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> </div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_fmat3x2;</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> </div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>  <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_fmat3x3;</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> </div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>  <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_fmat3x4;</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> </div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_fmat4x2;</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> </div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>  <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_fmat4x3;</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> </div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>  <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_fmat4x4;</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> </div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>  <span class="comment">//typedef highp_fmat1x1 highp_fmat1;</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> </div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>  <span class="keyword">typedef</span> highp_fmat2x2 highp_fmat2;</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> </div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  <span class="keyword">typedef</span> highp_fmat3x3 highp_fmat3;</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>  </div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  <span class="keyword">typedef</span> highp_fmat4x4 highp_fmat4;</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> </div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> </div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>  <span class="comment">//typedef f32 lowp_f32mat1x1;</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> </div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_f32mat2x2;</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> </div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>  <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_f32mat2x3;</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> </div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_f32mat2x4;</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>  <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_f32mat3x2;</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> </div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_f32mat3x3;</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> </div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>  <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_f32mat3x4;</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> </div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_f32mat4x2;</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> </div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>  <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_f32mat4x3;</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>  <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_f32mat4x4;</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> </div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>  <span class="comment">//typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> </div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>  <span class="keyword">typedef</span> lowp_f32mat2x2 lowp_f32mat2;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> </div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>  <span class="keyword">typedef</span> lowp_f32mat3x3 lowp_f32mat3;</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> </div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>  <span class="keyword">typedef</span> lowp_f32mat4x4 lowp_f32mat4;</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> </div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> </div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  <span class="comment">//typedef f32 mediump_f32mat1x1;</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> </div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_f32mat2x2;</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> </div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>  <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_f32mat2x3;</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> </div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>  <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_f32mat2x4;</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> </div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>  <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_f32mat3x2;</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> </div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_f32mat3x3;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> </div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_f32mat3x4;</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> </div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_f32mat4x2;</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> </div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>  <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_f32mat4x3;</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> </div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_f32mat4x4;</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>  <span class="comment">//typedef detail::tmat1x1<f32, mediump> f32mat1;</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> </div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>  <span class="keyword">typedef</span> mediump_f32mat2x2 mediump_f32mat2;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> </div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>  <span class="keyword">typedef</span> mediump_f32mat3x3 mediump_f32mat3;</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> </div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>  <span class="keyword">typedef</span> mediump_f32mat4x4 mediump_f32mat4;</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> </div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> </div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>  <span class="comment">//typedef f32 highp_f32mat1x1;</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> </div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_f32mat2x2;</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> </div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>  <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_f32mat2x3;</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> </div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>  <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_f32mat2x4;</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>  <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_f32mat3x2;</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> </div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>  <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_f32mat3x3;</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> </div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>  <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_f32mat3x4;</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> </div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>  <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_f32mat4x2;</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> </div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>  <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_f32mat4x3;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> </div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>  <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_f32mat4x4;</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> </div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>  <span class="comment">//typedef detail::tmat1x1<f32, highp> f32mat1;</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> </div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>  <span class="keyword">typedef</span> highp_f32mat2x2 highp_f32mat2;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> </div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>  <span class="keyword">typedef</span> highp_f32mat3x3 highp_f32mat3;</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> </div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>  <span class="keyword">typedef</span> highp_f32mat4x4 highp_f32mat4;</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> </div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> </div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>  <span class="comment">//typedef f64 lowp_f64mat1x1;</span></div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> </div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>  <span class="keyword">typedef</span> tmat2x2<f64, lowp> lowp_f64mat2x2;</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> </div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>  <span class="keyword">typedef</span> tmat2x3<f64, lowp> lowp_f64mat2x3;</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> </div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>  <span class="keyword">typedef</span> tmat2x4<f64, lowp> lowp_f64mat2x4;</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> </div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>  <span class="keyword">typedef</span> tmat3x2<f64, lowp> lowp_f64mat3x2;</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> </div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>  <span class="keyword">typedef</span> tmat3x3<f64, lowp> lowp_f64mat3x3;</div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> </div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>  <span class="keyword">typedef</span> tmat3x4<f64, lowp> lowp_f64mat3x4;</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> </div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  <span class="keyword">typedef</span> tmat4x2<f64, lowp> lowp_f64mat4x2;</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> </div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  <span class="keyword">typedef</span> tmat4x3<f64, lowp> lowp_f64mat4x3;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>  </div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>  <span class="keyword">typedef</span> tmat4x4<f64, lowp> lowp_f64mat4x4;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> </div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  <span class="comment">//typedef lowp_f64mat1x1 lowp_f64mat1;</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> </div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>  <span class="keyword">typedef</span> lowp_f64mat2x2 lowp_f64mat2;</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> </div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>  <span class="keyword">typedef</span> lowp_f64mat3x3 lowp_f64mat3;</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> </div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>  <span class="keyword">typedef</span> lowp_f64mat4x4 lowp_f64mat4;</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> </div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> </div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>  <span class="comment">//typedef f64 Highp_f64mat1x1;</span></div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> </div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>  <span class="keyword">typedef</span> tmat2x2<f64, mediump> mediump_f64mat2x2;</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>  <span class="keyword">typedef</span> tmat2x3<f64, mediump> mediump_f64mat2x3;</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> </div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>  <span class="keyword">typedef</span> tmat2x4<f64, mediump> mediump_f64mat2x4;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> </div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>  <span class="keyword">typedef</span> tmat3x2<f64, mediump> mediump_f64mat3x2;</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> </div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>  <span class="keyword">typedef</span> tmat3x3<f64, mediump> mediump_f64mat3x3;</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> </div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>  <span class="keyword">typedef</span> tmat3x4<f64, mediump> mediump_f64mat3x4;</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> </div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>  <span class="keyword">typedef</span> tmat4x2<f64, mediump> mediump_f64mat4x2;</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> </div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>  <span class="keyword">typedef</span> tmat4x3<f64, mediump> mediump_f64mat4x3;</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> </div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>  <span class="keyword">typedef</span> tmat4x4<f64, mediump> mediump_f64mat4x4;</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> </div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>  <span class="comment">//typedef mediump_f64mat1x1 mediump_f64mat1;</span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> </div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>  <span class="keyword">typedef</span> mediump_f64mat2x2 mediump_f64mat2;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> </div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>  <span class="keyword">typedef</span> mediump_f64mat3x3 mediump_f64mat3;</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> </div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>  <span class="keyword">typedef</span> mediump_f64mat4x4 mediump_f64mat4;</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> </div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>  <span class="comment">//typedef f64 highp_f64mat1x1;</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> </div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>  <span class="keyword">typedef</span> tmat2x2<f64, highp> highp_f64mat2x2;</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> </div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>  <span class="keyword">typedef</span> tmat2x3<f64, highp> highp_f64mat2x3;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> </div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>  <span class="keyword">typedef</span> tmat2x4<f64, highp> highp_f64mat2x4;</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> </div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>  <span class="keyword">typedef</span> tmat3x2<f64, highp> highp_f64mat3x2;</div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> </div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  <span class="keyword">typedef</span> tmat3x3<f64, highp> highp_f64mat3x3;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> </div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>  <span class="keyword">typedef</span> tmat3x4<f64, highp> highp_f64mat3x4;</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> </div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>  <span class="keyword">typedef</span> tmat4x2<f64, highp> highp_f64mat4x2;</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> </div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>  <span class="keyword">typedef</span> tmat4x3<f64, highp> highp_f64mat4x3;</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> </div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  <span class="keyword">typedef</span> tmat4x4<f64, highp> highp_f64mat4x4;</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> </div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  <span class="comment">//typedef highp_f64mat1x1 highp_f64mat1;</span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> </div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  <span class="keyword">typedef</span> highp_f64mat2x2 highp_f64mat2;</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>  <span class="keyword">typedef</span> highp_f64mat3x3 highp_f64mat3;</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> </div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>  <span class="keyword">typedef</span> highp_f64mat4x4 highp_f64mat4;</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> </div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>  <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> </div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>  <span class="keyword">typedef</span> tquat<f32, lowp> lowp_f32quat;</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> </div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  <span class="keyword">typedef</span> tquat<f64, lowp> lowp_f64quat;</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> </div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>  <span class="keyword">typedef</span> tquat<f32, mediump> mediump_f32quat;</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> </div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>  <span class="keyword">typedef</span> tquat<f64, mediump> mediump_f64quat;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> </div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>  <span class="keyword">typedef</span> tquat<f32, highp> highp_f32quat;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> </div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>  <span class="keyword">typedef</span> tquat<f64, highp> highp_f64quat;</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> </div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> </div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>  <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>  <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>  <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>  <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>  <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>  <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>  <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>  <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>  <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>  <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>  <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>  <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>  <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>  <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>  <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>  <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  <span class="keyword">typedef</span> lowp_f32quat fquat;</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> </div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>  <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>  <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>  <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>  <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>  <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>  <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>  <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>  <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>  <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>  <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>  <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>  <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>  <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>  <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>  <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>  <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>  <span class="keyword">typedef</span> lowp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>  <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>  <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>  <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>  <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>  <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>  <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>  <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>  <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>  <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>  <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>  <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>  <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>  <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>  <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>  <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>  <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>  <span class="keyword">typedef</span> mediump_f32quat fquat;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> </div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>  <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>  <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>  <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>  <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>  <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>  <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>  <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>  <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>  <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>  <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>  <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>  <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>  <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>  <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>  <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>  <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>  <span class="keyword">typedef</span> mediump_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="preprocessor">#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>  <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> </div>
+<div class="line"><a name="l02331"></a><span class="lineno"><a class="line" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6"> 2331</a></span>  <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> </div>
+<div class="line"><a name="l02335"></a><span class="lineno"><a class="line" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084"> 2335</a></span>  <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> </div>
+<div class="line"><a name="l02339"></a><span class="lineno"><a class="line" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b"> 2339</a></span>  <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> </div>
+<div class="line"><a name="l02343"></a><span class="lineno"><a class="line" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711"> 2343</a></span>  <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> </div>
+<div class="line"><a name="l02347"></a><span class="lineno"><a class="line" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756"> 2347</a></span>  <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> </div>
+<div class="line"><a name="l02351"></a><span class="lineno"><a class="line" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5"> 2351</a></span>  <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> </div>
+<div class="line"><a name="l02355"></a><span class="lineno"><a class="line" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca"> 2355</a></span>  <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> </div>
+<div class="line"><a name="l02359"></a><span class="lineno"><a class="line" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22"> 2359</a></span>  <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> </div>
+<div class="line"><a name="l02363"></a><span class="lineno"><a class="line" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b"> 2363</a></span>  <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> </div>
+<div class="line"><a name="l02367"></a><span class="lineno"><a class="line" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732"> 2367</a></span>  <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> </div>
+<div class="line"><a name="l02371"></a><span class="lineno"><a class="line" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba"> 2371</a></span>  <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> </div>
+<div class="line"><a name="l02375"></a><span class="lineno"><a class="line" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9"> 2375</a></span>  <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>  </div>
+<div class="line"><a name="l02379"></a><span class="lineno"><a class="line" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985"> 2379</a></span>  <span class="keyword">typedef</span> fmat2x2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> </div>
+<div class="line"><a name="l02383"></a><span class="lineno"><a class="line" href="a00177.html#ga5165fbee2d78f342950265b69a07353d"> 2383</a></span>  <span class="keyword">typedef</span> fmat3x3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> </div>
+<div class="line"><a name="l02387"></a><span class="lineno"><a class="line" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd"> 2387</a></span>  <span class="keyword">typedef</span> fmat4x4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> </div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>  <span class="keyword">typedef</span> highp_fquat fquat;</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>  </div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> </div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> </div>
+<div class="line"><a name="l02397"></a><span class="lineno"><a class="line" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f"> 2397</a></span>  <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span> </div>
+<div class="line"><a name="l02401"></a><span class="lineno"><a class="line" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3"> 2401</a></span>  <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span> </div>
+<div class="line"><a name="l02405"></a><span class="lineno"><a class="line" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad"> 2405</a></span>  <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span> </div>
+<div class="line"><a name="l02409"></a><span class="lineno"><a class="line" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704"> 2409</a></span>  <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span> </div>
+<div class="line"><a name="l02413"></a><span class="lineno"><a class="line" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a"> 2413</a></span>  <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> </div>
+<div class="line"><a name="l02417"></a><span class="lineno"><a class="line" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767"> 2417</a></span>  <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span> </div>
+<div class="line"><a name="l02421"></a><span class="lineno"><a class="line" href="a00177.html#ga5ed667d0247cce477f013ea31982843d"> 2421</a></span>  <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span> </div>
+<div class="line"><a name="l02425"></a><span class="lineno"><a class="line" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1"> 2425</a></span>  <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span> </div>
+<div class="line"><a name="l02429"></a><span class="lineno"><a class="line" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0"> 2429</a></span>  <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span> </div>
+<div class="line"><a name="l02433"></a><span class="lineno"><a class="line" href="a00177.html#ga0100666c90176eaba80e49357d123c7f"> 2433</a></span>  <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span> </div>
+<div class="line"><a name="l02437"></a><span class="lineno"><a class="line" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff"> 2437</a></span>  <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span> </div>
+<div class="line"><a name="l02441"></a><span class="lineno"><a class="line" href="a00177.html#gaa69e73ffb01a52499071391d395908fb"> 2441</a></span>  <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span> </div>
+<div class="line"><a name="l02445"></a><span class="lineno"><a class="line" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5"> 2445</a></span>  <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span> </div>
+<div class="line"><a name="l02449"></a><span class="lineno"><a class="line" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e"> 2449</a></span>  <span class="keyword">typedef</span> f32mat2x2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span> </div>
+<div class="line"><a name="l02453"></a><span class="lineno"><a class="line" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c"> 2453</a></span>  <span class="keyword">typedef</span> f32mat3x3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span> </div>
+<div class="line"><a name="l02457"></a><span class="lineno"><a class="line" href="a00177.html#ga797fa3ab16e04456174c36238e091341"> 2457</a></span>  <span class="keyword">typedef</span> f32mat4x4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span> </div>
+<div class="line"><a name="l02461"></a><span class="lineno"><a class="line" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0"> 2461</a></span>  <span class="keyword">typedef</span> highp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span> </div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>  <span class="keyword">typedef</span> lowp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>  <span class="keyword">typedef</span> lowp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>  <span class="keyword">typedef</span> lowp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>  <span class="keyword">typedef</span> lowp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>  <span class="keyword">typedef</span> lowp_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>  <span class="keyword">typedef</span> lowp_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>  <span class="keyword">typedef</span> lowp_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>  <span class="keyword">typedef</span> lowp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>  <span class="keyword">typedef</span> lowp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>  <span class="keyword">typedef</span> lowp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>  <span class="keyword">typedef</span> lowp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>  <span class="keyword">typedef</span> lowp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>  <span class="keyword">typedef</span> lowp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>  <span class="keyword">typedef</span> lowp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>  <span class="keyword">typedef</span> lowp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>  <span class="keyword">typedef</span> lowp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>  <span class="keyword">typedef</span> lowp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>  <span class="keyword">typedef</span> mediump_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>  <span class="keyword">typedef</span> mediump_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>  <span class="keyword">typedef</span> mediump_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>  <span class="keyword">typedef</span> mediump_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>  <span class="keyword">typedef</span> mediump_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>  <span class="keyword">typedef</span> mediump_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>  <span class="keyword">typedef</span> mediump_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>  <span class="keyword">typedef</span> mediump_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>  <span class="keyword">typedef</span> mediump_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>  <span class="keyword">typedef</span> mediump_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>  <span class="keyword">typedef</span> mediump_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>  <span class="keyword">typedef</span> mediump_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>  <span class="keyword">typedef</span> mediump_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>  <span class="keyword">typedef</span> mediump_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>  <span class="keyword">typedef</span> mediump_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>  <span class="keyword">typedef</span> mediump_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>  <span class="keyword">typedef</span> mediump_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>  <span class="keyword">typedef</span> highp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span> </div>
+<div class="line"><a name="l02507"></a><span class="lineno"><a class="line" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3"> 2507</a></span>  <span class="keyword">typedef</span> highp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span> </div>
+<div class="line"><a name="l02511"></a><span class="lineno"><a class="line" href="a00177.html#gafacc3614bb1136a7756293e67d34de22"> 2511</a></span>  <span class="keyword">typedef</span> highp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span> </div>
+<div class="line"><a name="l02515"></a><span class="lineno"><a class="line" href="a00177.html#ga8723186104dc02eb85da386105fba75f"> 2515</a></span>  <span class="keyword">typedef</span> highp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span> </div>
+<div class="line"><a name="l02519"></a><span class="lineno"><a class="line" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3"> 2519</a></span>  <span class="keyword">typedef</span> highp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span> </div>
+<div class="line"><a name="l02523"></a><span class="lineno"><a class="line" href="a00177.html#ga87d256f4719417e311cd0ea14264678d"> 2523</a></span>  <span class="keyword">typedef</span> highp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span> </div>
+<div class="line"><a name="l02527"></a><span class="lineno"><a class="line" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550"> 2527</a></span>  <span class="keyword">typedef</span> highp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span> </div>
+<div class="line"><a name="l02531"></a><span class="lineno"><a class="line" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2"> 2531</a></span>  <span class="keyword">typedef</span> highp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span> </div>
+<div class="line"><a name="l02535"></a><span class="lineno"><a class="line" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6"> 2535</a></span>  <span class="keyword">typedef</span> highp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> </div>
+<div class="line"><a name="l02539"></a><span class="lineno"><a class="line" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293"> 2539</a></span>  <span class="keyword">typedef</span> highp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span> </div>
+<div class="line"><a name="l02543"></a><span class="lineno"><a class="line" href="a00177.html#gaa669dfb59031a441de19b34a92704d57"> 2543</a></span>  <span class="keyword">typedef</span> highp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span> </div>
+<div class="line"><a name="l02547"></a><span class="lineno"><a class="line" href="a00177.html#gaba137814a509704937746cc1e82edc32"> 2547</a></span>  <span class="keyword">typedef</span> highp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span> </div>
+<div class="line"><a name="l02551"></a><span class="lineno"><a class="line" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b"> 2551</a></span>  <span class="keyword">typedef</span> highp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span> </div>
+<div class="line"><a name="l02555"></a><span class="lineno"><a class="line" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38"> 2555</a></span>  <span class="keyword">typedef</span> f64mat2x2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span> </div>
+<div class="line"><a name="l02559"></a><span class="lineno"><a class="line" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71"> 2559</a></span>  <span class="keyword">typedef</span> f64mat3x3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span> </div>
+<div class="line"><a name="l02563"></a><span class="lineno"><a class="line" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95"> 2563</a></span>  <span class="keyword">typedef</span> f64mat4x4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span> </div>
+<div class="line"><a name="l02567"></a><span class="lineno"><a class="line" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d"> 2567</a></span>  <span class="keyword">typedef</span> highp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span> </div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00177.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02457">fwd.hpp:2457</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00055">type_float.hpp:55</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00110_html"><div class="ttname"><a href="a00110.html">type_float.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4< float, lowp > lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00363">type_vec.hpp:363</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00158_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00158.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2< float, lowp > lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00149">type_vec.hpp:149</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00158_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3< float, highp > highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00245">type_vec.hpp:245</a></div></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02383">fwd.hpp:2383</a></div></div>
+<div class="ttc" id="a00177_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00206">type_int.hpp:206</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00158_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4< float, mediump > mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00357">type_vec.hpp:357</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00209">type_int.hpp:209</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00056">type_float.hpp:56</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02449">fwd.hpp:2449</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00158_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3< float, lowp > lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00259">type_vec.hpp:259</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00212">type_int.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02563">fwd.hpp:2563</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00158_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4< float, highp > highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00351">type_vec.hpp:351</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00207">type_int.hpp:207</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00177_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02387">fwd.hpp:2387</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00158_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3< float, mediump > mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00252">type_vec.hpp:252</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02555">fwd.hpp:2555</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00158_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2< float, mediump > mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00142">type_vec.hpp:142</a></div></div>
+<div class="ttc" id="a00158_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2< float, highp > highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00135">type_vec.hpp:135</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00177_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00211">type_int.hpp:211</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00213">type_int.hpp:213</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02379">fwd.hpp:2379</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00214">type_int.hpp:214</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00177_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00208">type_int.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02559">fwd.hpp:2559</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01505">fwd.hpp:1505</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00212">fwd.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02453">fwd.hpp:2453</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00039.html b/src/third_party/glm/doc/api/a00039.html
new file mode 100644
index 0000000..35a7e38
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00039.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: geometric.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">geometric.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00039_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00039_source.html">geometric.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00039_source.html b/src/third_party/glm/doc/api/a00039_source.html
new file mode 100644
index 0000000..b52d634
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00039_source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: geometric.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">geometric.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00031.html">detail/func_geometric.hpp</a>"</span></div>
+<div class="ttc" id="a00031_html"><div class="ttname"><a href="a00031.html">func_geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00040.html b/src/third_party/glm/doc/api/a00040.html
new file mode 100644
index 0000000..af523f1
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00040.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: glm.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">glm.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00040_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00040_source.html">glm.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00040_source.html b/src/third_party/glm/doc/api/a00040_source.html
new file mode 100644
index 0000000..ce7af3f
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00040_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: glm.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">glm.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00040.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">detail/_fixes.hpp</a>"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <climits></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <cfloat></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "<a class="code" href="a00038.html">fwd.hpp</a>"</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># pragma message("GLM: Core library included")</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="a00051.html">mat2x2.hpp</a>"</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "<a class="code" href="a00052.html">mat2x3.hpp</a>"</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="a00053.html">mat2x4.hpp</a>"</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "<a class="code" href="a00054.html">mat3x2.hpp</a>"</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="a00055.html">mat3x3.hpp</a>"</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="a00056.html">mat3x4.hpp</a>"</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "<a class="code" href="a00057.html">mat4x2.hpp</a>"</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "mat4x3.hpp"</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="a00059.html">mat4x4.hpp</a>"</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00107.html">trigonometric.hpp</a>"</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include "<a class="code" href="a00022.html">exponential.hpp</a>"</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include "<a class="code" href="a00014.html">common.hpp</a>"</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="a00081.html">packing.hpp</a>"</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "<a class="code" href="a00039.html">geometric.hpp</a>"</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="a00060.html">matrix.hpp</a>"</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "<a class="code" href="a00139.html">vector_relational.hpp</a>"</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="a00046.html">integer.hpp</a>"</span></div>
+<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00139_html"><div class="ttname"><a href="a00139.html">vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00059_html"><div class="ttname"><a href="a00059.html">mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00055_html"><div class="ttname"><a href="a00055.html">mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">fwd.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00014_html"><div class="ttname"><a href="a00014.html">common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00081_html"><div class="ttname"><a href="a00081.html">packing.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00054_html"><div class="ttname"><a href="a00054.html">mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00052_html"><div class="ttname"><a href="a00052.html">mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00057_html"><div class="ttname"><a href="a00057.html">mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00060_html"><div class="ttname"><a href="a00060.html">matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00053_html"><div class="ttname"><a href="a00053.html">mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00051_html"><div class="ttname"><a href="a00051.html">mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00107_html"><div class="ttname"><a href="a00107.html">trigonometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00041.html b/src/third_party/glm/doc/api/a00041.html
new file mode 100644
index 0000000..c0c311b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00041.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: gradient_paint.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gradient_paint.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00041_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</td></tr>
+<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</td></tr>
+<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00041_source.html">gradient_paint.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00041_source.html b/src/third_party/glm/doc/api/a00041_source.html
new file mode 100644
index 0000000..9f26eda
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00041_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: gradient_paint.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gradient_paint.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00041.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtx/optimum_pow.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_gradient_paint extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL T <a class="code" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tvec2<T, P> <span class="keyword">const</span> & Center,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  T <span class="keyword">const</span> & Radius,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  tvec2<T, P> <span class="keyword">const</span> & Focal,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  tvec2<T, P> <span class="keyword">const</span> & Position);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  GLM_FUNC_DECL T <a class="code" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  tvec2<T, P> <span class="keyword">const</span> & Point0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  tvec2<T, P> <span class="keyword">const</span> & Point1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  tvec2<T, P> <span class="keyword">const</span> & Position);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "gradient_paint.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00196_html_gacde26d5e0c4a1856467bded9dfad9040"><div class="ttname"><a href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">glm::linearGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T linearGradient(tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a linear gradient. </div></div>
+<div class="ttc" id="a00196_html_ga166d43d567a4cf150579a92f69b0dc9f"><div class="ttname"><a href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">glm::radialGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T radialGradient(tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a radial gradient. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00042.html b/src/third_party/glm/doc/api/a00042.html
new file mode 100644
index 0000000..91e863d
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00042.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: handed_coordinate_space.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">handed_coordinate_space.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00042_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00042_source.html">handed_coordinate_space.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00042_source.html b/src/third_party/glm/doc/api/a00042_source.html
new file mode 100644
index 0000000..8ec3771
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00042_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: handed_coordinate_space.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">handed_coordinate_space.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00042.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "handed_coordinate_space.inl"</span></div>
+<div class="ttc" id="a00197_html_ga7425e0ebfe6a56919900a072ae1f8017"><div class="ttname"><a href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">glm::leftHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool leftHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron left handed or not. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00197_html_ga17cd83888de8755c0435c589fafd3603"><div class="ttname"><a href="a00197.html#ga17cd83888de8755c0435c589fafd3603">glm::rightHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool rightHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron right handed or not. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00043.html b/src/third_party/glm/doc/api/a00043.html
new file mode 100644
index 0000000..a085f1b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00043.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: hash.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">hash.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00043_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00198.html">GLM_GTX_hash</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00043_source.html">hash.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00043_source.html b/src/third_party/glm/doc/api/a00043_source.html
new file mode 100644
index 0000000..740f658
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00043_source.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: hash.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">hash.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00043.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../gtx/dual_quaternion.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#if !GLM_HAS_CXX11_STL</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># error "GLM_GTX_hash requires C++11 standard library support"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="a00145.html">std</a></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec1<T,P> ></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec1<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec2<T,P> ></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec2<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec3<T,P> ></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec3<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec4<T,P> ></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec4<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tquat<T,P>></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tquat<T, P> <span class="keyword">const</span> & q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tdualquat<T,P> ></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tdualquat<T,P> <span class="keyword">const</span> & q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x2<T,P> ></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x3<T,P> ></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x4<T,P> ></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  };</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x2<T,P> ></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  };</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x3<T,P> ></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  };</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x4<T,P> ></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x2<T,P> ></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  };</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x3<T,P> ></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x4<T,P> ></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  };</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <span class="comment">// namespace std</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#include "hash.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00145_html"><div class="ttname"><a href="a00145.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="a00043_source.html#l00041">hash.hpp:41</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00044.html b/src/third_party/glm/doc/api/a00044.html
new file mode 100644
index 0000000..c336ff6
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00044.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtc/integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00044_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
+<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
+<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gab61b8546aafdf58f119eb892b212607c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00165.html">GLM_GTC_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00044_source.html">gtc/integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00044_source.html b/src/third_party/glm/doc/api/a00044_source.html
new file mode 100644
index 0000000..7b6e173
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00044_source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtc/integer.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/func_common.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/func_integer.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../detail/func_exponential.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_integer extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a>(genIUType x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(genIUType x, genIUType y);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "integer.inl"</span></div>
+<div class="ttc" id="a00165_html_gab61b8546aafdf58f119eb892b212607c"><div class="ttname"><a href="a00165.html#gab61b8546aafdf58f119eb892b212607c">glm::uround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > uround(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00165_html_ga9bd682e74bfacb005c735305207ec417"><div class="ttname"><a href="a00165.html#ga9bd682e74bfacb005c735305207ec417">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType log2(genIUType x)</div><div class="ttdoc">Returns the log2 of x for integer values. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00165_html_ga75c6fd2a143fc44e5f7b871abad539e0"><div class="ttname"><a href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00165_html_ga0a42ffb863cc980e91f98d2f5766de20"><div class="ttname"><a href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">glm::iround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > iround(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00045.html b/src/third_party/glm/doc/api/a00045.html
new file mode 100644
index 0000000..6e62188
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00045.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">gtx/integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00045_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
+<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &x)</td></tr>
+<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
+<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
+<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
+<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
+<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
+<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
+<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
+<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
+<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00199.html">GLM_GTX_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00045_source.html b/src/third_party/glm/doc/api/a00045_source.html
new file mode 100644
index 0000000..4c7c4b4
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00045_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtx/integer.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00045.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/integer.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_integer extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  GLM_FUNC_DECL <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  GLM_FUNC_DECL genType <a class="code" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40"> 51</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "integer.inl"</span></div>
+<div class="ttc" id="a00199_html_ga63fc8d63e7da1706439233b386ba8b6f"><div class="ttname"><a href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL uint mod(uint x, uint y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00199_html_gada7e83fdfe943aba4f1d5bf80cb66f40"><div class="ttname"><a href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::sint</a></div><div class="ttdeci">signed int sint</div><div class="ttdoc">32bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00045_source.html#l00051">gtx/integer.hpp:51</a></div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00199_html_ga998e5ee915d3769255519e2fbaa2bbf0"><div class="ttname"><a href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL uint pow(uint x, uint y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="ttc" id="a00199_html_ga78dff8bdb361bf0061194c93e003d189"><div class="ttname"><a href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">glm::nlz</a></div><div class="ttdeci">GLM_FUNC_DECL uint nlz(uint x)</div><div class="ttdoc">Returns the number of leading zeros. </div></div>
+<div class="ttc" id="a00199_html_ga1975d318978d6dacf78b6444fa5ed7bc"><div class="ttname"><a href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL uint sqrt(uint x)</div><div class="ttdoc">Returns the positive square root of x. </div></div>
+<div class="ttc" id="a00199_html_ga8cbd3120905f398ec321b5d1836e08fb"><div class="ttname"><a href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">glm::factorial</a></div><div class="ttdeci">GLM_FUNC_DECL genType factorial(genType const &x)</div><div class="ttdoc">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...</div></div>
+<div class="ttc" id="a00199_html_ga7011b4e1c1e1ed492149b028feacc00e"><div class="ttname"><a href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">glm::floor_log2</a></div><div class="ttdeci">GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)</div><div class="ttdoc">Returns the floor log2 of x. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00046.html b/src/third_party/glm/doc/api/a00046.html
new file mode 100644
index 0000000..fa9127c
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00046.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00046_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00046_source.html">integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00046_source.html b/src/third_party/glm/doc/api/a00046_source.html
new file mode 100644
index 0000000..3fecbe4
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00046_source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: integer.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">integer.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00046.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00032.html">detail/func_integer.hpp</a>"</span></div>
+<div class="ttc" id="a00032_html"><div class="ttname"><a href="a00032.html">func_integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00047.html b/src/third_party/glm/doc/api/a00047.html
new file mode 100644
index 0000000..b78868f
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00047.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: intersect.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">intersect.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00047_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())</td></tr>
+<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</td></tr>
+<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</td></tr>
+<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)</td></tr>
+<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)</td></tr>
+<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</td></tr>
+<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00200.html">GLM_GTX_intersect</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00183.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00047_source.html">intersect.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00047_source.html b/src/third_party/glm/doc/api/a00047_source.html
new file mode 100644
index 0000000..4b4b2fb
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00047_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: intersect.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">intersect.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cfloat></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtx/closest_point.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtx/vector_query.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  genType <span class="keyword">const</span> & planeOrig, genType <span class="keyword">const</span> & planeNormal,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">typename</span> genType::value_type & intersectionDistance);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  genType & baryPosition);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  genType & position);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> sphereRadiusSquered,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">typename</span> genType::value_type & intersectionDistance);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  genType & intersectionPosition, genType & intersectionNormal);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a>(</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  genType <span class="keyword">const</span> & point0, genType <span class="keyword">const</span> & point1,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  genType & intersectionPosition1, genType & intersectionNormal1, </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "intersect.inl"</span></div>
+<div class="ttc" id="a00200_html_gad28c00515b823b579c608aafa1100c1d"><div class="ttname"><a href="a00200.html#gad28c00515b823b579c608aafa1100c1d">glm::intersectRaySphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)</div><div class="ttdoc">Compute the intersection of a ray and a sphere. </div></div>
+<div class="ttc" id="a00200_html_gad3697a9700ea379739a667ea02573488"><div class="ttname"><a href="a00200.html#gad3697a9700ea379739a667ea02573488">glm::intersectRayPlane</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</div><div class="ttdoc">Compute the intersection of a ray and a plane. </div></div>
+<div class="ttc" id="a00200_html_ga9d29b9b3acb504d43986502f42740df4"><div class="ttname"><a href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">glm::intersectLineTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</div><div class="ttdoc">Compute the intersection of a line and a triangle. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00200_html_ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><div class="ttname"><a href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">glm::intersectLineSphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())</div><div class="ttdoc">Compute the intersection of a line and a sphere. </div></div>
+<div class="ttc" id="a00200_html_gab16c1b47c10451e7604b51b39a7ef21d"><div class="ttname"><a href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">glm::intersectRayTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</div><div class="ttdoc">Compute the intersection of a ray and a triangle. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00048.html b/src/third_party/glm/doc/api/a00048.html
new file mode 100644
index 0000000..3e91e93
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00048.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: io.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">io.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00048_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00201.html">GLM_GTX_io</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Jan P Springer (<a href="#" onclick="location.href='mai'+'lto:'+'reg'+'ni'+'rps'+'j@'+'gma'+'il'+'.co'+'m'; return false;">regni<span style="display: none;">.nosp@m.</span>rpsj<span style="display: none;">.nosp@m.</span>@gmai<span style="display: none;">.nosp@m.</span>l.co<span style="display: none;">.nosp@m.</span>m</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00048_source.html">io.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00048_source.html b/src/third_party/glm/doc/api/a00048_source.html
new file mode 100644
index 0000000..0d32417
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00048_source.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: io.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">io.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00048.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_io extension included")</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <iosfwd></span> <span class="comment">// std::basic_ostream<> (fwd)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <locale></span> <span class="comment">// std::locale, std::locale::facet, std::locale::id</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <utility></span> <span class="comment">// std::pair<></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">namespace </span>io</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">enum</span> order_type { column_major, row_major};</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">class </span>format_punct : <span class="keyword">public</span> std::locale::facet</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">typedef</span> CTy char_type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">static</span> std::locale::id id;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordtype">bool</span> formatted;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordtype">unsigned</span> precision;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordtype">unsigned</span> width;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  char_type separator;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  char_type delim_left;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  char_type delim_right;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  char_type space;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  char_type newline;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  order_type order;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(<span class="keywordtype">size_t</span> a = 0);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(format_punct <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  };</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">class </span>basic_state_saver {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> basic_state_saver(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  GLM_FUNC_DECL ~basic_state_saver();</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  typedef ::std::basic_ios<CTy,CTr> state_type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> state_type::char_type char_type;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  typedef ::std::ios_base::fmtflags flags_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  typedef ::std::streamsize streamsize_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  typedef ::std::locale <span class="keyword">const</span> locale_type;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  state_type& state_;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  flags_type flags_;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  streamsize_type precision_;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  streamsize_type width_;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  char_type fill_;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  locale_type locale_;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keyword">typedef</span> basic_state_saver<char> state_saver;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">typedef</span> basic_state_saver<wchar_t> wstate_saver;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keyword">class </span>basic_format_saver</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> basic_format_saver(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  GLM_FUNC_DECL ~basic_format_saver();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  basic_state_saver<CTy> <span class="keyword">const</span> bss_;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">typedef</span> basic_format_saver<char> format_saver;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">typedef</span> basic_format_saver<wchar_t> wformat_saver;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">struct </span>precision</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> precision(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  };</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">struct </span>width</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> width(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">struct </span>delimeter</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  CTy value[3];</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> delimeter(CTy <span class="comment">/* left */</span>, CTy <span class="comment">/* right */</span>, CTy <span class="comment">/* separator */</span> = <span class="charliteral">','</span>);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  };</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">struct </span>order</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  order_type value;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  GLM_FUNC_DECL <span class="keyword">explicit</span> order(order_type);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  };</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// functions, inlined (inline)</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  FTy <span class="keyword">const</span>& get_facet(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }<span class="comment">//namespace io</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec1<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  std::pair<tmat4x4<T,P> <span class="keyword">const</span>, tmat4x4<T,P> <span class="keyword">const</span>> <span class="keyword">const</span> &);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#include "io.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00049.html b/src/third_party/glm/doc/api/a00049.html
new file mode 100644
index 0000000..24d373f
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00049.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: log_base.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">log_base.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00049_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a> (genType const &x, genType const &base)</td></tr>
+<tr class="separator:ga60a7b0a401da660869946b2b77c710c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType< T, P > const &x, vecType< T, P > const &base)</td></tr>
+<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00202.html">GLM_GTX_log_base</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00049_source.html">log_base.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00049_source.html b/src/third_party/glm/doc/api/a00049_source.html
new file mode 100644
index 0000000..7fc658b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00049_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: log_base.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">log_base.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00049.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_log_base extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  GLM_FUNC_DECL genType <a class="code" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  genType <span class="keyword">const</span> & base);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  vecType<T, P> <span class="keyword">const</span> & base);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "log_base.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00202_html_ga60a7b0a401da660869946b2b77c710c9"><div class="ttname"><a href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL genType log(genType const &x, genType const &base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="ttc" id="a00202_html_ga1842004a127a9f3573764362ff639191"><div class="ttname"><a href="a00202.html#ga1842004a127a9f3573764362ff639191">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x, vecType< T, P > const &base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00050_source.html b/src/third_party/glm/doc/api/a00050_source.html
new file mode 100644
index 0000000..45269db
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00050_source.html
@@ -0,0 +1,2457 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: man.doxy Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">man.doxy</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor"># Doxyfile 1.8.10</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"># This file describes the settings to be used by the documentation system</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor"># doxygen (www.doxygen.org) for a project.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor"># All text after a double hash (##) is considered a comment and is placed in</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"># front of the TAG it is preceding.</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># All text after a single hash (#) is considered a comment and will be ignored.</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># The format is:</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># TAG = value [value, ...]</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># For lists, items can also be appended using:</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"># TAG += value [value, ...]</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"># Values that contain spaces should be placed between quotes (\" \").</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"># Project related configuration options</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># This tag specifies the encoding used for all characters in the config file</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all text</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># before the first occurrence of this tag. Doxygen uses libiconv (or the iconv</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># built into libc) for the transcoding. See http://www.gnu.org/software/libiconv</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># for the list of possible encodings.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> DOXYFILE_ENCODING = UTF-8</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># The PROJECT_NAME tag is a single word (or a sequence of words surrounded by</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># double-quotes, unless you are using Doxywizard) that should identify the</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># project for which the documentation is generated. This name is used in the</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># title of most generated pages and in a few other places.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># The default value is: My Project.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> PROJECT_NAME = 0.9.7</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. This</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># could be handy for archiving the generated documentation or if some version</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># control system is used.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> PROJECT_NUMBER = </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"># for a project that appears at the top of each page and should give viewer a</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># quick idea about the purpose of the project. Keep the description short.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PROJECT_BRIEF = </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># With the PROJECT_LOGO tag one can specify a logo or an icon that is included</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># in the documentation. The maximum height of the logo should not exceed 55</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pixels and the maximum width should not exceed 200 pixels. Doxygen will copy</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># the logo to the output directory.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> PROJECT_LOGO = D:/Source/G-Truc/<a class="code" href="a00141.html">glm</a>/doc/logo.png</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># into which the generated documentation will be written. If a relative path is</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># entered, it will be relative to the location where doxygen was started. If</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># left blank the current directory will be used.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> OUTPUT_DIRECTORY = .</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># directories (in 2 levels) under the output directory of each output format and</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># will distribute the generated files over these directories. Enabling this</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># option can be useful when feeding doxygen a huge amount of source files, where</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># putting all generated files in the same directory would otherwise causes</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># performance problems for the file system.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> CREATE_SUBDIRS = NO</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># characters to appear in the names of generated files. If set to NO, non-ASCII</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># characters will be escaped, for example _xE3_x81_x84 will be used for Unicode</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># U+3044.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> ALLOW_UNICODE_NAMES = NO</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># information to generate all constant output in the proper language.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># Ukrainian and Vietnamese.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># The default value is: English.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> OUTPUT_LANGUAGE = English</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># descriptions after the members that are listed in the file and class</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># documentation (similar to Javadoc). Set to NO to disable this.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> BRIEF_MEMBER_DESC = NO</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># description of a member or function before the detailed description</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"># Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># brief descriptions will be completely suppressed.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> REPEAT_BRIEF = YES</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator that is</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># used to form the text in various listings. Each string in this list, if found</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"># as the leading text of the brief description, will be stripped from the text</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># and the result, after processing the whole list, is used as the annotated</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># text. Otherwise, the brief description is used as-is. If left blank, the</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"># following values are used ($name is automatically replaced with the name of</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"># the entity):The $name class, The $name widget, The $name file, is, provides,</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># specifies, contains, represents, a, an and the.</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> ABBREVIATE_BRIEF = <span class="stringliteral">"The $name class "</span> \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="stringliteral">"The $name widget "</span> \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="stringliteral">"The $name file "</span> \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  is \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  provides \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  specifies \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  contains \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  represents \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  a \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  an \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  the</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"># doxygen will generate a detailed section even if there is only a brief</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"># description.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> ALWAYS_DETAILED_SEC = NO</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"># inherited members of a class in the documentation of that class as if those</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"># operators of the base classes will not be shown.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> INLINE_INHERITED_MEMB = NO</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"># before files name in the file list and in the header files. If set to NO the</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"># shortest path that makes the file name unique will be used</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> FULL_PATH_NAMES = NO</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"># Stripping is only done if one of the specified strings matches the left-hand</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"># part of the path. The tag can be used to show relative paths in the file list.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"># If left blank the directory from which doxygen is run is used as the path to</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"># strip.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"># Note that you can specify absolute paths here, but also relative paths, which</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"># will be relative from the directory where doxygen is started.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"># This tag requires that the tag FULL_PATH_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> STRIP_FROM_PATH = <span class="stringliteral">"C:/Documents and Settings/Groove/ "</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"># path mentioned in the documentation of a class, which tells the reader which</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"># header file to include in order to use a class. If left blank only the name of</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"># the header file containing the class definition is used. Otherwise one should</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"># specify the list of include paths that are normally passed to the compiler</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"># using the -I flag.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> STRIP_FROM_INC_PATH = </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"># less readable) file names. This can be useful is your file systems doesn't</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"># support long names like on DOS, Mac, or CD-ROM.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> SHORT_NAMES = YES</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"># first line (until the first dot) of a Javadoc-style comment as the brief</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"># description. If set to NO, the Javadoc-style will behave just like regular Qt-</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"># style comments (thus requiring an explicit @brief command for a brief</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"># description.)</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> JAVADOC_AUTOBRIEF = YES</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"># line (until the first dot) of a Qt-style comment as the brief description. If</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"># set to NO, the Qt-style will behave just like regular Qt-style comments (thus</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"># requiring an explicit \brief command for a brief description.)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> QT_AUTOBRIEF = NO</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"># multi-line C++ special comment block (i.e. a block of </span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"># a brief description. This used to be the default behavior. The new default is</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># to treat a multi-line C++ comment block as a detailed description. Set this</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"># tag to YES if you prefer the old behavior instead.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"># Note that setting this tag to YES also means that rational rose comments are</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"># not recognized any more.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> MULTILINE_CPP_IS_BRIEF = NO</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"># If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"># documentation from any documented member that it re-implements.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> INHERIT_DOCS = YES</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"># page for each member. If set to NO, the documentation of a member will be part</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"># of the file/class/namespace that contains it.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> SEPARATE_MEMBER_PAGES = NO</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"># uses this value to replace tabs by spaces in code fragments.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"># Minimum value: 1, maximum value: 16, default value: 4.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> TAB_SIZE = 8</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"># This tag can be used to specify a number of aliases that act as commands in</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"># the documentation. An alias has the form:</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"># name=value</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"># For example adding</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"># "sideeffect=@par Side Effects:\n"</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"># will allow you to put the command \sideeffect (or @sideeffect) in the</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"># documentation, which will result in a user-defined paragraph with heading</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"># "Side Effects:". You can put \n's in the value part of an alias to insert</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"># newlines.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> ALIASES = </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only).</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># A mapping has the form "name=value". For example adding "class=itcl::class"</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"># will allow you to use the command class in the itcl::class meaning.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> TCL_SUBST = </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"># only. Doxygen will then generate output that is more tailored for C. For</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"># instance, some of the names that are used will be different. The list of all</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"># members will be omitted, etc.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> OPTIMIZE_OUTPUT_FOR_C = NO</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"># Python sources only. Doxygen will then generate output that is more tailored</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># for that language. For instance, namespaces will be presented as packages,</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># qualified scopes will look different, etc.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> OPTIMIZE_OUTPUT_JAVA = NO</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for Fortran.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> OPTIMIZE_FOR_FORTRAN = NO</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for VHDL.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> OPTIMIZE_OUTPUT_VHDL = NO</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"># parses. With this tag you can assign which parser to use for a given</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># extension. Doxygen has a built-in mapping, but you can override or extend it</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># using this tag. The format is ext=language, where ext is a file extension, and</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># language is one of the parsers supported by doxygen: IDL, Java, Javascript,</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"># C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># Fortran. In the later case the parser tries to guess whether the code is fixed</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># or free formatted code, this is the default for Fortran type files), VHDL. For</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"># instance to make doxygen treat .inc files as Fortran files (default is PHP),</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"># and .f files as C (default is Fortran), use: inc=Fortran f=C.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># Note: For files without extension you can use no_extension as a placeholder.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># Note that for custom extensions you also need to set FILE_PATTERNS otherwise</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># the files are not read by doxygen.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> EXTENSION_MAPPING = </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># according to the Markdown format, which allows for more readable</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"># documentation. See http://daringfireball.net/projects/markdown/ for details.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># The output of markdown processing is further processed by doxygen, so you can</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># case of backward compatibilities issues.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> MARKDOWN_SUPPORT = YES</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"># When enabled doxygen tries to link words that correspond to documented</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># classes, or namespaces to their corresponding documentation. Such a link can</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># be prevented in individual cases by putting a % sign in front of the word or</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># globally by setting AUTOLINK_SUPPORT to NO.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> AUTOLINK_SUPPORT = YES</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should set this</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># tag to YES in order to let doxygen match functions declarations and</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string);</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"># versus func(std::string) {}). This also make the inheritance and collaboration</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> BUILTIN_STL_SUPPORT = NO</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># If you use Microsoft's C++/CLI language, you should set this option to YES to</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># enable parsing support.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> CPP_CLI_SUPPORT = NO</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip (see:</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># will parse them like normal C++ but will assume all classes use public instead</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># of private inheritance when no explicit protection keyword is present.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> SIP_SUPPORT = NO</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"># For Microsoft's IDL there are propget and propput attributes to indicate</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># getter and setter methods for a property. Setting this option to YES will make</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># doxygen to replace the get and set methods by a property in the documentation.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># This will only work if the methods are indeed getting or setting a simple</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"># type. If this is not the case, or you want to show the methods anyway, you</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># should set this option to NO.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> IDL_PROPERTY_SUPPORT = YES</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># tag is set to YES then doxygen will reuse the documentation of the first</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"># member in the group (if any) for the other members of the group. By default</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># all members of a group must be documented explicitly.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> DISTRIBUTE_GROUP_DOC = NO</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># If one adds a struct or class to a group and this option is enabled, then also</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># any nested class or struct is added to the same group. By default this option</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"># is disabled and one has to add nested compounds explicitly via \ingroup.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> GROUP_NESTED_COMPOUNDS = NO</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># Set the SUBGROUPING tag to YES to allow class member groups of the same type</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># (for instance a group of public functions) to be put as a subgroup of that</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># type (e.g. under the Public Functions section). Set it to NO to prevent</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"># subgrouping. Alternatively, this can be done per class using the</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># \nosubgrouping command.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> SUBGROUPING = NO</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># are shown inside the group in which they are included (e.g. using \ingroup)</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"># instead of on a separate page (for HTML and Man pages) or section (for LaTeX</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"># and RTF).</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># Note that this feature does not work in combination with</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"># SEPARATE_MEMBER_PAGES.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> INLINE_GROUPED_CLASSES = NO</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># with only public data fields or simple typedef fields will be shown inline in</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># the documentation of the scope in which they are defined (i.e. file,</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"># namespace, or group documentation), provided this scope is documented. If set</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"># to NO, structs, classes, and unions are shown on a separate page (for HTML and</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># Man pages) or section (for LaTeX and RTF).</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> INLINE_SIMPLE_STRUCTS = NO</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"># enum is documented as struct, union, or enum with the name of the typedef. So</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file,</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically be</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"># useful for C code in case the coding convention dictates that all compound</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"># types are typedef'ed and only the typedef is referenced, never the tag name.</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> TYPEDEF_HIDES_STRUCT = NO</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"># The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># cache is used to resolve symbols given their name and scope. Since this can be</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"># an expensive process and often the same symbol appears multiple times in the</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"># code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"># doxygen will become slower. If the cache is too large, memory is wasted. The</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"># cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"># is 0..9, the default is 0, corresponding to a cache size of 2^16=65536</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"># symbols. At the end of a run doxygen will report the cache usage and suggest</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"># the optimal cache size from a speed point of view.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"># Minimum value: 0, maximum value: 9, default value: 0.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> LOOKUP_CACHE_SIZE = 0</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># Build related configuration options</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"># If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"># documentation are documented, even if no documentation was available. Private</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"># class members and static file members will be hidden unless the</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"># EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"># Note: This will also disable the warnings about undocumented members that are</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"># normally produced when WARNINGS is set to YES.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> EXTRACT_ALL = NO</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"># be included in the documentation.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> EXTRACT_PRIVATE = NO</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"># If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"># scope will be included in the documentation.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> EXTRACT_PACKAGE = NO</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES, all static members of a file will be</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> EXTRACT_STATIC = YES</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"># locally in source files will be included in the documentation. If set to NO,</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"># only classes defined in header files are included. Does not have any effect</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"># for Java sources.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> EXTRACT_LOCAL_CLASSES = NO</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"># This flag is only useful for Objective-C code. If set to YES, local methods,</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"># which are defined in the implementation section but not in the interface are</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"># included in the documentation. If set to NO, only methods in the interface are</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"># included.</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> EXTRACT_LOCAL_METHODS = NO</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"># extracted and appear in the documentation as a namespace called</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"># 'anonymous_namespace{file}', where file will be replaced with the base name of</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"># the file that contains the anonymous namespace. By default anonymous namespace</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"># are hidden.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> EXTRACT_ANON_NSPACES = NO</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"># undocumented members inside documented classes or files. If set to NO these</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"># members will be included in the various overviews, but no documentation</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"># section is generated. This option has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> HIDE_UNDOC_MEMBERS = YES</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. If set</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"># to NO, these classes will be included in the various overviews. This option</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"># has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> HIDE_UNDOC_CLASSES = YES</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"># (class|struct|union) declarations. If set to NO, these declarations will be</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> HIDE_FRIEND_COMPOUNDS = YES</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"># documentation blocks found inside the body of a function. If set to NO, these</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># blocks will be appended to the function's detailed documentation block.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> HIDE_IN_BODY_DOCS = YES</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation that is typed after a</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"># \internal command is included. If the tag is set to NO then the documentation</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"># will be excluded. Set it to YES to include the internal documentation.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> INTERNAL_DOCS = NO</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"># names in lower-case letters. If set to YES, upper-case letters are also</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"># and Mac users are advised to set this option to NO.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"># The default value is: system dependent.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> CASE_SENSE_NAMES = YES</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"># their full class and namespace scopes in the documentation. If set to YES, the</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"># scope will be hidden.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> HIDE_SCOPE_NAMES = YES</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"># If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"># append additional text to a page's title, such as Class Reference. If set to</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"># YES the compound reference will be hidden.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> HIDE_COMPOUND_REFERENCE= NO</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"># the files that are included by a file in the documentation of that file.</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> SHOW_INCLUDE_FILES = NO</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"># If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"># grouped member an include statement to the documentation, telling the reader</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"># which file to include in order to use the member.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> SHOW_GROUPED_MEMB_INC = NO</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"># files with double quotes in the documentation rather than with sharp brackets.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> FORCE_LOCAL_INCLUDES = NO</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"># If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"># documentation for inline members.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> INLINE_INFO = NO</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"># (detailed) documentation of file and class members alphabetically by member</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> SORT_MEMBER_DOCS = YES</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"># descriptions of file, namespace and class members alphabetically by member</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order. Note that</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"># this will also influence the order of the classes in the class list.</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> SORT_BRIEF_DOCS = YES</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"># (brief and detailed) documentation of class members so that constructors and</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"># destructors are listed first. If set to NO the constructors will appear in the</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"># respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"># Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"># member documentation.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"># Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"># detailed member documentation.</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> SORT_MEMBERS_CTORS_1ST = NO</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"># of group names into alphabetical order. If set to NO the group names will</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"># appear in their defined order.</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> SORT_GROUP_NAMES = NO</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"># fully-qualified names, including namespaces. If set to NO, the class list will</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"># be sorted only by class name, not including the namespace part.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"># Note: This option applies only to the class list, not to the alphabetical</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"># list.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> SORT_BY_SCOPE_NAME = YES</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"># type resolution of all parameters of a function it will reject a match between</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"># the prototype and the implementation of a member function even if there is</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"># only one candidate or it is obvious which candidate to choose by doing a</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"># simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"># accept a match between prototype and implementation in such cases.</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> STRICT_PROTO_MATCHING = NO</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"># list. This list is created by putting \todo commands in the documentation.</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> GENERATE_TODOLIST = YES</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"># list. This list is created by putting \test commands in the documentation.</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> GENERATE_TESTLIST = YES</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"># list. This list is created by putting \bug commands in the documentation.</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> GENERATE_BUGLIST = YES</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"># the deprecated list. This list is created by putting \deprecated commands in</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"># the documentation.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> GENERATE_DEPRECATEDLIST= YES</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional documentation</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"># sections, marked by \if <section_label> ... \endif and \cond <section_label></span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"># ... \endcond blocks.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> ENABLED_SECTIONS = </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"># initial value of a variable or macro / define can have for it to appear in the</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"># documentation. If the initializer consists of more lines than specified here</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"># it will be hidden. Use a value of 0 to hide initializers completely. The</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"># appearance of the value of individual variables and macros / defines can be</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"># controlled using \showinitializer or \hideinitializer command in the</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"># documentation regardless of this setting.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"># Minimum value: 0, maximum value: 10000, default value: 30.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> MAX_INITIALIZER_LINES = 30</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated at</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"># the bottom of the documentation of classes and structs. If set to YES, the</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"># list will mention the files that were used to generate the documentation.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> SHOW_USED_FILES = NO</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. This</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"># will remove the Files entry from the Quick Index and from the Folder Tree View</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"># (if specified).</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> SHOW_FILES = YES</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"># page. This will remove the Namespaces entry from the Quick Index and from the</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"># Folder Tree View (if specified).</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> SHOW_NAMESPACES = YES</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"># popen()) the command command input-file, where command is the value of the</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"># FILE_VERSION_FILTER tag, and input-file is the name of an input file provided</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"># by doxygen. Whatever the program writes to standard output is used as the file</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"># version. For an example see the documentation.</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> FILE_VERSION_FILTER = </div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"># output files in an output format independent way. To create the layout file</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"># that represents doxygen's defaults, run doxygen with the -l option. You can</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"># optionally specify a file name after the option, if omitted DoxygenLayout.xml</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"># will be used as the name of the layout file.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"># Note that if you run doxygen from a directory containing a file called</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"># DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"># tag is left empty.</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> LAYOUT_FILE = </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files containing</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"># the reference definitions. This must be a list of .bib files. The .bib</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"># extension is automatically appended if omitted. This requires the bibtex tool</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"># to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"># For LaTeX the style of the bibliography can be controlled using</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"># LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"># search path. See also \cite for info how to create references.</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> CITE_BIB_FILES = </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"># Configuration options related to warning and progress messages</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated to</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"># standard output by doxygen. If QUIET is set to YES this implies that the</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"># messages are off.</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> QUIET = NO</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"># generated to standard error (stderr) by doxygen. If WARNINGS is set to YES</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"># this implies that the warnings are on.</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"># Tip: Turn warnings on while writing the documentation.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> WARNINGS = YES</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"># If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"># warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"># will automatically be disabled.</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> WARN_IF_UNDOCUMENTED = YES</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"># If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"># potential errors in the documentation, such as not documenting some parameters</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"># in a documented function, or documenting parameters that don't exist or using</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"># markup commands wrongly.</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> WARN_IF_DOC_ERROR = YES</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"># This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"># are documented, but have no documentation for their parameters or return</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"># value. If set to NO, doxygen will only warn about wrong or incomplete</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"># parameter documentation, but not about the absence of documentation.</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> WARN_NO_PARAMDOC = NO</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that doxygen</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"># can produce. The string should contain the $file, $line, and $text tags, which</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"># will be replaced by the file and line number from which the warning originated</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"># and the warning text. Optionally the format may contain $version, which will</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"># be replaced by the version of the file (if it could be obtained via</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"># FILE_VERSION_FILTER)</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"># The default value is: $file:$line: $text.</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> WARN_FORMAT = <span class="stringliteral">"$file:$line: $text"</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning and error</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"># messages should be written. If left blank the output is written to standard</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"># error (stderr).</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> WARN_LOGFILE = </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"># Configuration options related to the input files</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"># The INPUT tag is used to specify the files and/or directories that contain</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"># documented source files. You may enter file names like myfile.cpp or</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"># directories like /usr/src/myproject. Separate the files or directories with</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"># spaces. See also FILE_PATTERNS and EXTENSION_MAPPING</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"># Note: If this tag is empty the current directory is searched.</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> INPUT = ../<a class="code" href="a00141.html">glm</a> \</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  .</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> # This tag can be used to specify the character encoding of the source files</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"># libiconv (or the iconv built into libc) for the transcoding. See the libiconv</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"># documentation (see: http://www.gnu.org/software/libiconv) for the list of</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"># possible encodings.</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> INPUT_ENCODING = UTF-8</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"># *.h) to filter out the source-files in the directories.</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"># Note that for custom extensions or not directly supported extensions you also</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"># need to set EXTENSION_MAPPING for the extension otherwise the files are not</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"># read by doxygen.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"># If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor"># *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor"># *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"># *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor"># *.vhdl, *.ucf, *.qsf, *.as and *.js.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> FILE_PATTERNS = *.hpp \</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  *.doxy</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"># The RECURSIVE tag can be used to specify whether or not subdirectories should</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor"># be searched for input files as well.</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> RECURSIVE = YES</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor"># run.</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> EXCLUDE = </div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"># from the input.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> EXCLUDE_SYMLINKS = NO</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"># certain files from those directories.</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor"># exclude all test directories for example use the pattern */test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="comment"></span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="comment">EXCLUDE_PATTERNS = </span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment"></span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass,</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="comment"># AClass::ANamespace, ANamespace::*Test</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="comment"># exclude all test directories use the pattern */</span><span class="preprocessor">test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="comment"></span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="comment">EXCLUDE_SYMBOLS = </span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment"></span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"># that contain example code fragments that are included (see the \include</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment"></span></div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="comment">EXAMPLE_PATH = </span></div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"></span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment"># *.h) to filter out the source-files in the directories. If left blank all</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment"># files are included.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="comment"></span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment">EXAMPLE_PATTERNS = *</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment"></span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment"># searched for input files to be used with the \include or \dontinclude commands</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment"># irrespective of the value of the RECURSIVE tag.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="comment"></span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment">EXAMPLE_RECURSIVE = NO</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment"></span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="comment"># that contain images that are to be included in the documentation (see the</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="comment"># \image command).</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment"></span></div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="comment">IMAGE_PATH = </span></div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="comment"></span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment"># by executing (via popen()) the command:</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="comment"># <filter> <input-file></span></div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="comment"># where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="comment"># name of an input file. Doxygen will then use the output that the filter</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="comment"># program writes to standard output. If FILTER_PATTERNS is specified, this tag</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="comment"># will be ignored.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="comment"># Note that the filter must not add or remove lines; it is applied before the</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="comment"># code is scanned, but not when the output code is generated. If lines are added</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment"># or removed, the anchors will not be placed correctly.</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment"></span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">INPUT_FILTER = </span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="comment"></span></div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="comment"># basis. Doxygen will compare the file name with each pattern and apply the</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="comment"># filter if there is a match. The filters are a list of the form: pattern=filter</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="comment"># (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="comment"># filters are used. If the FILTER_PATTERNS tag is empty or if none of the</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="comment"># patterns match the file name, INPUT_FILTER is applied.</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="comment"></span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment">FILTER_PATTERNS = </span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment"></span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment"># INPUT_FILTER) will also be used to filter the input files that are used for</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="comment"># producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="comment"></span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="comment">FILTER_SOURCE_FILES = NO</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="comment"></span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) and</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment"># it is also possible to disable source filtering for a specific pattern using</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment"># *.ext= (so without naming a filter).</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment"># This tag requires that the tag FILTER_SOURCE_FILES is set to YES.</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment"></span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment">FILTER_SOURCE_PATTERNS = </span></div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment"></span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="comment"># If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="comment"># is part of the input, its contents will be placed on the main page</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="comment"># (index.html). This can be useful if you have a project on for instance GitHub</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment"># and want to reuse the introduction page also for the doxygen output.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="comment"></span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="comment">USE_MDFILE_AS_MAINPAGE = </span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="comment"></span></div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment"># Configuration options related to source browsing</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="comment"></span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will be</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="comment"># generated. Documented entities will be cross-referenced with these sources.</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment"># Note: To get rid of all source code in the generated output, make sure that</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="comment"># also VERBATIM_HEADERS is set to NO.</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="comment"></span></div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="comment">SOURCE_BROWSER = YES</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="comment"></span></div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body of functions,</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="comment"># classes and enums directly into the documentation.</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="comment"></span></div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment">INLINE_SOURCES = NO</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"></span></div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment"># special comment blocks from generated source code fragments. Normal C, C++ and</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="comment"># Fortran comments will always remain visible.</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment"></span></div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment">STRIP_CODE_COMMENTS = YES</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment"></span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES then for each documented</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="comment"># function all documented functions referencing it will be listed.</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="comment"></span></div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="comment">REFERENCED_BY_RELATION = YES</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment"></span></div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="comment"># If the REFERENCES_RELATION tag is set to YES then for each documented function</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment"># all documented entities called/used by that function will be listed.</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="comment"></span></div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="comment">REFERENCES_RELATION = YES</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="comment"></span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="comment"># to YES then the hyperlinks from functions in REFERENCES_RELATION and</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="comment"># REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="comment"># link to the documentation.</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="comment"></span></div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="comment">REFERENCES_LINK_SOURCE = YES</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="comment"></span></div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="comment"># If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="comment"># source code will show a tooltip with additional information such as prototype,</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="comment"># brief description and links to the definition and documentation. Since this</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="comment"># will make the HTML file larger and loading of large files a bit slower, you</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="comment"># can opt to disable this feature.</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="comment"></span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="comment">SOURCE_TOOLTIPS = YES</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="comment"></span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code will</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="comment"># point to the HTML generated by the htags(1) tool instead of doxygen built-in</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="comment"># source browser. The htags tool is part of GNU's global source tagging system</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment"># (see http://www.gnu.org/software/global/global.html). You will need version</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="comment"># 4.8.6 or higher.</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment"># To use it do the following:</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment"># - Install the latest version of global</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment"># - Enable SOURCE_BROWSER and USE_HTAGS in the config file</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment"># - Make sure the INPUT points to the root of the source tree</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="comment"># - Run doxygen as normal</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="comment"># Doxygen will invoke htags (and that will in turn invoke gtags), so these</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="comment"># tools must be available from the command line (i.e. in the search path).</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="comment"># The result: instead of the source browser generated by doxygen, the links to</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="comment"># source code will now point to the output of htags.</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment"></span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment">USE_HTAGS = NO</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment"></span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment"># If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment"># verbatim copy of the header file for each class for which an include is</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment"># specified. Set to NO to disable this.</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment"># See also: Section \class.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment"></span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">VERBATIM_HEADERS = YES</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment"></span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment"># Configuration options related to the alphabetical class index</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment"></span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment"># compounds will be generated. Enable this if the project contains a lot of</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment"># classes, structs, unions or interfaces.</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment"></span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">ALPHABETICAL_INDEX = NO</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment"></span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment"># The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment"># which the alphabetical index list will be split.</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment"># Minimum value: 1, maximum value: 20, default value: 5.</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment"></span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">COLS_IN_ALPHA_INDEX = 5</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment"></span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment"># In case all classes in a project start with a common prefix, all classes will</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment"># be put under the same header in the alphabetical index. The IGNORE_PREFIX tag</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment"># can be used to specify a prefix (or a list of prefixes) that should be ignored</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment"># while generating the index headers.</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment"></span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">IGNORE_PREFIX = </span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment"></span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment"># Configuration options related to the HTML output</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment"></span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment"># If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment"></span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">GENERATE_HTML = YES</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment"></span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment"># The default directory is: html.</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment"></span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">HTML_OUTPUT = html</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment"></span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for each</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment"># generated HTML page (for example: .htm, .php, .asp).</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment"># The default value is: .html.</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment"></span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">HTML_FILE_EXTENSION = .html</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"></span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment"># The HTML_HEADER tag can be used to specify a user-defined HTML header file for</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment"># each generated HTML page. If the tag is left blank doxygen will generate a</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment"># standard header.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment"># To get valid HTML the header file that includes any scripts and style sheets</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment"># that doxygen needs, which is dependent on the configuration options used (e.g.</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment"># the setting GENERATE_TREEVIEW). It is highly recommended to start with a</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"># default header using</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment"># doxygen -w html new_header.html new_footer.html new_stylesheet.css</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment"># YourConfigFile</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment"># and then modify the file new_header.html. See also section "Doxygen usage"</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment"># for information on how to generate the default header that doxygen normally</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment"># uses.</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment"># Note: The header is subject to change so you typically have to regenerate the</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment"># default header when upgrading to a newer version of doxygen. For a description</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment"># of the possible markers and block names see the documentation.</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment"></span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">HTML_HEADER = </span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment"></span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment"># The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment"># generated HTML page. If the tag is left blank doxygen will generate a standard</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment"># footer. See HTML_HEADER for more information on how to generate a default</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment"># footer and what special commands can be used inside the footer. See also</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment"># section "Doxygen usage" for information on how to generate the default footer</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment"># that doxygen normally uses.</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment"></span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">HTML_FOOTER = </span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment"></span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading style</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"># sheet that is used by each HTML page. It can be used to fine-tune the look of</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment"># the HTML output. If left blank doxygen will generate a default style sheet.</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the style</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment"># sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"># Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment"># it is more robust and this tag (HTML_STYLESHEET) will in the future become</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment"># obsolete.</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment"></span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">HTML_STYLESHEET = </span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment"></span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment"># The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment"># cascading style sheets that are included after the standard style sheets</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment"># created by doxygen. Using this option one can overrule certain style aspects.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment"># This is preferred over using HTML_STYLESHEET since it does not replace the</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment"># standard style sheet and is therefore more robust against future updates.</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment"># Doxygen will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment"># list). For an example see the documentation.</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment"></span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">HTML_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment"></span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"># other source files which should be copied to the HTML output directory. Note</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment"># that these files will be copied to the base HTML output directory. Use the</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment"># $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that the</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment"># files will be copied as-is; there are no commands or markers available.</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment"></span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">HTML_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment"></span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment"># will adjust the colors in the style sheet and background images according to</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment"># this color. Hue is specified as an angle on a colorwheel, see</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment"># http://en.wikipedia.org/wiki/Hue for more information. For instance the value</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment"># 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment"># purple, and 360 is red again.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment"># Minimum value: 0, maximum value: 359, default value: 220.</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment"></span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">HTML_COLORSTYLE_HUE = 220</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"></span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"># in the HTML output. For a value of 0 the output will use grayscales only. A</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment"># value of 255 will produce the most vivid colors.</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"># Minimum value: 0, maximum value: 255, default value: 100.</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"></span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">HTML_COLORSTYLE_SAT = 100</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment"></span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment"># luminance component of the colors in the HTML output. Values below 100</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment"># gradually make the output lighter, whereas values above 100 make the output</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment"># darker. The value divided by 100 is the actual gamma applied, so 80 represents</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"># a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"># change the gamma.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment"># Minimum value: 40, maximum value: 240, default value: 80.</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"></span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">HTML_COLORSTYLE_GAMMA = 80</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment"></span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"># page will contain the date and time when the page was generated. Setting this</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"># to YES can help to show when doxygen was last run and thus if the</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"># documentation is up to date.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"></span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">HTML_TIMESTAMP = NO</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"></span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"># documentation will contain sections that can be hidden and shown after the</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"># page has loaded.</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">HTML_DYNAMIC_SECTIONS = NO</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"></span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"># With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"># shown in the various tree structured indices initially; the user can expand</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"># and collapse entries dynamically later on. Doxygen will expand the tree to</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"># such a level that at most the specified number of entries are visible (unless</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"># a fully collapsed tree already exceeds this amount). So setting the number of</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"># entries 1 will produce a full collapsed tree by default. 0 is a special value</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"># representing an infinite number of entries and will result in a full expanded</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"># tree by default.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"># Minimum value: 0, maximum value: 9999, default value: 100.</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"></span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">HTML_INDEX_NUM_ENTRIES = 100</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"></span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"># generated that can be used as input for Apple's Xcode 3 integrated development</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"># environment (see: http://developer.apple.com/tools/xcode/), introduced with</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"># OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"># Makefile in the HTML output directory. Running make will produce the docset in</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment"># that directory and running make install will install the docset in</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"># startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"># for more information.</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"></span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">GENERATE_DOCSET = NO</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"></span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"># This tag determines the name of the docset feed. A documentation feed provides</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"># an umbrella under which multiple documentation sets from a single provider</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"># (such as a company or product suite) can be grouped.</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"># The default value is: Doxygen generated docs.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"></span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">DOCSET_FEEDNAME = "Doxygen generated docs"</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"></span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"># This tag specifies a string that should uniquely identify the documentation</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"># set bundle. This should be a reverse domain-name style string, e.g.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"># com.mycompany.MyDocSet. Doxygen will append .docset to the name.</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"></span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">DOCSET_BUNDLE_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"></span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"># The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"># the documentation publisher. This should be a reverse domain-name style</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"># The default value is: org.doxygen.Publisher.</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"></span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">DOCSET_PUBLISHER_ID = org.doxygen.Publisher</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment"></span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment"># The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.</span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment"># The default value is: Publisher.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment"></span></div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">DOCSET_PUBLISHER_NAME = Publisher</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"></span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"># additional HTML index files: index.hhp, index.hhc, and index.hhk. The</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"># index.hhp is a project file that can be read by Microsoft's HTML Help Workshop</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"># (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"># Windows.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"># The HTML Help Workshop contains a compiler that can convert all HTML output</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"># generated by doxygen into a single compiled HTML file (.chm). Compiled HTML</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"># files are now used as the Windows 98 help format, and will replace the old</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"># Windows help format (.hlp) on all Windows platforms in the future. Compressed</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"># HTML files also contain an index, a table of contents, and you can search for</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"># words in the documentation. The HTML workshop also contains a viewer for</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"># compressed HTML files.</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"></span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment">GENERATE_HTMLHELP = NO</span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment"># The CHM_FILE tag can be used to specify the file name of the resulting .chm</span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"># file. You can add a path in front of the file if the result should not be</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"># written to the html output directory.</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"></span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">CHM_FILE = </span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"></span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"># The HHC_LOCATION tag can be used to specify the location (absolute path</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"># including file name) of the HTML help compiler (hhc.exe). If non-empty,</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"># doxygen will try to run the HTML help compiler on the generated index.hhp.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"># The file has to be specified with full path.</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"></span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">HHC_LOCATION = </span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment"></span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"># The GENERATE_CHI flag controls if a separate .chi index file is generated</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"># (YES) or that it should be included in the master .chm file (NO).</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"></span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">GENERATE_CHI = NO</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment"></span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment"># The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment"># and project file content.</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment"></span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">CHM_INDEX_ENCODING = </span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment"></span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment"># The BINARY_TOC flag controls whether a binary table of contents is generated</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment"># (YES) or a normal table of contents (NO) in the .chm file. Furthermore it</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment"># enables the Previous and Next buttons.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment"></span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">BINARY_TOC = NO</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment"></span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members to</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment"># the table of contents of the HTML help documentation and to the tree view.</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment"></span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">TOC_EXPAND = NO</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment"></span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment"># can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"># (.qch) of the generated HTML documentation.</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"></span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">GENERATE_QHP = NO</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment"></span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment"># the file name of the resulting .qch file. The path specified is relative to</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment"># the HTML output folder.</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment"></span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">QCH_FILE = </span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment"></span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment"># Project output. For more information please see Qt Help Project / Namespace</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment"># (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment"></span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">QHP_NAMESPACE = org.doxygen.Project</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment"></span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment"># Help Project output. For more information please see Qt Help Project / Virtual</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment"># Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment"># folders).</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment"># The default value is: doc.</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"></span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">QHP_VIRTUAL_FOLDER = doc</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment"></span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment"># If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment"># filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment"># filters).</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment"></span></div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">QHP_CUST_FILTER_NAME = </span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment"># The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment"># custom filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment"># filters).</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment"></span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">QHP_CUST_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"></span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this</span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment"># project's filter section matches. Qt Help Project / Filter Attributes (see:</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment"># http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment"></span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">QHP_SECT_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment"></span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment"># The QHG_LOCATION tag can be used to specify the location of Qt's</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment"># qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment"># generated .qhp file.</span></div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"></span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">QHG_LOCATION = </span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"></span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment"># generated, together with the HTML files, they form an Eclipse help plugin. To</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment"># install this plugin and make it available under the help contents menu in</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment"># Eclipse, the contents of the directory containing the HTML and XML files needs</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment"># to be copied into the plugins directory of eclipse. The name of the directory</span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"># within the plugins directory should be the same as the ECLIPSE_DOC_ID value.</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment"># After copying Eclipse needs to be restarted before the help appears.</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment"></span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">GENERATE_ECLIPSEHELP = NO</span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment"></span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment"># A unique identifier for the Eclipse help plugin. When installing the plugin</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"># the directory name containing the HTML and XML files should also have this</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment"># name. Each documentation set should have its own identifier.</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment"># This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment"></span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">ECLIPSE_DOC_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment"></span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment"># If you want full control over the layout of the generated HTML pages it might</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment"># be necessary to disable the index and replace it with your own. The</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment"># DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment"># of each HTML page. A value of NO enables the index and the value YES disables</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="comment"># it. Since the tabs in the index contain the same information as the navigation</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="comment"># tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment"></span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">DISABLE_INDEX = NO</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment"></span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <span class="comment"># structure should be generated to display hierarchical information. If the tag</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment"># value is set to YES, a side panel will be generated containing a tree-like</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment"># index structure (just like the one that is generated for HTML Help). For this</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment"># to work a browser that supports JavaScript, DHTML, CSS and frames is required</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment"># (i.e. any modern browser). Windows users are probably better off using the</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment"># HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment"># further fine-tune the look of the index. As an example, the default style</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"># sheet generated by doxygen has an example that shows how to put an image at</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment"># the root of the tree instead of the PROJECT_NAME. Since the tree basically has</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment"># the same information as the tab index, you could consider setting</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment"># DISABLE_INDEX to YES when enabling this option.</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"></span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">GENERATE_TREEVIEW = NO</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment"></span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment"># doxygen will group on one line in the generated HTML documentation.</span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment"># Note that a value of 0 will completely suppress the enum values from appearing</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment"># in the overview section.</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"># Minimum value: 0, maximum value: 20, default value: 4.</span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment"></span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">ENUM_VALUES_PER_LINE = 4</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment"></span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment"># to set the initial width (in pixels) of the frame in which the tree is shown.</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment"># Minimum value: 0, maximum value: 1500, default value: 250.</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment"></span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment">TREEVIEW_WIDTH = 250</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment"></span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"># If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"># external symbols imported via tag files in a separate window.</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment"></span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">EXT_LINKS_IN_WINDOW = NO</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment"></span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment"># Use this tag to change the font size of LaTeX formulas included as images in</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment"># the HTML documentation. When you change the font size after a successful</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment"># doxygen run you need to manually remove any form_*.png images from the HTML</span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment"># output directory to force them to be regenerated.</span></div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment"># Minimum value: 8, maximum value: 50, default value: 10.</span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment"></span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">FORMULA_FONTSIZE = 10</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment"></span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are not</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment"># supported properly for IE 6.0, but are supported on all modern browsers.</span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="comment"># Note that when changing this option you need to delete any form_*.png files in</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment"># the HTML output directory before the changes have effect.</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment"></span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">FORMULA_TRANSPARENT = YES</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment"></span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment"># http://www.mathjax.org) which uses client side Javascript for the rendering</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment"># instead of using pre-rendered bitmaps. Use this if you do not have LaTeX</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment"># installed or if you want to formulas look prettier in the HTML output. When</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment"># enabled you may also need to install MathJax separately and configure the path</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment"># to it using the MATHJAX_RELPATH option.</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment"></span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">USE_MATHJAX = NO</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="comment"></span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment"># When MathJax is enabled you can set the default output format to be used for</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment"># the MathJax output. See the MathJax site (see:</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="comment"># http://docs.mathjax.org/en/latest/output.html) for more details.</span></div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <span class="comment"># Possible values are: HTML-CSS (which is slower, but has the best</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment"># compatibility), NativeMML (i.e. MathML) and SVG.</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="comment"># The default value is: HTML-CSS.</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment"></span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">MATHJAX_FORMAT = HTML-CSS</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment"></span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment"># When MathJax is enabled you need to specify the location relative to the HTML</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="comment"># output directory using the MATHJAX_RELPATH option. The destination directory</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment"># should contain the MathJax.js script. For instance, if the mathjax directory</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="comment"># is located at the same level as the HTML output directory, then</span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment"># Content Delivery Network so you can quickly see the result without installing</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="comment"># MathJax. However, it is strongly recommended to install a local copy of</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment"># MathJax from http://www.mathjax.org before deployment.</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment"># The default value is: http://cdn.mathjax.org/mathjax/latest.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment"></span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="comment">MATHJAX_RELPATH = http://www.mathjax.org/mathjax</span></div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <span class="comment"></span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="comment"># extension names that should be enabled during MathJax rendering. For example</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment"># MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="comment"></span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">MATHJAX_EXTENSIONS = </span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment"></span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment"># The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="comment"># of code that will be used on startup of the MathJax code. See the MathJax site</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> <span class="comment"># (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="comment"># example see the documentation.</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> <span class="comment"></span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <span class="comment">MATHJAX_CODEFILE = </span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="comment"></span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box for</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="comment"># the HTML output. The underlying search engine uses javascript and DHTML and</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment"># should work on any modern browser. Note that when using HTML help</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="comment"># (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)</span></div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="comment"># there is already a search function so this one should typically be disabled.</span></div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> <span class="comment"># For large projects the javascript based search engine can be slow, then</span></div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> <span class="comment"># enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="comment"># search using the keyboard; to jump to the search box use <access key> + S</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> <span class="comment"># (what the <access key> is depends on the OS and browser, but it is typically</span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="comment"># <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="comment"># key> to jump into the search results window, the results can be navigated</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="comment"># using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> <span class="comment"># the search. The filter options can be selected when the cursor is inside the</span></div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> <span class="comment"># search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys></span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="comment"># to select a filter and <Enter> or <escape> to activate or cancel the filter</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="comment"># option.</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="comment"></span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">SEARCHENGINE = NO</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="comment"></span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="comment"># implemented using a web server instead of a web client using Javascript. There</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment"># are two flavors of web server based searching depending on the EXTERNAL_SEARCH</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment"># setting. When disabled, doxygen will generate a PHP script for searching and</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment"># an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment"># and searching needs to be provided by external tools. See the section</span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment"># "External Indexing and Searching" for details.</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment"></span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">SERVER_BASED_SEARCH = NO</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment"></span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment"># When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment"># script for searching. Instead the search results are written to an XML file</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="comment"># which needs to be processed by an external indexer. Doxygen will invoke an</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment"># external search engine pointed to by the SEARCHENGINE_URL option to obtain the</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment"># search results.</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment"># Xapian (see: http://xapian.org/).</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="comment"># See the section "External Indexing and Searching" for details.</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="comment"></span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <span class="comment">EXTERNAL_SEARCH = NO</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <span class="comment"></span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="comment"># The SEARCHENGINE_URL should point to a search engine hosted by a web server</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="comment"># which will return the search results when EXTERNAL_SEARCH is enabled.</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment"># Xapian (see: http://xapian.org/). See the section "External Indexing and</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment"># Searching" for details.</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="comment"></span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="comment">SEARCHENGINE_URL = </span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="comment"></span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="comment"># search data is written to a file for indexing by an external tool. With the</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> <span class="comment"># SEARCHDATA_FILE tag the name of this file can be specified.</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="comment"># The default file is: searchdata.xml.</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> <span class="comment"></span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="comment">SEARCHDATA_FILE = searchdata.xml</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="comment"></span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> <span class="comment"># EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is</span></div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="comment"># useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="comment"># projects and redirect the results back to the right project.</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> <span class="comment"></span></div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> <span class="comment">EXTERNAL_SEARCH_ID = </span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="comment"></span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="comment"># The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> <span class="comment"># projects other than the one defined by this configuration file, but that are</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="comment"># all added to the same external search index. Each project needs to have a</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="comment"># unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of</span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="comment"># to a relative location where the documentation can be found. The format is:</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> <span class="comment"># EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...</span></div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="comment"></span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="comment">EXTRA_SEARCH_MAPPINGS = </span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> <span class="comment"></span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> <span class="comment"># Configuration options related to the LaTeX output</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment"># If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment"></span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">GENERATE_LATEX = NO</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="comment"></span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> <span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="comment"># The default directory is: latex.</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="comment"></span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="comment">LATEX_OUTPUT = latex</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> <span class="comment"></span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> <span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment"># invoked.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> <span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for generating</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="comment"># bitmaps for formulas in the HTML output, but not in the Makefile that is</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="comment"># written to the output directory.</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> <span class="comment"># The default file is: latex.</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> <span class="comment"></span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">LATEX_CMD_NAME = latex</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="comment"></span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <span class="comment"># index for LaTeX.</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="comment"># The default file is: makeindex.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment"></span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> <span class="comment">MAKEINDEX_CMD_NAME = makeindex</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> <span class="comment"></span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="comment"># If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> <span class="comment"></span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="comment">COMPACT_LATEX = NO</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> <span class="comment"></span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used by the</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="comment"># printer.</span></div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="comment"># Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x</span></div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> <span class="comment"># 14 inches) and executive (7.25 x 10.5 inches).</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="comment"># The default value is: a4.</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> <span class="comment"></span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> <span class="comment">PAPER_TYPE = a4wide</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="comment"></span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="comment"># The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names</span></div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> <span class="comment"># that should be included in the LaTeX output. The package can be specified just</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="comment"># by its name or with the correct syntax as to be used with the LaTeX</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="comment"># \usepackage command. To get the times font for instance you can specify :</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <span class="comment"># EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="comment"># To use the option intlimits with the amsmath package you can specify:</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="comment"># EXTRA_PACKAGES=[intlimits]{amsmath}</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment"># If left blank no extra packages will be included.</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment"></span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">EXTRA_PACKAGES = </span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="comment"></span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for the</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> <span class="comment"># generated LaTeX document. The header should contain everything until the first</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard header. See</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment"># section "Doxygen usage" for information on how to let doxygen write the</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment"># default header to a separate file.</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment"># Note: Only use a user-defined header if you know what you are doing! The</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="comment"># following commands have a special meaning inside the header: $title,</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment"># $datetime, $date, $doxygenversion, $projectname, $projectnumber,</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment"># $projectbrief, $projectlogo. Doxygen will replace $title with the empty</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment"># string, for the replacement values of the other commands the user is referred</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment"># to HTML_HEADER.</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment"></span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="comment">LATEX_HEADER = </span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="comment"></span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the</span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> <span class="comment"># generated LaTeX document. The footer should contain everything after the last</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard footer. See</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> <span class="comment"># LATEX_HEADER for more information on how to generate a default footer and what</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment"># special commands can be used inside the footer.</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> <span class="comment"># Note: Only use a user-defined footer if you know what you are doing!</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="comment"></span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="comment">LATEX_FOOTER = </span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> <span class="comment"></span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> <span class="comment"># The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="comment"># LaTeX style sheets that are included after the standard style sheets created</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> <span class="comment"># by doxygen. Using this option one can overrule certain style aspects. Doxygen</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> <span class="comment"># will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="comment"># list).</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="comment"></span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="comment">LATEX_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="comment"></span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="comment"># The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> <span class="comment"># other source files which should be copied to the LATEX_OUTPUT output</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="comment"># directory. Note that the files will be copied as-is; there are no commands or</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment"># markers available.</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment"></span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="comment">LATEX_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment"></span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <span class="comment"># prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="comment"># contain links (just like the HTML output) instead of page references. This</span></div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="comment"># makes the output suitable for online browsing using a PDF viewer.</span></div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="comment"></span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="comment">PDF_HYPERLINKS = NO</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="comment"></span></div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="comment"># If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate</span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="comment"># the PDF file directly from the LaTeX files. Set this option to YES, to get a</span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="comment"># higher quality PDF documentation.</span></div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="comment"></span></div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> <span class="comment">USE_PDFLATEX = YES</span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment"></span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep running</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="comment"># if errors occur, instead of asking the user for help. This option is also used</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <span class="comment"># when generating formulas in HTML.</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="comment"></span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="comment">LATEX_BATCHMODE = NO</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> <span class="comment"></span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment"># If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment"># index chapters (such as File Index, Compound Index, etc.) in the output.</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="comment"></span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="comment">LATEX_HIDE_INDICES = NO</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="comment"></span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="comment"># If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="comment"># code with syntax highlighting in the LaTeX output.</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <span class="comment"></span></div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> <span class="comment">LATEX_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="comment"></span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="comment"># bibliography, e.g. plainnat, or ieeetr. See</span></div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> <span class="comment"># http://en.wikipedia.org/wiki/BibTeX and \cite for more info.</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="comment"># The default value is: plain.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="comment"></span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="comment">LATEX_BIB_STYLE = plain</span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="comment"></span></div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="comment"># Configuration options related to the RTF output</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment"></span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment"># If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment"># RTF output is optimized for Word 97 and may not look too pretty with other RTF</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="comment"># readers/editors.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment"></span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment">GENERATE_RTF = NO</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="comment"></span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="comment"># The default directory is: rtf.</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> <span class="comment"></span></div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="comment">RTF_OUTPUT = glm.rtf</span></div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="comment"></span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="comment"># If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF</span></div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="comment"></span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">COMPACT_RTF = NO</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="comment"></span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will</span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="comment"># contain hyperlink fields. The RTF file will contain links (just like the HTML</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment"># output) instead of page references. This makes the output suitable for online</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment"># browsing using Word or some other Word compatible readers that support those</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"># fields.</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment"># Note: WordPad (write) and others do not support links.</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment"></span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">RTF_HYPERLINKS = YES</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="comment"></span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="comment"># Load stylesheet definitions from file. Syntax is similar to doxygen's config</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment"># file, i.e. a series of assignments. You only have to provide replacements,</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment"># missing definitions are set to their default value.</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the</span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="comment"># default style sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> <span class="comment"></span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <span class="comment">RTF_STYLESHEET_FILE = </span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="comment"></span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="comment"># Set optional variables used in the generation of an RTF document. Syntax is</span></div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <span class="comment"># similar to doxygen's config file. A template extensions file can be generated</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> <span class="comment"># using doxygen -e rtf extensionFile.</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> <span class="comment"></span></div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <span class="comment">RTF_EXTENSIONS_FILE = </span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="comment"></span></div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="comment"># If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <span class="comment"># with syntax highlighting in the RTF output.</span></div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> <span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> <span class="comment"></span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="comment">RTF_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="comment"></span></div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> <span class="comment"># Configuration options related to the man page output</span></div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <span class="comment"></span></div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="comment"># If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <span class="comment"># classes and files.</span></div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment"></span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">GENERATE_MAN = NO</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment"></span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. If a</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> <span class="comment"># it. A directory man3 will be created inside the directory specified by</span></div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> <span class="comment"># MAN_OUTPUT.</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="comment"># The default directory is: man.</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="comment"></span></div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> <span class="comment">MAN_OUTPUT = man</span></div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="comment"></span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <span class="comment"># The MAN_EXTENSION tag determines the extension that is added to the generated</span></div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> <span class="comment"># man pages. In case the manual section does not start with a number, the number</span></div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="comment"># 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="comment"># optional.</span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="comment"># The default value is: .3.</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> <span class="comment"></span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">MAN_EXTENSION = .3</span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="comment"></span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="comment"># The MAN_SUBDIR tag determines the name of the directory created within</span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> <span class="comment"># MAN_OUTPUT in which the man pages are placed. If defaults to man followed by</span></div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> <span class="comment"># MAN_EXTENSION with the initial . removed.</span></div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> <span class="comment"></span></div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> <span class="comment">MAN_SUBDIR = </span></div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="comment"></span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment"># If the MAN_LINKS tag is set to YES and doxygen generates man output, then it</span></div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> <span class="comment"># will generate one additional man file for each entity documented in the real</span></div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> <span class="comment"># man page(s). These additional files only source the real man page, but without</span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <span class="comment"># them the man command would be unable to find the correct page.</span></div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="comment"></span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> <span class="comment">MAN_LINKS = NO</span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="comment"></span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> <span class="comment"># Configuration options related to the XML output</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="comment"></span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="comment"># If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that</span></div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> <span class="comment"># captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="comment"></span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> <span class="comment">GENERATE_XML = NO</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <span class="comment"></span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. If a</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> <span class="comment"># The default directory is: xml.</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="comment"></span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="comment">XML_OUTPUT = xml</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> <span class="comment"></span></div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> <span class="comment"># If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program</span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="comment"># listings (including syntax highlighting and cross-referencing information) to</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> <span class="comment"># the XML output. Note that enabling this will significantly increase the size</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="comment"># of the XML output.</span></div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="comment"></span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">XML_PROGRAMLISTING = YES</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> <span class="comment"></span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="comment"># Configuration options related to the DOCBOOK output</span></div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="comment"></span></div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="comment"># If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="comment"># that can be used to generate PDF.</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> <span class="comment"></span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="comment">GENERATE_DOCBOOK = NO</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="comment"></span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> <span class="comment"># The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.</span></div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be put in</span></div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> <span class="comment"># front of it.</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="comment"># The default directory is: docbook.</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> <span class="comment"></span></div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="comment">DOCBOOK_OUTPUT = docbook</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="comment"></span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> <span class="comment"># If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the</span></div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> <span class="comment"># program listings (including syntax highlighting and cross-referencing</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> <span class="comment"># information) to the DOCBOOK output. Note that enabling this will significantly</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="comment"># increase the size of the DOCBOOK output.</span></div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> <span class="comment"></span></div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="comment">DOCBOOK_PROGRAMLISTING = NO</span></div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="comment"></span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> <span class="comment"># Configuration options for the AutoGen Definitions output</span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="comment"></span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> <span class="comment"># AutoGen Definitions (see http://autogen.sf.net) file that captures the</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="comment"># structure of the code including all documentation. Note that this feature is</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="comment"># still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> <span class="comment"></span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="comment">GENERATE_AUTOGEN_DEF = NO</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="comment"></span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="comment"># Configuration options related to the Perl module output</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="comment"></span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> <span class="comment"># If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module</span></div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> <span class="comment"># file that captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <span class="comment"># Note that this feature is still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="comment"></span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">GENERATE_PERLMOD = NO</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="comment"></span></div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment"># If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> <span class="comment"># Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI</span></div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="comment"># output from the Perl module output.</span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="comment"></span></div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="comment">PERLMOD_LATEX = NO</span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="comment"></span></div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <span class="comment"># If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely</span></div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="comment"># formatted so it can be parsed by a human reader. This is useful if you want to</span></div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment"># understand what is going on. On the other hand, if this tag is set to NO, the</span></div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment"># size of the Perl module output will be much smaller and Perl will parse it</span></div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment"># just the same.</span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment"></span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="comment">PERLMOD_PRETTY = YES</span></div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="comment"></span></div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="comment"># The names of the make variables in the generated doxyrules.make file are</span></div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="comment"># prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful</span></div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <span class="comment"># so different doxyrules.make files included by the same Makefile don't</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> <span class="comment"># overwrite each other's variables.</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="comment"></span></div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">PERLMOD_MAKEVAR_PREFIX = </span></div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment"></span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment"># Configuration options related to the preprocessor</span></div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment"></span></div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment"># C-preprocessor directives found in the sources and include files.</span></div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment"></span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">ENABLE_PREPROCESSING = YES</span></div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="comment"></span></div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="comment"># If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment"># in the source code. If set to NO, only conditional compilation will be</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="comment"># performed. Macro expansion can be done in a controlled way by setting</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="comment"># EXPAND_ONLY_PREDEF to YES.</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> <span class="comment"></span></div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="comment">MACRO_EXPANSION = NO</span></div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="comment"></span></div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> <span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then</span></div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> <span class="comment"># the macro expansion is limited to the macros specified with the PREDEFINED and</span></div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="comment"># EXPAND_AS_DEFINED tags.</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> <span class="comment"></span></div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="comment">EXPAND_ONLY_PREDEF = NO</span></div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> <span class="comment"></span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="comment"># If the SEARCH_INCLUDES tag is set to YES, the include files in the</span></div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> <span class="comment"># INCLUDE_PATH will be searched if a #include is found.</span></div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="comment"></span></div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <span class="comment">SEARCH_INCLUDES = YES</span></div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="comment"></span></div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> <span class="comment"># contain include files that are not input files but should be processed by the</span></div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment"># preprocessor.</span></div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment"># This tag requires that the tag SEARCH_INCLUDES is set to YES.</span></div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment"></span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment">INCLUDE_PATH = </span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment"></span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the</span></div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will be</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="comment"># used.</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment"></span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="comment">INCLUDE_FILE_PATTERNS = </span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="comment"></span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> <span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that are</span></div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="comment"># defined before the preprocessor is started (similar to the -D option of e.g.</span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment"># gcc). The argument of the tag is a list of macros of the form: name or</span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment"># name=definition (no spaces). If the definition and the "=" are omitted, "=1"</span></div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> <span class="comment"># is assumed. To prevent a macro definition from being undefined via #undef or</span></div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="comment"># recursively expanded use the := operator instead of the = operator.</span></div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> <span class="comment"></span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> <span class="comment">PREDEFINED = </span></div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="comment"></span></div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this</span></div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> <span class="comment"># tag can be used to specify a list of macro names that should be expanded. The</span></div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> <span class="comment"># macro definition that is found in the sources will be used. Use the PREDEFINED</span></div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="comment"># tag if you want to use a different macro definition that overrules the</span></div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="comment"># definition found in the source code.</span></div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> <span class="comment"></span></div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="comment">EXPAND_AS_DEFINED = </span></div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> <span class="comment"></span></div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> <span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will</span></div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <span class="comment"># remove all references to function-like macros that are alone on a line, have</span></div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="comment"># an all uppercase name, and do not end with a semicolon. Such function macros</span></div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="comment"># are typically used for boiler-plate code, and will confuse the parser if not</span></div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="comment"># removed.</span></div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment"></span></div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="comment">SKIP_FUNCTION_MACROS = YES</span></div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> <span class="comment"></span></div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="comment"># Configuration options related to external references</span></div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> <span class="comment"></span></div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="comment"># The TAGFILES tag can be used to specify one or more tag files. For each tag</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="comment"># file the location of the external documentation should be added. The format of</span></div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> <span class="comment"># a tag file without this location is as follows:</span></div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> <span class="comment"># TAGFILES = file1 file2 ...</span></div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="comment"># Adding location for the tag files is done as follows:</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="comment"># TAGFILES = file1=loc1 "file2 = loc2" ...</span></div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <span class="comment"># where loc1 and loc2 can be relative or absolute paths or URLs. See the</span></div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> <span class="comment"># section "Linking to external documentation" for more information about the use</span></div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="comment"># of tag files.</span></div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="comment"># Note: Each tag file must have a unique name (where the name does NOT include</span></div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> <span class="comment"># the path). If a tag file is not located in the directory in which doxygen is</span></div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> <span class="comment"># run, you must also specify the path to the tagfile here.</span></div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="comment"></span></div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> <span class="comment">TAGFILES = </span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> <span class="comment"></span></div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> <span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create a</span></div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="comment"># tag file that is based on the input files it reads. See section "Linking to</span></div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="comment"># external documentation" for more information about the usage of tag files.</span></div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="comment"></span></div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="comment">GENERATE_TAGFILE = </span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="comment"></span></div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="comment"># If the ALLEXTERNALS tag is set to YES, all external class will be listed in</span></div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="comment"># the class index. If set to NO, only the inherited external classes will be</span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment"># listed.</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"></span></div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment">ALLEXTERNALS = NO</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> <span class="comment"></span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> <span class="comment"># If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed</span></div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="comment"># in the modules index. If set to NO, only the current project's groups will be</span></div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment"># listed.</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="comment"></span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">EXTERNAL_GROUPS = YES</span></div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <span class="comment"></span></div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> <span class="comment"># If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in</span></div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="comment"># the related pages index. If set to NO, only the current project's pages will</span></div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="comment"># be listed.</span></div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <span class="comment"></span></div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> <span class="comment">EXTERNAL_PAGES = YES</span></div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="comment"></span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> <span class="comment"># The PERL_PATH should be the absolute path and name of the perl script</span></div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> <span class="comment"># interpreter (i.e. the result of 'which perl').</span></div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> <span class="comment"># The default file (with absolute path) is: /usr/bin/perl.</span></div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="comment"></span></div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> <span class="comment">PERL_PATH = /usr/bin/perl</span></div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> <span class="comment"></span></div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="comment"># Configuration options related to the dot tool</span></div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="comment"></span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <span class="comment"># If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="comment"># (in HTML and LaTeX) for classes with base or super classes. Setting the tag to</span></div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="comment"># NO turns the diagrams off. Note that this option also works with HAVE_DOT</span></div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> <span class="comment"># disabled, but it is recommended to install and use dot, since it yields more</span></div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> <span class="comment"># powerful graphs.</span></div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="comment"></span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> <span class="comment">CLASS_DIAGRAMS = YES</span></div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> <span class="comment"></span></div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <span class="comment"># You can define message sequence charts within doxygen comments using the \msc</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="comment"># command. Doxygen will then run the mscgen tool (see:</span></div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> <span class="comment"># http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the</span></div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where</span></div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the</span></div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="comment"># default search path.</span></div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> <span class="comment"></span></div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <span class="comment">MSCGEN_PATH = </span></div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="comment"></span></div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="comment"># You can include diagrams made with dia in doxygen documentation. Doxygen will</span></div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <span class="comment"># then run dia to produce the diagram and insert it in the documentation. The</span></div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> <span class="comment"># DIA_PATH tag allows you to specify the directory where the dia binary resides.</span></div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> <span class="comment"># If left empty dia is assumed to be found in the default search path.</span></div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> <span class="comment"></span></div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> <span class="comment">DIA_PATH = </span></div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> <span class="comment"></span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> <span class="comment"># If set to YES the inheritance and collaboration graphs will hide inheritance</span></div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> <span class="comment"># and usage relations if the target is undocumented or is not a class.</span></div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> <span class="comment"></span></div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> <span class="comment">HIDE_UNDOC_RELATIONS = YES</span></div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="comment"></span></div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> <span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is</span></div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> <span class="comment"># available from the path. This tool is part of Graphviz (see:</span></div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> <span class="comment"># http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent</span></div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> <span class="comment"># Bell Labs. The other options in this section have no effect if this option is</span></div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> <span class="comment"># set to NO</span></div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> <span class="comment"></span></div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="comment">HAVE_DOT = NO</span></div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> <span class="comment"></span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> <span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed</span></div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> <span class="comment"># to run in parallel. When set to 0 doxygen will base this on the number of</span></div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="comment"># processors available in the system. You can set it explicitly to a value</span></div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> <span class="comment"># larger than 0 to get control over the balance between CPU load and processing</span></div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> <span class="comment"># speed.</span></div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> <span class="comment"># Minimum value: 0, maximum value: 32, default value: 0.</span></div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> <span class="comment"></span></div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> <span class="comment">DOT_NUM_THREADS = 0</span></div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="comment"></span></div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="comment"># When you want a differently looking font in the dot files that doxygen</span></div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> <span class="comment"># generates you can specify the font name using DOT_FONTNAME. You need to make</span></div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="comment"># sure dot is able to find the font, which can be done by putting it in a</span></div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="comment"># standard location or by setting the DOTFONTPATH environment variable or by</span></div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="comment"># setting DOT_FONTPATH to the directory containing the font.</span></div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment"># The default value is: Helvetica.</span></div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="comment"></span></div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="comment">DOT_FONTNAME = Helvetica</span></div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="comment"></span></div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="comment"># The DOT_FONTSIZE tag can be used to set the size (in points) of the font of</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> <span class="comment"># dot graphs.</span></div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="comment"># Minimum value: 4, maximum value: 24, default value: 10.</span></div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> <span class="comment"></span></div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> <span class="comment">DOT_FONTSIZE = 10</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="comment"></span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> <span class="comment"># By default doxygen will tell dot to use the default font as specified with</span></div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> <span class="comment"># DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set</span></div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> <span class="comment"># the path where dot can find it using this tag.</span></div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="comment"></span></div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> <span class="comment">DOT_FONTPATH = </span></div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> <span class="comment"></span></div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> <span class="comment"># If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> <span class="comment"># each documented class showing the direct and indirect inheritance relations.</span></div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> <span class="comment"># Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.</span></div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="comment"></span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="comment">CLASS_GRAPH = YES</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> <span class="comment"></span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> <span class="comment"># If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="comment"># graph for each documented class showing the direct and indirect implementation</span></div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> <span class="comment"># dependencies (inheritance, containment, and class references variables) of the</span></div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> <span class="comment"># class with other documented classes.</span></div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> <span class="comment"></span></div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span> <span class="comment">COLLABORATION_GRAPH = YES</span></div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> <span class="comment"></span></div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> <span class="comment"># If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> <span class="comment"># groups, showing the direct groups dependencies.</span></div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <span class="comment"></span></div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> <span class="comment">GROUP_GRAPHS = YES</span></div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span> <span class="comment"></span></div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="comment"># If the UML_LOOK tag is set to YES, doxygen will generate inheritance and</span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment"># collaboration diagrams in a style similar to the OMG's Unified Modeling</span></div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> <span class="comment"># Language.</span></div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> <span class="comment"></span></div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> <span class="comment">UML_LOOK = NO</span></div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> <span class="comment"></span></div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <span class="comment"># If the UML_LOOK tag is enabled, the fields and methods are shown inside the</span></div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> <span class="comment"># class node. If there are many fields or methods and many nodes the graph may</span></div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> <span class="comment"># become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the</span></div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> <span class="comment"># number of items for each type to make the size more manageable. Set this to 0</span></div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span> <span class="comment"># for no limit. Note that the threshold may be exceeded by 50% before the limit</span></div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> <span class="comment"># is enforced. So when you set the threshold to 10, up to 15 fields may appear,</span></div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> <span class="comment"># but if the number exceeds 15, the total amount of fields shown is limited to</span></div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span> <span class="comment"># 10.</span></div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> <span class="comment"># Minimum value: 0, maximum value: 100, default value: 10.</span></div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="comment"></span></div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="comment">UML_LIMIT_NUM_FIELDS = 10</span></div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> <span class="comment"></span></div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> <span class="comment"># If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and</span></div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> <span class="comment"># collaboration graphs will show the relations between templates and their</span></div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> <span class="comment"># instances.</span></div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> <span class="comment"></span></div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span> <span class="comment">TEMPLATE_RELATIONS = NO</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> <span class="comment"></span></div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> <span class="comment"># If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to</span></div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> <span class="comment"># YES then doxygen will generate a graph for each documented file showing the</span></div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span> <span class="comment"># direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> <span class="comment"># files.</span></div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> <span class="comment"></span></div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> <span class="comment">INCLUDE_GRAPH = YES</span></div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> <span class="comment"></span></div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> <span class="comment"># If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are</span></div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="comment"># set to YES then doxygen will generate a graph for each documented file showing</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> <span class="comment"># the direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="comment"># files.</span></div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> <span class="comment"></span></div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> <span class="comment">INCLUDED_BY_GRAPH = YES</span></div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> <span class="comment"></span></div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="comment"># If the CALL_GRAPH tag is set to YES then doxygen will generate a call</span></div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> <span class="comment"># So in most cases it will be better to enable call graphs for selected</span></div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> <span class="comment"># functions only using the \callgraph command. Disabling a call graph can be</span></div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="comment"># accomplished by means of the command \hidecallgraph.</span></div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> <span class="comment"></span></div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <span class="comment">CALL_GRAPH = YES</span></div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> <span class="comment"></span></div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="comment"># If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller</span></div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="comment"># So in most cases it will be better to enable caller graphs for selected</span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> <span class="comment"># functions only using the \callergraph command. Disabling a caller graph can be</span></div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> <span class="comment"># accomplished by means of the command \hidecallergraph.</span></div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment"></span></div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="comment">CALLER_GRAPH = YES</span></div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="comment"></span></div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> <span class="comment"># If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical</span></div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="comment"># hierarchy of all classes instead of a textual one.</span></div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> <span class="comment"></span></div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> <span class="comment">GRAPHICAL_HIERARCHY = YES</span></div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> <span class="comment"></span></div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="comment"># If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the</span></div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="comment"># dependencies a directory has on other directories in a graphical way. The</span></div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="comment"># dependency relations are determined by the #include relations between the</span></div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> <span class="comment"># files in the directories.</span></div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="comment"></span></div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> <span class="comment">DIRECTORY_GRAPH = YES</span></div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="comment"></span></div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images</span></div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="comment"># generated by dot. For an explanation of the image formats see the section</span></div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="comment"># output formats in the documentation of the dot tool (Graphviz (see:</span></div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="comment"># http://www.graphviz.org/)).</span></div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="comment"># Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order</span></div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="comment"># to make the SVG files visible in IE 9+ (other browsers do not have this</span></div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="comment"># requirement).</span></div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="comment"># Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,</span></div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="comment"># png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and</span></div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="comment"># png:gdiplus:gdiplus.</span></div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> <span class="comment"># The default value is: png.</span></div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="comment"></span></div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="comment">DOT_IMAGE_FORMAT = png</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="comment"></span></div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="comment"># enable generation of interactive SVG images that allow zooming and panning.</span></div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="comment"># Note that this requires a modern browser other than Internet Explorer. Tested</span></div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="comment"># and working are Firefox, Chrome, Safari, and Opera.</span></div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> <span class="comment"># Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make</span></div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="comment"># the SVG files visible. Older versions of IE do not have SVG support.</span></div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="comment"></span></div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="comment">INTERACTIVE_SVG = NO</span></div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="comment"></span></div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="comment"># The DOT_PATH tag can be used to specify the path where the dot tool can be</span></div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span></div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="comment"></span></div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="comment">DOT_PATH = </span></div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="comment"></span></div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> <span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="comment"># contain dot files that are included in the documentation (see the \dotfile</span></div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="comment"></span></div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="comment">DOTFILE_DIRS = </span></div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="comment"></span></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="comment"># contain msc files that are included in the documentation (see the \mscfile</span></div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="comment"></span></div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="comment">MSCFILE_DIRS = </span></div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> <span class="comment"></span></div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="comment"># The DIAFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="comment"># contain dia files that are included in the documentation (see the \diafile</span></div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="comment"></span></div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="comment">DIAFILE_DIRS = </span></div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="comment"></span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="comment"># When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the</span></div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="comment"># path where java can find the plantuml.jar file. If left blank, it is assumed</span></div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> <span class="comment"># PlantUML is not used or called during a preprocessing step. Doxygen will</span></div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> <span class="comment"># generate a warning when it encounters a \startuml command in this case and</span></div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> <span class="comment"># will not generate output for the diagram.</span></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="comment"></span></div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="comment">PLANTUML_JAR_PATH = </span></div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="comment"></span></div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="comment"># When using plantuml, the specified paths are searched for files specified by</span></div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> <span class="comment"># the !include statement in a plantuml block.</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> <span class="comment"></span></div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> <span class="comment">PLANTUML_INCLUDE_PATH = </span></div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="comment"></span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes</span></div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="comment"># that will be shown in the graph. If the number of nodes in a graph becomes</span></div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <span class="comment"># larger than this value, doxygen will truncate the graph, which is visualized</span></div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span> <span class="comment"># by representing a node as a red box. Note that doxygen if the number of direct</span></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span> <span class="comment"># children of the root node in a graph is already larger than</span></div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that</span></div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="comment"># the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span></div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="comment"># Minimum value: 0, maximum value: 10000, default value: 50.</span></div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span> <span class="comment"></span></div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> <span class="comment">DOT_GRAPH_MAX_NODES = 50</span></div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> <span class="comment"></span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span> <span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs</span></div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span> <span class="comment"># generated by dot. A depth value of 3 means that only nodes reachable from the</span></div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> <span class="comment"># root by following a path via at most 3 edges will be shown. Nodes that lay</span></div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="comment"># further from the root node will be omitted. Note that setting this option to 1</span></div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="comment"># or 2 may greatly reduce the computation time needed for large code bases. Also</span></div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> <span class="comment"># note that the size of a graph can be further restricted by</span></div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> <span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span></div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <span class="comment"># Minimum value: 0, maximum value: 1000, default value: 0.</span></div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> <span class="comment"></span></div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> <span class="comment">MAX_DOT_GRAPH_DEPTH = 1000</span></div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> <span class="comment"></span></div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span> <span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent</span></div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span> <span class="comment"># background. This is disabled by default, because dot on Windows does not seem</span></div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> <span class="comment"># to support this out of the box.</span></div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span> <span class="comment"># Warning: Depending on the platform used, enabling this option may lead to</span></div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> <span class="comment"># badly anti-aliased labels on the edges of a graph (i.e. they become hard to</span></div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> <span class="comment"># read).</span></div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span> <span class="comment"></span></div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> <span class="comment">DOT_TRANSPARENT = NO</span></div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> <span class="comment"></span></div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span> <span class="comment"># Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output</span></div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span> <span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This</span></div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> <span class="comment"># makes dot run faster, but since only newer versions of dot (>1.8.10) support</span></div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> <span class="comment"># this, this feature is disabled by default.</span></div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> <span class="comment"></span></div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span> <span class="comment">DOT_MULTI_TARGETS = NO</span></div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> <span class="comment"></span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span> <span class="comment"># If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page</span></div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> <span class="comment"># explaining the meaning of the various boxes and arrows in the dot generated</span></div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span> <span class="comment"># graphs.</span></div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> <span class="comment"></span></div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span> <span class="comment">GENERATE_LEGEND = YES</span></div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span> <span class="comment"></span></div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> <span class="comment"># If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot</span></div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span> <span class="comment"># files that are used to generate the various graphs.</span></div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> <span class="comment"></span></div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span> <span class="comment">DOT_CLEANUP = YES</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00051.html b/src/third_party/glm/doc/api/a00051.html
new file mode 100644
index 0000000..5dc17c1
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00051.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x2.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x2.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00051_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00051_source.html">mat2x2.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00051_source.html b/src/third_party/glm/doc/api/a00051_source.html
new file mode 100644
index 0000000..8147043
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00051_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x2.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x2.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00051.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00115.html">detail/type_mat2x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00046">type_mat.hpp:46</a></div></div>
+<div class="ttc" id="a00115_html"><div class="ttname"><a href="a00115.html">type_mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00039">type_mat.hpp:39</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00158.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00074">type_mat.hpp:74</a></div></div>
+<div class="ttc" id="a00158_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00067">type_mat.hpp:67</a></div></div>
+<div class="ttc" id="a00158_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00060">type_mat.hpp:60</a></div></div>
+<div class="ttc" id="a00158_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00053">type_mat.hpp:53</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00052.html b/src/third_party/glm/doc/api/a00052.html
new file mode 100644
index 0000000..b2bd9f5
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00052.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x3.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x3.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00052_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00052_source.html">mat2x3.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00052_source.html b/src/third_party/glm/doc/api/a00052_source.html
new file mode 100644
index 0000000..bfc7dcd
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00052_source.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x3.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x3.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00052.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00116.html">detail/type_mat2x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat2x3<float, lowp> <a class="code" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat2x3<float, mediump> <a class="code" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, lowp > lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00086">type_mat.hpp:86</a></div></div>
+<div class="ttc" id="a00158_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3< float, mediump > mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00093">type_mat.hpp:93</a></div></div>
+<div class="ttc" id="a00116_html"><div class="ttname"><a href="a00116.html">type_mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, highp > highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00100">type_mat.hpp:100</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00053.html b/src/third_party/glm/doc/api/a00053.html
new file mode 100644
index 0000000..53bcc06
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00053.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x4.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x4.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00053_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00053_source.html">mat2x4.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00053_source.html b/src/third_party/glm/doc/api/a00053_source.html
new file mode 100644
index 0000000..8eef9f5
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00053_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat2x4.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat2x4.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00053.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00117.html">detail/type_mat2x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat2x4<float, lowp> <a class="code" href="a00158.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat2x4<float, mediump> <a class="code" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00158.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, lowp > lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00112">type_mat.hpp:112</a></div></div>
+<div class="ttc" id="a00117_html"><div class="ttname"><a href="a00117.html">type_mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, highp > highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00126">type_mat.hpp:126</a></div></div>
+<div class="ttc" id="a00158_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4< float, mediump > mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00119">type_mat.hpp:119</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00054.html b/src/third_party/glm/doc/api/a00054.html
new file mode 100644
index 0000000..0777a27
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00054.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x2.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x2.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00054_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00054_source.html">mat3x2.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00054_source.html b/src/third_party/glm/doc/api/a00054_source.html
new file mode 100644
index 0000000..e56e553
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00054_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x2.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x2.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00054.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00118.html">detail/type_mat3x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat3x2<float, lowp> <a class="code" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat3x2<float, mediump> <a class="code" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace</span></div>
+<div class="ttc" id="a00118_html"><div class="ttname"><a href="a00118.html">type_mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2< float, mediump > mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00145">type_mat.hpp:145</a></div></div>
+<div class="ttc" id="a00158_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, highp > highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00152">type_mat.hpp:152</a></div></div>
+<div class="ttc" id="a00158_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, lowp > lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00138">type_mat.hpp:138</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00055.html b/src/third_party/glm/doc/api/a00055.html
new file mode 100644
index 0000000..8df165f
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00055.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x3.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x3.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00055_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00055_source.html">mat3x3.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00055_source.html b/src/third_party/glm/doc/api/a00055_source.html
new file mode 100644
index 0000000..ef15c8b
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00055_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x3.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x3.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00055.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00119.html">detail/type_mat3x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00158.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00185">type_mat.hpp:185</a></div></div>
+<div class="ttc" id="a00158_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00178">type_mat.hpp:178</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00171">type_mat.hpp:171</a></div></div>
+<div class="ttc" id="a00158_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00199">type_mat.hpp:199</a></div></div>
+<div class="ttc" id="a00158_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00192">type_mat.hpp:192</a></div></div>
+<div class="ttc" id="a00158_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00164">type_mat.hpp:164</a></div></div>
+<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00056.html b/src/third_party/glm/doc/api/a00056.html
new file mode 100644
index 0000000..f3b8cd1
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00056.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x4.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x4.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00056_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00056_source.html">mat3x4.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00056_source.html b/src/third_party/glm/doc/api/a00056_source.html
new file mode 100644
index 0000000..468f247
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00056_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat3x4.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat3x4.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00056.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">detail/type_mat3x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat3x4<float, lowp> <a class="code" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat3x4<float, mediump> <a class="code" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00158.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00158.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, highp > highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00225">type_mat.hpp:225</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, lowp > lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00211">type_mat.hpp:211</a></div></div>
+<div class="ttc" id="a00158_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4< float, mediump > mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00218">type_mat.hpp:218</a></div></div>
+<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00057.html b/src/third_party/glm/doc/api/a00057.html
new file mode 100644
index 0000000..dd2a847
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00057.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat4x2.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat4x2.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00057_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00057_source.html">mat4x2.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00057_source.html b/src/third_party/glm/doc/api/a00057_source.html
new file mode 100644
index 0000000..937bd88
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00057_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat4x2.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat4x2.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00057.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00121.html">detail/type_mat4x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat4x2<float, lowp> <a class="code" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat4x2<float, mediump> <a class="code" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00158.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, lowp > lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00237">type_mat.hpp:237</a></div></div>
+<div class="ttc" id="a00158_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00158.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, highp > highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="ttc" id="a00121_html"><div class="ttname"><a href="a00121.html">type_mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2< float, mediump > mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00244">type_mat.hpp:244</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00058_source.html b/src/third_party/glm/doc/api/a00058_source.html
new file mode 100644
index 0000000..5e355e6
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00058_source.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat4x3.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat4x3.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00122.html">detail/type_mat4x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat4x3<float, lowp> <a class="code" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat4x3<float, mediump> <a class="code" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, highp > highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_mat4x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3< float, mediump > mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00270">type_mat.hpp:270</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, lowp > lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00263">type_mat.hpp:263</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00059.html b/src/third_party/glm/doc/api/a00059.html
new file mode 100644
index 0000000..16837da
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00059.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat4x4.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat4x4.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00059_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00059_source.html">mat4x4.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00059_source.html b/src/third_party/glm/doc/api/a00059_source.html
new file mode 100644
index 0000000..aa441e5
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00059_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: mat4x4.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">mat4x4.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00059.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00123.html">detail/type_mat4x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00158.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00318">type_mat.hpp:318</a></div></div>
+<div class="ttc" id="a00158_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00311">type_mat.hpp:311</a></div></div>
+<div class="ttc" id="a00123_html"><div class="ttname"><a href="a00123.html">type_mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00304">type_mat.hpp:304</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00290">type_mat.hpp:290</a></div></div>
+<div class="ttc" id="a00158_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00325">type_mat.hpp:325</a></div></div>
+<div class="ttc" id="a00158_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00297">type_mat.hpp:297</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00060.html b/src/third_party/glm/doc/api/a00060.html
new file mode 100644
index 0000000..f0f7c58
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00060.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00060_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00060_source.html">matrix.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00060_source.html b/src/third_party/glm/doc/api/a00060_source.html
new file mode 100644
index 0000000..b2112bc
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00060_source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00060.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00033.html">detail/func_matrix.hpp</a>"</span></div>
+<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">func_matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00061.html b/src/third_party/glm/doc/api/a00061.html
new file mode 100644
index 0000000..bba35e9
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00061.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_access.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_access.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00061_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &m, length_t index, typename genType::col_type const &x)</td></tr>
+<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &m, length_t index, typename genType::row_type const &x)</td></tr>
+<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00061_source.html">matrix_access.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00061_source.html b/src/third_party/glm/doc/api/a00061_source.html
new file mode 100644
index 0000000..251cdea
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00061_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_access.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_access.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00061.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_access extension included")</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::row_type <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  length_t index);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL genType <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  length_t index,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  GLM_FUNC_DECL <span class="keyword">typename</span> genType::col_type <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  length_t index);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  GLM_FUNC_DECL genType <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  length_t index,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "matrix_access.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00166_html_gaadcc64829aadf4103477679e48c7594f"><div class="ttname"><a href="a00166.html#gaadcc64829aadf4103477679e48c7594f">glm::row</a></div><div class="ttdeci">GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)</div><div class="ttdoc">Set a specific row to a matrix. </div></div>
+<div class="ttc" id="a00166_html_ga9e757377523890e8b80c5843dbe4dd15"><div class="ttname"><a href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">glm::column</a></div><div class="ttdeci">GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)</div><div class="ttdoc">Set a specific column to a matrix. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00062.html b/src/third_party/glm/doc/api/a00062.html
new file mode 100644
index 0000000..4cefc76
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00062.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_cross_product.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_cross_product.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00062_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00062_source.html">matrix_cross_product.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00062_source.html b/src/third_party/glm/doc/api/a00062_source.html
new file mode 100644
index 0000000..8585573
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00062_source.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_cross_product.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_cross_product.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00062.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_cross_product extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tvec3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  tvec3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "matrix_cross_product.inl"</span></div>
+<div class="ttc" id="a00203_html_ga2d46cc5253761c214aa5c782865156b1"><div class="ttname"><a href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">glm::matrixCross4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > matrixCross4(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00203_html_ga04385b2e3a93c78d116b51af2d8d708e"><div class="ttname"><a href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">glm::matrixCross3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > matrixCross3(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00063.html b/src/third_party/glm/doc/api/a00063.html
new file mode 100644
index 0000000..e462dc9
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00063.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_decompose.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_decompose.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00063_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)</td></tr>
+<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00063_source.html">matrix_decompose.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00063_source.html b/src/third_party/glm/doc/api/a00063_source.html
new file mode 100644
index 0000000..2881a52
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00063_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_decompose.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_decompose.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00063.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/matrix_transform.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_decompose extension included")</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  tmat4x4<T, P> <span class="keyword">const</span> & modelMatrix,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  tvec3<T, P> & <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, tquat<T, P> & <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & <a class="code" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "matrix_decompose.inl"</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00169_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
+<div class="ttc" id="a00204_html_ga0f1245817507156b337798a253577c8b"><div class="ttname"><a href="a00204.html#ga0f1245817507156b337798a253577c8b">glm::decompose</a></div><div class="ttdeci">GLM_FUNC_DECL bool decompose(tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)</div><div class="ttdoc">Decomposes a model matrix to translations, rotation and scale components. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00064.html b/src/third_party/glm/doc/api/a00064.html
new file mode 100644
index 0000000..5a85643
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00064.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_integer.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_integer.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00064_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
+<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
+<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
+<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
+<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
+<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
+<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
+<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
+<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
+<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
+<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
+<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
+<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
+<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
+<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
+<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
+<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
+<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
+<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
+<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
+<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
+<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
+<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
+<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
+<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
+<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
+<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
+<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
+<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
+<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
+<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
+<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
+<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
+<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
+<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
+<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
+<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
+<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
+<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
+<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
+<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
+<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
+<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
+<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
+<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
+<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
+<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
+<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
+<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
+<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
+<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
+<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
+<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
+<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
+<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
+<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
+<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
+<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
+<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
+<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
+<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
+<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
+<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
+<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
+<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
+<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
+<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
+<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
+<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
+<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
+<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
+<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
+<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
+<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
+<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
+<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
+<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
+<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
+<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
+<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
+<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
+<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
+<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
+<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
+<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
+<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
+<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
+<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
+<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
+<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
+<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
+<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
+<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
+<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
+<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
+<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
+<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00064_source.html b/src/third_party/glm/doc/api/a00064_source.html
new file mode 100644
index 0000000..59a8291
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00064_source.html
@@ -0,0 +1,438 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_integer.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_integer.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00064.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_integer extension included")</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a"> 36</a></span>  <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9"> 40</a></span>  <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb"> 44</a></span>  <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a"> 48</a></span>  <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e"> 52</a></span>  <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65"> 56</a></span>  <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00167.html#ga0413bf87605b9247be2533c439127a1c"> 60</a></span>  <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00167.html#gacce460d54216438bb577bf8c9d68299c"> 64</a></span>  <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49"> 68</a></span>  <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599"> 72</a></span>  <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73"> 76</a></span>  <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00167.html#gae53db595d36f49a299e180302795e3c9"> 80</a></span>  <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655"> 85</a></span>  <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c"> 89</a></span>  <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615"> 93</a></span>  <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8"> 98</a></span>  <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a"> 102</a></span>  <span class="keyword">typedef</span> tmat2x3<int, mediump> <a class="code" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00167.html#gaa08e27efc514088315ccbaf818f01880"> 106</a></span>  <span class="keyword">typedef</span> tmat2x4<int, mediump> <a class="code" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983"> 110</a></span>  <span class="keyword">typedef</span> tmat3x2<int, mediump> <a class="code" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3"> 114</a></span>  <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38"> 118</a></span>  <span class="keyword">typedef</span> tmat3x4<int, mediump> <a class="code" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54"> 122</a></span>  <span class="keyword">typedef</span> tmat4x2<int, mediump> <a class="code" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d"> 126</a></span>  <span class="keyword">typedef</span> tmat4x3<int, mediump> <a class="code" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8"> 130</a></span>  <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0"> 135</a></span>  <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c"> 139</a></span>  <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4"> 143</a></span>  <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31"> 148</a></span>  <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc"> 152</a></span>  <span class="keyword">typedef</span> tmat2x3<int, lowp> <a class="code" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b"> 156</a></span>  <span class="keyword">typedef</span> tmat2x4<int, lowp> <a class="code" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35"> 160</a></span>  <span class="keyword">typedef</span> tmat3x2<int, lowp> <a class="code" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f"> 164</a></span>  <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b"> 168</a></span>  <span class="keyword">typedef</span> tmat3x4<int, lowp> <a class="code" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df"> 172</a></span>  <span class="keyword">typedef</span> tmat4x2<int, lowp> <a class="code" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69"> 176</a></span>  <span class="keyword">typedef</span> tmat4x3<int, lowp> <a class="code" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80"> 180</a></span>  <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c"> 185</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a>; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147"> 189</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c"> 193</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb"> 197</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a>;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5"> 201</a></span>  <span class="keyword">typedef</span> tmat2x3<uint, highp> <a class="code" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213"> 205</a></span>  <span class="keyword">typedef</span> tmat2x4<uint, highp> <a class="code" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f"> 209</a></span>  <span class="keyword">typedef</span> tmat3x2<uint, highp> <a class="code" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa"> 213</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7"> 217</a></span>  <span class="keyword">typedef</span> tmat3x4<uint, highp> <a class="code" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292"> 221</a></span>  <span class="keyword">typedef</span> tmat4x2<uint, highp> <a class="code" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00167.html#ga899a376888652fe3c03718641812bb27"> 225</a></span>  <span class="keyword">typedef</span> tmat4x3<uint, highp> <a class="code" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00167.html#gab8068521c0ad6990373d27d87d333084"> 229</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493"> 234</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6"> 238</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833"> 242</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163"> 247</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb"> 251</a></span>  <span class="keyword">typedef</span> tmat2x3<uint, mediump> <a class="code" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e"> 255</a></span>  <span class="keyword">typedef</span> tmat2x4<uint, mediump> <a class="code" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947"> 259</a></span>  <span class="keyword">typedef</span> tmat3x2<uint, mediump> <a class="code" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5"> 263</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc"> 267</a></span>  <span class="keyword">typedef</span> tmat3x4<uint, mediump> <a class="code" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad"> 271</a></span>  <span class="keyword">typedef</span> tmat4x2<uint, mediump> <a class="code" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39"> 275</a></span>  <span class="keyword">typedef</span> tmat4x3<uint, mediump> <a class="code" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a00167.html#ga24716579cf155f4e042542808f83978c"> 279</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00167.html#ga1406406e396b56bde3c7c0722f657064"> 284</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033"> 288</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884"> 292</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3"> 297</a></span>  <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676"> 301</a></span>  <span class="keyword">typedef</span> tmat2x3<uint, lowp> <a class="code" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4"> 305</a></span>  <span class="keyword">typedef</span> tmat2x4<uint, lowp> <a class="code" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00167.html#gad73943020bb49a072317ecfc52d587f0"> 309</a></span>  <span class="keyword">typedef</span> tmat3x2<uint, lowp> <a class="code" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67"> 313</a></span>  <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db"> 317</a></span>  <span class="keyword">typedef</span> tmat3x4<uint, lowp> <a class="code" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95"> 321</a></span>  <span class="keyword">typedef</span> tmat4x2<uint, lowp> <a class="code" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d"> 325</a></span>  <span class="keyword">typedef</span> tmat4x3<uint, lowp> <a class="code" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2"> 329</a></span>  <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">typedef</span> highp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">typedef</span> highp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">typedef</span> highp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">typedef</span> highp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">typedef</span> highp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">typedef</span> highp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">typedef</span> highp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">typedef</span> highp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">typedef</span> highp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">typedef</span> highp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">typedef</span> highp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">typedef</span> highp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">typedef</span> lowp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">typedef</span> lowp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">typedef</span> lowp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keyword">typedef</span> lowp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">typedef</span> lowp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">typedef</span> lowp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keyword">typedef</span> lowp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keyword">typedef</span> lowp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">typedef</span> lowp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">typedef</span> lowp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">typedef</span> lowp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">typedef</span> lowp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01"> 361</a></span>  <span class="keyword">typedef</span> mediump_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="a00167.html#ga038f68437155ffa3c2583a15264a8195"> 365</a></span>  <span class="keyword">typedef</span> mediump_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb"> 369</a></span>  <span class="keyword">typedef</span> mediump_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec"> 373</a></span>  <span class="keyword">typedef</span> mediump_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605"> 377</a></span>  <span class="keyword">typedef</span> mediump_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668"> 381</a></span>  <span class="keyword">typedef</span> mediump_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f"> 385</a></span>  <span class="keyword">typedef</span> mediump_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4"> 389</a></span>  <span class="keyword">typedef</span> mediump_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58"> 393</a></span>  <span class="keyword">typedef</span> mediump_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa"> 397</a></span>  <span class="keyword">typedef</span> mediump_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5"> 401</a></span>  <span class="keyword">typedef</span> mediump_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b"> 405</a></span>  <span class="keyword">typedef</span> mediump_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">typedef</span> highp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">typedef</span> highp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">typedef</span> highp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keyword">typedef</span> highp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">typedef</span> highp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">typedef</span> highp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">typedef</span> highp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">typedef</span> highp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">typedef</span> highp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">typedef</span> highp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">typedef</span> highp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">typedef</span> highp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">typedef</span> lowp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keyword">typedef</span> lowp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keyword">typedef</span> lowp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">typedef</span> lowp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">typedef</span> lowp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">typedef</span> lowp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">typedef</span> lowp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keyword">typedef</span> lowp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">typedef</span> lowp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">typedef</span> lowp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keyword">typedef</span> lowp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keyword">typedef</span> lowp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  </div>
+<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="a00167.html#ga4cae85566f900debf930c41944b64691"> 438</a></span>  <span class="keyword">typedef</span> mediump_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6"> 442</a></span>  <span class="keyword">typedef</span> mediump_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c"> 446</a></span>  <span class="keyword">typedef</span> mediump_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa"> 450</a></span>  <span class="keyword">typedef</span> mediump_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00167.html#ga1870da7578d5022b973a83155d386ab3"> 454</a></span>  <span class="keyword">typedef</span> mediump_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4"> 458</a></span>  <span class="keyword">typedef</span> mediump_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a"> 462</a></span>  <span class="keyword">typedef</span> mediump_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb"> 466</a></span>  <span class="keyword">typedef</span> mediump_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba"> 470</a></span>  <span class="keyword">typedef</span> mediump_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53"> 474</a></span>  <span class="keyword">typedef</span> mediump_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98"> 478</a></span>  <span class="keyword">typedef</span> mediump_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8"> 482</a></span>  <span class="keyword">typedef</span> mediump_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00167_html_ga705ee0bf49d6c3de4404ce2481bf0df5"><div class="ttname"><a href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::imat4x3</a></div><div class="ttdeci">mediump_imat4x3 imat4x3</div><div class="ttdoc">Signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00401">matrix_integer.hpp:401</a></div></div>
+<div class="ttc" id="a00167_html_ga148f3a81d15a570b9460158e6964f41c"><div class="ttname"><a href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">glm::lowp_imat3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00139">matrix_integer.hpp:139</a></div></div>
+<div class="ttc" id="a00167_html_gabc572d47b60f7e595d7aad945f5d13a8"><div class="ttname"><a href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">glm::mediump_imat2x2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2x2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00098">matrix_integer.hpp:98</a></div></div>
+<div class="ttc" id="a00167_html_ga8e0f797a57fec255f0eec7da1511bc38"><div class="ttname"><a href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">glm::mediump_imat3x4</a></div><div class="ttdeci">tmat3x4< int, mediump > mediump_imat3x4</div><div class="ttdoc">Medium-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00118">matrix_integer.hpp:118</a></div></div>
+<div class="ttc" id="a00167_html_ga0413bf87605b9247be2533c439127a1c"><div class="ttname"><a href="a00167.html#ga0413bf87605b9247be2533c439127a1c">glm::highp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, highp > highp_imat3x2</div><div class="ttdoc">High-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00060">matrix_integer.hpp:60</a></div></div>
+<div class="ttc" id="a00167_html_ga76cab31d492ea214c693ab9132b4de95"><div class="ttname"><a href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">glm::lowp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, lowp > lowp_umat4x2</div><div class="ttdoc">Low-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00321">matrix_integer.hpp:321</a></div></div>
+<div class="ttc" id="a00167_html_ga3fb358a947f8ceaefddd75bce22cd947"><div class="ttname"><a href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">glm::mediump_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, mediump > mediump_umat3x2</div><div class="ttdoc">Medium-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00259">matrix_integer.hpp:259</a></div></div>
+<div class="ttc" id="a00167_html_ga05064e28b911be1af0503ddf6e6204a3"><div class="ttname"><a href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">glm::mediump_imat3x3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3x3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00114">matrix_integer.hpp:114</a></div></div>
+<div class="ttc" id="a00167_html_ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><div class="ttname"><a href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::imat2x3</a></div><div class="ttdeci">mediump_imat2x3 imat2x3</div><div class="ttdoc">Signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00377">matrix_integer.hpp:377</a></div></div>
+<div class="ttc" id="a00167_html_ga70fa2d05896aa83cbc8c07672a429b53"><div class="ttname"><a href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::umat4x2</a></div><div class="ttdeci">mediump_umat4x2 umat4x2</div><div class="ttdoc">Unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00474">matrix_integer.hpp:474</a></div></div>
+<div class="ttc" id="a00167_html_ga4efd6470c0edf9704d2244fc92dbc2a9"><div class="ttname"><a href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">glm::highp_imat3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00040">matrix_integer.hpp:40</a></div></div>
+<div class="ttc" id="a00167_html_ga7d43dd8332000f7f19379efa1b303599"><div class="ttname"><a href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">glm::highp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, highp > highp_imat4x2</div><div class="ttdoc">High-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00072">matrix_integer.hpp:72</a></div></div>
+<div class="ttc" id="a00167_html_gae53db595d36f49a299e180302795e3c9"><div class="ttname"><a href="a00167.html#gae53db595d36f49a299e180302795e3c9">glm::highp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4x4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00080">matrix_integer.hpp:80</a></div></div>
+<div class="ttc" id="a00167_html_ga7655dfee0d726e80d7a3b72f46d5fd35"><div class="ttname"><a href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">glm::lowp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, lowp > lowp_imat3x2</div><div class="ttdoc">Low-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00160">matrix_integer.hpp:160</a></div></div>
+<div class="ttc" id="a00167_html_ga1a61c706b31aa60fd7012b2b27765983"><div class="ttname"><a href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">glm::mediump_imat3x2</a></div><div class="ttdeci">tmat3x2< int, mediump > mediump_imat3x2</div><div class="ttdoc">Medium-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00110">matrix_integer.hpp:110</a></div></div>
+<div class="ttc" id="a00167_html_ga4cae85566f900debf930c41944b64691"><div class="ttname"><a href="a00167.html#ga4cae85566f900debf930c41944b64691">glm::umat2</a></div><div class="ttdeci">mediump_umat2 umat2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00438">matrix_integer.hpp:438</a></div></div>
+<div class="ttc" id="a00167_html_gaa08e27efc514088315ccbaf818f01880"><div class="ttname"><a href="a00167.html#gaa08e27efc514088315ccbaf818f01880">glm::mediump_imat2x4</a></div><div class="ttdeci">tmat2x4< int, mediump > mediump_imat2x4</div><div class="ttdoc">Medium-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00106">matrix_integer.hpp:106</a></div></div>
+<div class="ttc" id="a00167_html_gaa4732a240522ad9bc28144fda2fc14ec"><div class="ttname"><a href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::imat2x2</a></div><div class="ttdeci">mediump_imat2x2 imat2x2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00373">matrix_integer.hpp:373</a></div></div>
+<div class="ttc" id="a00167_html_ga0ffed083b64e4f764db0f446d2c49163"><div class="ttname"><a href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">glm::mediump_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2x2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00247">matrix_integer.hpp:247</a></div></div>
+<div class="ttc" id="a00167_html_gacf71e9abe57bcfd18b4b003421e306aa"><div class="ttname"><a href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">glm::highp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3x3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00213">matrix_integer.hpp:213</a></div></div>
+<div class="ttc" id="a00167_html_ga3d913d70c629aa7ad504739286328f1b"><div class="ttname"><a href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">glm::lowp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, lowp > lowp_imat3x4</div><div class="ttdoc">Low-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00168">matrix_integer.hpp:168</a></div></div>
+<div class="ttc" id="a00167_html_gabf8acdd33ce8951051edbca5200898aa"><div class="ttname"><a href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">glm::umat2x2</a></div><div class="ttdeci">mediump_umat2x2 umat2x2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00450">matrix_integer.hpp:450</a></div></div>
+<div class="ttc" id="a00167_html_gaf72e6d399c42985db6872c50f53d7eb8"><div class="ttname"><a href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::umat4x4</a></div><div class="ttdeci">mediump_umat4x4 umat4x4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00482">matrix_integer.hpp:482</a></div></div>
+<div class="ttc" id="a00167_html_ga96b0d26a33b81bb6a60ca0f39682f7eb"><div class="ttname"><a href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::imat4</a></div><div class="ttdeci">mediump_imat4 imat4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00369">matrix_integer.hpp:369</a></div></div>
+<div class="ttc" id="a00167_html_ga5085e3ff02abbac5e537eb7b89ab63b6"><div class="ttname"><a href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::umat3</a></div><div class="ttdeci">mediump_umat3 umat3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00442">matrix_integer.hpp:442</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8fb92b62e31528886cc728d3404ecc"><div class="ttname"><a href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">glm::lowp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, lowp > lowp_imat2x3</div><div class="ttdoc">Low-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00152">matrix_integer.hpp:152</a></div></div>
+<div class="ttc" id="a00167_html_gaa86bd9dc8463b46a46ee944948111676"><div class="ttname"><a href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">glm::lowp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, lowp > lowp_umat2x3</div><div class="ttdoc">Low-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00301">matrix_integer.hpp:301</a></div></div>
+<div class="ttc" id="a00167_html_ga038f68437155ffa3c2583a15264a8195"><div class="ttname"><a href="a00167.html#ga038f68437155ffa3c2583a15264a8195">glm::imat3</a></div><div class="ttdeci">mediump_imat3 imat3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00365">matrix_integer.hpp:365</a></div></div>
+<div class="ttc" id="a00167_html_ga1870da7578d5022b973a83155d386ab3"><div class="ttname"><a href="a00167.html#ga1870da7578d5022b973a83155d386ab3">glm::umat2x3</a></div><div class="ttdeci">mediump_umat2x3 umat2x3</div><div class="ttdoc">Unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00454">matrix_integer.hpp:454</a></div></div>
+<div class="ttc" id="a00167_html_ga8368cb49cb0bd5ac682a71d1eccc9a8c"><div class="ttname"><a href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">glm::highp_umat4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00193">matrix_integer.hpp:193</a></div></div>
+<div class="ttc" id="a00167_html_gae3ca9e28a9d2e5fce5e28593d27e370d"><div class="ttname"><a href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">glm::lowp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, lowp > lowp_umat4x3</div><div class="ttdoc">Low-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00325">matrix_integer.hpp:325</a></div></div>
+<div class="ttc" id="a00167_html_gac8d1db85d62244fd90d240227c7f51ad"><div class="ttname"><a href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">glm::mediump_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, mediump > mediump_umat4x2</div><div class="ttdoc">Medium-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00271">matrix_integer.hpp:271</a></div></div>
+<div class="ttc" id="a00167_html_ga7fc1f795f2abd0020c7b5204f4c83033"><div class="ttname"><a href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">glm::lowp_umat3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00288">matrix_integer.hpp:288</a></div></div>
+<div class="ttc" id="a00167_html_gac455e55e7cb32e31396a9d4613da046a"><div class="ttname"><a href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">glm::highp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2x2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00048">matrix_integer.hpp:48</a></div></div>
+<div class="ttc" id="a00167_html_ga815eb9fdf70edc45687cbcda07e97213"><div class="ttname"><a href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">glm::highp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, highp > highp_umat2x4</div><div class="ttdoc">High-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00205">matrix_integer.hpp:205</a></div></div>
+<div class="ttc" id="a00167_html_ga7d332d462f2c1ad5a65dc580d3d1aa39"><div class="ttname"><a href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">glm::mediump_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, mediump > mediump_umat4x3</div><div class="ttdoc">Medium-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00275">matrix_integer.hpp:275</a></div></div>
+<div class="ttc" id="a00167_html_ga655bfcca624f422aff308dcc99688ce8"><div class="ttname"><a href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">glm::mediump_imat4x4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4x4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00130">matrix_integer.hpp:130</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00167_html_gac2b0985b576fe0eba47227499aed2b3c"><div class="ttname"><a href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">glm::mediump_imat3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00089">matrix_integer.hpp:89</a></div></div>
+<div class="ttc" id="a00167_html_ga7ecc585b71766cfa96bd54a595bea1fb"><div class="ttname"><a href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">glm::mediump_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, mediump > mediump_umat2x3</div><div class="ttdoc">Medium-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00251">matrix_integer.hpp:251</a></div></div>
+<div class="ttc" id="a00167_html_ga6e9ce23496d8b08dfc302d4039694b58"><div class="ttname"><a href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::imat3x4</a></div><div class="ttdeci">mediump_imat3x4 imat3x4</div><div class="ttdoc">Signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00393">matrix_integer.hpp:393</a></div></div>
+<div class="ttc" id="a00167_html_gac23667a99ae1ec649b5e55cd5a05b833"><div class="ttname"><a href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">glm::mediump_umat4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00242">matrix_integer.hpp:242</a></div></div>
+<div class="ttc" id="a00167_html_ga892b53e26d36763f380b08a5768dee6b"><div class="ttname"><a href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">glm::lowp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, lowp > lowp_imat2x4</div><div class="ttdoc">Low-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00156">matrix_integer.hpp:156</a></div></div>
+<div class="ttc" id="a00167_html_gacce460d54216438bb577bf8c9d68299c"><div class="ttname"><a href="a00167.html#gacce460d54216438bb577bf8c9d68299c">glm::highp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3x3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00064">matrix_integer.hpp:64</a></div></div>
+<div class="ttc" id="a00167_html_ga2dce1c00ed50fd09fe349de3713d96db"><div class="ttname"><a href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">glm::lowp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, lowp > lowp_umat3x4</div><div class="ttdoc">Low-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00317">matrix_integer.hpp:317</a></div></div>
+<div class="ttc" id="a00167_html_ga402d169fc3cdca5f3ea47a358a7b7c67"><div class="ttname"><a href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">glm::lowp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3x3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00313">matrix_integer.hpp:313</a></div></div>
+<div class="ttc" id="a00167_html_ga24716579cf155f4e042542808f83978c"><div class="ttname"><a href="a00167.html#ga24716579cf155f4e042542808f83978c">glm::mediump_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4x4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00279">matrix_integer.hpp:279</a></div></div>
+<div class="ttc" id="a00167_html_gae7b96c808a36fbe87f41af1c77b7941c"><div class="ttname"><a href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">glm::highp_umat2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00185">matrix_integer.hpp:185</a></div></div>
+<div class="ttc" id="a00167_html_ga57936a3998e992370e59a223e0ee4fd4"><div class="ttname"><a href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">glm::umat2x4</a></div><div class="ttdeci">mediump_umat2x4 umat2x4</div><div class="ttdoc">Unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00458">matrix_integer.hpp:458</a></div></div>
+<div class="ttc" id="a00167_html_ga5b7e9af5024e1a164db6419f67ecfc9a"><div class="ttname"><a href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">glm::mediump_imat2x3</a></div><div class="ttdeci">tmat2x3< int, mediump > mediump_imat2x3</div><div class="ttdoc">Medium-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00102">matrix_integer.hpp:102</a></div></div>
+<div class="ttc" id="a00167_html_ga6edbf193ad6c4309e31262165f2655e7"><div class="ttname"><a href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">glm::highp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, highp > highp_umat3x4</div><div class="ttdoc">High-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00217">matrix_integer.hpp:217</a></div></div>
+<div class="ttc" id="a00167_html_ga5bfe58853451fbc1f1ef6ce1f93c5e31"><div class="ttname"><a href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">glm::lowp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2x2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00148">matrix_integer.hpp:148</a></div></div>
+<div class="ttc" id="a00167_html_ga3c035fec7db0d671ec8f9f1f0d05bed0"><div class="ttname"><a href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">glm::lowp_imat2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00135">matrix_integer.hpp:135</a></div></div>
+<div class="ttc" id="a00167_html_gaa9f8144beebdefd85e2a9ac480e7608a"><div class="ttname"><a href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">glm::highp_imat2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00036">matrix_integer.hpp:36</a></div></div>
+<div class="ttc" id="a00167_html_gac4abd549f2e521c7f40f53b6235c450e"><div class="ttname"><a href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">glm::mediump_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, mediump > mediump_umat2x4</div><div class="ttdoc">Medium-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00255">matrix_integer.hpp:255</a></div></div>
+<div class="ttc" id="a00167_html_ga87581417945411f75cb31dd6ca1dba98"><div class="ttname"><a href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">glm::umat4x3</a></div><div class="ttdeci">mediump_umat4x3 umat4x3</div><div class="ttdoc">Unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00478">matrix_integer.hpp:478</a></div></div>
+<div class="ttc" id="a00167_html_ga1406406e396b56bde3c7c0722f657064"><div class="ttname"><a href="a00167.html#ga1406406e396b56bde3c7c0722f657064">glm::lowp_umat2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00284">matrix_integer.hpp:284</a></div></div>
+<div class="ttc" id="a00167_html_ga4860b4b01430bdb70643808c8d3bf5cb"><div class="ttname"><a href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">glm::highp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2x2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00197">matrix_integer.hpp:197</a></div></div>
+<div class="ttc" id="a00167_html_gaa60b19d7cadbaa56bed1e6e0047af147"><div class="ttname"><a href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">glm::highp_umat3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00189">matrix_integer.hpp:189</a></div></div>
+<div class="ttc" id="a00167_html_ga5a9d62e44668ca2222f0362f9c99d9cc"><div class="ttname"><a href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">glm::mediump_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, mediump > mediump_umat3x4</div><div class="ttdoc">Medium-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00267">matrix_integer.hpp:267</a></div></div>
+<div class="ttc" id="a00167_html_ga1526c62951b04f5cd73f541f7b3b7d8d"><div class="ttname"><a href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">glm::mediump_imat4x3</a></div><div class="ttdeci">tmat4x3< int, mediump > mediump_imat4x3</div><div class="ttdoc">Medium-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00126">matrix_integer.hpp:126</a></div></div>
+<div class="ttc" id="a00167_html_ga73b855cc40e5d8202b7ab38461326d65"><div class="ttname"><a href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">glm::highp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, highp > highp_imat2x4</div><div class="ttdoc">High-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00056">matrix_integer.hpp:56</a></div></div>
+<div class="ttc" id="a00167_html_ga43ed5e4f475b6f4cad7cba78f29c405b"><div class="ttname"><a href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::imat4x4</a></div><div class="ttdeci">mediump_imat4x4 imat4x4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00405">matrix_integer.hpp:405</a></div></div>
+<div class="ttc" id="a00167_html_gad73943020bb49a072317ecfc52d587f0"><div class="ttname"><a href="a00167.html#gad73943020bb49a072317ecfc52d587f0">glm::lowp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, lowp > lowp_umat3x2</div><div class="ttdoc">Low-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00309">matrix_integer.hpp:309</a></div></div>
+<div class="ttc" id="a00167_html_ga1582c5dc83e49a7e53bb0b94bef9de54"><div class="ttname"><a href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">glm::mediump_imat4x2</a></div><div class="ttdeci">tmat4x2< int, mediump > mediump_imat4x2</div><div class="ttdoc">Medium-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00122">matrix_integer.hpp:122</a></div></div>
+<div class="ttc" id="a00167_html_ga330140b22a9449caab308f2c69bf4c80"><div class="ttname"><a href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">glm::lowp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4x4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00180">matrix_integer.hpp:180</a></div></div>
+<div class="ttc" id="a00167_html_gac351446661e5a8168473ff7b3b5ac3b5"><div class="ttname"><a href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">glm::highp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, highp > highp_umat2x3</div><div class="ttdoc">High-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00201">matrix_integer.hpp:201</a></div></div>
+<div class="ttc" id="a00167_html_ga9d8faafdca42583d67e792dd038fc668"><div class="ttname"><a href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">glm::imat2x4</a></div><div class="ttdeci">mediump_imat2x4 imat2x4</div><div class="ttdoc">Signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00381">matrix_integer.hpp:381</a></div></div>
+<div class="ttc" id="a00167_html_gab8068521c0ad6990373d27d87d333084"><div class="ttname"><a href="a00167.html#gab8068521c0ad6990373d27d87d333084">glm::highp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4x4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00229">matrix_integer.hpp:229</a></div></div>
+<div class="ttc" id="a00167_html_gaabe04f9948d4a213bb1c20137de03e01"><div class="ttname"><a href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">glm::imat2</a></div><div class="ttdeci">mediump_imat2 imat2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00361">matrix_integer.hpp:361</a></div></div>
+<div class="ttc" id="a00167_html_ga8ce7ef51d8b2c1901fa5414deccbc3fa"><div class="ttname"><a href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::imat4x2</a></div><div class="ttdeci">mediump_imat4x2 imat4x2</div><div class="ttdoc">Signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00397">matrix_integer.hpp:397</a></div></div>
+<div class="ttc" id="a00167_html_gafe68c1cf2b379a9a11d1a11c9c2f8884"><div class="ttname"><a href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">glm::lowp_umat4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00292">matrix_integer.hpp:292</a></div></div>
+<div class="ttc" id="a00167_html_ga1f0cea730f6c13b16e511bd2d63507a3"><div class="ttname"><a href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">glm::lowp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2x2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00297">matrix_integer.hpp:297</a></div></div>
+<div class="ttc" id="a00167_html_ga3fdfce509d30bdd7778b8b156cb968df"><div class="ttname"><a href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">glm::lowp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, lowp > lowp_imat4x2</div><div class="ttdoc">Low-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00172">matrix_integer.hpp:172</a></div></div>
+<div class="ttc" id="a00167_html_ga6a9945878f99294cfde40c6c3a867d69"><div class="ttname"><a href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">glm::lowp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, lowp > lowp_imat4x3</div><div class="ttdoc">Low-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00176">matrix_integer.hpp:176</a></div></div>
+<div class="ttc" id="a00167_html_ga9cd7fa637a4a6788337f45231fad9e1a"><div class="ttname"><a href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::umat3x2</a></div><div class="ttdeci">mediump_umat3x2 umat3x2</div><div class="ttdoc">Unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00462">matrix_integer.hpp:462</a></div></div>
+<div class="ttc" id="a00167_html_gae7c78ff3fc4309605ab0fa186c8d48ba"><div class="ttname"><a href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::umat3x4</a></div><div class="ttdeci">mediump_umat3x4 umat3x4</div><div class="ttdoc">Unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00470">matrix_integer.hpp:470</a></div></div>
+<div class="ttc" id="a00167_html_ga7322b97f1be10c83290ab57ef784d493"><div class="ttname"><a href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">glm::mediump_umat2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00234">matrix_integer.hpp:234</a></div></div>
+<div class="ttc" id="a00167_html_ga6aacc960f62e8f7d2fe9d32d5050e7a4"><div class="ttname"><a href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::imat3x3</a></div><div class="ttdeci">mediump_imat3x3 imat3x3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00389">matrix_integer.hpp:389</a></div></div>
+<div class="ttc" id="a00167_html_gad4809dbfb1bfcf222d7b34a97a8eafe5"><div class="ttname"><a href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">glm::mediump_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3x3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00263">matrix_integer.hpp:263</a></div></div>
+<div class="ttc" id="a00167_html_gad3d7b23bdb4ed9b7d53c9db792db9bb4"><div class="ttname"><a href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">glm::lowp_imat4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00143">matrix_integer.hpp:143</a></div></div>
+<div class="ttc" id="a00167_html_gab3d5c6aaeb5815f8f080305888f6828f"><div class="ttname"><a href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">glm::lowp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3x3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00164">matrix_integer.hpp:164</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8e55e14a6fc61850f8c0df9b4ff655"><div class="ttname"><a href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">glm::mediump_imat2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00085">matrix_integer.hpp:85</a></div></div>
+<div class="ttc" id="a00167_html_ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><div class="ttname"><a href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::umat3x3</a></div><div class="ttdeci">mediump_umat3x3 umat3x3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00466">matrix_integer.hpp:466</a></div></div>
+<div class="ttc" id="a00167_html_ga551ad2e4e0304c67451ffbadeef0d615"><div class="ttname"><a href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">glm::mediump_imat4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00093">matrix_integer.hpp:93</a></div></div>
+<div class="ttc" id="a00167_html_ga93961d3aac6efa36dc3f9cfa7e9056e6"><div class="ttname"><a href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">glm::mediump_umat3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00238">matrix_integer.hpp:238</a></div></div>
+<div class="ttc" id="a00167_html_ga742be484e56e08ef637f8ec4ab7c8bb2"><div class="ttname"><a href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">glm::lowp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4x4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00329">matrix_integer.hpp:329</a></div></div>
+<div class="ttc" id="a00167_html_ga5f5f1e6dc06b72216463a425b2f7613e"><div class="ttname"><a href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">glm::highp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, highp > highp_imat2x3</div><div class="ttdoc">High-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00052">matrix_integer.hpp:52</a></div></div>
+<div class="ttc" id="a00167_html_ga7b6c64600bad79d735fa6bec843b2bb4"><div class="ttname"><a href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">glm::lowp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, lowp > lowp_umat2x4</div><div class="ttdoc">Low-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00305">matrix_integer.hpp:305</a></div></div>
+<div class="ttc" id="a00167_html_ga38bc7bb6494e344185df596deeb4544c"><div class="ttname"><a href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">glm::umat4</a></div><div class="ttdeci">mediump_umat4 umat4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00446">matrix_integer.hpp:446</a></div></div>
+<div class="ttc" id="a00167_html_ga7b33bbe4f12c060892bd3cc8d4cd737f"><div class="ttname"><a href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::imat3x2</a></div><div class="ttdeci">mediump_imat3x2 imat3x2</div><div class="ttdoc">Signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00385">matrix_integer.hpp:385</a></div></div>
+<div class="ttc" id="a00167_html_ga159ce04cc638ff4db755542cd8f758cb"><div class="ttname"><a href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">glm::highp_imat4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00044">matrix_integer.hpp:44</a></div></div>
+<div class="ttc" id="a00167_html_gad4fea24b4100e21ed7742c91e5458d49"><div class="ttname"><a href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">glm::highp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, highp > highp_imat3x4</div><div class="ttdoc">High-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00068">matrix_integer.hpp:68</a></div></div>
+<div class="ttc" id="a00167_html_gab1d8e627b6a0b21c9b5e599a89132d8f"><div class="ttname"><a href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">glm::highp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, highp > highp_umat3x2</div><div class="ttdoc">High-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00209">matrix_integer.hpp:209</a></div></div>
+<div class="ttc" id="a00167_html_ga0c66b9b7c10a6017a58a03489c8d4c73"><div class="ttname"><a href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">glm::highp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, highp > highp_imat4x3</div><div class="ttdoc">High-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00076">matrix_integer.hpp:76</a></div></div>
+<div class="ttc" id="a00167_html_ga899a376888652fe3c03718641812bb27"><div class="ttname"><a href="a00167.html#ga899a376888652fe3c03718641812bb27">glm::highp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, highp > highp_umat4x3</div><div class="ttdoc">High-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00225">matrix_integer.hpp:225</a></div></div>
+<div class="ttc" id="a00167_html_gaaba8a59eac3e5c0b3aaa9b35c1f10292"><div class="ttname"><a href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">glm::highp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, highp > highp_umat4x2</div><div class="ttdoc">High-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00221">matrix_integer.hpp:221</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00065.html b/src/third_party/glm/doc/api/a00065.html
new file mode 100644
index 0000000..fbdb180
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00065.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_interpolation.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_interpolation.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00065_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
+<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
+<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
+<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
+<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Ghenadii Ursachi (<a href="#" onclick="location.href='mai'+'lto:'+'the'+'.a'+'ste'+'ro'+'th@'+'gm'+'ail'+'.c'+'om'; return false;">the.a<span style="display: none;">.nosp@m.</span>ster<span style="display: none;">.nosp@m.</span>oth@g<span style="display: none;">.nosp@m.</span>mail<span style="display: none;">.nosp@m.</span>.com</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00065_source.html">matrix_interpolation.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00065_source.html b/src/third_party/glm/doc/api/a00065_source.html
new file mode 100644
index 0000000..00f3069
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00065_source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_interpolation.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_interpolation.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00065.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_interpolation extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  tmat4x4<T, P> <span class="keyword">const</span> & mat,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  tvec3<T, P> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  T & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  T <span class="keyword">const</span> <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  tmat4x4<T, P> <span class="keyword">const</span> & mat);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  tmat4x4<T, P> <span class="keyword">const</span> & m1,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  tmat4x4<T, P> <span class="keyword">const</span> & m2,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  T <span class="keyword">const</span> delta);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "matrix_interpolation.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00205_html_ga82d4bc058e9628cb2ea1d4e117a0cf39"><div class="ttname"><a href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">glm::axisAngleMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix(tvec3< T, P > const &axis, T const angle)</div><div class="ttdoc">Build a matrix from axis and angle. </div></div>
+<div class="ttc" id="a00205_html_ga9aef292eb5f29bdbb58a53ef4281af92"><div class="ttname"><a href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">glm::axisAngle</a></div><div class="ttdeci">GLM_FUNC_DECL void axisAngle(tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</div><div class="ttdoc">Get the axis and angle of the rotation from a matrix. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00205_html_ga6b8170aa4cf43caf81400696ebb38afe"><div class="ttname"><a href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">glm::extractMatrixRotation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation(tmat4x4< T, P > const &mat)</div><div class="ttdoc">Extracts the rotation part of a matrix. </div></div>
+<div class="ttc" id="a00205_html_ga45099a92c5c704503565619ac2bcd5c6"><div class="ttname"><a href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">glm::interpolate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > interpolate(tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</div><div class="ttdoc">Build a interpolation of 4 * 4 matrixes. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00066.html b/src/third_party/glm/doc/api/a00066.html
new file mode 100644
index 0000000..93a36b5
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00066.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_inverse.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">matrix_inverse.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="a00066_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &m)</td></tr>
+<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &m)</td></tr>
+<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+
+<p>Definition in file <a class="el" href="a00066_source.html">matrix_inverse.hpp</a>.</p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00066_source.html b/src/third_party/glm/doc/api/a00066_source.html
new file mode 100644
index 0000000..f140a9a
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00066_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_inverse.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_9440d7c11b99dcd7e5d369c7cf9802fe.html">gtc</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">matrix_inverse.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00066.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../matrix.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_inverse extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a>(genType <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a>(genType <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "matrix_inverse.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00168_html_gab213cd0e3ead5f316d583f99d6312008"><div class="ttname"><a href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">glm::inverseTranspose</a></div><div class="ttdeci">GLM_FUNC_DECL genType inverseTranspose(genType const &m)</div><div class="ttdoc">Compute the inverse transpose of a matrix. </div></div>
+<div class="ttc" id="a00168_html_gae0fcc5fc8783291f9702272de428fa0e"><div class="ttname"><a href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">glm::affineInverse</a></div><div class="ttdeci">GLM_FUNC_DECL genType affineInverse(genType const &m)</div><div class="ttdoc">Fast matrix inverse for affine matrix. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/src/third_party/glm/doc/api/a00067.html b/src/third_party/glm/doc/api/a00067.html
new file mode 100644
index 0000000..fe62080
--- /dev/null
+++ b/src/third_party/glm/doc/api/a00067.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: matrix_major_storage.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="navelem"><a class="el" href="dir_8d176b5b7dd0ae42ea6876078f2bde49.html">gtx</a></li> </ul>