MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / computeExtents

Function computeExtents

tools/modeltool/modeltool.cpp:890–1023  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

888} MeshExtents;
889
890bool computeExtents(CModel& model, MeshExtents& extents) {
891 bool didOne = false;
892
893 for (int m = 0; m < (int)model.meshes.size(); m++) {
894 CMesh& subMesh = model.meshes[m];
895 bool extentsSet = false;
896 for (int f = 0; f < (int)subMesh.faces.size(); f++) {
897 extentsSet = true;
898 didOne = true;
899 CFace& face = subMesh.faces[f];
900 if (f == 0 && m == 0) {
901 extents.minx = subMesh.verts[face.verts[0]].x;
902 extents.miny = subMesh.verts[face.verts[0]].y;
903 extents.minz = subMesh.verts[face.verts[0]].z;
904
905 extents.maxx = extents.minx;
906 extents.maxy = extents.miny;
907 extents.maxz = extents.minz;
908 }
909
910 for (int v = 0; v < (int)face.verts.size(); v++) {
911 CVector3& vert = subMesh.verts[face.verts[v]];
912 if (vert.x < extents.minx) {
913 extents.minx = vert.x;
914 }
915 if (vert.y < extents.miny) {
916 extents.miny = vert.y;
917 }
918 if (vert.z < extents.minz) {
919 extents.minz = vert.z;
920 }
921
922 if (vert.x > extents.maxx) {
923 extents.maxx = vert.x;
924 }
925 if (vert.y > extents.maxy) {
926 extents.maxy = vert.y;
927 }
928 if (vert.z > extents.maxz) {
929 extents.maxz = vert.z;
930 }
931 }
932 }
933
934 for (int s = 0; s < (int)subMesh.strips.size(); s++) {
935 didOne = true;
936 CTriStrip& strip = subMesh.strips[s];
937 if (!extentsSet && s == 0 && m == 0) {
938 extentsSet = true;
939 extents.minx = subMesh.verts[strip.verts[0]].x;
940 extents.miny = subMesh.verts[strip.verts[0]].y;
941 extents.minz = subMesh.verts[strip.verts[0]].z;
942
943 extents.maxx = extents.minx;
944 extents.maxy = extents.miny;
945 extents.maxz = extents.minz;
946 }
947

Callers 1

writeDrawInfoBZWFunction · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected