本文整理汇总了C++中vec3::set方法的典型用法代码示例。如果您正苦于以下问题:C++ vec3::set方法的具体用法?C++ vec3::set怎么用?C++ vec3::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vec3
的用法示例。
在下文中一共展示了vec3::set方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: turn
void Camera::turn(vec3& v1, vec3& v2, float amount)
{
double cosTheta = std::cos(amount);
double sinTheta = std::sin(amount);
float vX = cosTheta*v1[0] + sinTheta*v2[0];
float vY = cosTheta*v1[1] + sinTheta*v2[1];
float vZ = cosTheta*v1[2] + sinTheta*v2[2];
float nX = -sinTheta*v1[0] + cosTheta*v2[0];
float nY = -sinTheta*v1[1] + cosTheta*v2[1];
float nZ = -sinTheta*v1[2] + cosTheta*v2[2];
v1.set(vX, vY, vZ);
v2.set(nX, nY, nZ);
}
示例2: getPosition
bool getPosition(const TiXmlElement *root, vec3 &pos) {
bool ok1, ok2, ok3;
if (root == NULL) {
QTWARNING("The given root is not a Position Element");
return false;
}
QString rootValue = root->Value();
rootValue = rootValue.stripWhiteSpace();
if (!(rootValue == "position" || rootValue == "orientation")) {
QTWARNING("The given root is not a Position Element");
return false;
}
QString valueStr = root->GetText();
valueStr = valueStr.simplifyWhiteSpace().stripWhiteSpace();
QStringList l;
l = QStringList::split(' ', valueStr);
if (l.count() != 3) {
QTWARNING("Invalid position input");
return false;
}
double x, y, z;
x = l[0].toDouble(&ok1);
y = l[1].toDouble(&ok2);
z = l[2].toDouble(&ok3);
if (!ok1 || !ok2 || !ok3) {
QTWARNING("Invalid position input");
return false;
}
pos.set(x, y, z);
return true;
}
示例3: screenToWorld
bool Camera::screenToWorld(int screenX, int screenY, vec3& worldCoords)
{
double x, y, z;
GLint result = gluUnProject(screenX, screenY, 0.0,
myModelMatrix, myProjMatrix, myViewport,
&x, &y, &z);
worldCoords.set(x, y, z);
return result == GL_TRUE;
}
示例4: get_target_dir
//--------------------------------------------------------------------------------
// get target look at
//--------------------------------------------------------------------------------
bool zz_camera_follow::get_target_dir (vec3& dir)
{
if (!target_) {
dir.set(0, 1, 0);
return false;
}
dir = target_->get_look_at();
dir.normalize();
return true;
}
示例5:
/////////////////////////////////////////////////////////////////////
// get the closest point to pt in the primative
bool
sphere::
closestPtIn ( vec3& dest, ValueType xval, ValueType yval, ValueType zval ) const
{
if ( isEmpty () )
return false;
if ( contains ( xval, yval, zval ) )
dest.set ( xval, yval, zval );
else
{
dest.set ( xval, yval, zval );
dest -= center;
dest.normalize ();
dest *= radius;
dest += center;
}
return true;
}
示例6: ToIntColour
void ToIntColour(const vec3<F32>& floatColour, vec3<I32>& colourOut) noexcept {
colourOut.set(to_U32(FLOAT_TO_SCHAR_SNORM(floatColour.r)),
to_U32(FLOAT_TO_SCHAR_SNORM(floatColour.g)),
to_U32(FLOAT_TO_SCHAR_SNORM(floatColour.b)));
}
示例7: ToByteColour
void ToByteColour(const vec3<F32>& floatColour, vec3<U8>& colourOut) noexcept {
colourOut.set(FLOAT_TO_CHAR_SNORM(floatColour.r),
FLOAT_TO_CHAR_SNORM(floatColour.g),
FLOAT_TO_CHAR_SNORM(floatColour.b));
}
示例8: ToFloatColour
void ToFloatColour(const vec3<U32>& uintColour, vec3<F32>& colourOut) noexcept {
colourOut.set(uintColour.r / 255.0f,
uintColour.g / 255.0f,
uintColour.b / 255.0f);
}