void toggle_activate()

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);
			}
		}
	}