Matrix *Utility::CalcMatrix(
	LWF *lwf, Matrix *dst, const Matrix *src0, int src1Id)
{
	if (src1Id == 0) {
		dst->Set(src0);
	} else if ((src1Id & Constant::MATRIX_FLAG) == 0) {
		const Translate &translate = lwf->data->translates[src1Id];
		dst->scaleX = src0->scaleX;
		dst->skew0  = src0->skew0;
		dst->translateX =
			src0->scaleX * translate.translateX +
			src0->skew0  * translate.translateY +
			src0->translateX;
		dst->skew1  = src0->skew1;
		dst->scaleY = src0->scaleY;
		dst->translateY =
			src0->skew1  * translate.translateX +
			src0->scaleY * translate.translateY +
			src0->translateY;
	} else {
		int matrixId = src1Id & ~Constant::MATRIX_FLAG_MASK;
		const Matrix &src1 = lwf->data->matrices[matrixId];
		CalcMatrix(dst, src0, &src1);
	}

	return dst;
}
Exemple #2
0
short SetTorqueUnits(Calibration *cal, char *NewUnits) {
	if (cal==NULL) return 1;
	if (TorqueConv(NewUnits)==0) return 2;
	free(cal->cfg.TorqueUnits);
	cal->cfg.TorqueUnits=ATI_strdup(NewUnits);
	return CalcMatrix(cal);
} // SetTorqueUnits()
Exemple #3
0
	void ViewPole::OffsetTargetPos( const glm::vec3 &cameraOffset )
	{
		glm::mat4 currMat = CalcMatrix();
		glm::fquat orientation = glm::quat_cast(currMat);

		glm::fquat invOrient = glm::conjugate(orientation);
		glm::vec3 worldOffset = invOrient * cameraOffset;

		m_currView.targetPos += worldOffset;
	}
Exemple #4
0
	void LiarObject::SetBaseMatrix(Liar::RenderMgr* rmg, bool calcInvest)
	{
		CalcMatrix(rmg, calcInvest);

		Camera* camera = rmg->GetCamera();
		m_shader->Use();
		m_shader->SetMat4("model", m_matrix);
		m_shader->SetMat4("projection", camera->GetPerspective());
		m_shader->SetMat4("view", camera->GetViewMatrix());
	}
Exemple #5
0
void LWF::Update(const Matrix *matrix, const ColorTransform *colorTransform)
{
	++updateCount;
	const Matrix *m = CalcMatrix(matrix);
	const ColorTransform *c = CalcColorTransform(colorTransform);
	renderingIndex = 0;
	renderingIndexOffsetted = 0;
	rootMovie->Update(m, c);
	renderingCount = renderingIndex;
	isPropertyDirty = false;
}
Exemple #6
0
//----------------------------------------------
// "public" functions
//----------------------------------------------
short SetToolTransform(Calibration *cal, float Vector[6],char *DistUnits,char *AngleUnits) {
	short i;
	if (cal==NULL) return 1;
	if (DistConv(DistUnits)==0) return 2;
	if (AngleConv(AngleUnits)==0) return 3;
	for(i=0;i<6;i++)
		cal->cfg.UserTransform.TT[i]=Vector[i];
	free(cal->cfg.UserTransform.DistUnits);
	cal->cfg.UserTransform.DistUnits=ATI_strdup(DistUnits);
	free(cal->cfg.UserTransform.AngleUnits);
	cal->cfg.UserTransform.AngleUnits=ATI_strdup(AngleUnits);
	return CalcMatrix(cal);
} // SetToolTransform()
Exemple #7
0
//----------------------------------------------
// "private" functions
//----------------------------------------------
void ResetDefaults(Calibration *cal) {
// Restores all configuration options to their default values
	unsigned short i;	
	cal->cfg.ForceUnits=ATI_strdup(cal->ForceUnits);  // set output units to calibration file defaults
	cal->cfg.TorqueUnits=ATI_strdup(cal->TorqueUnits);	
	for (i=0;i<6;i++)                                 // clear user Tool Transform
		cal->cfg.UserTransform.TT[i]=0;
	for (i=0;i < cal->rt.NumChannels-1;i++) {         // clear bias vectors
		cal->rt.bias_vector[i]=0;
		cal->rt.TCbias_vector[i]=0;
	}
	cal->rt.bias_vector[cal->rt.NumChannels-1]=0;     // thermistor reading of bias vector
	cal->cfg.TempCompEnabled=cal->TempCompAvailable;  // turn temp comp on by default, if available
	
	CalcMatrix(cal);                                  // compute working matrix and store in rt
} // ResetDefaults()
Exemple #8
0
	Matrix44 ModelUtils::CalcMatrix(float position[3], float rotation [4], float scale[3], RotationOrder rotationType)
	{
		auto matR = CalcRotationMatrix(rotation, rotationType);
		return CalcMatrix(position, matR, scale);
	}