Original link: http://www.concentric.net/~Ttwang/tech/inthash.htm
Taken from: http://web.archive.org/web/20071223173210/http://www.concentric.net/~Ttwang/tech/inthash.htm
Reformatted using pandoc
Thomas Wang, Jan 1997
last update Mar 2007
| #include "cinder/app/AppCocoaTouch.h" | |
| #include "cinder/app/Renderer.h" | |
| #include "cinder/Camera.h" | |
| #include "cinder/CinderResources.h" | |
| #include "cinder/ImageIo.h" | |
| #include "cinder/gl/Texture.h" | |
| #include <vector> | |
| #include <map> | |
| #include <list> | 
| /* | |
| * Copyright 2013, Blender Foundation. | |
| * | |
| * Redistribution and use in source and binary forms, with or without | |
| * modification, are permitted provided that the following conditions are | |
| * met: | |
| * * Redistributions of source code must retain the above copyright | |
| * notice, this list of conditions and the following disclaimer. | |
| * * Redistributions in binary form must reproduce the above copyright | |
| * notice, this list of conditions and the following disclaimer in the | 
Original link: http://www.concentric.net/~Ttwang/tech/inthash.htm
Taken from: http://web.archive.org/web/20071223173210/http://www.concentric.net/~Ttwang/tech/inthash.htm
Reformatted using pandoc
Thomas Wang, Jan 1997
last update Mar 2007
| template<typename NodeRef> | |
| class Graph { | |
| public: | |
| std::vector<NodeRef> allNodes() const; | |
| std::vector<NodeRef> getChildren(NodeRef) const; | |
| }; | |
| template<typename NodeRef> | |
| std::vector<NodeRef> TopologicalSort(const Graph<NodeRef>& G) { | |
| std::map<NodeRef, unsigned> RefCount; | 
| // | |
| // MTLTexture+Z.swift | |
| // ZKit | |
| // | |
| // The MIT License (MIT) | |
| // | |
| // Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa. | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a copy | |
| // of this software and associated documentation files (the "Software"), to deal | 
| // | |
| // 1. Add a Quad in Unity | |
| // 2. Parent the quad under camera, to prevent frustum culling. | |
| // 3. Attach this shader. | |
| // | |
| Shader "Quad/Fullscreen" | |
| { | |
| Properties | |
| { | |
| } | 
| // From https://github.com/google/filament | |
| float D_GGX(float linearRoughness, float NoH, const vec3 h) { | |
| // Walter et al. 2007, "Microfacet Models for Refraction through Rough Surfaces" | |
| // In mediump, there are two problems computing 1.0 - NoH^2 | |
| // 1) 1.0 - NoH^2 suffers floating point cancellation when NoH^2 is close to 1 (highlights) | |
| // 2) NoH doesn't have enough precision around 1.0 | |
| // Both problem can be fixed by computing 1-NoH^2 in highp and providing NoH in highp as well | |
| // However, we can do better using Lagrange's identity: | 
| #pragma once | |
| #include "RuntimeImGui.h" | |
| #include "RuntimeInclude.h" | |
| RUNTIME_MODIFIABLE_INCLUDE; | |
| #include "IconsFontAwesome.h" // from https://github.com/juliettef/IconFontCppHeaders | |
| #include "PlatformUtils.h" | |
| namespace ImGui | 
For a brief user-level introduction to CMake, watch C++ Weekly, Episode 78, Intro to CMake by Jason Turner. LLVM’s CMake Primer provides a good high-level introduction to the CMake syntax. Go read it now.
After that, watch Mathieu Ropert’s CppCon 2017 talk Using Modern CMake Patterns to Enforce a Good Modular Design (slides). It provides a thorough explanation of what modern CMake is and why it is so much better than “old school” CMake. The modular design ideas in this talk are based on the book [Large-Scale C++ Software Design](https://www.amazon.de/Large-Scale-Soft
| import Foundation | |
| import SceneKit | |
| class ARQLThumbnailGenerator { | |
| private let device = MTLCreateSystemDefaultDevice()! | |
| /// Create a thumbnail image of the asset with the specified URL at the specified | |
| /// animation time. Supports loading of .scn, .usd, .usdz, .obj, and .abc files, | |
| /// and other formats supported by ModelIO. |