Skip to content

Instantly share code, notes, and snippets.

View takumifukasawa's full-sized avatar

takumifukasawa takumifukasawa

View GitHub Profile
@takumifukasawa
takumifukasawa / applyMappedMatrixFilter.js
Last active February 28, 2020 16:04
pixijs v4.6.0: 実際の画像の大きさに合わせてfilterのshader側でuvを[0-1]に収めるための関数
// 実際の画像の大きさに合わせてfilterのshader側でuvを[0-1]に収めるための関数
// 参考: http://www.html5gamedevs.com/topic/23790-uv-in-filters/
export default (vert, frag, uniforms = {}) => {
if (!uniforms.mappedMatrix) {
uniforms.mappedMatrix = {
type: 'mat3',
value: new PIXI.Matrix(),
};
@takumifukasawa
takumifukasawa / traverseMaterials.js
Last active February 28, 2020 16:03
threejs v87: traverse materials and map function
import _ from 'lodash';
export default function traverseMaterials(object, callback) {
// multi material
if (_.isArray(object.material)) {
_.forEach(object.material, (material) => {
callback(material);
});
return;
@takumifukasawa
takumifukasawa / traverseMeshes.js
Last active February 28, 2020 16:03
threejs v87: traverse meshes and map function
import _ from 'lodash';
function exec(obj, cb) {
switch (obj.type) {
case 'Mesh':
case 'SkinnedMesh':
case 'LineSegments':
cb(obj);
break;
default:
@takumifukasawa
takumifukasawa / CSVReader.cs
Created March 17, 2020 13:13
Unity: read CSV and parse to list of string array.
using System;
using System.IO;
using System.Collections.Generic;
using UnityEngine;
// ex1. CSVReader.getData(csvFile)
// ex2. CSVReader.getData(csvFile, ",")
public class CSVReader
{
@takumifukasawa
takumifukasawa / AzureKinectConnectionChecker.cs
Created March 18, 2020 15:11
Check AzureKinect's Connection on Unity.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Microsoft.Azure.Kinect.Sensor;
using System;
public class KinectTest : MonoBehaviour
{
private Device device = null;
@takumifukasawa
takumifukasawa / replace-link-preload-props.js
Last active June 6, 2020 11:13
【GatsbyJS】Basic認証下でiOS safariからページを開くとリロードする度に認証を求められる場合の対処法 https://takumifukasawa.hatenablog.com/entry/gatsby-ios-safari-basic-auth
@takumifukasawa
takumifukasawa / timeline.js
Created June 10, 2020 10:13
経過時間ごとに関数を発火させるタイムライン関数
// # arg
// sequence: array
// [
// { time: number, exec: function },
// { time: number, exec: function },
// ...
// ]
//
// # usage
// const sampleTimeline = timeline(sequence);
@takumifukasawa
takumifukasawa / easingFunctions.js
Created June 10, 2020 10:17
ES6: exports for eacheach easing functions
/*
* original is skylerspark's easing functions.
* ref: https://gist.github.com/gre/1650294#gistcomment-3141432
*/
// no easing, no acceleration
export const linear = t => {
return t
}
// accelerating from zero velocity
@takumifukasawa
takumifukasawa / webFontLoader.js
Created June 10, 2020 10:49
ES6: custom webfont loader promise
// families: array
// urls: array
export async function customWebFontLoader({ families, urls }) {
return new Promise((resolve, reject) => {
WebFont.load({
custom: {
families,
urls,
},
active: () => {
@takumifukasawa
takumifukasawa / randomPickFromCache.js
Created June 10, 2020 10:57
ES6: Prepare the cache so that the same elements are not extracted
/*
* # usage
* const pool = randomSampleInCache(array, 5);
* const elem = pool.pick();
*
* TODO: clamp cacheNum in [0 ... list.length]
*/
import { difference, sample, range } from "lodash"