Skip to content

Commit 578bfbe

Browse files
committed
__init__
1 parent f385ef0 commit 578bfbe

File tree

91 files changed

+6592
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+6592
-0
lines changed

4D Engine Unity/.gitignore

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# This .gitignore file should be placed at the root of your Unity project directory
2+
#
3+
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
4+
#
5+
/[Ll]ibrary/
6+
/[Tt]emp/
7+
/[Oo]bj/
8+
/[Bb]uild/
9+
/[Bb]uilds/
10+
/[Ll]ogs/
11+
/[Uu]ser[Ss]ettings/
12+
13+
# MemoryCaptures can get excessive in size.
14+
# They also could contain extremely sensitive data
15+
/[Mm]emoryCaptures/
16+
17+
# Recordings can get excessive in size
18+
/[Rr]ecordings/
19+
20+
# Uncomment this line if you wish to ignore the asset store tools plugin
21+
# /[Aa]ssets/AssetStoreTools*
22+
23+
# Autogenerated Jetbrains Rider plugin
24+
/[Aa]ssets/Plugins/Editor/JetBrains*
25+
26+
# Visual Studio cache directory
27+
.vs/
28+
29+
# Gradle cache directory
30+
.gradle/
31+
32+
# Autogenerated VS/MD/Consulo solution and project files
33+
ExportedObj/
34+
.consulo/
35+
*.csproj
36+
*.unityproj
37+
*.sln
38+
*.suo
39+
*.tmp
40+
*.user
41+
*.userprefs
42+
*.pidb
43+
*.booproj
44+
*.svd
45+
*.pdb
46+
*.mdb
47+
*.opendb
48+
*.VC.db
49+
50+
# Unity3D generated meta files
51+
*.pidb.meta
52+
*.pdb.meta
53+
*.mdb.meta
54+
55+
# Unity3D generated file on crash reports
56+
sysinfo.txt
57+
58+
# Builds
59+
*.apk
60+
*.aab
61+
*.unitypackage
62+
*.app
63+
64+
# Crashlytics generated file
65+
crashlytics-build.properties
66+
67+
# Packed Addressables
68+
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
69+
70+
# Temporary auto-generated Android Assets
71+
/[Aa]ssets/[Ss]treamingAssets/aa.meta
72+
/[Aa]ssets/[Ss]treamingAssets/aa/*

4D Engine Unity/.vsconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"version": "1.0",
3+
"components": [
4+
"Microsoft.VisualStudio.Workload.ManagedGame"
5+
]
6+
}

4D Engine Unity/Assets/Editor.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
#if UNITY_EDITOR
2+
using UnityEditor;
3+
using UnityEngine;
4+
5+
[CustomEditor(typeof(RaymarchRenderer))]
6+
public class PropertiesEditor : Editor
7+
{
8+
public override void OnInspectorGUI()
9+
{
10+
base.OnInspectorGUI();
11+
12+
RaymarchRenderer renderer = (RaymarchRenderer)target;
13+
14+
/*if (renderer.dimensions == null)
15+
return;*/
16+
if (GUILayout.Button("Create New Dimensions"))
17+
renderer.dimensions = CreateShapeDimensionsAsset();
18+
19+
if (renderer.dimensions == null)
20+
return;
21+
22+
EditorGUILayout.Space();
23+
EditorGUILayout.LabelField("Shape Dimensions", EditorStyles.boldLabel);
24+
25+
switch (renderer.shape)
26+
{
27+
case RaymarchRenderer.Shape.Shpere:
28+
renderer.dimensions.sphereRadius = EditorGUILayout.FloatField("Radius", renderer.dimensions.sphereRadius);
29+
break;
30+
case RaymarchRenderer.Shape.Torus:
31+
renderer.dimensions.torusThickness = EditorGUILayout.Vector2Field("Thickness", renderer.dimensions.torusThickness);
32+
break;
33+
case RaymarchRenderer.Shape.CappedTorus:
34+
renderer.dimensions.cappedTorusRo = EditorGUILayout.FloatField("Ro", renderer.dimensions.cappedTorusRo);
35+
renderer.dimensions.cappedTorusRi = EditorGUILayout.FloatField("Ri", renderer.dimensions.cappedTorusRi);
36+
renderer.dimensions.cappedTorusThickness = EditorGUILayout.Vector2Field("Thickness", renderer.dimensions.cappedTorusThickness);
37+
break;
38+
case RaymarchRenderer.Shape.Link:
39+
renderer.dimensions.linkSeparation = EditorGUILayout.FloatField("Separation", renderer.dimensions.linkSeparation);
40+
renderer.dimensions.linkRadius = EditorGUILayout.FloatField("Radius", renderer.dimensions.linkRadius);
41+
renderer.dimensions.linkThickness = EditorGUILayout.FloatField("Thickness", renderer.dimensions.linkThickness);
42+
break;
43+
case RaymarchRenderer.Shape.Cone:
44+
renderer.dimensions.coneTan = EditorGUILayout.Vector2Field("Tan", renderer.dimensions.coneTan);
45+
renderer.dimensions.coneHeight = EditorGUILayout.FloatField("Height", renderer.dimensions.coneHeight);
46+
break;
47+
case RaymarchRenderer.Shape.InfCone:
48+
renderer.dimensions.infConeTan = EditorGUILayout.Vector2Field("Tan", renderer.dimensions.infConeTan);
49+
break;
50+
case RaymarchRenderer.Shape.Plane:
51+
renderer.dimensions.planeNormal = EditorGUILayout.Vector3Field("Normal", renderer.dimensions.planeNormal);
52+
renderer.dimensions.planeDistance = EditorGUILayout.FloatField("Distance", renderer.dimensions.planeDistance);
53+
break;
54+
case RaymarchRenderer.Shape.HexPrism:
55+
renderer.dimensions.hexPrismH = EditorGUILayout.Vector2Field("H", renderer.dimensions.hexPrismH);
56+
break;
57+
case RaymarchRenderer.Shape.TriPrism:
58+
renderer.dimensions.triPrismH = EditorGUILayout.Vector2Field("H", renderer.dimensions.triPrismH);
59+
break;
60+
case RaymarchRenderer.Shape.Capsule:
61+
renderer.dimensions.capsuleA = EditorGUILayout.Vector3Field("A", renderer.dimensions.capsuleA);
62+
renderer.dimensions.capsuleB = EditorGUILayout.Vector3Field("B", renderer.dimensions.capsuleB);
63+
renderer.dimensions.capsuleR = EditorGUILayout.FloatField("R", renderer.dimensions.capsuleR);
64+
break;
65+
case RaymarchRenderer.Shape.InfiniteCylinder:
66+
renderer.dimensions.infCylC = EditorGUILayout.Vector3Field("C", renderer.dimensions.infCylC);
67+
break;
68+
case RaymarchRenderer.Shape.Box:
69+
renderer.dimensions.boxSize = EditorGUILayout.FloatField("Size", renderer.dimensions.boxSize);
70+
break;
71+
case RaymarchRenderer.Shape.RoundBox:
72+
renderer.dimensions.roundBoxSize = EditorGUILayout.FloatField("Size", renderer.dimensions.roundBoxSize);
73+
renderer.dimensions.roundBoxRoundFactor = EditorGUILayout.FloatField("Round Factor", renderer.dimensions.roundBoxRoundFactor);
74+
break;
75+
case RaymarchRenderer.Shape.RoundedCylinder:
76+
renderer.dimensions.roundCylRa = EditorGUILayout.FloatField("Ra", renderer.dimensions.roundCylRa);
77+
renderer.dimensions.roundCylRb = EditorGUILayout.FloatField("Ra", renderer.dimensions.roundCylRb);
78+
renderer.dimensions.roundCylH = EditorGUILayout.FloatField("Ra", renderer.dimensions.roundCylH);
79+
break;
80+
case RaymarchRenderer.Shape.CappedCone:
81+
renderer.dimensions.capConeH = EditorGUILayout.FloatField("H", renderer.dimensions.capConeH);
82+
renderer.dimensions.capConeR1 = EditorGUILayout.FloatField("R1", renderer.dimensions.capConeR1);
83+
renderer.dimensions.capConeR1 = EditorGUILayout.FloatField("R2", renderer.dimensions.capConeR2);
84+
break;
85+
case RaymarchRenderer.Shape.BoxFrame:
86+
renderer.dimensions.boxFrameSize = EditorGUILayout.Vector3Field("Size", renderer.dimensions.boxFrameSize);
87+
renderer.dimensions.boxFrameCavity = EditorGUILayout.FloatField("Cavity", renderer.dimensions.boxFrameCavity);
88+
break;
89+
case RaymarchRenderer.Shape.SolidAngle:
90+
renderer.dimensions.solidAngleC = EditorGUILayout.Vector2Field("C", renderer.dimensions.solidAngleC);
91+
renderer.dimensions.solidAngleRa = EditorGUILayout.FloatField("Ra", renderer.dimensions.solidAngleRa);
92+
break;
93+
case RaymarchRenderer.Shape.CutSphere:
94+
renderer.dimensions.cutSphereR = EditorGUILayout.FloatField("R", renderer.dimensions.cutSphereR);
95+
renderer.dimensions.cutSphereH = EditorGUILayout.FloatField("H", renderer.dimensions.cutSphereH);
96+
break;
97+
case RaymarchRenderer.Shape.CutHollowSphere:
98+
renderer.dimensions.cutSphereR = EditorGUILayout.FloatField("R", renderer.dimensions.cutSphereR);
99+
renderer.dimensions.cutSphereH = EditorGUILayout.FloatField("H", renderer.dimensions.cutSphereH);
100+
break;
101+
case RaymarchRenderer.Shape.DeathStar:
102+
renderer.dimensions.deathStarRa = EditorGUILayout.FloatField("Ra", renderer.dimensions.deathStarRa);
103+
renderer.dimensions.deathStarRb = EditorGUILayout.FloatField("Rb", renderer.dimensions.deathStarRb);
104+
renderer.dimensions.deathStarD = EditorGUILayout.FloatField("D", renderer.dimensions.deathStarD);
105+
break;
106+
case RaymarchRenderer.Shape.RoundCone:
107+
renderer.dimensions.roundConeR1 = EditorGUILayout.FloatField("R1", renderer.dimensions.roundConeR1);
108+
renderer.dimensions.roundConeR2 = EditorGUILayout.FloatField("R2", renderer.dimensions.roundConeR2);
109+
renderer.dimensions.roundConeH = EditorGUILayout.FloatField("H", renderer.dimensions.roundConeH);
110+
break;
111+
case RaymarchRenderer.Shape.Ellipsoid:
112+
renderer.dimensions.ellipsoidRadius = EditorGUILayout.Vector3Field("Radius", renderer.dimensions.ellipsoidRadius);
113+
break;
114+
case RaymarchRenderer.Shape.Rhombus:
115+
renderer.dimensions.rhombusLa = EditorGUILayout.FloatField("La", renderer.dimensions.rhombusLa);
116+
renderer.dimensions.rhombusLb = EditorGUILayout.FloatField("Lb", renderer.dimensions.rhombusLb);
117+
renderer.dimensions.rhombusH = EditorGUILayout.FloatField("H", renderer.dimensions.rhombusH);
118+
renderer.dimensions.rhombusRa = EditorGUILayout.FloatField("Ra", renderer.dimensions.rhombusRa);
119+
break;
120+
case RaymarchRenderer.Shape.Octahedron:
121+
renderer.dimensions.octahedronSize = EditorGUILayout.FloatField("Size", renderer.dimensions.octahedronSize);
122+
break;
123+
case RaymarchRenderer.Shape.Pyramid:
124+
renderer.dimensions.pyramidSize = EditorGUILayout.FloatField("Size", renderer.dimensions.pyramidSize);
125+
break;
126+
case RaymarchRenderer.Shape.Triangle:
127+
renderer.dimensions.triangleSideA = EditorGUILayout.Vector3Field("Side A", renderer.dimensions.triangleSideA);
128+
renderer.dimensions.triangleSideB = EditorGUILayout.Vector3Field("Side B", renderer.dimensions.triangleSideB);
129+
renderer.dimensions.triangleSideC = EditorGUILayout.Vector3Field("Side C", renderer.dimensions.triangleSideC);
130+
break;
131+
case RaymarchRenderer.Shape.Quad:
132+
renderer.dimensions.quadSideA = EditorGUILayout.Vector3Field("Side A", renderer.dimensions.quadSideA);
133+
renderer.dimensions.quadSideB = EditorGUILayout.Vector3Field("Side B", renderer.dimensions.quadSideB);
134+
renderer.dimensions.quadSideC = EditorGUILayout.Vector3Field("Side C", renderer.dimensions.quadSideC);
135+
renderer.dimensions.quadSideD = EditorGUILayout.Vector3Field("Side D", renderer.dimensions.quadSideD);
136+
break;
137+
case RaymarchRenderer.Shape.Fractal:
138+
renderer.dimensions.fractalI = EditorGUILayout.FloatField("I", renderer.dimensions.fractalI);
139+
renderer.dimensions.fractalS = EditorGUILayout.FloatField("S", renderer.dimensions.fractalS);
140+
renderer.dimensions.fractalO = EditorGUILayout.FloatField("O", renderer.dimensions.fractalO);
141+
break;
142+
case RaymarchRenderer.Shape.Tesseract:
143+
renderer.dimensions.tesseractSize = EditorGUILayout.Vector4Field("Size", renderer.dimensions.tesseractSize);
144+
break;
145+
case RaymarchRenderer.Shape.HyperSphere:
146+
renderer.dimensions.hyperSphereRadius = EditorGUILayout.FloatField("Radius", renderer.dimensions.hyperSphereRadius);
147+
break;
148+
case RaymarchRenderer.Shape.DuoCylinder:
149+
renderer.dimensions.duoCylR1R2 = EditorGUILayout.Vector2Field("R1 R2", renderer.dimensions.duoCylR1R2);
150+
break;
151+
case RaymarchRenderer.Shape.VerticalCapsule:
152+
renderer.dimensions.vertCapsuleH = EditorGUILayout.FloatField("H", renderer.dimensions.vertCapsuleH);
153+
renderer.dimensions.vertCapsuleR = EditorGUILayout.FloatField("R", renderer.dimensions.vertCapsuleR);
154+
break;
155+
case RaymarchRenderer.Shape.FiveCell:
156+
renderer.dimensions.fiveCellA = EditorGUILayout.Vector4Field("A", renderer.dimensions.fiveCellA);
157+
break;
158+
case RaymarchRenderer.Shape.SixteenCell:
159+
renderer.dimensions.sixteenCellS = EditorGUILayout.FloatField("S", renderer.dimensions.sixteenCellS);
160+
break;
161+
default:
162+
EditorGUILayout.HelpBox("Select a shape to see properties", MessageType.Info);
163+
break;
164+
}
165+
166+
if (!PrefabUtility.IsPartOfPrefabAsset(renderer))
167+
{
168+
EditorUtility.SetDirty(renderer);
169+
EditorUtility.SetDirty(renderer.dimensions);
170+
}
171+
}
172+
173+
void OnEnable()
174+
{
175+
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
176+
EditorApplication.quitting += OnQuitting;
177+
}
178+
179+
void OnDisable()
180+
{
181+
EditorApplication.playModeStateChanged -= OnPlayModeStateChanged;
182+
EditorApplication.quitting -= OnQuitting;
183+
}
184+
185+
private void OnPlayModeStateChanged(PlayModeStateChange state)
186+
{
187+
if (state == PlayModeStateChange.ExitingEditMode || state == PlayModeStateChange.ExitingPlayMode)
188+
((RaymarchRenderer)target).editorStateChange = true;
189+
}
190+
191+
private void OnQuitting()
192+
{
193+
((RaymarchRenderer)target).editorStateChange = true;
194+
}
195+
196+
ShapeDimensions CreateShapeDimensionsAsset()
197+
{
198+
ShapeDimensions asset = ScriptableObject.CreateInstance<ShapeDimensions>();
199+
200+
string folderPath = "Assets/ScriptableObjects";
201+
202+
if (!System.IO.Directory.Exists(folderPath))
203+
{
204+
AssetDatabase.CreateFolder("Assets", "ScriptableObjects");
205+
}
206+
Debug.Log(folderPath);
207+
string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(folderPath + "/New " + typeof(ShapeDimensions).ToString() + ".asset");
208+
209+
AssetDatabase.CreateAsset(asset, assetPathAndName);
210+
AssetDatabase.SaveAssets();
211+
AssetDatabase.Refresh();
212+
EditorUtility.FocusProjectWindow();
213+
Selection.activeObject = asset;
214+
215+
return asset;
216+
}
217+
}
218+
#endif

4D Engine Unity/Assets/Editor/PropertiesEditor.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

4D Engine Unity/Assets/Material.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

4D Engine Unity/Assets/Material/Skybox.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)