www.pudn.com > roll.rar > PostFigure.cpp
// PostFigure.cpp : implementation file
//
#include "stdafx.h"
#include "roll.h"
#include "PostFigure.h"
#include "comnfun.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPostFigure
CPostFigure::CPostFigure()
{
bError=TRUE;
xp=yp=xpp=ypp=NULL;
for(short i=0;i<8;i++) codepe[i]=NULL;
ExitFileName=_T("");
}
BOOL CPostFigure::OpenBIEMDatatFile(CString FileName)
{
int i,ti;
short pe[8],numnode,numload;
char buf[280];
float *xc,*yc,*zc;
float *dx,*dy,*dz;
if(ExitFileName==FileName)
return TRUE;
else ExitFileName=FileName;
DeAlloc();
bError=TRUE;
CStdioFile file;
if(!file.Open(FileName,
CFile::modeRead|CFile::typeText)) return !bError;
file.ReadString(buf,280);
file.ReadString(buf,280);
sscanf(buf," NP=%hd NE=%hd",&numnode,&numelem);
if(numnode<4||numelem<1) return !bError;
if( !Alloc( numnode ) ) {
file.Close();
return !bError;
}
xc=new float[numnode];
yc=new float[numnode];
zc=new float[numnode];
dx=new float[numnode];
dy=new float[numnode];
dz=new float[numnode];
if(xc==NULL||yc==NULL||zc==NULL||dx==NULL||dy==NULL||dz==NULL) {
if(xc) delete[] xc;
if(yc) delete[] yc;
if(zc) delete[] zc;
if(dx) delete[] dx;
if(dy) delete[] dy;
if(dz) delete[] dz;
file.Close();
return !bError;
}
for(i=0;i<7;i++)
file.ReadString(buf,280);
for(i=0;inumload) numload=kl;
if(km>numload) numload=km;
if(kn>numload) numload=kn;
} while(tixpp[0]?xp[0]:xpp[0];
ymin=yp[0]ypp[0]?yp[0]:ypp[0];
for(i=1;ixmax) xmax=xp[i];
if(yp[i]ymax) ymax=yp[i];
xpp[i] = (xc[i]+dx[i]+zc[i]+dz[i])*0.707107f;
ypp[i] = (xc[i]+dx[i]-zc[i]-dz[i])*0.408248f+(yc[i]+dy[i])*0.816597f;
if(xpp[i]xmax) xmax=xpp[i];
if(ypp[i]ymax) ymax=ypp[i];
}
delete[] xc;
delete[] yc;
delete[] zc;
delete[] dx;
delete[] dy;
delete[] dz;
bError=FALSE;
float x=0.5f*(xmax+xmin);
float y=0.5f*(ymax+ymin);
directx[0] = 0.707107f;
directx[1] = 0.408248f;
directy[0] = 0.0f;
directy[1] = 0.816597f;
directz[0] = 0.707107f;
directz[1] = -0.408248f;
for(i=0;i