您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CreateMesh函数代码示例

51自学网 2021-06-01 20:14:45
  C++
这篇教程C++ CreateMesh函数代码示例写得很实用,希望能帮到您。

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

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

示例1: Load

void Load() { /* Load shader */ char shaderName_vsh[] = "Shader.vsh"; char shaderName_fsh[] = "Shader.fsh"; CompileShader(&g_Shader, shaderName_vsh, shaderName_fsh);  /* Load mesh */ CreateMesh(&g_Mesh[0], kCommonMesh_Cube); CreateMesh(&g_Mesh[1], kCommonMesh_Square);  // Cube g_Cube.mesh = &g_Mesh[0]; DefaultTransform(&g_Cube.transform); g_Cube.transform.position.z = 40.0f; g_Cube.transform.axis = GLKVector3Make(0.0f, 1.0f, 0.0f); //g_Cube.transform.scale = GLKVector3Make(10.0f, 10.0f, 10.0f); g_Cube.transform.angle = 0.0f; g_Cube.transform.parent = &g_WorldTrans; g_Cube.color = GLKVector4Make(0.4f, 0.6f, 0.7f, 0.8f);  // Mask g_Mask.mesh = &g_Mesh[1]; DefaultTransform(&g_Mask.transform); g_Mask.transform.position = GLKVector3Make(0.0f, 2.0f, 40.0f); g_Mask.transform.axis = GLKVector3Make(1.0f, 0.0f, 0.0f); g_Mask.transform.angle = 90.0f; g_Mask.transform.scale = GLKVector3Make(2.0f, 2.0f, 1.0f); g_Mask.transform.parent = &g_WorldTrans; g_Mask.color = GLKVector4Make(0.0f, 0.0f, 0.0f, 0.8f);  /* Set gl states */ glClearColor(0.5f, 0.5f, 0.5f, 1.0f); glEnable(GL_DEPTH_TEST);}
开发者ID:chunkyguy,项目名称:EWOGL,代码行数:34,


示例2: main

int main(int argc, char **argv){  MPI_Comm       comm;  DM             dm;  AppCtx         options;  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr;  comm = PETSC_COMM_WORLD;  ierr = ProcessOptions(comm, &options);CHKERRQ(ierr);  ierr = CreateMesh(comm, &options, &dm);CHKERRQ(ierr);  switch (options.test) {    case 0: ierr = test0(dm, &options);CHKERRQ(ierr); break;    case 1: ierr = test1(dm, &options);CHKERRQ(ierr); break;    case 2: ierr = test2(dm, &options);CHKERRQ(ierr); break;    case 3: ierr = test3(dm, &options);CHKERRQ(ierr); break;    case 4: ierr = test4(dm, &options);CHKERRQ(ierr); break;    case 5: ierr = test5(dm, &options);CHKERRQ(ierr); break;    case 6: ierr = test6(dm, &options);CHKERRQ(ierr); break;    case 7: ierr = test7(dm, &options);CHKERRQ(ierr); break;    case 8: ierr = test8(dm, &options);CHKERRQ(ierr); break;    default: SETERRQ1(comm, PETSC_ERR_ARG_OUTOFRANGE, "No such test: %D", options.test);  }  ierr = DMDestroy(&dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return ierr;}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:29,


示例3: main

int main(int argc, char **argv){  DM             dm;   /* Problem specification */  SNES           snes; /* Nonlinear solver */  Vec            u;    /* Solutions */  AppCtx         user; /* User-defined work context */  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr;  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  /* Primal system */  ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr);  ierr = SNESSetDM(snes, dm);CHKERRQ(ierr);  ierr = SetupFE(dm, user.dim, user.simplex, "displacement", SetupPrimalProblem, &user);CHKERRQ(ierr);  ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr);  ierr = VecSet(u, 0.0);CHKERRQ(ierr);  ierr = PetscObjectSetName((PetscObject) u, "displacement");CHKERRQ(ierr);  ierr = DMPlexSetSNESLocalFEM(dm, &user, &user, &user);CHKERRQ(ierr);  ierr = SNESSetFromOptions(snes);CHKERRQ(ierr);  ierr = DMSNESCheckFromOptions(snes, u, NULL, NULL);CHKERRQ(ierr);  ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr);  ierr = SNESGetSolution(snes, &u);CHKERRQ(ierr);  ierr = VecViewFromOptions(u, NULL, "-displacement_view");CHKERRQ(ierr);  /* Cleanup */  ierr = VecDestroy(&u);CHKERRQ(ierr);  ierr = SNESDestroy(&snes);CHKERRQ(ierr);  ierr = DMDestroy(&dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return ierr;}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:31,


示例4: fopen

    sint CRenderer::LoadMesh( const char* szFilename )    {                /********************* File Format ***********************/        float   fVertexSize        float   fVertexCount        uint    nIndexSize        uint    nIndexCount        float   fVerts[]        uint    nIndices[]        /*********************************************************/        uint nVertexStride;        uint nVertexCount;         uint nIndexSize;         uint nIndexCount;         byte* pData;            FILE* pFile = fopen( szFilename, "rb" );        fread( &nVertexStride, sizeof( nVertexStride ), 1, pFile );        fread( &nVertexCount, sizeof( nVertexCount ), 1, pFile );        fread( &nIndexSize, sizeof( nIndexSize ), 1, pFile );        nIndexSize = (nIndexSize == 32 ) ? 4 : 2;        fread( &nIndexCount, sizeof( nIndexCount ), 1, pFile );        pData   = new byte[ (nVertexStride * nVertexCount) + (nIndexCount * nIndexSize) ];        fread( pData, nVertexStride, nVertexCount, pFile );        fread( pData + (nVertexStride * nVertexCount), nIndexSize, nIndexCount, pFile );        fclose( pFile );        sint nMesh = CreateMesh( nVertexStride, nVertexCount, nIndexSize, nIndexCount, pData, pData + (nVertexStride * nVertexCount) );                delete [] pData;                return nMesh;    }
开发者ID:10n1,项目名称:RiotPrototype,代码行数:35,


示例5: CreateMesh

class FMesh* FPrimitiveBuilder::GenerateDisc(int SubdivisionNumber, class FTexture* Texture, const glm::mat4& Transform, const glm::vec4& Colour /*= glm::vec4(1.0f)*/){	FMesh* Mesh = CreateMesh(Texture, Colour);	const float kHalfCubeSize = 0.5f;	float Theta = 0.0f;	float DeltaTheta = (float) ((2 * M_PI) / SubdivisionNumber);	for (int i = 0; i < SubdivisionNumber; i++)	{		float PreviousTheta = Theta;		Theta += DeltaTheta;		glm::vec3 Positions[3] = 		{			glm::vec3(cos(PreviousTheta), sin(PreviousTheta), 0.0f),			glm::vec3(0.0f, 0.0f, 0.0f),			glm::vec3(cos(Theta), sin(Theta), 0.0f)		};		glm::vec3 Normal(0.0f, 0.0f, 1.0f);		for (int k = 0; k < 3; k++)		{			Mesh->AddVertexData(Positions[k], Normal, glm::vec2(Positions[k].x * 0.5f + 0.5f, Positions[k].y * 0.5f + 0.5f));		}	}	Mesh->TransformVertices(Transform);	return Mesh;}
开发者ID:subr3v,项目名称:2nd-Year-University-Projects,代码行数:30,


示例6: RegisterComponent

    /*!    * @brief Initilize everything SDL needs at the start    */    void GLGraphics::Init(void) //Initilize SDL    {      // Register the components needed for graphics.      RegisterComponent(MC_Transform);      RegisterComponent(MC_Sprite);      CreateMesh();      // Create the default shader.      ShaderPtr defaultShader(new GLShader());      // Load the shader files for the default shader.      defaultShader->LoadShaderFile("dvert.glsl", "dfrag.glsl", 0);      // Compile the shaders.      defaultShader->Compile();      // Find the variables in the shaders that will be modified by the end-users.      defaultShader->FindUniforms("model");      defaultShader->FindUniforms("view");      defaultShader->FindUniforms("proj");      defaultShader->FindUniforms("color");                  // Add the shader to the ShaderMap.      addShader("Box", defaultShader);    }
开发者ID:JohannesMP,项目名称:AlJeEngine,代码行数:32,


示例7: CreateScene

bool CreateScene(KFbxSdkManager *pSdkManager, KFbxScene* pScene){    // create scene info    KFbxDocumentInfo* sceneInfo = KFbxDocumentInfo::Create(pSdkManager,"SceneInfo");    sceneInfo->mTitle = "Mesh";    sceneInfo->mSubject = "Mesh thing";    sceneInfo->mAuthor = "Team opennirospcleigenubuntuvmware";    sceneInfo->mRevision = "0.1";    sceneInfo->mKeywords = "mesh";    sceneInfo->mComment = "none";    // we need to add the sceneInfo before calling AddThumbNailToScene because    // that function is asking the scene for the sceneInfo.    pScene->SetSceneInfo(sceneInfo);    KFbxNode* lPatch = CreateMesh(pScene, "Patch");    KFbxNode* lSkeletonRoot = CreateSkeleton(pScene, "Skeleton");    // Build the node tree.    KFbxNode* lRootNode = pScene->GetRootNode();    lRootNode->AddChild(lPatch);    lRootNode->AddChild(lSkeletonRoot);/*	// Store poses    LinkPatchToSkeleton(pScene, lPatch, lSkeletonRoot);    StoreBindPose(pScene, lPatch, lSkeletonRoot);    StoreRestPose(pScene, lSkeletonRoot);	// Animation    AnimateSkeleton(pScene, lSkeletonRoot);*/    return true;}
开发者ID:gimlids,项目名称:BodyScanner,代码行数:35,


示例8: main

int main() {    Window window;    Camera camera(window.GetAspectRatio(), glm::vec3(2.0, 2.0, 1.0));    Mesh* sphereMesh = CreateMesh("sphere.obj", "sphere");    Shader defaultShader("Shaders/defaultShader.vert", "Shaders/defaultShader.frag", "defaultShader");    SetupMesh(sphereMesh, defaultShader);    do {        window.Clear();        DrawMesh(*sphereMesh, camera, defaultShader);        camera.front = sphereMesh->position;        sphereMesh->rotY -= 0.016;        {            if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_W) == GLFW_PRESS) {                sphereMesh->position.x -= 0.16;            }            else if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_S) == GLFW_PRESS) {                sphereMesh->position.x += 0.16;            }            if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_A) == GLFW_PRESS) {                sphereMesh->position.z += 0.16;            }            else if (glfwGetKey(window.GetWindowInstance(), GLFW_KEY_D) == GLFW_PRESS) {                sphereMesh->position.z -= 0.16;            }        }        window.Update();    } while (!window.Closed() && glfwGetKey(window.GetWindowInstance(), GLFW_KEY_ESCAPE) != GLFW_PRESS);    delete sphereMesh;}
开发者ID:Raf22,项目名称:Snow,代码行数:31,


示例9: CreateMesh

    sint CRenderer::CreateMesh( void )    {        // If the cube has already been created, return it        if( m_nDefaultMesh != INVALID_HANDLE )        {            return m_nDefaultMesh;        }        //////////////////////////////////////////        // Define the index buffer        uint16 indices[] =        {            3,1,0,            2,1,3,            6,4,5,            7,4,6,            11,9,8,            10,9,11,            14,12,13,            15,12,14,            19,17,16,            18,17,19,            22,20,21,            23,20,22        };        m_nDefaultMesh = CreateMesh( VPosNormalTex::VertexStride, 24, sizeof(uint16), ARRAY_LENGTH( indices ), GetDefaultMeshData(), indices, GFX_BUFFER_USAGE_IMMUTABLE );        return m_nDefaultMesh;    }
开发者ID:10n1,项目名称:RiotPrototype,代码行数:35,


示例10: PezInitialize

const char* PezInitialize(int width, int height){    BuddhaMesh = CreateMesh("buddha.ctm");    QuadVbo = CreateQuad(-1, -1, 1, 1);    #ifdef LIGHTING    DepthProgram = CreateProgram("Glass.Vertex", "Glass.Fragment.Lighting" SUFFIX);    AbsorptionProgram = CreateProgram("Glass.Vertex.Quad", "Glass.Fragment.Blit" SUFFIX);#else    DepthProgram = CreateProgram("Glass.Vertex", "Glass.Fragment.Depth" SUFFIX);    AbsorptionProgram = CreateProgram("Glass.Vertex.Quad", "Glass.Fragment.Absorption" SUFFIX);#endif    // Create a floating-point render target:    GLuint textureHandle;    glGenTextures(1, &textureHandle);    glBindTexture(GL_TEXTURE_2D, textureHandle);    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);    #ifdef LIGHTING    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 768, 1024, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);#elif defined(__IPAD__)    glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 768, 1024, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, 0);#else    glTexImage2D(GL_TEXTURE_2D, 0, GL_RG16F, 768, 1024, 0, GL_RG, GL_FLOAT, 0);#endif        PezCheckCondition(GL_NO_ERROR == glGetError(), "This passes on Mac OS X and iOS.");    OffscreenTexture = textureHandle;        GLuint fboHandle;    glGenFramebuffers(1, &fboHandle);    glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureHandle, 0);#ifdef LIGHTING    GLuint depthRenderbuffer;    glGenRenderbuffers(1, &depthRenderbuffer);    glBindRenderbuffer(GL_RENDERBUFFER, depthRenderbuffer);    glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, width, height);    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRenderbuffer);#endif    PezCheckCondition(GL_FRAMEBUFFER_COMPLETE == glCheckFramebufferStatus(GL_FRAMEBUFFER), "This asserts on iOS and passes on Mac OS X.");    OffscreenFbo = fboHandle;    glBindFramebuffer(GL_FRAMEBUFFER, 0);    glBindRenderbuffer(GL_RENDERBUFFER, 0);        // Set up the projection matrix:    const float HalfWidth = 0.5;    const float HalfHeight = HalfWidth * PEZ_VIEWPORT_HEIGHT / PEZ_VIEWPORT_WIDTH;    ProjectionMatrix = M4MakeFrustum(-HalfWidth, +HalfWidth, -HalfHeight, +HalfHeight, 5, 20);    return "Glass Demo";}
开发者ID:jsj2008,项目名称:blog-source,代码行数:59,


示例11: CreateMesh

csPtr<iMeshWrapper> GeneralMeshBuilder::CreateMesh (	iEngine* engine, iSector* sector, const char* name,	const char* factoryname){  iMeshFactoryWrapper* factory = engine->FindMeshFactory (factoryname);  if (!factory) return 0;  return CreateMesh (engine, sector, name, factory);}
开发者ID:garinh,项目名称:cs,代码行数:8,


示例12: CreateMesh

void Engine1D::StartSimulation(Mesh1D &mesh){	this->number_of_states = this->time_length / this->time_step;	CreateMesh(mesh);	this->CreateTime();	this->CreateInitialState(mesh);	this->Solve(mesh);}
开发者ID:ThomasThelen,项目名称:Numerical-Methods,代码行数:8,


示例13: strcpy

void TextureText::SetString(const char* str){	strcpy(text, str);	//strcpy(text,TEX_TEXT_MAX_STRING_LENGTH,str);	GenerateLetters();	CreateMesh();}
开发者ID:kristofe,项目名称:VolumeRenderer,代码行数:8,


示例14: CreateSolidPlane

Mesh* CreateSolidPlane(float xSize, float zSize, int xSegments, int zSegments, const glm::mat4& transform){    int numVertices = (xSegments + 1) * (zSegments + 1);    std::vector<VertexPositionNormal> vertexData(numVertices);    float xStep = xSize / xSegments;    float zStep = zSize / zSegments;    VertexPositionNormal* vertexPtr = &vertexData[0];    float z = -0.5f * zSize;    for (int j = 0; j <= zSegments; j++) {        float x = -0.5f * xSize;        for (int i = 0; i <= xSegments; i++) {            vertexPtr->pos.x = x;            vertexPtr->pos.y = 0;            vertexPtr->pos.z = z;            vertexPtr->normal.x = 0;            vertexPtr->normal.y = 1;            vertexPtr->normal.z = 0;            ++vertexPtr;            x += xStep;        }        z += zStep;    }    int numTriangles = 2 * xSegments * zSegments;    int numElements = 3 * numTriangles;    std::vector<unsigned> indexData(numElements);   // use 32-bit indices for large planes!!!11!!!    unsigned* indexPtr = &indexData[0];    unsigned e = 0;    for (int j = 0; j < zSegments; j++) {        for (int i = 0; i < xSegments; i++) {            // the four corners of this "square"            unsigned e = (xSegments + 1) * j + i;            unsigned e1 = e;            unsigned e2 = e + 1;            unsigned e3 = e + xSegments + 1;            unsigned e4 = e + xSegments + 2;            // triangle 1            *indexPtr++ = e1;            *indexPtr++ = e3;            *indexPtr++ = e4;            // triangle 2            *indexPtr++ = e1;            *indexPtr++ = e4;            *indexPtr++ = e2;            ++e;        }        ++e;    }    return CreateMesh(GL_TRIANGLES, vertexData, indexData);}
开发者ID:Mertank,项目名称:md5-anim,代码行数:57,


示例15: CreateMesh

// Rebuildvoid Chunk::RebuildMesh(){	m_isRebuildingMesh = true;	if (m_pMesh != NULL)	{		m_pRenderer->ClearMesh(m_pMesh);		m_pMesh = NULL;	}	CreateMesh();	// Update our wall flags, so that our neighbors can check if they are surrounded	UpdateWallFlags();	UpdateSurroundedFlag();	Chunk* pChunkXMinus = m_pChunkManager->GetChunk(m_gridX - 1, m_gridY, m_gridZ);	Chunk* pChunkXPlus = m_pChunkManager->GetChunk(m_gridX + 1, m_gridY, m_gridZ);	Chunk* pChunkYMinus = m_pChunkManager->GetChunk(m_gridX, m_gridY - 1, m_gridZ);	Chunk* pChunkYPlus = m_pChunkManager->GetChunk(m_gridX, m_gridY + 1, m_gridZ);	Chunk* pChunkZMinus = m_pChunkManager->GetChunk(m_gridX, m_gridY, m_gridZ - 1);	Chunk* pChunkZPlus = m_pChunkManager->GetChunk(m_gridX, m_gridY, m_gridZ + 1);	if (pChunkXMinus != NULL && pChunkXMinus->IsSetup() == true)		pChunkXMinus->UpdateSurroundedFlag();	if (pChunkXPlus != NULL && pChunkXPlus->IsSetup() == true)		pChunkXPlus->UpdateSurroundedFlag();	if (pChunkYMinus != NULL && pChunkYMinus->IsSetup() == true)		pChunkYMinus->UpdateSurroundedFlag();	if (pChunkYPlus != NULL && pChunkYPlus->IsSetup() == true)		pChunkYPlus->UpdateSurroundedFlag();	if (pChunkZMinus != NULL && pChunkZMinus->IsSetup() == true)		pChunkZMinus->UpdateSurroundedFlag();	if (pChunkZPlus != NULL && pChunkZPlus->IsSetup() == true)		pChunkZPlus->UpdateSurroundedFlag();	// Rebuild neighbours	if (m_rebuildNeighours)	{		if (pChunkXMinus != NULL && pChunkXMinus->IsSetup() == true)			pChunkXMinus->SetNeedsRebuild(true, false);		if (pChunkXPlus != NULL && pChunkXPlus->IsSetup() == true)			pChunkXPlus->SetNeedsRebuild(true, false);		if (pChunkYMinus != NULL && pChunkYMinus->IsSetup() == true)			pChunkYMinus->SetNeedsRebuild(true, false);		if (pChunkYPlus != NULL && pChunkYPlus->IsSetup() == true)			pChunkYPlus->SetNeedsRebuild(true, false);		if (pChunkZMinus != NULL && pChunkZMinus->IsSetup() == true)			pChunkZMinus->SetNeedsRebuild(true, false);		if (pChunkZPlus != NULL && pChunkZPlus->IsSetup() == true)			pChunkZPlus->SetNeedsRebuild(true, false);		m_rebuildNeighours = false;	}	m_numRebuilds++;	m_rebuild = false;}
开发者ID:CodeMason,项目名称:Vox,代码行数:58,


示例16: main

int main(int argc, char **argv){  SNES           snes;                 /* nonlinear solver */  Mat            A,J;                  /* Jacobian,preconditioner matrix */  Vec            u,r;                  /* solution, residual vectors */  AppCtx         user;                 /* user-defined work context */  PetscReal      error = 0.0;          /* L_2 error in the solution */  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr);  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr);  ierr = SNESSetDM(snes, user.dm);CHKERRQ(ierr);  ierr = SetupExactSolution(&user);CHKERRQ(ierr);  ierr = SetupQuadrature(&user);CHKERRQ(ierr);  ierr = SetupSection(user.dm, &user);CHKERRQ(ierr);  ierr = DMCreateGlobalVector(user.dm, &u);CHKERRQ(ierr);  ierr = VecDuplicate(u, &r);CHKERRQ(ierr);  ierr = DMSetMatType(user.dm,MATAIJ);CHKERRQ(ierr);  ierr = DMCreateMatrix(user.dm, &J);CHKERRQ(ierr);  A    = J;  ierr = DMSNESSetFunctionLocal(user.dm,  (PetscErrorCode (*)(DM,Vec,Vec,void*))FormFunctionLocal,&user);CHKERRQ(ierr);  ierr = DMSNESSetJacobianLocal(user.dm,  (PetscErrorCode (*)(DM,Vec,Mat,Mat,void*))FormJacobianLocal,&user);CHKERRQ(ierr);  ierr = SNESSetFromOptions(snes);CHKERRQ(ierr);  {    PetscReal res;    /* Check discretization error */    ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial guess/n");CHKERRQ(ierr);    ierr = VecView(u, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);    /* ierr = ComputeError(u, &error, &user);CHKERRQ(ierr); */    ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Error: %g/n", error);CHKERRQ(ierr);    /* Check residual */    ierr = SNESComputeFunction(snes,u,r);CHKERRQ(ierr);    ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial Residual/n");CHKERRQ(ierr);    ierr = VecChop(r, 1.0e-10);CHKERRQ(ierr);    ierr = VecView(r, PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);    ierr = VecNorm(r, NORM_2, &res);CHKERRQ(ierr);    ierr = PetscPrintf(PETSC_COMM_WORLD, "L_2 Residual: %g/n", res);CHKERRQ(ierr);  }  ierr = VecDestroy(&u);CHKERRQ(ierr);  ierr = VecDestroy(&r);CHKERRQ(ierr);  ierr = SNESDestroy(&snes);CHKERRQ(ierr);  ierr = DMDestroy(&user.dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return 0;}
开发者ID:lw4992,项目名称:petsc,代码行数:56,


示例17: SafeDelete

void UIScreenEldMirror::SetBodyMesh( const SimpleString& MeshName, const SimpleString& TextureName ){	SafeDelete( m_BodyMesh );	m_BodyMesh = CreateMesh( MeshName, TextureName );	ASSERT( m_RigMesh );	m_BodyMesh->CopyAnimationsFrom( m_RigMesh );	PlayAnimation();}
开发者ID:MinorKeyGames,项目名称:Eldritch,代码行数:10,


示例18: main

int main(int argc, char **argv){  DM             dm, subdm, auxdm;  Vec            la;  AppCtx         user;  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr;  ierr = ProcessOptions(&user);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr);  ierr = SetupDiscretization(dm, user.dim, user.cellSimplex, &user);CHKERRQ(ierr);  /* Volumetric Mesh Projection */  ierr = TestFunctionProjection(dm, NULL, NULL, NULL, "Volumetric Primary", &user);CHKERRQ(ierr);  ierr = TestFieldProjection(dm, NULL, NULL, NULL, "Volumetric Primary", &user);CHKERRQ(ierr);  if (user.auxfield) {    /* Volumetric Mesh Projection with Volumetric Data */    ierr = CreateAuxiliaryData(dm, &auxdm, &la, &user);CHKERRQ(ierr);    ierr = TestFunctionProjection(dm, auxdm, NULL, la, "Volumetric Primary and Volumetric Auxiliary", &user);CHKERRQ(ierr);    ierr = TestFieldProjection(dm, auxdm, NULL, la, "Volumetric Primary and Volumetric Auxiliary", &user);CHKERRQ(ierr);    ierr = VecDestroy(&la);CHKERRQ(ierr);    /* Update of Volumetric Auxiliary Data with primary Volumetric Data */    ierr = DMGetLocalVector(dm, &la);CHKERRQ(ierr);    ierr = VecSet(la, 1.0);CHKERRQ(ierr);    ierr = TestFieldProjection(auxdm, dm, NULL, la, "Volumetric Auxiliary Update with Volumetric Primary", &user);CHKERRQ(ierr);    ierr = DMRestoreLocalVector(dm, &la);CHKERRQ(ierr);    ierr = DMDestroy(&auxdm);CHKERRQ(ierr);  }  if (user.submesh) {    DMLabel bdLabel;    /* Boundary Mesh Projection */    ierr = CreateBoundaryMesh(dm, &bdLabel, &subdm, &user);CHKERRQ(ierr);    ierr = TestFunctionProjection(subdm, NULL, NULL, NULL, "Boundary Primary", &user);CHKERRQ(ierr);    ierr = TestFieldProjection(subdm, NULL, NULL, NULL, "Boundary Primary", &user);CHKERRQ(ierr);    if (user.auxfield) {      /* Boundary Mesh Projection with Boundary Data */      ierr = CreateAuxiliaryData(subdm, &auxdm, &la, &user);CHKERRQ(ierr);      ierr = TestFunctionProjection(subdm, auxdm, NULL, la, "Boundary Primary and Boundary Auxiliary", &user);CHKERRQ(ierr);      ierr = TestFieldProjection(subdm, auxdm, NULL, la, "Boundary Primary and Boundary Auxiliary", &user);CHKERRQ(ierr);      ierr = VecDestroy(&la);CHKERRQ(ierr);      ierr = DMDestroy(&auxdm);CHKERRQ(ierr);      /* Volumetric Mesh Projection with Boundary Data */      ierr = CreateAuxiliaryData(subdm, &auxdm, &la, &user);CHKERRQ(ierr);      ierr = TestFunctionProjection(dm, auxdm, bdLabel, la, "Volumetric Primary and Boundary Auxiliary", &user);CHKERRQ(ierr);      ierr = TestFieldProjection(dm, auxdm, bdLabel, la, "Volumetric Primary and Boundary Auxiliary", &user);CHKERRQ(ierr);      ierr = VecDestroy(&la);CHKERRQ(ierr);      ierr = DMDestroy(&auxdm);CHKERRQ(ierr);    }    ierr = DMLabelDestroy(&bdLabel);CHKERRQ(ierr);    ierr = DMDestroy(&subdm);CHKERRQ(ierr);  }  ierr = DMDestroy(&dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return ierr;}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:55,


示例19: CreateMesh

	void FbxParser::LoadMesh(GameObjectPtr node, FbxNode * fbxNode)	{		FbxMesh* fbxMesh = static_cast<FbxMesh*>(fbxNode->GetNodeAttribute());		auto mesh = CreateMesh(node, fbxNode);		auto renderer = MeshRender::Create();		renderer->mMesh = mesh;		renderer->mMaterial = Material::Create();		node->AddComponent(renderer);	}
开发者ID:luxuia,项目名称:JustEngine,代码行数:11,


示例20: DEBUGASSERT

void UIWidgetFrame::UpdateRender(){	DEBUGASSERT( m_UIManager->DEBUGIsSafeToUpdateRender( m_LastRenderedTime ) );	SafeDelete( m_Mesh );	IRenderer* const pRenderer = m_UIManager->GetRenderer();	m_Mesh = CreateMesh();	m_Mesh->SetMaterialDefinition( m_Material, pRenderer );	m_Mesh->SetTexture( 0, m_Texture );	m_Mesh->SetMaterialFlags( m_RenderInWorld ? MAT_INWORLDHUD : MAT_HUD );}
开发者ID:Johnicholas,项目名称:EldritchCopy,代码行数:12,


示例21: main

int main(int argc, char **argv){  AppCtx         user;                 /* user-defined work context */  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, PETSC_NULL, help);CHKERRQ(ierr);  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr);  ierr = DMDestroy(&user.dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return 0;}
开发者ID:erdc-cm,项目名称:petsc-dev,代码行数:12,


示例22: main

int main(int argc, char **argv){  SNES           snes; /* nonlinear solver */  DM             dm;   /* problem definition */  Vec            u, r; /* solution and residual */  AppCtx         user; /* user-defined work context */  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL,help);if (ierr) return ierr;  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  ierr = PetscBagCreate(PETSC_COMM_WORLD, sizeof(Parameter), &user.bag);CHKERRQ(ierr);  ierr = SetupParameters(&user);CHKERRQ(ierr);  ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr);  ierr = SNESSetDM(snes, dm);CHKERRQ(ierr);  ierr = DMSetApplicationContext(dm, &user);CHKERRQ(ierr);  /* Setup problem */  ierr = PetscMalloc(2 * sizeof(void (*)(const PetscReal[], PetscScalar *, void *)), &user.exactFuncs);CHKERRQ(ierr);  ierr = SetupDiscretization(dm, &user);CHKERRQ(ierr);  ierr = DMPlexCreateClosureIndex(dm, NULL);CHKERRQ(ierr);  ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr);  ierr = VecDuplicate(u, &r);CHKERRQ(ierr);  ierr = DMPlexSetSNESLocalFEM(dm,&user,&user,&user);CHKERRQ(ierr);  ierr = SNESSetFromOptions(snes);CHKERRQ(ierr);  {    Parameter *param;    void      *ctxs[2];    ierr = PetscBagGetData(user.bag, (void **) &param);CHKERRQ(ierr);    ctxs[0] = ctxs[1] = param;    ierr = DMProjectFunction(dm, 0.0, user.exactFuncs, ctxs, INSERT_ALL_VALUES, u);CHKERRQ(ierr);    ierr = PetscObjectSetName((PetscObject) u, "Exact Solution");CHKERRQ(ierr);    ierr = VecViewFromOptions(u, NULL, "-exact_vec_view");CHKERRQ(ierr);  }  ierr = DMSNESCheckFromOptions(snes, u, NULL, NULL);CHKERRQ(ierr);  ierr = VecSet(u, 0.0);CHKERRQ(ierr);  ierr = PetscObjectSetName((PetscObject) u, "Solution");CHKERRQ(ierr);  ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr);  ierr = VecViewFromOptions(u, NULL, "-sol_vec_view");CHKERRQ(ierr);  ierr = VecDestroy(&u);CHKERRQ(ierr);  ierr = VecDestroy(&r);CHKERRQ(ierr);  ierr = PetscFree(user.exactFuncs);CHKERRQ(ierr);  ierr = DMDestroy(&dm);CHKERRQ(ierr);  ierr = SNESDestroy(&snes);CHKERRQ(ierr);  ierr = PetscBagDestroy(&user.bag);CHKERRQ(ierr);  ierr = PetscFinalize();  return ierr;}
开发者ID:petsc,项目名称:petsc,代码行数:53,


示例23: SetMesh

void FntLabel::UpdateMesh(){	if (mString.IsEmpty())	{		if (mFont->HasSinglePage() && mFont->IsFixed())		{			SetMesh(nullptr);			SetMaterial(nullptr);		}		if (!mManagedNodes.IsEmpty())		{			DeleteAllChilds(NodeRemoveFlags::OnlyManaged);		}		SetSize(Size2F::Zero);		mInternalMeshes.Clear();		return;	}	else if (mRenderingObject.Mesh() ==nullptr)	{		CreateMesh();	}	Size2F outSize;	if (mIsMultipleLine)	{		TextLayouter::LayoutMultipleLineText(mInternalMeshes, mInternalPages, outSize, *mFont, mString, mAlignment, mRestrictSize, this, mIsStatic);	}	else	{		TextLayouter::LayoutSingleLineText(mInternalMeshes, mInternalPages, outSize, *mFont, mString, mAlignment, mRestrictSize, this, mIsStatic);	}	SetSize(outSize);	//check if there are some mesh has no char after layout,this is rarely hit	size_t meshCount = mInternalMeshes.Count();	if (meshCount>1)	{		List<size_t> unusedIndices;		List<INode*> unusedSprites;		FOR_EACH_SIZE(i, meshCount)		{			BaseFontMesh* mesh = mInternalMeshes[i];			if (!mesh->HasChars())			{				unusedIndices.Add(i);				unusedSprites.Add(mManagedNodes[i]);			}		}
开发者ID:xuxiaowei007,项目名称:Medusa,代码行数:52,


示例24: main

int main(int argc, char **argv){  DM             dm;  SNES           snes;  Vec            u, r;  AppCtx         user;  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL, help);CHKERRQ(ierr);  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  ierr = SNESCreate(PETSC_COMM_WORLD, &snes);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &dm);CHKERRQ(ierr);  ierr = SNESSetDM(snes, dm);CHKERRQ(ierr);  ierr = PetscMalloc(3 * sizeof(void (*)()), &user.exactFuncs);CHKERRQ(ierr);  ierr = SetupDiscretization(dm, &user);CHKERRQ(ierr);  ierr = DMCreateGlobalVector(dm, &u);CHKERRQ(ierr);  ierr = PetscObjectSetName((PetscObject) u, "solution");CHKERRQ(ierr);  ierr = VecDuplicate(u, &r);CHKERRQ(ierr);  ierr = DMPlexSetSNESLocalFEM(dm,&user,&user,&user);CHKERRQ(ierr);  ierr = SNESSetFromOptions(snes);CHKERRQ(ierr);  ierr = DMProjectFunction(dm, user.exactFuncs, NULL, INSERT_ALL_VALUES, u);CHKERRQ(ierr);  ierr = DMSNESCheckFromOptions(snes, u, user.exactFuncs, NULL);CHKERRQ(ierr);  if (user.runType == RUN_FULL) {    PetscErrorCode (*initialGuess[3])(PetscInt dim, const PetscReal x[], PetscInt Nf, PetscScalar u[], void *ctx);    PetscReal        error;    initialGuess[0] = zero;    initialGuess[1] = zero;    initialGuess[2] = zero;    ierr = DMProjectFunction(dm, initialGuess, NULL, INSERT_VALUES, u);CHKERRQ(ierr);    ierr = VecViewFromOptions(u, NULL, "-initial_vec_view");CHKERRQ(ierr);    ierr = DMComputeL2Diff(dm, user.exactFuncs, NULL, u, &error);CHKERRQ(ierr);    if (error < 1.0e-11) {ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial L_2 Error: < 1.0e-11/n");CHKERRQ(ierr);}    else                 {ierr = PetscPrintf(PETSC_COMM_WORLD, "Initial L_2 Error: %g/n", error);CHKERRQ(ierr);}    ierr = SNESSolve(snes, NULL, u);CHKERRQ(ierr);    ierr = DMComputeL2Diff(dm, user.exactFuncs, NULL, u, &error);CHKERRQ(ierr);    if (error < 1.0e-11) {ierr = PetscPrintf(PETSC_COMM_WORLD, "Final L_2 Error: < 1.0e-11/n");CHKERRQ(ierr);}    else                 {ierr = PetscPrintf(PETSC_COMM_WORLD, "Final L_2 Error: %g/n", error);CHKERRQ(ierr);}  }  ierr = VecViewFromOptions(u, NULL, "-sol_vec_view");CHKERRQ(ierr);  ierr = VecDestroy(&u);CHKERRQ(ierr);  ierr = VecDestroy(&r);CHKERRQ(ierr);  ierr = SNESDestroy(&snes);CHKERRQ(ierr);  ierr = DMDestroy(&dm);CHKERRQ(ierr);  ierr = PetscFree(user.exactFuncs);CHKERRQ(ierr);  ierr = PetscFinalize();  return 0;}
开发者ID:masa-ito,项目名称:PETScToPoisson,代码行数:52,


示例25: main

int main(int argc, char **argv){  AppCtx         user;                 /* user-defined work context */  PetscErrorCode ierr;  ierr = PetscInitialize(&argc, &argv, NULL, help);if (ierr) return ierr;  ierr = ProcessOptions(PETSC_COMM_WORLD, &user);CHKERRQ(ierr);  ierr = CreateMesh(PETSC_COMM_WORLD, &user, &user.dm);CHKERRQ(ierr);  if (user.testShape) {ierr = DMPlexCheckCellShape(user.dm, PETSC_TRUE);CHKERRQ(ierr);}  ierr = DMDestroy(&user.dm);CHKERRQ(ierr);  ierr = PetscFinalize();  return ierr;}
开发者ID:firedrakeproject,项目名称:petsc,代码行数:13,


示例26: model

Resource* MDLMeshImporter::Import( const String& pFilename, const String& /*pParams*/ ){    NWN::Model model( pFilename );    MDLReader  modelReader;    modelReader.Read( pFilename, model );    // Recursivly create all meshes.    Mesh* pMesh = CreateMesh( model.mGeometry, NULL, model.mAnimations.size() > 0 || model.mSuperModelName != "null" );	pMesh->SetName(pFilename);    return pMesh;}
开发者ID:SebastienLussier,项目名称:Gamedesk,代码行数:13,


示例27: CreateChunkyCylinder

Mesh* CreateChunkyCylinder(float radius, float height, int numSegments, const glm::mat4& transform){    std::vector<VertexPositionNormal> vertices;    float top = 0.5f * height;    float bottom = -0.5f * height;    float angStep = 2 * 3.14159f / numSegments;    float angle = 0;    for (int i = 0; i < numSegments; i++) {        float x1 = radius * std::cos(angle);        float z1 = radius * std::sin(angle);        float x2 = radius * std::cos(angle + angStep);        float z2 = radius * std::sin(angle + angStep);        // triangle at the base        vertices.push_back(VertexPositionNormal(0, bottom, 0,    0, -1, 0));        vertices.push_back(VertexPositionNormal(x1, bottom, z1,  0, -1, 0));        vertices.push_back(VertexPositionNormal(x2, bottom, z2,  0, -1, 0));        // triangle at the top        vertices.push_back(VertexPositionNormal(0, top, 0,    0, 1, 0));        vertices.push_back(VertexPositionNormal(x2, top, z2,  0, 1, 0));        vertices.push_back(VertexPositionNormal(x1, top, z1,  0, 1, 0));        // compute normal for triangles on the side        glm::vec3 a(x1, top, z1);        glm::vec3 b(x1, bottom, z1);        glm::vec3 c(x2, bottom, z2);        glm::vec3 u = b - a;        glm::vec3 v = c - a;        glm::vec3 n = glm::normalize(glm::cross(v, u));        vertices.push_back(VertexPositionNormal(x1, top, z1,     n.x, n.y, n.z));        vertices.push_back(VertexPositionNormal(x2, bottom, z2,  n.x, n.y, n.z));        vertices.push_back(VertexPositionNormal(x1, bottom, z1,  n.x, n.y, n.z));        vertices.push_back(VertexPositionNormal(x1, top, z1,     n.x, n.y, n.z));        vertices.push_back(VertexPositionNormal(x2, top, z2,     n.x, n.y, n.z));        vertices.push_back(VertexPositionNormal(x2, bottom, z2,  n.x, n.y, n.z));        angle += angStep;    }    // transform the vertices using the user-supplied transformation matrix    TransformPositionsAndNormals(vertices, transform);    return CreateMesh(GL_TRIANGLES, vertices);}
开发者ID:Mertank,项目名称:md5-anim,代码行数:49,


示例28: LoadTexture2D

    //-----------------------------------------------------------------------------    //  CreateDefaultObjects    //  Creates the default objects    //-----------------------------------------------------------------------------    void CRenderer::CreateDefaultObjects( void )    {        // Texture        m_nDefaultTexture = LoadTexture2D( "Assets/Textures/DefaultTexture.png" );                // Default mesh        m_nDefaultMesh = CreateMesh();        // debug sphere        m_nSphereMesh = LoadMesh( "Assets/meshes/sphere.mesh" );        // debug box        m_nDebugBox = CreateDynamicBox();                //////////////////////////////////////////        //  Load Shaders        LoadShaders();        // a vertex shader for drawing lines                VPosColor pLineVertices[] =        {            { RVector3(  0.0f,  0.0f,  0.0f ), RVector4( 1.0f, 1.0f, 1.0f, 1.0f ) },            { RVector3(  1.0f,  1.0f,  1.0f ), RVector4( 1.0f, 1.0f, 1.0f, 1.0f ) },        };        m_pLineBuffer = m_pDevice->CreateVertexBuffer( sizeof( pLineVertices ), pLineVertices );        // Set the defaults        SetVertexShader( eVS3DPosNorTexStd );        SetPixelShader( ePS3DStd );        SetSamplerState( eSamplerLinear );        m_pDevice->SetPrimitiveType( GFX_PRIMITIVE_TRIANGLELIST );        static float Vtx[] =         {             -1.0f, -1.0f,             -1.0f,  1.0f,              1.0f,  1.0f,              1.0f, -1.0f,         };        static uint16 Idx[] =         {             0, 1, 2,             0, 2, 3,        };        m_pFSRectVB = m_pDevice->CreateVertexBuffer( sizeof( Vtx ), Vtx );        m_pFSRectIB = m_pDevice->CreateIndexBuffer ( sizeof( Idx ), Idx );    }
开发者ID:10n1,项目名称:RiotPrototype,代码行数:53,


示例29: InitView

ViewInfo* InitView(){    ViewInfo* view = new ViewInfo();    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);    view->basic_shader = CreateShaderProgram(SHADER_TEXTURED);    view->texture_uniform = glGetUniformLocation(view->basic_shader,                                                 "view_texture");    glEnableClientState(GL_VERTEX_ARRAY);    glEnableClientState(GL_TEXTURE_COORD_ARRAY);    view->boot_vert = boot_vert_def();    boot_vert verts[4];    verts[0].location.x = -0.90;    verts[0].location.y = -0.90;    verts[0].location.z = 0.0;    verts[0].uv.x = 0.0;    verts[0].uv.y = 1.0;    verts[1].location.x = -0.90;    verts[1].location.y = 0.90;    verts[1].location.z = 0.0;    verts[1].uv.x = 0.0;    verts[1].uv.y = 0.0;    verts[2].location.x = 0.90;    verts[2].location.y = -0.90;    verts[2].location.z = 0.0;    verts[2].uv.x = 1.0;    verts[2].uv.y = 1.0;    verts[3].location.x = 0.90;    verts[3].location.y = 0.90;    verts[3].location.z = 0.0;    verts[3].uv.x = 1.0;    verts[3].uv.y = 0.0;    view->test_mesh = CreateMesh(4, sizeof(boot_vert), verts);    view->bMouseDown = false;    view->web = CreateWebView("webkit");    view->test_texture = CreateTextureFromBMP("test.bmp");    return view;}
开发者ID:Arelius,项目名称:Layed,代码行数:48,



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


C++ CreateMissile函数代码示例
C++ CreateMainWindow函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。