Commit b8b15cb80b599a83be85af59d923af52a23b96cb
1 parent
41229af1
further simplifications for FindSTIM
Showing
3 changed files
with
56 additions
and
27 deletions
Show diff stats
cmake/FindSTIM.cmake
@@ -5,23 +5,12 @@ include(FindPackageHandleStandardArgs) | @@ -5,23 +5,12 @@ include(FindPackageHandleStandardArgs) | ||
5 | 5 | ||
6 | set(STIM_ROOT $ENV{STIM_ROOT}) | 6 | set(STIM_ROOT $ENV{STIM_ROOT}) |
7 | 7 | ||
8 | -IF(NOT UNIX) | ||
9 | - IF(NOT STIM_ROOT) | ||
10 | - MESSAGE("ERROR: STIM_ROOT environment variable must be set!") | ||
11 | - ENDIF(NOT STIM_ROOT) | 8 | +IF(NOT STIM_ROOT) |
9 | + MESSAGE("ERROR: STIM_ROOT environment variable must be set!") | ||
10 | +ENDIF(NOT STIM_ROOT) | ||
12 | 11 | ||
13 | - FIND_PATH(STIM_INCLUDE_DIRS DOC "Path to GLFW include directory." | ||
14 | - NAMES stim/image/image.h | ||
15 | - PATHS ${STIM_ROOT}) | ||
16 | -ENDIF(NOT UNIX) | ||
17 | - | ||
18 | -find_package_handle_standard_args(STIM DEFAULT_MSG STIM_INCLUDE_DIRS) | ||
19 | - | ||
20 | -if(STIM_FOUND) | ||
21 | - set(STIM_INCLUDE_DIRS ${STIM_INCLUDE_DIRS}) | ||
22 | -elseif(STIM_FOUND) | ||
23 | - message("STIM library not found. Set the STIM_ROOT environment variable to the STIM location.") | ||
24 | - message("STIMLIB can be found here: https://git.stim.ee.uh.edu/codebase/stimlib") | ||
25 | -endif(STIM_FOUND) | 12 | + FIND_PATH(STIM_INCLUDE_DIRS DOC "Path to STIM include directory." |
13 | + NAMES stim/image/image.h | ||
14 | + PATHS ${STIM_ROOT}) | ||
26 | 15 | ||
27 | find_package_handle_standard_args(STIM DEFAULT_MSG STIM_INCLUDE_DIRS) | 16 | find_package_handle_standard_args(STIM DEFAULT_MSG STIM_INCLUDE_DIRS) |
stim/image/image.h
@@ -247,10 +247,11 @@ public: | @@ -247,10 +247,11 @@ public: | ||
247 | outfile.write((char*)img, sizeof(T) * R[0] * R[1] * R[2]); | 247 | outfile.write((char*)img, sizeof(T) * R[0] * R[1] * R[2]); |
248 | outfile.close(); | 248 | outfile.close(); |
249 | } | 249 | } |
250 | - | ||
251 | - cimg_library::CImg<T> cimg((unsigned int)R[1], (unsigned int)R[2], 1, (unsigned int)R[0]); | ||
252 | - get_noninterleaved(cimg.data()); | ||
253 | - cimg.save(filename.c_str()); | 250 | + else { |
251 | + cimg_library::CImg<T> cimg((unsigned int)R[1], (unsigned int)R[2], 1, (unsigned int)R[0]); | ||
252 | + get_noninterleaved(cimg.data()); | ||
253 | + cimg.save(filename.c_str()); | ||
254 | + } | ||
254 | } | 255 | } |
255 | 256 | ||
256 | /// Returns an image cast to the specified format | 257 | /// Returns an image cast to the specified format |
stim/visualization/obj.h
@@ -183,7 +183,7 @@ protected: | @@ -183,7 +183,7 @@ protected: | ||
183 | void get_v(std::vector<unsigned>& v){ | 183 | void get_v(std::vector<unsigned>& v){ |
184 | v.resize(size()); //resize the vector to match the number of vertices | 184 | v.resize(size()); //resize the vector to match the number of vertices |
185 | for(unsigned int i = 0; i<size(); i++){ //for each vertex | 185 | for(unsigned int i = 0; i<size(); i++){ //for each vertex |
186 | - v[i] = at(i)[0]; //copy the vertex index (1st element of triplet) | 186 | + v[i] = (unsigned)at(i)[0]; //copy the vertex index (1st element of triplet) |
187 | } | 187 | } |
188 | } | 188 | } |
189 | 189 | ||
@@ -705,6 +705,13 @@ public: | @@ -705,6 +705,13 @@ public: | ||
705 | stim::vec<T> v = V[vi]; | 705 | stim::vec<T> v = V[vi]; |
706 | return v; | 706 | return v; |
707 | } | 707 | } |
708 | + std::vector< stim::vec<T> > getAllV() { | ||
709 | + std::vector< stim::vec<T> > v(V.size()); | ||
710 | + for (unsigned i = 0; i < V.size(); i++) | ||
711 | + v[i] = V[i]; | ||
712 | + return v; | ||
713 | + } | ||
714 | + | ||
708 | std::vector< stim::vec<T> > getAllV(std::vector<unsigned> vertexIndices){ | 715 | std::vector< stim::vec<T> > getAllV(std::vector<unsigned> vertexIndices){ |
709 | std::vector< stim::vec<T> > allVerticesList; | 716 | std::vector< stim::vec<T> > allVerticesList; |
710 | for (unsigned int i=0; i<numV(); i++) | 717 | for (unsigned int i=0; i<numV(); i++) |
@@ -785,7 +792,7 @@ public: | @@ -785,7 +792,7 @@ public: | ||
785 | stim::vec<T> centroid(){ | 792 | stim::vec<T> centroid(){ |
786 | 793 | ||
787 | //get the number of coordinates | 794 | //get the number of coordinates |
788 | - unsigned int N = V[0].size(); | 795 | + size_t N = V[0].size(); |
789 | 796 | ||
790 | //allocate space for the minimum and maximum coordinate points (bounding box corners) | 797 | //allocate space for the minimum and maximum coordinate points (bounding box corners) |
791 | stim::vec<float> vmin, vmax; | 798 | stim::vec<float> vmin, vmax; |
@@ -793,9 +800,9 @@ public: | @@ -793,9 +800,9 @@ public: | ||
793 | vmax.resize(N); | 800 | vmax.resize(N); |
794 | 801 | ||
795 | //find the minimum and maximum value for each coordinate | 802 | //find the minimum and maximum value for each coordinate |
796 | - unsigned int NV = V.size(); | ||
797 | - for(unsigned int v = 0; v < NV; v++) | ||
798 | - for(unsigned int i = 0; i < N; i++){ | 803 | + size_t NV = V.size(); |
804 | + for(size_t v = 0; v < NV; v++) | ||
805 | + for(size_t i = 0; i < N; i++){ | ||
799 | 806 | ||
800 | if(V[v][i] < vmin[i]) | 807 | if(V[v][i] < vmin[i]) |
801 | vmin[i] = V[v][i]; | 808 | vmin[i] = V[v][i]; |
@@ -809,9 +816,35 @@ public: | @@ -809,9 +816,35 @@ public: | ||
809 | return c; | 816 | return c; |
810 | } | 817 | } |
811 | 818 | ||
819 | + stim::vec<T> dimensions() { | ||
820 | + //get the number of coordinates | ||
821 | + size_t N = V[0].size(); | ||
822 | + | ||
823 | + //allocate space for the minimum and maximum coordinate points (bounding box corners) | ||
824 | + stim::vec<float> vmin, vmax; | ||
825 | + vmin.resize(N); | ||
826 | + vmax.resize(N); | ||
827 | + | ||
828 | + //find the minimum and maximum value for each coordinate | ||
829 | + size_t NV = V.size(); | ||
830 | + for (size_t v = 0; v < NV; v++) | ||
831 | + for (size_t i = 0; i < N; i++) { | ||
832 | + | ||
833 | + if (V[v][i] < vmin[i]) | ||
834 | + vmin[i] = V[v][i]; | ||
835 | + if (V[v][i] > vmax[i]) | ||
836 | + vmax[i] = V[v][i]; | ||
837 | + } | ||
838 | + | ||
839 | + //find the soze using the min and max points | ||
840 | + stim::vec<T> d = vmax - vmin; | ||
841 | + | ||
842 | + return d; | ||
843 | + } | ||
844 | + | ||
812 | /// Returns the number of lines in the OBJ structure | 845 | /// Returns the number of lines in the OBJ structure |
813 | unsigned int numL(){ | 846 | unsigned int numL(){ |
814 | - return L.size(); | 847 | + return (unsigned)L.size(); |
815 | } | 848 | } |
816 | 849 | ||
817 | /// Returns all points in the line corresponding to a given index | 850 | /// Returns all points in the line corresponding to a given index |
@@ -993,6 +1026,12 @@ public: | @@ -993,6 +1026,12 @@ public: | ||
993 | 1026 | ||
994 | } | 1027 | } |
995 | 1028 | ||
1029 | + /// Return the number of vertices in a line | ||
1030 | + /// @param l is the line index | ||
1031 | + unsigned getLineN(unsigned l) { | ||
1032 | + return (unsigned)L[l].size(); | ||
1033 | + } | ||
1034 | + | ||
996 | 1035 | ||
997 | 1036 | ||
998 | 1037 |