//-- private methods -----
static void drawController(PSMController *controllerView, const glm::mat4 &transform)
{
    switch(controllerView->ControllerType)
    {
    case PSMController_Move:
        drawPSMoveModel(transform, glm::vec3(1.f, 1.f, 1.f));
        break;
    case PSMController_DualShock4:
        drawPSDualShock4Model(transform, glm::vec3(1.f, 1.f, 1.f));
        break;
    }
}
//-- private methods -----
static void drawController(ClientControllerView *controllerView, const glm::mat4 &transform, const glm::vec3 &bulb_color)
{
    switch(controllerView->GetControllerViewType())
    {
    case ClientControllerView::PSMove:
        drawPSMoveModel(transform, bulb_color);
        break;
    case ClientControllerView::PSNavi:
        drawPSNaviModel(transform);
        break;
    case ClientControllerView::PSDualShock4:
        drawPSDualShock4Model(transform, bulb_color);
        break;
    }
}
//-- private methods -----
static void drawController(
	const ClientControllerView *controllerView, 
	const glm::mat4 &transform, 
	const PSMoveTrackingColorType trackingColorType)
{
	glm::vec3 bulb_color = glm::vec3(1.f, 1.f, 1.f);

	switch (trackingColorType)
	{
	case PSMoveTrackingColorType::Magenta:
		bulb_color = glm::vec3(1.f, 0.f, 1.f);
		break;
	case PSMoveTrackingColorType::Cyan:
		bulb_color = glm::vec3(0.f, 1.f, 1.f);
		break;
	case PSMoveTrackingColorType::Yellow:
		bulb_color = glm::vec3(1.f, 1.f, 0.f);
		break;
	case PSMoveTrackingColorType::Red:
		bulb_color = glm::vec3(1.f, 0.f, 0.f);
		break;
	case PSMoveTrackingColorType::Green:
		bulb_color = glm::vec3(0.f, 1.f, 0.f);
		break;
	case PSMoveTrackingColorType::Blue:
		bulb_color = glm::vec3(0.f, 0.f, 1.f);
		break;
	default:
		break;
	}

    switch(controllerView->GetControllerViewType())
    {
    case ClientControllerView::PSMove:
        drawPSMoveModel(transform, bulb_color);
        break;
    case ClientControllerView::PSDualShock4:
        drawPSDualShock4Model(transform, bulb_color);
        break;
    }
}