Variables are immutable by default. This makes Rust safer and makes concurrency easier.
Immutable means once a value is bound to that variable, it cannot be changed.
For example:
fn main() {
let x = 5;
// This is the point we want to find barycentric coordinates of | |
vector p = point(0, "P", 3); | |
// These are the vertices of the main triangle we want to find coordinates for | |
vector v1 = point(0, "P", 0), | |
v2 = point(0, "P", 1), | |
v3 = point(0, "P", 2); | |
// Edge Vectors of the main triangle | |
vector e1 = v3 - v2, |
// How far points in grid cells can go from the center of the grid cell. Setting this to a value above 0.5 will make the noise discontinuous, and there will be visible seams. | |
// It is reccomended to leave this at 0.3. | |
const float CLOVER_NOISE_2D_POINT_SPREAD = .3; | |
// The value of pi. Used in the offset function. | |
const float CLOVER_NOISE_2D_PI = radians(180.); | |
// Hashes a 2D vector into a point. It isn't 100% random, but it's good enough for clover noise to appear random. | |
float clover_noise_2d_hash(vec2 p) { | |
return fract(1e4 * sin(17.0 * p.x + p.y * 0.1) * (0.1 + abs(sin(p.y * 13.0 + p.x)))); |
import pymel.core as pm | |
''' | |
An Autodesk Maya PyMEL script that calculates a pole vector position | |
based on 3 input PyNode objects. example: leg, knee, ankle bones. | |
Chris Lesage [email protected] | |
''' | |
def calculate_pole_vector(p1, p2, p3, poleDistance=1): | |
""" |
My name is Chris Sprance. I am an artist, programmer, maker, and man of many hats. Proficient in the next-gen game art workflow with a deep understanding of the technical and procedural content pipeline including the constraints that revolve around games and real-time content. With over 13+ years of experience working in the AAA and indie games industry I've been a part of a lot of problem solving and enjoyed every second of it!
<!DOCTYPE html> | |
<html> | |
<head><title>SOUND</title></head> | |
<body> | |
<div>Frequence: <span id="frequency"></span></div> | |
<script type="text/javascript"> | |
var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); | |
var oscillatorNode = audioCtx.createOscillator(); | |
var gainNode = audioCtx.createGain(); |
// Description: CKEditor Custom UI for Directus | |
// Author: Chris Sprance (Entrada Interactive) - www.csprance.com | |
// CKEditor Docs: http://docs.ckeditor.com/ | |
define(['app', 'core/UIComponent', 'core/CustomUIView', 'core/t', 'core/overlays/overlays'], function (app, UIComponent, UIView, __t, Overlays) { | |
var Input = UIView.extend({ | |
events: {}, | |
template: 'ckeditor/input', | |
serialize: function () { |
SECRET_KEY=hiphopopotamus | |
DJANGO_DEV=True | |
DJANGO_DEBUG=True | |
DATABASE_URL=postgres://pontoon:pontoon@localhost/pontoon | |
SESSION_COOKIE_SECURE=False | |
SITE_URL=http://localhost:8000 | |
FXA_CLIENT_ID=2651b9211a44b7b2 | |
FXA_SECRET_KEY=a3cafccbafe39db54f2723f8a6f804c337e362950f197b5b33050d784129d570 | |
FXA_OAUTH_ENDPOINT=https://oauth-stable.dev.lcip.org/v1 | |
FXA_PROFILE_ENDPOINT=https://stable.dev.lcip.org/profile/v1 |