wireframer, !pivoting to pixelgon base

This commit is contained in:
spatialfree 2021-01-21 00:09:06 -08:00
parent 1a6da03ae8
commit 91233f31dd
23 changed files with 530 additions and 151 deletions

View file

@ -1 +1 @@
{"vectors":[{"x":0.0,"y":0.0,"z":0.0},{"x":-0.30000001192092898,"y":-0.30000001192092898,"z":0.0},{"x":-0.30000001192092898,"y":0.30000001192092898,"z":0.0},{"x":0.30000001192092898,"y":-0.4300000071525574,"z":0.0},{"x":0.0,"y":0.0,"z":0.0}],"quads":[1,2,3]}
{"vectors":[{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.06062793359160423,"z":0.02103845402598381},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0,"y":0.06062793359160423,"z":0.02103845402598381},{"x":0.0,"y":0.06098935008049011,"z":-0.01880388893187046},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0,"y":0.06098935008049011,"z":-0.01880388893187046},{"x":-0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0,"y":0.06098935008049011,"z":-0.01880388893187046},{"x":0.0642528086900711,"y":0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":-0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.0,"y":0.0,"z":0.0},{"x":0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":-0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.08207684755325318,"y":-0.049057889729738238,"z":0.06267283111810684},{"x":0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":0.08207684755325318,"y":-0.049057889729738238,"z":0.06267283111810684},{"x":-0.08207684755325318,"y":-0.049057889729738238,"z":0.06267283111810684},{"x":-0.0642528086900711,"y":-0.028338845819234849,"z":0.04228335991501808},{"x":0.0,"y":0.0,"z":0.0},{"x":-0.08207684755325318,"y":-0.049057889729738238,"z":0.06267283111810684},{"x":-0.08207684755325318,"y":-0.049057889729738238,"z":-0.06267283111810684},{"x":0.0,"y":0.0,"z":0.0},{"x":0.0,"y":0.06062793359160423,"z":0.02103845402598381},{"x":0.0,"y":0.09548406302928925,"z":0.02400105446577072},{"x":0.0,"y":0.11596781760454178,"z":0.025321519002318383},{"x":0.037337470799684528,"y":0.09656370431184769,"z":0.027150919660925866},{"x":0.0,"y":0.09548406302928925,"z":0.02400105446577072},{"x":0.0,"y":0.0,"z":0.0}],"quads":[]}

File diff suppressed because one or more lines are too long

View file

@ -74,6 +74,6 @@ Material:
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _Dark: {r: 0.4528302, g: 0.4528302, b: 0.4528302, a: 1}
- _Dark: {r: 0.48, g: 0.48, b: 0.48, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Mid: {r: 0.5943396, g: 0.5943396, b: 0.5943396, a: 1}
- _Mid: {r: 0.52, g: 0.52, b: 0.52, a: 1}

View file

@ -21,12 +21,16 @@
struct appdata
{
float4 vertex : POSITION;
float3 normal : NORMAL;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
float4 worldPos : TEXCOORD1;
float3 normal : TEXCOORD2;
float4 color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID // necessary only if you want to access instanced properties in fragment Shader.
};
@ -42,13 +46,23 @@
UNITY_TRANSFER_INSTANCE_ID(v, o); // necessary only if you want to access instanced properties in the fragment Shader.
o.vertex = UnityObjectToClipPos(v.vertex);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
o.normal = UnityObjectToWorldNormal(v.normal);
o.color = float4(1,1,1,1);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(i); // necessary only if any instanced properties are going to be accessed in the fragment Shader.
return UNITY_ACCESS_INSTANCED_PROP(Props, _Color);
// UNITY_SETUP_INSTANCE_ID(i); // necessary only if any instanced properties are going to be accessed in the fragment Shader.
// UNITY_ACCESS_INSTANCED_PROP(Props, _Color);
float t = 1 + clamp(dot(normalize(UnityWorldSpaceViewDir(i.worldPos)), i.normal), -1, 1);
t = t / 2;
t = t - 0.8;
// float t = abs(i.worldPos.x) + abs(i.worldPos.y) + abs(i.worldPos.z);
// t = t / 1;
return i.color * t;
}
ENDCG
}

View file

@ -138,7 +138,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &112711654
Transform:
m_ObjectHideFlags: 0
@ -174,6 +174,10 @@ MonoBehaviour:
down: 0
held: 0
up: 0
grip:
down: 0
held: 0
up: 0
one:
down: 0
held: 0
@ -187,6 +191,10 @@ MonoBehaviour:
down: 0
held: 0
up: 0
grip:
down: 0
held: 0
up: 0
one:
down: 0
held: 0
@ -197,14 +205,10 @@ MonoBehaviour:
up: 0
twistCursor: {x: 0, y: 0, z: 0}
stretchCursor: {x: 0, y: 0, z: 0}
dragCursor: {x: 0, y: 0, z: 0}
pixelgon:
vectors:
- {x: 0, y: 0, z: 0}
- {x: -0.3, y: -0.3, z: 0}
- {x: -0.3, y: 0.3, z: 0}
- {x: 0.3, y: -0.43, z: 0}
- {x: 0, y: 0, z: 0}
quads: 010000000200000003000000
vectors: []
quads:
assetSpace:
folderPath: C:/dofdev/Pixelgon/Assets/AssetSpace
name: draft
@ -230,7 +234,7 @@ MonoBehaviour:
structure: {x: 0, y: 0, z: 0}
render:
polyVector:
vectorScale: 0.2
vectorScale: 0.05
meshJoint: {fileID: -5658524651756503351, guid: dc6240c783ee7974e8811c10e071e0cc,
type: 3}
meshVector: {fileID: -3149996399109167922, guid: dc6240c783ee7974e8811c10e071e0cc,
@ -260,7 +264,7 @@ MonoBehaviour:
type: 3}
meshToolEraser: {fileID: -2868880653068191277, guid: dc6240c783ee7974e8811c10e071e0cc,
type: 3}
scene: 0
scene: 1
--- !u!1 &162671503
GameObject:
m_ObjectHideFlags: 0
@ -276,7 +280,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &162671504
Transform:
m_ObjectHideFlags: 0
@ -329,7 +333,7 @@ Camera:
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.5, g: 0.5, b: 0.5, a: 0}
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
@ -356,7 +360,7 @@ Camera:
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowMSAA: 0
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
@ -392,8 +396,8 @@ MonoBehaviour:
useRecommendedMSAALevel: 1
_monoscopic: 0
enableAdaptiveResolution: 0
minRenderScale: 0.7
maxRenderScale: 1
minRenderScale: 2
maxRenderScale: 2
_headPoseRelativeOffsetRotation: {x: 0, y: 0, z: 0}
_headPoseRelativeOffsetTranslation: {x: 0, y: 0, z: 0}
profilerTcpPort: 32419
@ -429,7 +433,7 @@ MonoBehaviour:
usePositionTracking: 1
useRotationTracking: 1
useIPDInPositionTracking: 1
resetTrackerOnLoad: 0
resetTrackerOnLoad: 1
AllowRecenter: 1
_reorientHMDOnControllerRecenter: 1
LateControllerUpdate: 1
@ -623,6 +627,164 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 913361947}
m_Mesh: {fileID: 4300012, guid: 84c37137326e7b943a87be7ae2a7ea19, type: 3}
--- !u!1 &1162738135
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1162738138}
- component: {fileID: 1162738137}
- component: {fileID: 1162738136}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!23 &1162738136
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162738135}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 2ed3922fd675db6428789df9f6b481aa, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &1162738137
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162738135}
m_Mesh: {fileID: -3149996399109167922, guid: dc6240c783ee7974e8811c10e071e0cc, type: 3}
--- !u!4 &1162738138
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1162738135}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1257753975
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1257753978}
- component: {fileID: 1257753977}
- component: {fileID: 1257753976}
m_Layer: 0
m_Name: Sphere (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!23 &1257753976
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1257753975}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 2ed3922fd675db6428789df9f6b481aa, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &1257753977
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1257753975}
m_Mesh: {fileID: -3149996399109167922, guid: dc6240c783ee7974e8811c10e071e0cc, type: 3}
--- !u!4 &1257753978
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1257753975}
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
m_LocalPosition: {x: -0.5, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
--- !u!1 &1464358247
GameObject:
m_ObjectHideFlags: 0

View file

@ -33,8 +33,8 @@ public class AssetSpace
string[] filePaths = Directory.GetFiles(folderPath, "*.json", SearchOption.TopDirectoryOnly);
for (int i = 0; i < filePaths.Length; i++)
{
name = Path.GetFileNameWithoutExtension(filePaths[i]);
loadedNames.Add(name);
string filename = Path.GetFileNameWithoutExtension(filePaths[i]);
loadedNames.Add(filename);
Pixelgon pgon = Load();
Mesh mesh = new Mesh();
mesh = polyVector.ToMesh(pgon.vectors);
@ -42,7 +42,7 @@ public class AssetSpace
asset.pos = Enumerable.Repeat(Vector3.zero, frames).ToArray();
asset.rot = Enumerable.Repeat(Quaternion.identity, frames).ToArray();
asset.mesh = mesh;
assets.Add(name, asset);
assets.Add(filename, asset);
}
// load draft.space file

View file

@ -17,6 +17,8 @@ public class Input
public Vector3 twistCursor;
[HideInInspector]
public Vector3 stretchCursor;
[HideInInspector]
public Vector3 dragCursor;
Vector3 mainCalibDir;
Quaternion mainCalibRot;
@ -25,11 +27,11 @@ public class Input
{
oculusInject.Frame(this);
rig.position = -head.localPosition; // that zeros us out for an offset
rig.position += head.localRotation * Vector3.back * 0.666f;
// Calibrate/Recenter
if (offCon.one.held) // temporary mapping
{
rig.position = -head.localPosition; // that zeros us out for an offset
rig.position += head.localRotation * Vector3.back * 0.666f;
mainCalibDir = Vector3.zero - WorldPos(mainCon).normalized;
mainCalibRot = mainCon.physical.Rot();
@ -50,6 +52,18 @@ public class Input
Quaternion rot = mainCon.physical.Rot() * Quaternion.Inverse(mainCalibRot);
twistCursor = WorldPos(mainCon) + rot * mainCalibDir * calibDist * zValue;
if (mainCon.grip.held)
{
dragCursor += mainCon.physical.PosVel() * 3 * Time.deltaTime;
// clamp
// oriel class !
// new Vector3(0.6f, 0.4f, 0.4f);
dragCursor.x = Mathf.Clamp(dragCursor.x, -0.3f, 0.3f);
dragCursor.y = Mathf.Clamp(dragCursor.y, -0.2f, 0.2f);
dragCursor.z = Mathf.Clamp(dragCursor.z, -0.2f, 0.2f);
}
float stretch = Vector3.Distance(WorldPos(mainCon), WorldPos(offCon));
stretchCursor = WorldPos(mainCon) + mainCon.physical.Rot() * Vector3.forward * stretch * 3;
@ -67,7 +81,7 @@ public class Input
public class Con
{
public Physical physical;
public Btn trigger, one, two;
public Btn trigger, grip, one, two;
[Serializable]
public class Btn
@ -143,6 +157,18 @@ public class OculusInject
con.trigger.held = false;
}
con.grip.down = con.grip.up = false;
if (OVRInput.Get(OVRInput.Button.PrimaryHandTrigger, touchCon))
{
if (!con.grip.held) { con.grip.down = true; }
con.grip.held = true;
}
else
{
if (con.grip.held) { con.grip.up = true; }
con.grip.held = false;
}
con.one.down = con.one.up = false;
if (OVRInput.Get(OVRInput.Button.One, touchCon))
{

View file

@ -180,17 +180,97 @@ public static class StaticMethods
// idk becuase this snapping system will be reused in tools and quads
// scalable 0-1 * design (0 == no snapping) set parameter in ORIEL UI
// min distance to handle 2+ conflicting snaps
if (dist < 0.02f)
pC.x = pA.x;
pC.y = pA.y;
pC.z = Mathf.Clamp(pC.z, pA.z, pB.z);
return perspective * pC;
// min distance to handle 2+ conflicting snaps ?
}
public static Vector3 Snap(List<List<Vector3>> lists, Vector3 cursorPos)
{
Vector3 closestJoint = Vector3.one * 1000;
Vector3 closestEdge = Vector3.one * 1000;
Vector3 closestMirrorJoint = Vector3.one * 1000;
for (int l = 0; l < lists.Count; l++)
{
pC.x = pA.x;
pC.y = pA.y;
int length = 0;
for (int i = 0; i < lists[l].Count; i++)
{
if (lists[l][i] == Vector3.zero)
{
length = 0;
continue;
}
pC.z = Mathf.Clamp(pC.z, pA.z, pB.z);
if (Vector3.Distance(cursorPos, lists[l][i]) < Vector3.Distance(cursorPos, closestJoint))
{
closestJoint = lists[l][i];
}
return perspective * pC;
if (length > 0)
{
Vector3 edgeSnapPos = StaticMethods.EdgeSnap(lists[l][i - 1], lists[l][i], cursorPos);
if (Vector3.Distance(cursorPos, edgeSnapPos) < Vector3.Distance(cursorPos, closestEdge))
{
closestEdge = edgeSnapPos;
}
}
Vector3 xMirrorJoint = lists[l][i];
xMirrorJoint.x *= -1;
if (Vector3.Distance(cursorPos, xMirrorJoint) < Vector3.Distance(cursorPos, closestMirrorJoint))
{
closestMirrorJoint = xMirrorJoint;
}
Vector3 yMirrorJoint = lists[l][i];
yMirrorJoint.y *= -1;
if (Vector3.Distance(cursorPos, yMirrorJoint) < Vector3.Distance(cursorPos, closestMirrorJoint))
{
closestMirrorJoint = yMirrorJoint;
}
Vector3 zMirrorJoint = lists[l][i];
zMirrorJoint.z *= -1;
if (Vector3.Distance(cursorPos, zMirrorJoint) < Vector3.Distance(cursorPos, closestMirrorJoint))
{
closestMirrorJoint = zMirrorJoint;
}
length++;
}
}
return c;
Vector3 xMiddleJoint = cursorPos;
xMiddleJoint.x = 0;
if (Vector3.Distance(cursorPos, xMiddleJoint) < Vector3.Distance(cursorPos, closestMirrorJoint))
{
closestMirrorJoint = xMiddleJoint;
}
Vector3 snapPos = cursorPos;
if (Vector3.Distance(cursorPos, closestJoint) < 0.015f) // snap dist
{
snapPos = closestJoint;
}
else if (Vector3.Distance(cursorPos, closestEdge) < 0.015f)
{
snapPos = closestEdge;
}
else if (Vector3.Distance(cursorPos, closestMirrorJoint) < 0.015f)
{
snapPos = closestMirrorJoint;
}
// else if (vector.Count > 1) //weird
// {
// snapPos = StaticMethods.DirSnap(vector[vector.Count - 2], cursorPos);
// }
return snapPos;
}
}

View file

@ -1,44 +0,0 @@
using UnityEngine;
using UnityEditor.Recorder;
[RequireComponent(typeof(Camera))]
public class Recorder : MonoBehaviour
{
// Make this a prefab, that way you can move it between scenes
[Header("References")]
public Mesh mesh;
public MeshRenderer viewFinderRend;
Camera cam;
RecorderController recorder;
void Start()
{
cam = GetComponent<Camera>();
RenderTexture viewTex = new RenderTexture(512, 256, 16, RenderTextureFormat.Default);
viewTex.Create();
viewFinderRend.material.mainTexture = cam.targetTexture = viewTex;
RecorderControllerSettings settings = new RecorderControllerSettings();
recorder = new RecorderController(settings);
recorder.PrepareRecording();
}
void Update()
{
// Need to interact spatially with it, so buttons on the camera?
// nah to imprecise? esp if the camera is moving...
// then how do we get it to play nice with existing controls...
// its just one button for now so we can squeeze it in somewhere
// Hook up to unity recorder system (only works in editor :/)
// Record
// recorder.StartRecording();
// End
// recorder.StopRecording();
// Pause (nice in theory annoying in practice *need to trim and adjust clips)
}
}

View file

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e19de3c166899cf46b2aa22dee06446c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -235,14 +235,20 @@ public class Render
matCursor, 0
);
Graphics.DrawMesh(meshCursor,
input.twistCursor,
Quaternion.identity,
matCursor, 0
);
// Graphics.DrawMesh(meshCursor,
// input.twistCursor,
// Quaternion.identity,
// matCursor, 0
// );
// Graphics.DrawMesh(meshCursor,
// input.stretchCursor,
// Quaternion.identity,
// matCursor, 0
// );
Graphics.DrawMesh(meshCursor,
input.stretchCursor,
input.dragCursor,
Quaternion.identity,
matCursor, 0
);

View file

@ -27,7 +27,7 @@ public class ToolEditVector
public void Frame(Input input, Pixelgon pixelgon)
{
cursorPos = input.twistCursor;
Vector3 rawCursorPos = cursorPos = input.dragCursor;
if (!selecting)
{

View file

@ -19,7 +19,7 @@ public class ToolEraser
public void Frame(Input input, Pixelgon pixelgon)
{
cursorPos = input.twistCursor;
Vector3 rawCursorPos = cursorPos = input.dragCursor;
if (input.mainCon.trigger.held)
{
@ -35,13 +35,10 @@ public class ToolEraser
{
if (length > 0)
{
cursorPos = StaticMethods.EdgeSnap(
pixelgon.vectors[i - 1],
pixelgon.vectors[i],
input.twistCursor
);
if (cursorPos != input.twistCursor)
Vector3 edgeSnapPos = StaticMethods.EdgeSnap(pixelgon.vectors[i - 1], pixelgon.vectors[i], rawCursorPos);
if (Vector3.Distance(rawCursorPos, edgeSnapPos) < 0.015f)
{
cursorPos = edgeSnapPos;
if (cursorPos == pixelgon.vectors[i - 1])
{
selected.Add(i - 1);

View file

@ -19,50 +19,14 @@ public class ToolNewVector
public void Frame(Input input, Pixelgon pixelgon)
{
bool snapped = false;
cursorPos = input.twistCursor;
Vector3 rawCursorPos = cursorPos = input.dragCursor;
int length = 0;
for (int i = 0; i < pixelgon.vectors.Count; i++)
{
if (pixelgon.vectors[i] == Vector3.zero)
{
length = 0;
}
else
{
if (length > 0)
{
cursorPos = StaticMethods.EdgeSnap(
pixelgon.vectors[i - 1],
pixelgon.vectors[i],
input.twistCursor
);
if (cursorPos != input.twistCursor)
{
// how to switch between edge snap and direction snap
// can you have them both happening at the same time?
// is it a priority based system?
snapped = true;
break;
}
}
List<List<Vector3>> lists = new List<List<Vector3>> {
pixelgon.vectors, vector.GetRange(0, Mathf.Max(vector.Count - 1, 0))
};
length++;
}
}
if (!snapped && vector.Count > 1)
{
cursorPos = StaticMethods.DirSnap(vector[vector.Count - 2], cursorPos);
if (cursorPos != input.twistCursor)
{
// how to switch between edge snap and direction snap
// can you have them both happening at the same time?
// is it a priority based system?
snapped = true;
}
}
// wow this class is so much cleaner lool
cursorPos = StaticMethods.Snap(lists, rawCursorPos);
if (input.mainCon.trigger.down)
{

Binary file not shown.

BIN
Assets/digdugdraft.blend1 Normal file

Binary file not shown.

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f67f7e4eb69cd9c43b87e150f1a55885
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

175
Content/pixelgon-logo.svg Normal file
View file

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="800"
height="400"
viewBox="0 0 800 400.00002"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="pixelgon-logo.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="399.38198"
inkscape:cy="196.15401"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1280"
inkscape:window-height="667"
inkscape:window-x="-8"
inkscape:window-y="22"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid886"
empspacing="4"
spacingx="8.0000001"
spacingy="8.0000001"
color="#9f9f9f"
opacity="0.1254902"
empcolor="#9f9f9f"
empopacity="0.25098039" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-722.51965)">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 192,898.51965 v 79.99997 h 15.99999 v -31.99999 h 31.99999 v -47.99998 z m 15.99999,16 h 16 v 15.99999 h -16 z"
id="path958"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 255.99997,914.51963 v 31.99998 h 16 v -31.99998 z"
id="path960"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 287.99996,898.51963 v 16 h 16 v 15.99999 h -16 v 15.99999 h 16 v -15.99999 h 15.99999 v 15.99999 h 15.99999 v -15.99999 h -15.99999 v -15.99999 h 15.99999 v -16 h -15.99999 v 16 h -15.99999 v -16 z"
id="path962"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 415.99991,882.51964 v 63.99997 h 15.99999 v -63.99997 z"
id="path966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 447.9999,898.51963 v 47.99998 h 31.99999 v 16 h -16 v 15.99999 h 31.99999 v -15.99999 -63.99998 z m 15.99999,16 h 16 v 15.99999 h -16 z"
id="path968"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 511.99987,898.51963 v 47.99998 h 47.99998 v -47.99998 z m 16,16 h 15.99999 v 15.99999 h -15.99999 z"
id="path970"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 575.99985,898.51961 v 47.99998 h 15.99999 v -31.99998 h 16 v 31.99998 h 15.99999 v -47.99998 h -15.99999 -16 z"
id="path975"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccc" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path999"
d="m 255.99997,882.51964 v 15.99999 h 16 v -15.99999 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.99999917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 351.99994,898.51965 v 47.99998 h 31.99998 v -15.99999 h -15.99999 v -15.99999 h 15.99999 v 15.99999 h 16 v -31.99999 z"
id="path1006"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 447.9999,898.51963 15.99999,16"
id="path1011"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="M 463.99989,930.51962 447.9999,946.51961"
id="path1013"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 479.99989,914.51963 15.99999,-16"
id="path1015"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 478.99717,930.51962 v 15.99999"
id="path1017"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 479.99989,962.51961 15.99999,15.99999"
id="path1019"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 511.99987,898.51963 16,16"
id="path1021"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 559.99985,898.51963 -15.99999,16"
id="path1023"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 543.99986,930.51962 15.99999,15.99999"
id="path1025"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 527.99987,930.51962 -16,15.99999"
id="path1027"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 575.99985,898.51963 16.00001,16"
id="path1029"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.99999917px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 607.99986,914.51963 15.99999,-16"
id="path1031"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -37,6 +37,9 @@ GraphicsSettings:
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 4800000, guid: cef7c032a6d36e54eb4fe2df853dfca4, type: 3}
- {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}

View file

@ -42,8 +42,8 @@ PlayerSettings:
m_SplashScreenLogos: []
m_VirtualRealitySplashScreen: {fileID: 0}
m_HolographicTrackingLossScreen: {fileID: 0}
defaultScreenWidth: 1024
defaultScreenHeight: 768
defaultScreenWidth: 800
defaultScreenHeight: 600
defaultScreenWidthWeb: 960
defaultScreenHeightWeb: 600
m_StereoRenderingPath: 0
@ -91,7 +91,7 @@ PlayerSettings:
xboxEnableFitness: 0
visibleInBackground: 1
allowFullscreenSwitch: 1
fullscreenMode: 1
fullscreenMode: 3
xboxSpeechDB: 0
xboxEnableHeadOrientation: 0
xboxEnableGuest: 0
@ -153,7 +153,7 @@ PlayerSettings:
v2Signing: 1
enable360StereoCapture: 0
isWsaHolographicRemotingEnabled: 0
enableFrameTimingStats: 0
enableFrameTimingStats: 1
useHDRDisplay: 0
D3DHDRBitDepth: 0
m_ColorGamuts: 00000000

View file

@ -21,7 +21,7 @@ QualitySettings:
skinWeights: 255
textureQuality: 0
anisotropicTextures: 2
antiAliasing: 2
antiAliasing: 0
softParticles: 1
softVegetation: 1
realtimeReflectionProbes: 1