def readFromHdf5(cls, hdf5Parser, varName, triSurfaceMesh, key, projectedField=False): ''' ''' time = hdf5Parser[key]['time'].value stensSrc = hdf5Parser[key][varName].value stensTgt = np.zeros((stensSrc.shape[0],stensSrc.shape[1])) if projectedField==True: for i in range(stensSrc.shape[0]): stenAsMat = TriSurface.mat(stensSrc[i,:]) stensTgt[i,:] = triSurfaceMesh.linTrans.srcToTgt(stenAsMat) else: stensTgt = stensSrc # update class member variables return cls(txx=stensTgt[:,0], txy=stensTgt[:,1], txz=stensTgt[:,2], tyy=stensTgt[:,3], tyz=stensTgt[:,4], tzz=stensTgt[:,5], time=float(time), triSurfaceMesh=triSurfaceMesh, projectedField=projectedField, interpolation=None, kind=None)
def readFromHdf5(cls, hdf5Parser, varName, triSurfaceMesh, key, projectedField=False): ''' ''' time = hdf5Parser[key]['time'].value stensSrc = hdf5Parser[key][varName].value stensTgt = np.zeros((stensSrc.shape[0], stensSrc.shape[1])) if projectedField == True: for i in range(stensSrc.shape[0]): stenAsMat = TriSurface.mat(stensSrc[i, :]) stensTgt[i, :] = triSurfaceMesh.linTrans.srcToTgt(stenAsMat) else: stensTgt = stensSrc # update class member variables return cls(txx=stensTgt[:, 0], txy=stensTgt[:, 1], txz=stensTgt[:, 2], tyy=stensTgt[:, 3], tyz=stensTgt[:, 4], tzz=stensTgt[:, 5], time=float(time), triSurfaceMesh=triSurfaceMesh, projectedField=projectedField, interpolation=None, kind=None)
def readFromVTK(cls, vtkFile, viewAnchor, xViewBasis, yViewBasis, srcBasisSrc=[[1,0,0],[0,1,0],[0,0,1]]): ''' Construct from a surface saved by OpenFOAM in VTK format. ''' afftrans, lintrans = TriSurface.getTransformation(viewAnchor, xViewBasis, yViewBasis, srcBasisSrc) # read VTK file ptsSrc, triangles, vecsSrc = ParserFunctions.parseVTK_ugly_sampledSurface(vtkFile) # Transform the points ptsTgt = np.zeros((ptsSrc.shape[0],ptsSrc.shape[1])) for i in range(ptsSrc.shape[0]): ptsTgt[i,:] = afftrans.srcToTgt(ptsSrc[i,:]) # update class member variables return cls(x=ptsTgt[:,0], y=ptsTgt[:,1], z=ptsTgt[:,2], triangles=triangles, mask=None, affTrans=afftrans, linTrans=lintrans)
def readFromVTK(cls, vtkFile, viewAnchor, xViewBasis, yViewBasis, srcBasisSrc=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]): ''' Construct from a surface saved by OpenFOAM in VTK format. ''' afftrans, lintrans = TriSurface.getTransformation( viewAnchor, xViewBasis, yViewBasis, srcBasisSrc) # read VTK file ptsSrc, triangles, vecsSrc = ParserFunctions.parseVTK_ugly_sampledSurface( vtkFile) # Transform the points ptsTgt = np.zeros((ptsSrc.shape[0], ptsSrc.shape[1])) for i in range(ptsSrc.shape[0]): ptsTgt[i, :] = afftrans.srcToTgt(ptsSrc[i, :]) # update class member variables return cls(x=ptsTgt[:, 0], y=ptsTgt[:, 1], z=ptsTgt[:, 2], triangles=triangles, mask=None, affTrans=afftrans, linTrans=lintrans)
def readFromFoamFile(cls, varsFile, triSurfaceMesh, time, projectedField=False): ''' Construct from a surface saved by OpenFOAM in foamFile format. Arguments: *varsFile*: python string. Path to the file holding the scalar field. *time*: python float timestep of the surface. If this information does not matter, use 0. *triSurfaceMesh* : TriSurfaceMesh object. TriSurfaceMesh object, which holds the mesh information. *projectedField* python bool (default=False) Unused for the scalar field, but might be used for the fields added with the methods "addField", "addFieldFromFoamFile" and "addFieldFromVtk" ''' #get scalars stensSrc = ParserFunctions.parseFoamFile_sampledSurface(varsFile) stensTgt = np.zeros((stensSrc.shape[0],stensSrc.shape[1])) if projectedField==True: for i in range(stensSrc.shape[0]): stenAsMat = TriSurface.mat(stensSrc[i,:]) stensTgt[i,:] = triSurfaceMesh.linTrans.srcToTgt(stenAsMat) else: stensTgt = stensSrc # update class member variables return cls(txx=stensTgt[:,0], txy=stensTgt[:,1], txz=stensTgt[:,2], tyy=stensTgt[:,3], tyz=stensTgt[:,4], tzz=stensTgt[:,5], time=time, triSurfaceMesh=triSurfaceMesh, projectedField=projectedField, interpolation=None, kind=None)
def readFromFoamFile(cls, varsFile, triSurfaceMesh, time, projectedField=False): ''' Construct from a surface saved by OpenFOAM in foamFile format. Arguments: *varsFile*: python string. Path to the file holding the scalar field. *time*: python float timestep of the surface. If this information does not matter, use 0. *triSurfaceMesh* : TriSurfaceMesh object. TriSurfaceMesh object, which holds the mesh information. *projectedField* python bool (default=False) Unused for the scalar field, but might be used for the fields added with the methods "addField", "addFieldFromFoamFile" and "addFieldFromVtk" ''' #get scalars stensSrc = ParserFunctions.parseFoamFile_sampledSurface(varsFile) stensTgt = np.zeros((stensSrc.shape[0], stensSrc.shape[1])) if projectedField == True: for i in range(stensSrc.shape[0]): stenAsMat = TriSurface.mat(stensSrc[i, :]) stensTgt[i, :] = triSurfaceMesh.linTrans.srcToTgt(stenAsMat) else: stensTgt = stensSrc # update class member variables return cls(txx=stensTgt[:, 0], txy=stensTgt[:, 1], txz=stensTgt[:, 2], tyy=stensTgt[:, 3], tyz=stensTgt[:, 4], tzz=stensTgt[:, 5], time=time, triSurfaceMesh=triSurfaceMesh, projectedField=projectedField, interpolation=None, kind=None)
def transformPoints(ptsSrc, xViewBasis, yViewBasis=None, viewAnchor=(0, 0, 0), srcBasisSrc=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]): ''' ''' # create basis vectors if missing if not yViewBasis: n = getN(ptsSrc) yViewBasis = getYBasis(n, xViewBasis) # create the transformation objects afftrans, lintrans = TriSurface.getTransformation(viewAnchor, xViewBasis, yViewBasis, srcBasisSrc) # transform the points from the source basis to the target basis ptsTgt = np.zeros((ptsSrc.shape[0], ptsSrc.shape[1])) for i in range(ptsSrc.shape[0]): ptsTgt[i, :] = afftrans.srcToTgt(ptsSrc[i, :]) return ptsTgt, afftrans, lintrans
def transformPoints(ptsSrc, xViewBasis, yViewBasis=None, viewAnchor=(0,0,0), srcBasisSrc=[[1,0,0],[0,1,0],[0,0,1]]): ''' ''' # create basis vectors if missing if not yViewBasis: n=getN(ptsSrc) yViewBasis=getYBasis(n,xViewBasis) # create the transformation objects afftrans, lintrans = TriSurface.getTransformation(viewAnchor, xViewBasis, yViewBasis, srcBasisSrc) # transform the points from the source basis to the target basis ptsTgt = np.zeros((ptsSrc.shape[0],ptsSrc.shape[1])) for i in range(ptsSrc.shape[0]): ptsTgt[i,:] = afftrans.srcToTgt(ptsSrc[i,:]) return ptsTgt,afftrans,lintrans