in visualization/FitAdam/include/AdamFastCost.h [844:927]
void toggle_activate(bool limb, bool palm, bool finger)
{
if (regressor_type == 0)
{
for (int ic = 0; ic < fit_data_.adam.m_indices_jointConst_adamIdx.rows(); ic++)
{
int smcjoint = fit_data_.adam.m_indices_jointConst_smcIdx(ic);
if (smcjoint != 3 && smcjoint != 6 && smcjoint != 9 && smcjoint != 12)
{
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * ic + d] = double(limb) * m_targetPts_weight_buffer[5 * ic + d];
}
}
int offset = fit_data_.adam.m_indices_jointConst_smcIdx.rows();
for (int ic = 0; ic < fit_data_.adam.m_correspond_adam2lHand_adamIdx.rows(); ic++)
{
if (ic % 5 == 0)
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(palm);
else
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(finger);
}
offset += fit_data_.adam.m_correspond_adam2lHand_adamIdx.rows();
for (int ic = 0; ic < fit_data_.adam.m_correspond_adam2rHand_adamIdx.rows(); ic++)
{
if (ic % 5 == 0)
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(palm);
else
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(finger);
}
}
else if (regressor_type == 1)
{
for (int ic = 0; ic < fit_data_.adam.h36m_jointConst_smcIdx.size(); ic++)
{
int smcjoint = fit_data_.adam.h36m_jointConst_smcIdx[ic];
if (smcjoint != 3 && smcjoint != 6 && smcjoint != 9 && smcjoint != 12)
{
// m_targetPts_weight[ic] = double(limb) * m_targetPts_weight_buffer[ic];
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * ic + d] = m_targetPts_weight_buffer[5 * ic + d] * double(limb);
}
}
// no finger joints for Human3.6M
}
else
{
assert(regressor_type == 2);
for (int ic = 0; ic < fit_data_.adam.coco_jointConst_smcIdx.size(); ic++)
{
int smcjoint = fit_data_.adam.coco_jointConst_smcIdx[ic];
if (smcjoint != 3 && smcjoint != 6 && smcjoint != 9 && smcjoint != 12)
{
// m_targetPts_weight[ic] = double(limb) * m_targetPts_weight_buffer[ic];
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * ic + d] = m_targetPts_weight_buffer[5 * ic + d] * double(limb);
}
}
int offset = fit_data_.adam.coco_jointConst_smcIdx.size();
for (int ic = 0; ic < fit_data_.adam.m_correspond_adam2lHand_adamIdx.rows(); ic++)
{
if (ic % 5 == 0)
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(palm);
else
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(finger);
}
offset += fit_data_.adam.m_correspond_adam2lHand_adamIdx.rows();
for (int ic = 0; ic < fit_data_.adam.m_correspond_adam2rHand_adamIdx.rows(); ic++)
{
if (ic % 5 == 0)
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(palm);
else
for (auto d = 0; d < 5; d++)
m_targetPts_weight[5 * (ic + offset) + d] = m_targetPts_weight_buffer[5 * (ic + offset) + d] * double(finger);
}
}
}