Skip to content

Commit 3821773

Browse files
committed
Removed boost/string methods in favour of utility methods in util/Name.h
Signed-off-by: Nick Avramoussis <4256455+Idclip@users.noreply.github.com>
1 parent cbcf15f commit 3821773

File tree

11 files changed

+331
-69
lines changed

11 files changed

+331
-69
lines changed

openvdb/openvdb/Grid.cc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
// SPDX-License-Identifier: MPL-2.0
33

44
#include "Grid.h"
5-
65
#include "Metadata.h"
7-
#include <boost/algorithm/string/case_conv.hpp>
8-
#include <boost/algorithm/string/trim.hpp>
6+
#include "util/Name.h"
97
#include <mutex>
108

119

@@ -124,8 +122,8 @@ GridBase::stringToGridClass(const std::string& s)
124122
{
125123
GridClass ret = GRID_UNKNOWN;
126124
std::string str = s;
127-
boost::trim(str);
128-
boost::to_lower(str);
125+
openvdb::string::trim(str);
126+
openvdb::string::to_lower(str);
129127
if (str == gridClassToString(GRID_LEVEL_SET)) {
130128
ret = GRID_LEVEL_SET;
131129
} else if (str == gridClassToString(GRID_FOG_VOLUME)) {
@@ -198,8 +196,8 @@ GridBase::stringToVecType(const std::string& s)
198196
{
199197
VecType ret = VEC_INVARIANT;
200198
std::string str = s;
201-
boost::trim(str);
202-
boost::to_lower(str);
199+
openvdb::string::trim(str);
200+
openvdb::string::to_lower(str);
203201
if (str == vecTypeToString(VEC_COVARIANT)) {
204202
ret = VEC_COVARIANT;
205203
} else if (str == vecTypeToString(VEC_COVARIANT_NORMALIZE)) {

openvdb/openvdb/io/Compression.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
#include <openvdb/Exceptions.h>
77
#include <openvdb/util/logging.h>
8-
#include <boost/algorithm/string/join.hpp>
98
#ifdef OPENVDB_USE_ZLIB
109
#include <zlib.h>
1110
#endif
@@ -24,11 +23,12 @@ compressionToString(uint32_t flags)
2423
{
2524
if (flags == COMPRESS_NONE) return "none";
2625

27-
std::vector<std::string> words;
28-
if (flags & COMPRESS_ZIP) words.push_back("zip");
29-
if (flags & COMPRESS_BLOSC) words.push_back("blosc");
30-
if (flags & COMPRESS_ACTIVE_MASK) words.push_back("active values");
31-
return boost::join(words, " + ");
26+
std::string descr;
27+
if (flags & COMPRESS_ZIP) descr += "zip + ";
28+
if (flags & COMPRESS_BLOSC) descr += "blosc + ";
29+
if (flags & COMPRESS_ACTIVE_MASK) descr += "active values + ";
30+
if (!descr.empty()) descr.resize(descr.size() - 3);
31+
return descr;
3232
}
3333

3434

openvdb/openvdb/io/GridDescriptor.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
#include "GridDescriptor.h"
55

66
#include <openvdb/Exceptions.h>
7-
#include <boost/algorithm/string/predicate.hpp> // for boost::ends_with()
8-
#include <boost/algorithm/string/erase.hpp> // for boost::erase_last()
7+
#include <openvdb/util/Name.h>
98
#include <sstream>
109

1110

@@ -79,9 +78,9 @@ GridDescriptor::read(std::istream &is)
7978

8079
// Read in the grid type.
8180
mGridType = readString(is);
82-
if (boost::ends_with(mGridType, HALF_FLOAT_TYPENAME_SUFFIX)) {
81+
if (openvdb::string::ends_with(mGridType, HALF_FLOAT_TYPENAME_SUFFIX)) {
8382
mSaveFloatAsHalf = true;
84-
boost::erase_last(mGridType, HALF_FLOAT_TYPENAME_SUFFIX);
83+
mGridType.resize(mGridType.size() - std::strlen(HALF_FLOAT_TYPENAME_SUFFIX));
8584
}
8685

8786
if (getFormatVersion(is) >= OPENVDB_FILE_VERSION_GRID_INSTANCING) {

openvdb/openvdb/math/FiniteDifference.h

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
#define OPENVDB_MATH_FINITEDIFFERENCE_HAS_BEEN_INCLUDED
88

99
#include <openvdb/Types.h>
10+
#include <openvdb/util/Name.h>
1011
#include "Math.h"
1112
#include "Coord.h"
1213
#include "Vec3.h"
1314
#include <string>
14-
#include <boost/algorithm/string/case_conv.hpp>
15-
#include <boost/algorithm/string/trim.hpp>
1615

1716
#ifdef DWA_OPENVDB
1817
#include <simd/Simd.h>
@@ -80,8 +79,8 @@ stringToDScheme(const std::string& s)
8079
DScheme ret = UNKNOWN_DS;
8180

8281
std::string str = s;
83-
boost::trim(str);
84-
boost::to_lower(str);
82+
openvdb::string::trim(str);
83+
openvdb::string::to_lower(str);
8584

8685
if (str == dsSchemeToString(CD_2NDT)) {
8786
ret = CD_2NDT;
@@ -194,8 +193,8 @@ stringToBiasedGradientScheme(const std::string& s)
194193
BiasedGradientScheme ret = UNKNOWN_BIAS;
195194

196195
std::string str = s;
197-
boost::trim(str);
198-
boost::to_lower(str);
196+
openvdb::string::trim(str);
197+
openvdb::string::to_lower(str);
199198

200199
if (str == biasedGradientSchemeToString(FIRST_BIAS)) {
201200
ret = FIRST_BIAS;
@@ -259,8 +258,8 @@ stringToTemporalIntegrationScheme(const std::string& s)
259258
TemporalIntegrationScheme ret = UNKNOWN_TIS;
260259

261260
std::string str = s;
262-
boost::trim(str);
263-
boost::to_lower(str);
261+
openvdb::string::trim(str);
262+
openvdb::string::to_lower(str);
264263

265264
if (str == temporalIntegrationSchemeToString(TVD_RK1)) {
266265
ret = TVD_RK1;

openvdb/openvdb/unittest/TestUtil.cc

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <openvdb/util/CpuTimer.h>
66
#include <openvdb/util/PagedArray.h>
77
#include <openvdb/util/Formats.h>
8+
#include <openvdb/util/Name.h>
89

910
#include <gtest/gtest.h>
1011

@@ -485,3 +486,185 @@ TEST_F(TestUtil, testPagedArray)
485486
}
486487
}
487488
}
489+
490+
491+
TEST_F(TestUtil, testStringUtils)
492+
{
493+
{
494+
std::set<std::string> results;
495+
496+
// split set
497+
results.insert("test");
498+
openvdb::string::split(results, "", ' ');
499+
EXPECT_TRUE(results.empty());
500+
501+
openvdb::string::split(results, "test", ' ');
502+
EXPECT_EQ(size_t(1), results.size());
503+
EXPECT_TRUE(results.count("test"));
504+
505+
openvdb::string::split(results, "t,est", ',');
506+
EXPECT_EQ(size_t(2), results.size());
507+
EXPECT_TRUE(results.count("t"));
508+
EXPECT_TRUE(results.count("est"));
509+
510+
openvdb::string::split(results, "t,est", '.');
511+
EXPECT_EQ(size_t(1), results.size());
512+
EXPECT_TRUE(results.count("t,est"));
513+
514+
openvdb::string::split(results, ",test", ',');
515+
EXPECT_EQ(size_t(2), results.size());
516+
EXPECT_TRUE(results.count(""));
517+
EXPECT_TRUE(results.count("test"));
518+
519+
openvdb::string::split(results, "test,", ',');
520+
EXPECT_EQ(size_t(2), results.size());
521+
EXPECT_TRUE(results.count("test"));
522+
EXPECT_TRUE(results.count(""));
523+
524+
openvdb::string::split(results, "test,test", ',');
525+
EXPECT_EQ(size_t(1), results.size());
526+
EXPECT_TRUE(results.count("test"));
527+
528+
// split set multi delim
529+
openvdb::string::split(results, "", std::set<char>{',', '.'});
530+
EXPECT_TRUE(results.empty());
531+
532+
openvdb::string::split(results, "test", std::set<char>{',', '.'});
533+
EXPECT_EQ(size_t(1), results.size());
534+
EXPECT_TRUE(results.count("test"));
535+
536+
openvdb::string::split(results, ",test.", std::set<char>{',', '.'});
537+
EXPECT_EQ(size_t(2), results.size());
538+
EXPECT_TRUE(results.count(""));
539+
EXPECT_TRUE(results.count("test"));
540+
541+
openvdb::string::split(results, "t,e.st,test", std::set<char>{',', '.'});
542+
EXPECT_EQ(size_t(4), results.size());
543+
EXPECT_TRUE(results.count("t"));
544+
EXPECT_TRUE(results.count("e"));
545+
EXPECT_TRUE(results.count("st"));
546+
EXPECT_TRUE(results.count("test"));
547+
}
548+
549+
{
550+
std::vector<std::string> results;
551+
552+
// split vector
553+
results.emplace_back("test");
554+
openvdb::string::split(results, "", ' ');
555+
EXPECT_TRUE(results.empty());
556+
557+
openvdb::string::split(results, "test", ' ');
558+
EXPECT_EQ(size_t(1), results.size());
559+
EXPECT_TRUE("test" == results.front());
560+
561+
openvdb::string::split(results, "t,est", ',');
562+
EXPECT_EQ(size_t(2), results.size());
563+
EXPECT_TRUE("t" == results.front());
564+
EXPECT_TRUE("est" == results.back());
565+
566+
openvdb::string::split(results, "t,est", '.');
567+
EXPECT_EQ(size_t(1), results.size());
568+
EXPECT_TRUE("t,est" == results.front());
569+
570+
openvdb::string::split(results, ",test", ',');
571+
EXPECT_EQ(size_t(2), results.size());
572+
EXPECT_TRUE("" == results.front());
573+
EXPECT_TRUE("test" == results.back());
574+
575+
openvdb::string::split(results, "test,", ',');
576+
EXPECT_EQ(size_t(2), results.size());
577+
EXPECT_TRUE("test" == results.front());
578+
EXPECT_TRUE("" == results.back());
579+
580+
openvdb::string::split(results, "test,test", ',');
581+
EXPECT_EQ(size_t(2), results.size());
582+
EXPECT_TRUE("test" == results.front());
583+
EXPECT_TRUE("test" == results.back());
584+
585+
// split vector multi delim
586+
openvdb::string::split(results, "", std::set<char>{',', '.'});
587+
EXPECT_TRUE(results.empty());
588+
589+
openvdb::string::split(results, "test", std::set<char>{',', '.'});
590+
EXPECT_EQ(size_t(1), results.size());
591+
EXPECT_TRUE("test" == results.front());
592+
593+
openvdb::string::split(results, ",test.", std::set<char>{',', '.'});
594+
EXPECT_EQ(size_t(3), results.size());
595+
EXPECT_TRUE("" == results[0]);
596+
EXPECT_TRUE("test" == results[1]);
597+
EXPECT_TRUE("" == results[2]);
598+
599+
openvdb::string::split(results, "t,e.st,test", std::set<char>{',', '.'});
600+
EXPECT_EQ(size_t(4), results.size());
601+
EXPECT_TRUE("t" == results[0]);
602+
EXPECT_TRUE("e" == results[1]);
603+
EXPECT_TRUE("st" == results[2]);
604+
EXPECT_TRUE("test" == results[3]);
605+
}
606+
607+
// starts_with
608+
609+
EXPECT_TRUE(openvdb::string::starts_with("", ""));
610+
// matches behaviour of boost::algorithm::starts_with
611+
EXPECT_TRUE(openvdb::string::starts_with("a", ""));
612+
EXPECT_TRUE(!openvdb::string::starts_with("a", "a "));
613+
EXPECT_TRUE(!openvdb::string::starts_with("", "a"));
614+
EXPECT_TRUE(openvdb::string::starts_with("a", "a"));
615+
616+
EXPECT_TRUE(openvdb::string::starts_with("foo bar", "f"));
617+
EXPECT_TRUE(openvdb::string::starts_with("foo bar", "foo"));
618+
EXPECT_TRUE(openvdb::string::starts_with("foo bar", "foo "));
619+
EXPECT_TRUE(openvdb::string::starts_with("foo bar", "foo bar"));
620+
EXPECT_TRUE(!openvdb::string::starts_with("foo bar", "bar"));
621+
622+
// ends_with
623+
624+
EXPECT_TRUE(openvdb::string::ends_with("", ""));
625+
// matches behaviour of boost::algorithm::iends_with
626+
EXPECT_TRUE(openvdb::string::ends_with("a", ""));
627+
EXPECT_TRUE(!openvdb::string::ends_with("a", "a "));
628+
EXPECT_TRUE(!openvdb::string::ends_with("", "a"));
629+
EXPECT_TRUE(openvdb::string::ends_with("a", "a"));
630+
631+
EXPECT_TRUE(openvdb::string::ends_with("foo bar", "r"));
632+
EXPECT_TRUE(openvdb::string::ends_with("foo bar", "bar"));
633+
EXPECT_TRUE(openvdb::string::ends_with("foo bar", " bar"));
634+
EXPECT_TRUE(openvdb::string::ends_with("foo bar", "foo bar"));
635+
EXPECT_TRUE(!openvdb::string::ends_with("foo bar", "foo"));
636+
637+
638+
// trim
639+
640+
auto trim = [](const std::string& s) -> std::string {
641+
std::string r = s; openvdb::string::trim(r); return r;
642+
};
643+
644+
EXPECT_TRUE("" == trim(""));
645+
EXPECT_TRUE("" == trim(" "));
646+
EXPECT_TRUE("" == trim("\t"));
647+
EXPECT_TRUE("" == trim("\r"));
648+
EXPECT_TRUE("" == trim("\f"));
649+
EXPECT_TRUE("" == trim("\n"));
650+
EXPECT_TRUE("" == trim("\v"));
651+
652+
EXPECT_TRUE("foo" == trim(" foo"));
653+
EXPECT_TRUE("foo" == trim("foo "));
654+
EXPECT_TRUE("foo" == trim(" foo "));
655+
EXPECT_TRUE("foo" == trim(" foo "));
656+
EXPECT_TRUE("foo bar" == trim("\vfoo bar\t"));
657+
EXPECT_TRUE("foo\nbar" == trim("\nfoo\nbar\n"));
658+
659+
// to lower
660+
661+
auto to_lower = [](const std::string& s) -> std::string {
662+
std::string r = s; openvdb::string::to_lower(r); return r;
663+
};
664+
665+
EXPECT_TRUE("" == to_lower(""));
666+
EXPECT_TRUE("a" == to_lower("a"));
667+
EXPECT_TRUE("\t" == to_lower("\t"));
668+
EXPECT_TRUE("a" == to_lower("A"));
669+
EXPECT_TRUE("foo bar" == to_lower("fOo Bar"));
670+
}

0 commit comments

Comments
 (0)