Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a uvmap for MeshDraft.Dodecahedron #41

Open
BasmanovDaniil opened this issue Jul 18, 2018 · 0 comments
Open

Add a uvmap for MeshDraft.Dodecahedron #41

BasmanovDaniil opened this issue Jul 18, 2018 · 0 comments

Comments

@BasmanovDaniil
Copy link
Member

All other primitives have a more or less sensible uvmap, Dodecahedron should have one too. Also, it will have to be constructed in some other way, AddFlatTriangleBand is not very convenient in this case.

public static MeshDraft Dodecahedron(float radius)
{
const float magicAngle1 = 52.62263590f;
const float magicAngle2 = 10.81231754f;
const float segmentAngle = 72;
float lowerAngle = 0;
float upperAngle = segmentAngle/2;
var lowerCap = new Vector3[5];
var lowerRing = new Vector3[5];
var upperCap = new Vector3[5];
var upperRing = new Vector3[5];
for (var i = 0; i < 5; i++)
{
lowerCap[i] = Geometry.PointOnSphere(radius, lowerAngle, -magicAngle1);
lowerRing[i] = Geometry.PointOnSphere(radius, lowerAngle, -magicAngle2);
upperCap[i] = Geometry.PointOnSphere(radius, upperAngle, magicAngle1);
upperRing[i] = Geometry.PointOnSphere(radius, upperAngle, magicAngle2);
lowerAngle += segmentAngle;
upperAngle += segmentAngle;
}
var draft = new MeshDraft {name = "Dodecahedron"}
.AddTriangleFan(upperCap, Vector3.up)
.AddFlatTriangleBand(upperRing, upperCap, false)
.AddFlatTriangleBand(lowerRing, upperRing, false)
.AddFlatTriangleBand(lowerCap, lowerRing, false)
.AddTriangleFan(lowerCap, Vector3.down, true);
return draft;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
MeshDraft
  
To do
Development

No branches or pull requests

1 participant