diff --git a/Plugin/CutMap.cpp b/Plugin/CutMap.cpp index b546d7e2b08b573ba40eb8b1a571e9ad384a909f..0515aa2bba82774c688844a343159e863213f1dd 100644 --- a/Plugin/CutMap.cpp +++ b/Plugin/CutMap.cpp @@ -1,4 +1,4 @@ -// $Id: CutMap.cpp,v 1.33 2003-11-22 18:45:40 geuzaine Exp $ +// $Id: CutMap.cpp,v 1.34 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -63,7 +63,10 @@ void GMSH_CutMapPlugin::getInfos(char *author, char *copyright, "run on the current view. If 'dTimeStep' < 0, the\n" "plugin uses, for each time step in 'iView', the\n" "corresponding time step in 'dView'. If 'dView'\n" - "< 0, the plugin uses 'iView' as the field source.\n"); + "< 0, the plugin uses 'iView' as the value source.\n" + "\n" + "Plugin(CutMap) creates (at most) as many views\n" + "as there are time steps in 'iView'.\n"); } int GMSH_CutMapPlugin::getNbOptions() const diff --git a/Plugin/CutPlane.cpp b/Plugin/CutPlane.cpp index e3a2eb6a03ea96116114a1589936ee9f59130d1b..9680c4c362cde9b36c956eb00e30e83f3b707528 100644 --- a/Plugin/CutPlane.cpp +++ b/Plugin/CutPlane.cpp @@ -1,4 +1,4 @@ -// $Id: CutPlane.cpp,v 1.29 2003-11-22 18:45:40 geuzaine Exp $ +// $Id: CutPlane.cpp,v 1.30 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -61,7 +61,9 @@ void GMSH_CutPlanePlugin::getInfos(char *author, char *copyright, "Plugin(CutPlane) cuts the view 'iView' with\n" "the plane 'A'*X + 'B'*Y + 'C'*Z + 'D' = 0. If\n" "'iView' < 0, the plugin is run on the current\n" - "view.\n"); + "view.\n" + "\n" + "Plugin(CutPlane) creates one new view.\n"); } int GMSH_CutPlanePlugin::getNbOptions() const diff --git a/Plugin/CutSphere.cpp b/Plugin/CutSphere.cpp index ba748c6b692d51085a4173676c3ce10a57e6424a..18bb922858f462a63fb9f063dbed8869940f4247 100644 --- a/Plugin/CutSphere.cpp +++ b/Plugin/CutSphere.cpp @@ -1,4 +1,4 @@ -// $Id: CutSphere.cpp,v 1.28 2003-11-22 18:45:40 geuzaine Exp $ +// $Id: CutSphere.cpp,v 1.29 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -62,7 +62,9 @@ void GMSH_CutSpherePlugin::getInfos(char *author, char *copyright, "Plugin(CutSphere) cuts the view 'iView' with the\n" "sphere (X-'Xc')^2 + (Y-'Yc')^2 + (Z-'Zc')^2 = 'R'^2.\n" "If 'iView' < 0, the plugin is run on the current\n" - "view.\n"); + "view.\n" + "\n" + "Plugin(CutSphere) creates one new view.\n"); } int GMSH_CutSpherePlugin::getNbOptions() const diff --git a/Plugin/DecomposeInSimplex.cpp b/Plugin/DecomposeInSimplex.cpp index f92c30d61b2a766a408866a050f0a29a0e6de0ba..e6a30569aed786914b7e89de607482cdb8c943c0 100644 --- a/Plugin/DecomposeInSimplex.cpp +++ b/Plugin/DecomposeInSimplex.cpp @@ -1,4 +1,4 @@ -// $Id: DecomposeInSimplex.cpp,v 1.4 2003-11-22 01:45:48 geuzaine Exp $ +// $Id: DecomposeInSimplex.cpp,v 1.5 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -60,7 +60,9 @@ void GMSH_DecomposeInSimplexPlugin::getInfos(char *author, char *copyright, "Plugin(DecomposeInSimplex) decomposes any non-\n" "simplectic element in the view 'iView' into\n" "simplices. If 'iView' < 0, the plugin is run on\n" - "the current view.\n"); + "the current view.\n" + "\n" + "Plugin(DecomposeInSimplex) is executed in-place.\n"); } int GMSH_DecomposeInSimplexPlugin::getNbOptions() const diff --git a/Plugin/DisplacementRaise.cpp b/Plugin/DisplacementRaise.cpp index bbed035a51f054b01590636d49f0a3dd527bf250..2853582fd2a96cb2ce9ae16b3b0367f719be659f 100644 --- a/Plugin/DisplacementRaise.cpp +++ b/Plugin/DisplacementRaise.cpp @@ -1,4 +1,4 @@ -// $Id: DisplacementRaise.cpp,v 1.9 2003-11-22 18:45:40 geuzaine Exp $ +// $Id: DisplacementRaise.cpp,v 1.10 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -68,7 +68,9 @@ void GMSH_DisplacementRaisePlugin::getInfos(char *author, char *copyright, "run on the current view. If 'dView' < 0, the\n" "plugin looks for the displacements in the\n" "view located just after 'iView' in the view\n" - "list.\n"); + "list.\n" + "\n" + "Plugin(DisplacementRaise) is executed in-place.\n"); } int GMSH_DisplacementRaisePlugin::getNbOptions() const @@ -88,7 +90,7 @@ void GMSH_DisplacementRaisePlugin::catchErrorMessage(char *errorMessage) const static void displacementRaiseList(Post_View * iView, List_T * iList, int iNbElm, Post_View * dView, List_T * dList, int dNbElm, - int nbVert, double factor, int dTimeStep) + int nbNod, double factor, int dTimeStep) { if(!iNbElm || !dNbElm) return; @@ -117,13 +119,13 @@ static void displacementRaiseList(Post_View * iView, List_T * iList, int iNbElm, int dNb = List_Nbr(dList) / dNbElm; for(int i = 0, j = 0; i < List_Nbr(iList); i += iNb, j += dNb) { double *x = (double *)List_Pointer_Fast(iList, i); - double *y = (double *)List_Pointer_Fast(iList, i + nbVert); - double *z = (double *)List_Pointer_Fast(iList, i + 2 * nbVert); - double *val = (double *)List_Pointer_Fast(dList, j + 3 * nbVert); - for(int k = 0; k < nbVert; k++) { - x[k] += factor * val[3 * nbVert * dTimeStep + 3 * k]; - y[k] += factor * val[3 * nbVert * dTimeStep + 3 * k + 1]; - z[k] += factor * val[3 * nbVert * dTimeStep + 3 * k + 2]; + double *y = (double *)List_Pointer_Fast(iList, i + nbNod); + double *z = (double *)List_Pointer_Fast(iList, i + 2 * nbNod); + double *val = (double *)List_Pointer_Fast(dList, j + 3 * nbNod); + for(int k = 0; k < nbNod; k++) { + x[k] += factor * val[3 * nbNod * dTimeStep + 3 * k]; + y[k] += factor * val[3 * nbNod * dTimeStep + 3 * k + 1]; + z[k] += factor * val[3 * nbNod * dTimeStep + 3 * k + 2]; } } diff --git a/Plugin/Harmonic2Time.cpp b/Plugin/Harmonic2Time.cpp index f9dbcbac1fb156b2539395f670ac192c4cf0b833..1b91bdc8f4e6a5222a6604e8e34c01d5e38130c6 100644 --- a/Plugin/Harmonic2Time.cpp +++ b/Plugin/Harmonic2Time.cpp @@ -1,4 +1,4 @@ -// $Id: Harmonic2Time.cpp,v 1.7 2003-11-21 07:56:32 geuzaine Exp $ +// $Id: Harmonic2Time.cpp,v 1.8 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -67,7 +67,9 @@ void GMSH_Harmonic2TimePlugin::getInfos(char *author, char *copyright, "'iView'['imaginaryPart'] * sin(p)), with\n" "p = 2*Pi*k/'nbSteps', k = 0, ..., 'nbSteps'-1.\n" "If 'iView' < 0, the plugin is run on the\n" - "current view.\n"); + "current view.\n" + "\n" + "Plugin(Harmonic2Time) creates one new view.\n"); } int GMSH_Harmonic2TimePlugin::getNbOptions() const diff --git a/Plugin/Levelset.cpp b/Plugin/Levelset.cpp index e97cdcf9a40043f8620363d931f498116aaedd89..888fdc707296ce05f2180ff89c1e3557e7ae3d8f 100644 --- a/Plugin/Levelset.cpp +++ b/Plugin/Levelset.cpp @@ -1,4 +1,4 @@ -// $Id: Levelset.cpp,v 1.5 2003-11-22 18:45:40 geuzaine Exp $ +// $Id: Levelset.cpp,v 1.6 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -52,7 +52,7 @@ static void affect(double *xpi, double *ypi, double *zpi, double valpi[12][9], i } int GMSH_LevelsetPlugin::zeroLevelset(int timeStep, - int nbVert, int nbEdg, int exn[12][2], + int nbNod, int nbEdg, int exn[12][2], double *x, double *y, double *z, double *iVal, int iNbComp, double *dVal, int dNbComp, @@ -62,11 +62,11 @@ int GMSH_LevelsetPlugin::zeroLevelset(int timeStep, // compute the value of the levelset function at each node if(_valueIndependent) { - for(int k = 0; k < nbVert; k++) + for(int k = 0; k < nbNod; k++) levels[k] = levelset(x[k], y[k], z[k], 0.0); } else{ - for(int k = 0; k < nbVert; k++) { + for(int k = 0; k < nbNod; k++) { double *vals = &iVal[iNbComp * k]; switch(iNbComp) { case 1: // scalar @@ -220,24 +220,11 @@ int GMSH_LevelsetPlugin::zeroLevelset(int timeStep, return 0; } -static int getTimeStep(int timeStep, int ts, Post_View *dView) -{ - if(timeStep < 0) { - return ts; - } - if(timeStep >= dView->NbTimeStep) { - Msg(WARNING, "Wrong TimeStep %d in View[%d]: reverting to TimeStep 0", - timeStep, dView->Index); - return 0; - } - return timeStep; -} - void GMSH_LevelsetPlugin::executeList(Post_View * iView, List_T * iList, int iNbElm, int iNbComp, Post_View * dView, List_T * dList, int dNbElm, int dNbComp, - int nbVert, int nbEdg, int exn[12][2], + int nbNod, int nbEdg, int exn[12][2], vector<Post_View *> out) { if(!iNbElm || !dNbElm) @@ -249,35 +236,42 @@ void GMSH_LevelsetPlugin::executeList(Post_View * iView, List_T * iList, return; } + int dTimeStep = _valueTimeStep; + if(dTimeStep >= dView->NbTimeStep) { + Msg(WARNING, "Wrong time step %d in View[%d]: reverting to time step 0", + dTimeStep, dView->Index); + dTimeStep = 0; + } + int iNb = List_Nbr(iList) / iNbElm; int dNb = List_Nbr(dList) / dNbElm; for(int i = 0, j = 0; i < List_Nbr(iList); i += iNb, j += dNb) { double *x = (double *)List_Pointer_Fast(iList, i); - double *y = (double *)List_Pointer_Fast(iList, i + nbVert); - double *z = (double *)List_Pointer_Fast(iList, i + 2 * nbVert); + double *y = (double *)List_Pointer_Fast(iList, i + nbNod); + double *z = (double *)List_Pointer_Fast(iList, i + 2 * nbNod); - if(nbVert == 2 || nbVert == 3 || (nbVert == 4 && nbEdg == 6)) { + if(nbNod == 2 || nbNod == 3 || (nbNod == 4 && nbEdg == 6)) { // easy for simplices: at most one element is created per time step for(int iTS = 0; iTS < iView->NbTimeStep; iTS++) { - int dTS = getTimeStep(_valueTimeStep, iTS, dView); + int dTS = (dTimeStep < 0) ? iTS : dTimeStep; // don't compute the zero levelset of the value view - if(_valueTimeStep < 0 || iView != dView || dTS != iTS){ - double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbVert + - iNbComp * nbVert * iTS); - double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbVert + - dNbComp * nbVert * dTS); - zeroLevelset(iTS, nbVert, nbEdg, exn, x, y, z, + if(dTimeStep < 0 || iView != dView || dTS != iTS){ + double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbNod + + iNbComp * nbNod * iTS); + double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbNod + + dNbComp * nbNod * dTS); + zeroLevelset(iTS, nbNod, nbEdg, exn, x, y, z, iVal, iNbComp, dVal, dNbComp, out); } } } else{ // we decompose the element into simplices - DecomposeInSimplex iDec(nbVert, iNbComp); - DecomposeInSimplex dDec(nbVert, dNbComp); + DecomposeInSimplex iDec(nbNod, iNbComp); + DecomposeInSimplex dDec(nbNod, dNbComp); - int nbVertNew = iDec.numSimplexNodes(); - int nbEdgNew = (nbVertNew == 4) ? 6 : 3; + int nbNodNew = iDec.numSimplexNodes(); + int nbEdgNew = (nbNodNew == 4) ? 6 : 3; int exnTri[12][2] = {{0,1},{0,2},{1,2}}; int exnTet[12][2] = {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}}; double xNew[4], yNew[4], zNew[4]; @@ -289,20 +283,20 @@ void GMSH_LevelsetPlugin::executeList(Post_View * iView, List_T * iList, // the time steps so that only one element gets created per // time step. This allows us to still easily generate a // *single* multi-timestep view. - if(zeroLevelset(0, nbVert, nbEdg, exn, x, y, z, NULL, 0, + if(zeroLevelset(0, nbNod, nbEdg, exn, x, y, z, NULL, 0, NULL, 0, out)) { for(int k = 0; k < iDec.numSimplices(); k++) { for(int iTS = 0; iTS < iView->NbTimeStep; iTS++) { - int dTS = getTimeStep(_valueTimeStep, iTS, dView); + int dTS = (dTimeStep < 0) ? iTS : dTimeStep; // don't compute the zero levelset of the value view - if(_valueTimeStep < 0 || iView != dView || dTS != iTS){ - double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbVert + - iNbComp * nbVert * iTS); - double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbVert + - dNbComp * nbVert * dTS); + if(dTimeStep < 0 || iView != dView || dTS != iTS){ + double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbNod + + iNbComp * nbNod * iTS); + double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbNod + + dNbComp * nbNod * dTS); iDec.decompose(k, x, y, z, iVal, xNew, yNew, zNew, iValNew); dDec.decompose(k, x, y, z, dVal, xNew, yNew, zNew, dValNew); - zeroLevelset(iTS, nbVertNew, nbEdgNew, (nbVertNew == 4) ? exnTet : exnTri, + zeroLevelset(iTS, nbNodNew, nbEdgNew, (nbNodNew == 4) ? exnTet : exnTri, xNew, yNew, zNew, iValNew, iNbComp, dValNew, dNbComp, out); } } @@ -313,19 +307,19 @@ void GMSH_LevelsetPlugin::executeList(Post_View * iView, List_T * iList, // since we generate one view for each time step, we can // generate multiple elements per time step without problem. for(int iTS = 0; iTS < iView->NbTimeStep; iTS++) { - int dTS = getTimeStep(_valueTimeStep, iTS, dView); + int dTS = (dTimeStep < 0) ? iTS : dTimeStep; // don't compute the zero levelset of the value view - if(_valueTimeStep < 0 || iView != dView || dTS != iTS){ - double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbVert + - iNbComp * nbVert * iTS); - if(zeroLevelset(iTS, nbVert, nbEdg, exn, x, y, z, iVal, iNbComp, + if(dTimeStep < 0 || iView != dView || dTS != iTS){ + double *iVal = (double *)List_Pointer_Fast(iList, i + 3 * nbNod + + iNbComp * nbNod * iTS); + if(zeroLevelset(iTS, nbNod, nbEdg, exn, x, y, z, iVal, iNbComp, NULL, 0, out)) { - double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbVert + - dNbComp * nbVert * dTS); + double *dVal = (double *)List_Pointer_Fast(dList, j + 3 * nbNod + + dNbComp * nbNod * dTS); for(int k = 0; k < iDec.numSimplices(); k++) { iDec.decompose(k, x, y, z, iVal, xNew, yNew, zNew, iValNew); dDec.decompose(k, x, y, z, dVal, xNew, yNew, zNew, dValNew); - zeroLevelset(iTS, nbVertNew, nbEdgNew, (nbVertNew == 4) ? exnTet : exnTri, + zeroLevelset(iTS, nbNodNew, nbEdgNew, (nbNodNew == 4) ? exnTet : exnTri, xNew, yNew, zNew, iValNew, iNbComp, dValNew, dNbComp, out); } } @@ -542,4 +536,3 @@ Post_View *GMSH_LevelsetPlugin::execute(Post_View * v) return 0; } - diff --git a/Plugin/Smooth.cpp b/Plugin/Smooth.cpp index c8b1ff973ffd6e28f21b40a6365bb7c129a65523..79de0cac9913112a104b50950e04ad03c7265bb2 100644 --- a/Plugin/Smooth.cpp +++ b/Plugin/Smooth.cpp @@ -1,4 +1,4 @@ -// $Id: Smooth.cpp,v 1.15 2003-11-21 07:56:32 geuzaine Exp $ +// $Id: Smooth.cpp,v 1.16 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -58,7 +58,9 @@ void GMSH_SmoothPlugin::getInfos(char *author, char *copyright, strcpy(help_text, "Plugin(Smooth) averages the values at the nodes\n" "of the scalar view 'iView'. If 'iView' < 0, the\n" - "plugin is run on the current view.\n"); + "plugin is run on the current view.\n" + "\n" + "Plugin(Smooth) is executed in-place.\n"); } int GMSH_SmoothPlugin::getNbOptions() const diff --git a/Plugin/SphericalRaise.cpp b/Plugin/SphericalRaise.cpp index 0d97ec475abb512f6c826b89e0bce64870b1636b..88cb0084a28d14fb2fcde1caee05317e68516498 100644 --- a/Plugin/SphericalRaise.cpp +++ b/Plugin/SphericalRaise.cpp @@ -1,4 +1,4 @@ -// $Id: SphericalRaise.cpp,v 1.9 2003-11-21 07:56:32 geuzaine Exp $ +// $Id: SphericalRaise.cpp,v 1.10 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -71,7 +71,9 @@ void GMSH_SphericalRaisePlugin::getInfos(char *author, char *copyright, "and View['iView'].RaiseZ, the raise is applied\n" " along the radius of a sphere centered at ('Xc',\n" "'Yc', 'Zc'). If 'iView' < 0, the plugin is run\n" - "on the current view.\n"); + "on the current view.\n" + "\n" + "Plugin(SphericalRaise) is executed in-place.\n"); } int GMSH_SphericalRaisePlugin::getNbOptions() const @@ -89,14 +91,14 @@ void GMSH_SphericalRaisePlugin::catchErrorMessage(char *errorMessage) const strcpy(errorMessage, "SphericalRaise failed..."); } -static void sphericalRaiseList(Post_View * v, List_T * list, int nbelm, - int nbvert, int timeStep, double center[3], +static void sphericalRaiseList(Post_View * v, List_T * list, int nbElm, + int nbNod, int timeStep, double center[3], double raise) { double *x, *y, *z, *val, d[3], coef; int nb, i, j; - if(nbelm) + if(nbElm) v->Changed = 1; else return; @@ -114,18 +116,18 @@ static void sphericalRaiseList(Post_View * v, List_T * list, int nbelm, // get nodal value val at xyz // compute (x,y,z)_new = (x,y,z)_old + raise*val*(dx,dy,dz) - nb = List_Nbr(list) / nbelm; + nb = List_Nbr(list) / nbElm; for(i = 0; i < List_Nbr(list); i += nb) { x = (double *)List_Pointer_Fast(list, i); - y = (double *)List_Pointer_Fast(list, i + nbvert); - z = (double *)List_Pointer_Fast(list, i + 2 * nbvert); - val = (double *)List_Pointer_Fast(list, i + 3 * nbvert); - for(j = 0; j < nbvert; j++) { + y = (double *)List_Pointer_Fast(list, i + nbNod); + z = (double *)List_Pointer_Fast(list, i + 2 * nbNod); + val = (double *)List_Pointer_Fast(list, i + 3 * nbNod); + for(j = 0; j < nbNod; j++) { d[0] = x[j] - center[0]; d[1] = y[j] - center[1]; d[2] = z[j] - center[2]; norme(d); - coef = raise * val[nbvert * timeStep + j]; + coef = raise * val[nbNod * timeStep + j]; x[j] += coef * d[0]; y[j] += coef * d[1]; z[j] += coef * d[2]; diff --git a/Plugin/Transform.cpp b/Plugin/Transform.cpp index dbfe9b994a9289bf326a222d35da3451b44dad26..35e4fe0200595b987b2f6b9afc293f8499f7e687 100644 --- a/Plugin/Transform.cpp +++ b/Plugin/Transform.cpp @@ -1,4 +1,4 @@ -// $Id: Transform.cpp,v 1.19 2003-11-21 07:56:32 geuzaine Exp $ +// $Id: Transform.cpp,v 1.20 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -71,7 +71,9 @@ void GMSH_TransformPlugin::getInfos(char *author, char *copyright, "['A21' 'A22' 'A23']\n" "['A31' 'A32' 'A33'].\n" "If 'iView' < 0, the plugin is run on the current\n" - "view.\n"); + "view.\n" + "\n" + "Plugin(Transform) is executed in-place.\n"); } int GMSH_TransformPlugin::getNbOptions() const diff --git a/Plugin/Triangulate.cpp b/Plugin/Triangulate.cpp index fcfb538edd4396a6e2ad01b1cc5e494fef57df3c..f7dce6edb4c30d8671dd8bca00163294358a9ce0 100644 --- a/Plugin/Triangulate.cpp +++ b/Plugin/Triangulate.cpp @@ -1,4 +1,4 @@ -// $Id: Triangulate.cpp,v 1.13 2003-11-21 07:56:32 geuzaine Exp $ +// $Id: Triangulate.cpp,v 1.14 2003-11-23 02:56:02 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -66,7 +66,9 @@ void GMSH_TriangulatePlugin::getInfos(char *author, char *copyright, "in the scalar view 'iView', assuming that all\n" "the points belong to a surface than can be\n" "univoquely projected into a plane. If 'iView'\n" - "< 0, the plugin is run on the current view.\n"); + "< 0, the plugin is run on the current view.\n" + "\n" + "Plugin(Triangulate) creates one new view.\n"); } int GMSH_TriangulatePlugin::getNbOptions() const @@ -226,7 +228,7 @@ Post_View *GMSH_TriangulatePlugin::execute(Post_View * v) return View; } else { - Msg(WARNING, "No scalar points to triangulate in view '%s'", vv->Name); + Msg(WARNING, "No scalar points to triangulate in View[%d]", vv->Index); return 0; } diff --git a/doc/VERSIONS b/doc/VERSIONS index 81f8937fde3938421c7b50595b5198e170ff38bc..842a2014b5edfc1a170e5ef13df47c24a179a968 100644 --- a/doc/VERSIONS +++ b/doc/VERSIONS @@ -1,10 +1,11 @@ -$Id: VERSIONS,v 1.161 2003-11-22 01:45:48 geuzaine Exp $ - -New since 1.47: new DisplacementRaise plugin to plot arbitrary fields -on deformed meshes; generalized CutMap, CutPlane and CutSphere -plugins; small bug fixes (configure tests for libpng, handling of -erroneous options, multi timestep scalar prism drawings, copy of -surface mesh attributes); +$Id: VERSIONS,v 1.162 2003-11-23 02:56:02 geuzaine Exp $ + +New in 1.48: new DisplacementRaise plugin to plot arbitrary fields on +deformed meshes; generalized CutMap, CutPlane, CutSphere and Skin +plugins to handle all kinds of elements and fields; new "Save View[n]" +command to save views from a script; small bug fixes (configure tests +for libpng, handling of erroneous options, multi time step scalar +prism drawings, copy of surface mesh attributes); New in 1.47: fixed extrusion of surfaces defined by only two curves; new syntax to retrieve point coordinates and indices of entities