mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 16:36:54 +02:00
Made palm ball and disk properly use avatar scale
This commit is contained in:
parent
4d591de762
commit
45421ffb0e
2 changed files with 12 additions and 5 deletions
|
@ -130,6 +130,9 @@ void Hand::render(bool isMine, Model::RenderMode renderMode) {
|
||||||
void Hand::renderHandTargets(bool isMine) {
|
void Hand::renderHandTargets(bool isMine) {
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
|
||||||
|
MyAvatar* myAvatar = Application::getInstance()->getAvatar();
|
||||||
|
const float avatarScale = Application::getInstance()->getAvatar()->getScale();
|
||||||
|
|
||||||
const float alpha = 1.0f;
|
const float alpha = 1.0f;
|
||||||
const glm::vec3 handColor(1.0, 0.0, 0.0); // Color the hand targets red to be different than skin
|
const glm::vec3 handColor(1.0, 0.0, 0.0); // Color the hand targets red to be different than skin
|
||||||
|
|
||||||
|
@ -153,10 +156,10 @@ void Hand::renderHandTargets(bool isMine) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const float PALM_BALL_RADIUS = 0.03f;
|
const float PALM_BALL_RADIUS = 0.03f * avatarScale;
|
||||||
const float PALM_DISK_RADIUS = 0.06f;
|
const float PALM_DISK_RADIUS = 0.06f * avatarScale;
|
||||||
const float PALM_DISK_THICKNESS = 0.01f;
|
const float PALM_DISK_THICKNESS = 0.01f * avatarScale;
|
||||||
const float PALM_FINGER_ROD_RADIUS = 0.003f;
|
const float PALM_FINGER_ROD_RADIUS = 0.003f * avatarScale;
|
||||||
|
|
||||||
// Draw the palm ball and disk
|
// Draw the palm ball and disk
|
||||||
for (size_t i = 0; i < getNumPalms(); ++i) {
|
for (size_t i = 0; i < getNumPalms(); ++i) {
|
||||||
|
@ -165,6 +168,11 @@ void Hand::renderHandTargets(bool isMine) {
|
||||||
glColor4f(handColor.r, handColor.g, handColor.b, alpha);
|
glColor4f(handColor.r, handColor.g, handColor.b, alpha);
|
||||||
glm::vec3 tip = palm.getFingerTipPosition();
|
glm::vec3 tip = palm.getFingerTipPosition();
|
||||||
glm::vec3 root = palm.getPosition();
|
glm::vec3 root = palm.getPosition();
|
||||||
|
|
||||||
|
//Scale the positions based on avatar scale
|
||||||
|
tip = myAvatar->getPosition() + avatarScale * (tip - myAvatar->getPosition());
|
||||||
|
root = myAvatar->getPosition() + avatarScale * (root - myAvatar->getPosition());
|
||||||
|
|
||||||
Avatar::renderJointConnectingCone(root, tip, PALM_FINGER_ROD_RADIUS, PALM_FINGER_ROD_RADIUS);
|
Avatar::renderJointConnectingCone(root, tip, PALM_FINGER_ROD_RADIUS, PALM_FINGER_ROD_RADIUS);
|
||||||
// Render sphere at palm/finger root
|
// Render sphere at palm/finger root
|
||||||
glm::vec3 offsetFromPalm = root + palm.getNormal() * PALM_DISK_THICKNESS;
|
glm::vec3 offsetFromPalm = root + palm.getNormal() * PALM_DISK_THICKNESS;
|
||||||
|
|
|
@ -473,7 +473,6 @@ void OculusManager::renderLaserPointers() {
|
||||||
|
|
||||||
//If the Oculus is enabled, we will draw a blue cursor ray
|
//If the Oculus is enabled, we will draw a blue cursor ray
|
||||||
|
|
||||||
// Draw the palm ball and disk
|
|
||||||
for (size_t i = 0; i < myAvatar->getHand()->getNumPalms(); ++i) {
|
for (size_t i = 0; i < myAvatar->getHand()->getNumPalms(); ++i) {
|
||||||
PalmData& palm = myAvatar->getHand()->getPalms()[i];
|
PalmData& palm = myAvatar->getHand()->getPalms()[i];
|
||||||
if (palm.isActive()) {
|
if (palm.isActive()) {
|
||||||
|
|
Loading…
Reference in a new issue