本文整理汇总了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;
}
示例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);
}
示例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;
}
}