当前位置: 首页>>代码示例>>C++>>正文


C++ XYZ类代码示例

本文整理汇总了C++中XYZ的典型用法代码示例。如果您正苦于以下问题:C++ XYZ类的具体用法?C++ XYZ怎么用?C++ XYZ使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了XYZ类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: set

char BindTriangle::set(const XY* corner, const XY& at, const XYZ* positions, const XYZ& topos, const float* distance, triangle_bind_info& res)
{
	//res.wei[0] = 1.0f;
	//res.wei[1] = res.wei[2] = 0.0f;
	
	XYZ dto = topos - positions[0];
	if(dto.length() > distance[0]*2) return 0;
	
	dto = topos - positions[1];
	if(dto.length() > distance[1]*2) return 0;
	
	dto = topos - positions[2];
	if(dto.length() > distance[2]*2) return 0;
	
	float f120 = barycentric_coord(corner[1].x, corner[1].y, corner[2].x, corner[2].y, corner[0].x, corner[0].y);
	float f201 = barycentric_coord(corner[2].x, corner[2].y, corner[0].x, corner[0].y, corner[1].x, corner[1].y);
	float f012 = barycentric_coord(corner[0].x, corner[0].y, corner[1].x, corner[1].y, corner[2].x, corner[2].y);
	
	float alpha, beta, gamma;
	
	alpha = barycentric_coord(corner[1].x,corner[1].y, corner[2].x, corner[2].y, at.x, at.y)/f120;
	if(alpha<0 || alpha>1) return 0;
	beta = barycentric_coord(corner[2].x, corner[2].y, corner[0].x, corner[0].y, at.x, at.y)/f201;
	if(beta<0 || beta>1) return 0;
	gamma = barycentric_coord(corner[0].x, corner[0].y, corner[1].x, corner[1].y, at.x, at.y)/f012;
	if(gamma<0 || gamma>1) return 0;
			
	res.wei[0] = alpha;
	res.wei[1] = beta;
	res.wei[2] = gamma;
	
	return 1;
}
开发者ID:saggita,项目名称:makoto,代码行数:33,代码来源:BindTriangle.cpp

示例2: XYZ

void TrialMol::SetBasis(const uint p1, const uint p2)
{
   using namespace geom;
   //W is unit vec of p1->p2
   XYZ wVec = axes->MinImage(tCoords.Difference(p2, p1), box);
   wVec.Normalize();
   XYZ uVec;
   //check to make sure our W isn't in line with the standard X Axis
   if (wVec.x < 0.8) {
      //V will be W x the standard X unit vec
      uVec = XYZ(1.0, 0.0, 0.0);
   }
   else {
      //V will be W x the standard Y unit vec
      uVec = XYZ(0.0, 1.0, 0.0);
   }
   XYZ vVec = Cross(wVec, uVec);
   vVec.Normalize();
   //U is unit vec perpendicular to both V and W
   uVec = Cross(vVec, wVec);
   growthToWorld.BasisRotation(uVec, vVec, wVec);
   worldToGrowth = growthToWorld.Inverse();
   basisPoint = tCoords.Get(p1);

}
开发者ID:YounesN,项目名称:GOMCHilbert,代码行数:25,代码来源:TrialMol.cpp

示例3: Recon_Back_WS_One

int Confo_Back::Recon_Back_WS_One(XYZ *mol,char *cle,int moln,XYZ **output,XYZ pre,XYZ nxt)
{
	if(moln!=1)return -1;
	XYZ real;
	double dist;
	//pre
	real=pre-mol[0];
	dist=pre.distance(mol[0]);
	real=real/dist;
	real=real*3.8;
	case_mol[0]=mol[0]+real;
	//nxt
	real=nxt-mol[0];
	dist=nxt.distance(mol[0]);
	real=real/dist;
	real=real*3.8;
	case_mol[2]=mol[0]+real;
	//construct
	case_mol[1]=mol[0];
	case_cle[0]='Q';
	if(cle[0]!='R')case_cle[1]=cle[0];
	else case_cle[1]='Q';
	case_cle[2]='Q';
	//build
	int retv;
	retv=Recon_Back_WS(case_mol,case_cle,3,case_mcb);
	if(retv!=1)return retv;
	//final
	int j;
	for(j=0;j<5;j++)output[0][j]=case_mcb[1][j];
	//return
	return 1;
}
开发者ID:realbigws,项目名称:DeepOpen_source,代码行数:33,代码来源:Confo_Back.cpp

示例4: Construct_Mol_II

void Confo_Back::Construct_Mol_II(XYZ pre,XYZ cur,XYZ nxt,double bend,double tort,double dist,XYZ &out)
{
	XYZ xyz;
	double x[3],y[3];
	double z[3];
	double cb1[3],cb2[3];
	xyz=nxt-cur;
	xyz.xyz2double(x);
	xyz=cur-pre;
	xyz.xyz2double(y);
	//check
	double angle=Vector_Angle(x,y,3);
	if(fabs(angle)<1.e-3||fabs(angle-M_PI)<1.e-3)
	{
		x[0]+=0.05;
		x[2]-=0.05;
		y[0]-=0.05;
		y[2]+=0.05;
	}
	//calc
	cross(z,x,y);
	Universal_Rotation(z,bend,Confo_Back_ROT_TOT);
	Vector_Multiply(cb1,Confo_Back_ROT_TOT,x);
	Universal_Rotation(x,tort,Confo_Back_ROT_TOT);
	Vector_Multiply(cb2,Confo_Back_ROT_TOT,cb1);
	Vector_Normalize(cb2,3);
	Vector_Dot(cb2,dist,cb2,3);
	out.double2xyz(cb2);
	out+=nxt;
}
开发者ID:realbigws,项目名称:DeepOpen_source,代码行数:30,代码来源:Confo_Back.cpp

示例5: slotDataAvailable

void SensorfwGyroscope::slotDataAvailable(const XYZ& data)
{
    m_reading.setX((qreal)(data.x()*MILLI));
    m_reading.setY((qreal)(data.y()*MILLI));
    m_reading.setZ((qreal)(data.z()*MILLI));
    m_reading.setTimestamp(data.XYZData().timestamp_);
    newReadingAvailable();
}
开发者ID:mortenelund,项目名称:qt,代码行数:8,代码来源:sensorfwgyroscope.cpp

示例6: slotDataAvailable

void meegorotationsensor::slotDataAvailable(const XYZ& data)
{
    m_reading.setX(data.x());
    m_reading.setY(data.y());
    m_reading.setZ(data.z());
    m_reading.setTimestamp(data.XYZData().timestamp_);
    newReadingAvailable();
}
开发者ID:KDE,项目名称:android-qt-mobility,代码行数:8,代码来源:meegorotationsensor.cpp

示例7: main

int main(){
XYZ X;
ABC A;
X.setValue(20);
A.setValue(12);
add(X,A);
return 0;

}
开发者ID:prateek27,项目名称:Coding-Problems,代码行数:9,代码来源:FriendToAddData.cpp

示例8: IMP_INTERNAL_CHECK

void Transform::apply_index(Model *m, ParticleIndex pi) const {
  if (!XYZ::get_is_setup(m, pi)) {
    IMP_INTERNAL_CHECK(ignore_non_xyz_,
                       "The particle does not have XYZ attributes");
    return;
  }
  XYZ xyz = XYZ(m, pi);
  xyz.set_coordinates(t_.get_transformed(xyz.get_coordinates()));
}
开发者ID:j-ma-bu-l-l-ock,项目名称:imp,代码行数:9,代码来源:Transform.cpp

示例9: OldThetaAndPhi

void TrialMol::OldThetaAndPhi(const uint atom, const uint lastAtom,
   double& theta, double& phi) const
{
   XYZ diff = tCoords.Difference(atom, lastAtom);
   diff = axes->MinImage(diff, box);
   XYZ growthCoords = worldToGrowth.Apply(diff);
   theta = acos(growthCoords.z / growthCoords.Length());
   phi = atan2(growthCoords.y, growthCoords.x);
   return;
}
开发者ID:YounesN,项目名称:GOMCHilbert,代码行数:10,代码来源:TrialMol.cpp

示例10: IMP_INTERNAL_CHECK

void Transform::apply(Particle *p) const
{
  if (!XYZ::particle_is_instance(p)) {
    IMP_INTERNAL_CHECK(ignore_non_xyz_,
                       "The particle does not have XYZ attributes");
    return;
  }
  XYZ xyz = XYZ(p);
  xyz.set_coordinates(t_.get_transformed(xyz.get_coordinates()));
}
开发者ID:drussel,项目名称:imp,代码行数:10,代码来源:Transform.cpp

示例11: if

void FDice::create(const XYZ& p0, const XYZ& p1, const XYZ& p2)
{
	p_obj[0] = P[0] = p0;
	p_obj[1] = P[1] = p1;
	p_obj[2] = P[2] = p2;
	
	V[0] = p1 - p0;
	edge_length[0] = V[0].length();
	
	V[1] = p2 - p1;
	edge_length[1] = V[1].length();
	
	V[2] = p0 - p2;
	edge_length[2] = V[2].length();
	
	area = 0.5*sqrt(edge_length[0]*edge_length[0]*edge_length[2]*edge_length[2] - (V[0].dot(V[2]))*(V[0].dot(V[2])));
	
	V[0].normalize();
	V[1].normalize();
	V[2].normalize();
	
	int a , b;
	
	if(edge_length[0] > edge_length[1] && edge_length[0] > edge_length[2])
	{
		a = 0;
		b = 1;
	}
	else if(edge_length[1] > edge_length[2] && edge_length[1] > edge_length[0])
	{
		a = 1;
		b = 2;
	}
	else
	{
		a = 2;
		b = 0;
	}
	
	XYZ side = V[a];
	XYZ front = side^V[b]; front.normalize();
	XYZ up = front^side;
	
	m_space.setOrientations(side, up, front);
	m_space.setTranslation(P[a]);
	m_space.inverse();
	
	m_space.transform(p_obj[0]);
	m_space.transform(p_obj[1]);
	m_space.transform(p_obj[2]);
	
	f120 = barycentric_coord(p_obj[1].x, p_obj[1].y, p_obj[2].x, p_obj[2].y, p_obj[0].x, p_obj[0].y);
	f201 = barycentric_coord(p_obj[2].x, p_obj[2].y, p_obj[0].x, p_obj[0].y, p_obj[1].x, p_obj[1].y);
	f012 = barycentric_coord(p_obj[0].x, p_obj[0].y, p_obj[1].x, p_obj[1].y, p_obj[2].x, p_obj[2].y);
}
开发者ID:esotericDisciple,项目名称:makoto,代码行数:55,代码来源:FDice.cpp

示例12:

int Confo_Back::Recon_Back_WS_2nxt(XYZ *mol,char *cle,int moln,XYZ **output,XYZ nxt)
{
	if(moln!=2)return -1;
	XYZ real;
	double dist;
	real=nxt-mol[1];
	dist=nxt.distance(mol[1]);
	real=real/dist;
	real=real*3.8;
	real=mol[1]+real;
	//construct
	case_mol[0]=mol[0];
	case_mol[1]=mol[1];
	case_mol[2]=real;
	if(cle[0]!='R')case_cle[0]=cle[0];
	else case_cle[0]='Q';
	if(cle[1]!='R')case_cle[1]=cle[1];
	else case_cle[1]='Q';
	case_cle[2]='Q';
	//build
	int retv;
	retv=Recon_Back_WS(case_mol,case_cle,3,case_mcb);
	if(retv!=1)return retv;
	//final
	int i,j;
	for(i=0;i<2;i++)for(j=0;j<5;j++)output[i][j]=case_mcb[i][j];
	//return
	return 1;
}
开发者ID:realbigws,项目名称:DeepOpen_source,代码行数:29,代码来源:Confo_Back.cpp

示例13: isCloseTo

char sphericalHarmonics::isCloseTo(const XYZ& ray, const float threshold, unsigned int id) const
{
	SHSample& s = getSample(id);
	float c = ray.dot(s.vector);
	float t = sqrt(1-c*c)/c;
	if(t >threshold) return 0;
	return 1;
}
开发者ID:saggita,项目名称:makoto,代码行数:8,代码来源:zSphericalHarmonics.cpp

示例14: Confo_Beta_CACB_To_Angle

//--------------function------------//
//given CA+CB -> return dist,bend,tort
void Confo_Beta::Confo_Beta_CACB_To_Angle(XYZ *CA,XYZ *CB,int moln,double *bend,double *tort,double *dist)
{
	int i;
	double r,b,t;
	XYZ xyz;
	//process
	for(i=1;i<moln-1;i++)
	{
		//get_point
		xyz=(CA[i]-CA[i-1]);
		xyz.xyz2double(beta_v1);
		xyz=(CA[i+1]-CA[i]);
		xyz.xyz2double(beta_v2);
		xyz=(CB[i]-CA[i]);
		xyz.xyz2double(beta_y);
		//calc
		r=dot(beta_y,beta_y);
		if(r<1.e-3)
		{
			r=0.0;
			b=0.0;
			t=0.0;
		}
		else
		{
			//calc_bend
			b=Vector_Angle(beta_v1,beta_y,3);
			//calc_tort
			cross(beta_x1,beta_v1,beta_v2);
			cross(beta_x2,beta_v1,beta_y);
			t=Vector_Angle(beta_x1,beta_x2,3);
			if(dot(beta_x1,beta_y)<0.0)t*=-1.0;
		}
		//evaluate
		if(dist!=NULL)dist[i]=r;
		if(bend!=NULL)bend[i]=b;
		if(tort!=NULL)tort[i]=t;
	}
	//assign head_tail
	if(dist!=NULL)dist[0]=-1.0;
	if(bend!=NULL)bend[0]=0.0;
	if(tort!=NULL)tort[0]=0.0;
	if(dist!=NULL)dist[moln-1]=-1.0;
	if(bend!=NULL)bend[moln-1]=0.0;
	if(tort!=NULL)tort[moln-1]=0.0;
}
开发者ID:realbigws,项目名称:DeepAlign,代码行数:48,代码来源:Confo_Beta.cpp

示例15: Cross

void TrialMol::SetBasis(const uint p1, const uint p2, const uint p3)
{
   using namespace geom;
   //W is unit vec of p1->p2
   XYZ wVec = axes->MinImage(tCoords.Difference(p2, p1), box);
   wVec.Normalize();
   //U will be unit projection of p2->p3 onto plane normal to W
   XYZ uVec = axes->MinImage(tCoords.Difference(p3, p2), box);
   //V is unit vec perpendicular to both W and U 
   XYZ vVec = Cross(wVec, uVec);
   vVec.Normalize();
   //Finish X'
   uVec = Cross(vVec, wVec);

   growthToWorld.BasisRotation(uVec, vVec, wVec);
   worldToGrowth = growthToWorld.Inverse();
   basisPoint = tCoords.Get(p1);
}
开发者ID:YounesN,项目名称:GOMCHilbert,代码行数:18,代码来源:TrialMol.cpp


注:本文中的XYZ类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。