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


C++ Mesh::BoundingBox方法代码示例

本文整理汇总了C++中Mesh::BoundingBox方法的典型用法代码示例。如果您正苦于以下问题:C++ Mesh::BoundingBox方法的具体用法?C++ Mesh::BoundingBox怎么用?C++ Mesh::BoundingBox使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mesh的用法示例。


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

示例1: OnePlotMesh

 OnePlotMesh(const Mesh *T)
   : OnePlot(0,2,3),Th(T) 
 {
   R2 P0,P1;
   Th->BoundingBox(P0,P1);
   Pmin=P0;
   Pmax=P1;
 }
开发者ID:zzyatlantise,项目名称:FreeFem-sources,代码行数:8,代码来源:ffglut.hpp

示例2: SetupCamera

/// Set up the camera.
void GLViewer::SetupCamera()
{
  if(mMesh)
    mMesh->BoundingBox(mAABBMin, mAABBMax);
  else
  {
    mAABBMin = Vector3(-1.0f, -1.0f, -1.0f);
    mAABBMax = Vector3(1.0f, 1.0f, 1.0f);
  }
  mCameraLookAt = (mAABBMax + mAABBMin) * 0.5f;
  float delta = (mAABBMax - mAABBMin).Abs();
  if(mCameraUp.z > 0.0f)
    mCameraPosition = Vector3(mCameraLookAt.x,
                              mCameraLookAt.y - 0.8f * delta,
                              mCameraLookAt.z + 0.2f * delta);
  else
    mCameraPosition = Vector3(mCameraLookAt.x,
                              mCameraLookAt.y + 0.2f * delta,
                              mCameraLookAt.z + 0.8f * delta);
}
开发者ID:mbitsnbites,项目名称:openctm,代码行数:21,代码来源:ctmviewer.cpp

示例3: Th

Mesh const*SplitMesh3 (Stack stack, Fem2D::Mesh const *const &pTh) {
	assert(pTh);
	const Mesh &Th(*pTh);	// le maillage d'origne a decoupe
	using  Fem2D::Triangle;
	using  Fem2D::Vertex;
	using  Fem2D::R2;
	using  Fem2D::BoundaryEdge;
	using  Fem2D::Mesh;
	// using  Fem2D::R;
	int nbv = Th.nv;// nombre de sommet
	int nbt = Th.nt;// nombre de triangles
	int neb = Th.neb;	// nombre d'aretes fontiere
	// allocation des nouveaux items du maillage
	Vertex *v = new Vertex[nbv + nbt];
	Triangle *t = new Triangle[nbt * 3];
	BoundaryEdge *b = new BoundaryEdge[neb];
	// generation des nouveaus sommets
	Vertex *vv = v;

	// copie des anciens sommets (remarque il n'y a pas operateur de copy des sommets)
	for (int i = 0; i < nbv; i++) {
		Vertex &V = Th(i);
		vv->x = V.x;
		vv->y = V.y;
		vv->lab = V.lab;
		vv++;
	}

	// generation des points barycentre de trianngles
	for (int k = 0; k < nbt; k++) {
		Triangle &K = Th[k];
		R2 G = ((R2)K[0] + K[1] + K[2]) / 3.;
		vv->x = G.x;
		vv->y = G.y;
		vv->lab = 0;
		vv++;
	}

	// generation des triangles
	Triangle *tt = t;
	int nberr = 0;

	for (int i = 0; i < nbt; i++) {
		int i0 = Th(i, 0), i1 = Th(i, 1), i2 = Th(i, 2);
		int ii = nbv + i;	// numero du
		// les 3 triangles par triangles origines
		(*tt++).set(v, ii, i1, i2, Th[i].lab);
		(*tt++).set(v, i0, ii, i2, Th[i].lab);
		(*tt++).set(v, i0, i1, ii, Th[i].lab);
	}

	// les arete frontieres qui n'ont pas change
	BoundaryEdge *bb = b;

	for (int i = 0; i < neb; i++) {
		int i1 = Th(Th.bedges[i][0]);
		int i2 = Th(Th.bedges[i][1]);
		int lab = Th.bedges[i].lab;
		*bb++ = BoundaryEdge(v, i1, i2, lab);
	}

	// generation de la class Mesh a partir des 3 tableaux : v,t,b
	{
		Mesh *m = new Mesh(nbv + nbt, nbt * 3, neb, v, t, b);
		R2 Pn, Px;
		m->BoundingBox(Pn, Px);
		m->quadtree = new Fem2D::FQuadTree(m, Pn, Px, m->nv);
		// m->decrement();
		Add2StackOfPtr2FreeRC(stack, m);
		return m;
	}
}
开发者ID:zzyatlantise,项目名称:FreeFem-sources,代码行数:72,代码来源:splitmesh3.cpp


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