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. |