This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Object > Set Mesh Origin to Bottom | |
# A python script compatible with Blender 2.90 API. | |
# | |
# Takes the currently selected mesh-type objects, | |
# and moves the object origin location to the "bottom" of the mesh. | |
# The bottom is calculated as the average X and Y and the minimum Z. | |
# | |
# This is useful in 3D Printing, for example, when importing published | |
# STL geometry files. Typically the bottom of the shape is flat and |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ReplaceMaterial.cs | |
// | |
using System.Collections.Generic; | |
using UnityEngine; | |
namespace Screenplay | |
{ | |
// | |
// When enabled, all materials (or all materials matching given original) | |
// in this object are replaced with another material. When disabled, the |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// QuitAppOnEscape.cs | |
// | |
using UnityEngine; | |
#if ENABLE_INPUT_SYSTEM | |
using UnityEngine.InputSystem; | |
#endif | |
namespace Screenplay.Workbench | |
{ | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// assembly == the gameobject root to move | |
// feature == the specific place on the assembly to align with station | |
// station == the reference to which the assembly feature will align | |
// flip == an additional rotation applied to the assembly pivoting | |
// around the feature (e.g., 180º Y flip) | |
// | |
public static void AlignAtFeature( | |
Transform assembly, Transform feature, Transform station, | |
Quaternion flip) | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Thing.cs | |
// Automatically indexed MonoBehaviour for searching by type. | |
// | |
using System; | |
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
namespace Things | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Given a float f, return next possible representation. | |
// This method will have issues around +/-maxfloat, +/-infinity, NaN. | |
// | |
public static float NextULP(float f, int ulp=1) | |
{ | |
int bits = System.BitConverter.SingleToInt32Bits(f); | |
return System.BitConverter.Int32BitsToSingle(bits + ulp); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static Color HexRGB(uint hexcode) | |
{ | |
// e.g., 0xFF0033 | |
float b = (hexcode & 0xFF) / 255f; | |
float g = ((hexcode >> 8) & 0xFF) / 255f; | |
float r = ((hexcode >> 16) & 0xFF) / 255f; | |
return new Color(r, g, b); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static Quaternion YawPitchRoll(float yaw, float pitch, float roll) | |
{ | |
Quaternion heading = Quaternion.AngleAxis(yaw, Vector3.up); | |
Quaternion attitude = Quaternion.AngleAxis(pitch, Vector3.right); | |
Quaternion bank = Quaternion.AngleAxis(roll, Vector3.forward); | |
return heading * attitude * bank; | |
// transform.rotation *= YawPitchRoll(yaw, pitch, roll); | |
///// transform.rotation *= Quaternion.Euler(pitch, yaw, roll); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static Vector3[] DistributePointsOnUnitSphere(int count) | |
{ | |
Assert.IsTrue(count > 0); | |
Vector3[] points = new Vector3[count]; | |
// The Fibonacci Sphere algorithm. | |
float phi = Mathf.PI * (Mathf.Sqrt(5f) - 1f); | |
float descent = 2f / (float)(count-1); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static void DrawPolygon(Vector3 center, Vector3 axis, float radius, | |
int sides, Color color=default, float duration=0f, bool depthTest=true) | |
{ | |
//duration = Mathf.Max(0.001f, duration); | |
Vector3 start = Limb(axis); | |
Vector3 prior = start * radius; | |
if (sides < 3) sides = 3; | |
float step = 360f/sides; | |
for (float f = step; f <= 360f; f += step) |
OlderNewer