Skip to content

Commit 12efa4e

Browse files
committed
clean up modification code
1 parent 21508fd commit 12efa4e

File tree

1 file changed

+17
-36
lines changed

1 file changed

+17
-36
lines changed

Model-Modifier/src/main.cpp

Lines changed: 17 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,9 @@ int main()
213213
float metallic = 0.2f;
214214
float roughness = 0.3f;
215215

216+
// Apply modification algorithm
217+
bool ModifyModel = false;
218+
216219
// openGL settings
217220
glEnable(GL_DEPTH_TEST);
218221
glEnable(GL_BLEND);
@@ -325,67 +328,37 @@ int main()
325328
if (ImGui::Button("Original"))
326329
{
327330
obj = objects.findObj(currObject); // search for the object requested
328-
mesh.Rebuild(obj); // rebuild mesh based on object info
329-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
330-
331-
objectVA.Bind();
332-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
333-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
331+
ModifyModel = true;
334332
}
335333
if (ImGui::Button("Beehive Surface"))
336334
{
337335
Surface BH(obj);
338336
obj = BH.Beehive();
339-
mesh.Rebuild(obj); // rebuild mesh based on object info
340-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
341-
342-
objectVA.Bind();
343-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
344-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
337+
ModifyModel = true;
345338
}
346339
if (ImGui::Button("SnowFlake Surface"))
347340
{
348341
Surface SF(obj);
349342
obj = SF.Snowflake();
350-
mesh.Rebuild(obj); // rebuild mesh based on object info
351-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
352-
353-
objectVA.Bind();
354-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
355-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
343+
ModifyModel = true;
356344
}
357345
if (ImGui::Button("Catmull Clark Subdivision Surface"))
358346
{
359347
Surface CC(obj);
360348
obj = CC.CatmullClark();
361-
mesh.Rebuild(obj); // rebuild mesh based on object info
362-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
363-
364-
objectVA.Bind();
365-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
366-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
349+
ModifyModel = true;
367350
}
368351
if (ImGui::Button("Doo Sabin Subdivision Surface"))
369352
{
370353
Surface DS(obj);
371354
obj = DS.DooSabin();
372-
mesh.Rebuild(obj); // rebuild mesh based on object info
373-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
374-
375-
objectVA.Bind();
376-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
377-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
355+
ModifyModel = true;
378356
}
379357
if (ImGui::Button("Loop Subdivision Surface"))
380358
{
381359
Surface Lo(obj);
382360
obj = Lo.Loop();
383-
mesh.Rebuild(obj); // rebuild mesh based on object info
384-
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
385-
386-
objectVA.Bind();
387-
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
388-
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
361+
ModifyModel = true;
389362
}
390363
//if (ImGui::Button("Garland Heckbert Simplication Surface"))
391364
//{
@@ -648,12 +621,20 @@ int main()
648621

649622
obj = objects.findObj(currObject); // search for the object requested
650623

624+
ModifyModel = true;
625+
}
626+
627+
////////// apply modification //////////
628+
if (ModifyModel)
629+
{
651630
mesh.Rebuild(obj); // rebuild mesh based on object info
652631
numFaces = static_cast<unsigned int>(mesh.m_Object.m_FaceIndices.size()); // update number of faces
653632

654633
objectVA.Bind();
655634
objectVB.AssignData(mesh.m_OutVertices, mesh.m_OutNumVert * sizeof(float), DRAW_MODE::STATIC);
656635
objectIB.AssignData(mesh.m_OutIndices, mesh.m_OutNumIdx, DRAW_MODE::STATIC);
636+
637+
ModifyModel = false;
657638
}
658639

659640
////////// change render mode //////////

0 commit comments

Comments
 (0)