forked from bartvdbraak/blender
BLI: simplify naming of listbase wrapper
This commit is contained in:
parent
3059353b38
commit
29e9506a7f
@ -29,17 +29,17 @@
|
|||||||
|
|
||||||
namespace BLI {
|
namespace BLI {
|
||||||
|
|
||||||
template<typename T> class IntrusiveListBaseWrapper {
|
template<typename T> class ListBaseWrapper {
|
||||||
private:
|
private:
|
||||||
ListBase *m_listbase;
|
ListBase *m_listbase;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IntrusiveListBaseWrapper(ListBase *listbase) : m_listbase(listbase)
|
ListBaseWrapper(ListBase *listbase) : m_listbase(listbase)
|
||||||
{
|
{
|
||||||
BLI_assert(listbase);
|
BLI_assert(listbase);
|
||||||
}
|
}
|
||||||
|
|
||||||
IntrusiveListBaseWrapper(ListBase &listbase) : IntrusiveListBaseWrapper(&listbase)
|
ListBaseWrapper(ListBase &listbase) : ListBaseWrapper(&listbase)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,13 +130,10 @@ template<typename T, uint N = 4, typename Allocator = GuardedAllocator> class Ve
|
|||||||
/**
|
/**
|
||||||
* Create a vector from a ListBase.
|
* Create a vector from a ListBase.
|
||||||
*/
|
*/
|
||||||
Vector(ListBase &values, bool intrusive_next_and_prev_pointers) : Vector()
|
Vector(ListBase &values) : Vector()
|
||||||
{
|
{
|
||||||
BLI_assert(intrusive_next_and_prev_pointers);
|
for (T value : ListBaseWrapper<typename std::remove_pointer<T>::type>(values)) {
|
||||||
if (intrusive_next_and_prev_pointers) {
|
this->append(value);
|
||||||
for (T value : IntrusiveListBaseWrapper<typename std::remove_pointer<T>::type>(values)) {
|
|
||||||
this->append(value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
using BLI::Array;
|
using BLI::Array;
|
||||||
using BLI::ArrayRef;
|
using BLI::ArrayRef;
|
||||||
using BLI::IndexRange;
|
using BLI::IndexRange;
|
||||||
using BLI::IntrusiveListBaseWrapper;
|
using BLI::ListBaseWrapper;
|
||||||
using BLI::MutableArrayRef;
|
using BLI::MutableArrayRef;
|
||||||
using BLI::Vector;
|
using BLI::Vector;
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ static void compute_vertex_mask__armature_mode(MDeformVert *dvert,
|
|||||||
/* Element i is true if there is a selected bone that uses vertex group i. */
|
/* Element i is true if there is a selected bone that uses vertex group i. */
|
||||||
Vector<bool> selected_bone_uses_group;
|
Vector<bool> selected_bone_uses_group;
|
||||||
|
|
||||||
for (bDeformGroup *def : IntrusiveListBaseWrapper<bDeformGroup>(ob->defbase)) {
|
for (bDeformGroup *def : ListBaseWrapper<bDeformGroup>(ob->defbase)) {
|
||||||
bPoseChannel *pchan = BKE_pose_channel_find_name(armature_ob->pose, def->name);
|
bPoseChannel *pchan = BKE_pose_channel_find_name(armature_ob->pose, def->name);
|
||||||
bool bone_for_group_exists = pchan && pchan->bone && (pchan->bone->flag & BONE_SELECTED);
|
bool bone_for_group_exists = pchan && pchan->bone && (pchan->bone->flag & BONE_SELECTED);
|
||||||
selected_bone_uses_group.append(bone_for_group_exists);
|
selected_bone_uses_group.append(bone_for_group_exists);
|
||||||
|
@ -45,7 +45,7 @@ struct TestListValue {
|
|||||||
int value;
|
int value;
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST(vector, IntrusiveListBaseConstructor)
|
TEST(vector, ListBaseConstructor)
|
||||||
{
|
{
|
||||||
TestListValue *value1 = new TestListValue{0, 0, 4};
|
TestListValue *value1 = new TestListValue{0, 0, 4};
|
||||||
TestListValue *value2 = new TestListValue{0, 0, 5};
|
TestListValue *value2 = new TestListValue{0, 0, 5};
|
||||||
@ -55,7 +55,7 @@ TEST(vector, IntrusiveListBaseConstructor)
|
|||||||
BLI_addtail(&list, value1);
|
BLI_addtail(&list, value1);
|
||||||
BLI_addtail(&list, value2);
|
BLI_addtail(&list, value2);
|
||||||
BLI_addtail(&list, value3);
|
BLI_addtail(&list, value3);
|
||||||
Vector<TestListValue *> vec(list, true);
|
Vector<TestListValue *> vec(list);
|
||||||
|
|
||||||
EXPECT_EQ(vec.size(), 3);
|
EXPECT_EQ(vec.size(), 3);
|
||||||
EXPECT_EQ(vec[0]->value, 4);
|
EXPECT_EQ(vec[0]->value, 4);
|
||||||
|
Loading…
Reference in New Issue
Block a user