Changeset 4037


Ignore:
Timestamp:
Nov 7, 2013 2:21:45 PM (10 years ago)
Author:
ldelgass
Message:

Fix square aspect scaling problem

Location:
trunk/packages/vizservers/vtkvis
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/vtkvis/GraphicsObject.h

    r3977 r4037  
    3030
    3131#include "DataSet.h"
     32#include "Math.h"
    3233#include "Trace.h"
    3334
     
    231232    {
    232233        if (getProp3D() != NULL) {
    233             double angle = vtkMath::DegreesFromRadians(2.0 * acos(quat[0]));
    234             double axis[3];
    235             if (angle < 1.0e-6) {
    236                 axis[0] = 1;
    237                 axis[1] = 0;
    238                 axis[2] = 0;
    239             } else {
    240                 double denom = sqrt(1. - quat[0] * quat[0]);
    241                 axis[0] = quat[1] / denom;
    242                 axis[1] = quat[2] / denom;
    243                 axis[2] = quat[3] / denom;
    244             }
    245             setOrientation(angle, axis);
     234            double angleAxis[4];
     235            quatToAngleAxis(quat, angleAxis);
     236            setOrientation(angleAxis[0], &angleAxis[1]);
    246237        }
    247238    }
     
    312303            switch (plane) {
    313304            case PLANE_XY: {
    314                 if (size[0] > size[1] && size[1] > 1.0e-6) {
     305                if (size[0] > size[1] && size[1] > 0.0) {
    315306                    scale[1] = size[0] / size[1];
    316                 } else if (size[1] > size[0] && size[0] > 1.0e-6) {
     307                } else if (size[1] > size[0] && size[0] > 0.0) {
    317308                    scale[0] = size[1] / size[0];
    318309                }
     
    320311                break;
    321312            case PLANE_ZY: {
    322                 if (size[1] > size[2] && size[2] > 1.0e-6) {
     313                if (size[1] > size[2] && size[2] > 0.0) {
    323314                    scale[2] = size[1] / size[2];
    324                 } else if (size[2] > size[1] && size[1] > 1.0e-6) {
     315                } else if (size[2] > size[1] && size[1] > 0.0) {
    325316                    scale[1] = size[2] / size[1];
    326317                }
     
    328319                break;
    329320            case PLANE_XZ: {
    330                 if (size[0] > size[2] && size[2] > 1.0e-6) {
     321                if (size[0] > size[2] && size[2] > 0.0) {
    331322                    scale[2] = size[0] / size[2];
    332                 } else if (size[2] > size[0] && size[0] > 1.0e-6) {
     323                } else if (size[2] > size[0] && size[0] > 0.0) {
    333324                    scale[0] = size[2] / size[0];
    334325                }
     
    342333            case PLANE_XY: {
    343334                if (aspect > 1.0) {
    344                     if (size[0] > size[1]) {
     335                    if (size[0] > size[1] && size[1] > 0.0) {
    345336                        scale[1] = (size[0] / aspect) / size[1];
    346                     } else {
     337                    } else if (size[0] > 0.0) {
    347338                        scale[0] = (size[1] * aspect) / size[0];
    348339                    }
    349340                } else {
    350                     if (size[1] > size[0]) {
     341                    if (size[1] > size[0] && size[0] > 0.0) {
    351342                        scale[0] = (size[1] * aspect) / size[0];
    352                     } else {
     343                    } else if (size[1] > 0.0) {
    353344                        scale[1] = (size[0] / aspect) / size[1];
    354345                    }
     
    358349            case PLANE_ZY: {
    359350                if (aspect > 1.0) {
    360                     if (size[2] > size[1]) {
     351                    if (size[2] > size[1] && size[1] > 0.0) {
    361352                        scale[1] = (size[2] / aspect) / size[1];
    362                     } else {
     353                    } else if (size[2] > 0.0) {
    363354                        scale[2] = (size[1] * aspect) / size[2];
    364355                    }
    365356                } else {
    366                     if (size[1] > size[2]) {
     357                    if (size[1] > size[2] && size[2] > 0.0) {
    367358                        scale[2] = (size[1] * aspect) / size[2];
    368                     } else {
     359                    } else if (size[1] > 0.0) {
    369360                        scale[1] = (size[2] / aspect) / size[1];
    370361                    }
     
    374365            case PLANE_XZ: {
    375366                if (aspect > 1.0) {
    376                     if (size[0] > size[2]) {
     367                    if (size[0] > size[2] && size[2] > 0.0) {
    377368                        scale[2] = (size[0] / aspect) / size[2];
    378                     } else {
     369                    } else if (size[0] > 0.0) {
    379370                        scale[0] = (size[2] * aspect) / size[0];
    380371                    }
    381372                } else {
    382                     if (size[2] > size[0]) {
     373                    if (size[2] > size[0] && size[0] > 0.0) {
    383374                        scale[0] = (size[2] * aspect) / size[0];
    384                     } else {
     375                    } else if (size[2] > 0.0) {
    385376                        scale[2] = (size[0] / aspect) / size[2];
    386377                    }
  • trunk/packages/vizservers/vtkvis/HeightMap.cpp

    r3818 r4037  
    578578        switch (_sliceAxis) {
    579579        case X_AXIS: {
    580             if (size[1] > size[2] && size[2] > 1.0e-6) {
     580            if (size[1] > size[2] && size[2] > 0.0) {
    581581                scale[2] = size[1] / size[2];
    582             } else if (size[2] > size[1] && size[1] > 1.0e-6) {
     582            } else if (size[2] > size[1] && size[1] > 0.0) {
    583583                scale[1] = size[2] / size[1];
    584584            }
     
    586586            break;
    587587        case Y_AXIS: {
    588             if (size[0] > size[2] && size[2] > 1.0e-6) {
     588            if (size[0] > size[2] && size[2] > 0.0) {
    589589                scale[2] = size[0] / size[2];
    590             } else if (size[2] > size[0] && size[0] > 1.0e-6) {
     590            } else if (size[2] > size[0] && size[0] > 0.0) {
    591591                scale[0] = size[2] / size[0];
    592592            }
     
    594594            break;
    595595        case Z_AXIS: {
    596             if (size[0] > size[1] && size[1] > 1.0e-6) {
     596            if (size[0] > size[1] && size[1] > 0.0) {
    597597                scale[1] = size[0] / size[1];
    598             } else if (size[1] > size[0] && size[0] > 1.0e-6) {
     598            } else if (size[1] > size[0] && size[0] > 0.0) {
    599599                scale[0] = size[1] / size[0];
    600600            }
     
    606606        case X_AXIS: {
    607607            if (aspect > 1.0) {
    608                 if (size[2] > size[1]) {
     608                if (size[2] > size[1] && size[1] > 0.0) {
    609609                    scale[1] = (size[2] / aspect) / size[1];
    610                 } else {
     610                } else if (size[2] > 0.0) {
    611611                    scale[2] = (size[1] * aspect) / size[2];
    612612                }
    613613            } else {
    614                 if (size[1] > size[2]) {
     614                if (size[1] > size[2] && size[2] > 0.0) {
    615615                    scale[2] = (size[1] * aspect) / size[2];
    616                 } else {
     616                } else if (size[1] > 0.0) {
    617617                    scale[1] = (size[2] / aspect) / size[1];
    618618                }
     
    622622        case Y_AXIS: {
    623623            if (aspect > 1.0) {
    624                 if (size[0] > size[2]) {
     624                if (size[0] > size[2] && size[2] > 0.0) {
    625625                    scale[2] = (size[0] / aspect) / size[2];
    626                 } else {
     626                } else if (size[0] > 0.0) {
    627627                    scale[0] = (size[2] * aspect) / size[0];
    628628                }
    629629            } else {
    630                 if (size[2] > size[0]) {
     630                if (size[2] > size[0] && size[0] > 0.0) {
    631631                    scale[0] = (size[2] * aspect) / size[0];
    632                 } else {
     632                } else if (size[2] > 0.0) {
    633633                    scale[2] = (size[0] / aspect) / size[2];
    634634                }
     
    638638        case Z_AXIS: {
    639639            if (aspect > 1.0) {
    640                 if (size[0] > size[1]) {
     640                if (size[0] > size[1] && size[1] > 0.0) {
    641641                    scale[1] = (size[0] / aspect) / size[1];
    642                 } else {
     642                } else if (size[0] > 0.0) {
    643643                    scale[0] = (size[1] * aspect) / size[0];
    644644                }
    645645            } else {
    646                 if (size[1] > size[0]) {
     646                if (size[1] > size[0] && size[0] > 0.0) {
    647647                    scale[0] = (size[1] * aspect) / size[0];
    648                 } else {
     648                } else if (size[1] > 0.0) {
    649649                    scale[1] = (size[0] / aspect) / size[1];
    650650                }
  • trunk/packages/vizservers/vtkvis/Makefile.in

    r3995 r4037  
    5959                -lvtkInteractionWidgets-$(VTK_VERSION) \
    6060                -lvtkRenderingOpenGL-$(VTK_VERSION) \
    61                 -lvtkRenderingHybridOpenGL-$(VTK_VERSION) \
    6261                -lvtkRenderingImage-$(VTK_VERSION) \
    6362                -lvtkRenderingFreeTypeOpenGL-$(VTK_VERSION) \
     
    7675                -lvtkCommonMath-$(VTK_VERSION) \
    7776                -lvtksys-$(VTK_VERSION)
     77
     78ifeq ($(VTK_VERSION),6.1)
     79VTK_LIB_SPEC += \
     80                -lvtkRenderingLIC-$(VTK_VERSION)
     81else
     82VTK_LIB_SPEC += \
     83                -lvtkRenderingHybridOpenGL-$(VTK_VERSION)
     84endif
    7885
    7986LD_RUN_PATH     = $(libdir)
     
    211218        $(RM) Makefile Doxyfile
    212219
    213 Arc.o: Arc.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    214 Arrow.o: Arrow.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    215 Box.o: Box.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
     220Arc.o: Arc.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     221Arrow.o: Arrow.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     222Box.o: Box.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
    216223CmdProc.o: CmdProc.h
    217224ColorMap.o: ColorMap.h Molecule.h Trace.h
    218 Cone.o: Cone.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    219 Contour2D.o: Contour2D.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    220 Contour3D.o: Contour3D.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    221 Cutplane.o: Cutplane.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    222 Cylinder.o: Cylinder.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
     225Cone.o: Cone.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     226Contour2D.o: Contour2D.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     227Contour3D.o: Contour3D.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     228Cutplane.o: Cutplane.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     229Cylinder.o: Cylinder.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
    223230DataSet.o: DataSet.h Trace.h
    224 Disk.o: Disk.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    225 Glyphs.o: Glyphs.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    226 GraphicsObject.o: GraphicsObject.h Renderer.h DataSet.h ColorMap.h Trace.h
    227 Group.o: Group.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    228 HeightMap.o: HeightMap.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    229 Image.o: Image.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    230 LIC.o: LIC.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h RenderServer.h
    231 Line.o: Line.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
     231Disk.o: Disk.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     232Glyphs.o: Glyphs.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     233GraphicsObject.o: GraphicsObject.h Renderer.h DataSet.h ColorMap.h Math.h Trace.h
     234Group.o: Group.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     235HeightMap.o: HeightMap.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     236Image.o: Image.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     237LIC.o: LIC.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h RenderServer.h
     238Line.o: Line.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
    232239md5.o: md5.h
    233 Molecule.o: Molecule.h MoleculeData.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    234 Outline.o: Outline.h GraphicsObject.h DataSet.h Trace.h
    235 Parallelepiped.o: Parallelepiped.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    236 PolyData.o: PolyData.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    237 Polygon.o: Polygon.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
     240Molecule.o: Molecule.h MoleculeData.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     241Outline.o: Outline.h GraphicsObject.h Math.h DataSet.h Trace.h
     242Parallelepiped.o: Parallelepiped.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     243PolyData.o: PolyData.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     244Polygon.o: Polygon.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
    238245PPMWriter.o: PPMWriter.h ResponseQueue.h Trace.h
    239 PseudoColor.o: PseudoColor.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
     246PseudoColor.o: PseudoColor.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
    240247ReadBuffer.o: ReadBuffer.h Trace.h
    241248Renderer.o: Renderer.h RendererGraphicsObjs.h vtkRpCubeAxesActor.h vtkRpAxisFollower.h vtkRpAxisActor.h Math.h DataSet.h Arc.h Arrow.h Box.h Cone.h Contour2D.h Contour3D.h Cutplane.h Cylinder.h Disk.h Glyphs.h Group.h HeightMap.h Image.h LIC.h Line.h Molecule.h Outline.h Parallelepiped.h PolyData.h Polygon.h PseudoColor.h Sphere.h Streamlines.h Text3D.h Volume.h Warp.h ColorMap.h Trace.h
     
    244251RenderServer.o: RenderServer.h RendererCmd.h Renderer.h vtkRpCubeAxesActor.h vtkRpAxisFollower.h vtkRpAxisActor.h ReadBuffer.h ResponseQueue.h Trace.h PPMWriter.h TGAWriter.h
    245252ResponseQueue.o: ResponseQueue.h Trace.h
    246 Shape.o: Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    247 Sphere.o: Sphere.h Shape.h GraphicsObject.h DataSet.h Renderer.h Trace.h
    248 Streamlines.o: Streamlines.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
    249 Text3D.o: Text3D.h GraphicsObject.h DataSet.h Renderer.h Trace.h
     253Shape.o: Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     254Sphere.o: Sphere.h Shape.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
     255Streamlines.o: Streamlines.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
     256Text3D.o: Text3D.h GraphicsObject.h Math.h DataSet.h Renderer.h Trace.h
    250257TGAWriter.o: TGAWriter.h ResponseQueue.h Trace.h
    251258Trace.o: Trace.h
    252 Volume.o: Volume.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
     259Volume.o: Volume.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
    253260vtkRpAxisActor.o: vtkRpAxisActor.h
    254261vtkRpAxisFollower.o: vtkRpAxisFollower.h vtkRpAxisActor.h
    255262vtkRpCubeAxesActor.o: vtkRpCubeAxesActor.h vtkRpAxisFollower.h vtkRpAxisActor.h
    256 Warp.o: Warp.h GraphicsObject.h DataSet.h Renderer.h ColorMap.h Trace.h
     263Warp.o: Warp.h GraphicsObject.h Math.h DataSet.h Renderer.h ColorMap.h Trace.h
  • trunk/packages/vizservers/vtkvis/protocol.txt

    r3983 r4037  
    510510glyphs shape <arrow|cone|cube|cylinder|dodecahedron|icosahedron|line|octahedron|point|sphere|tetrahedron> <?datasetName?>
    511511glyphs smode <scalar|vmag|vcomp|off> <fieldName> <?dataSetName?>
    512        Set the scaling mode: use the scalar field, vector magnitude
    513        (uniform scale), vector components, or disable scaling
     512       Set the scaling mode: use the scalar field, vector magnitude,
     513       vector components, or disable scaling
    514514glyphs visible <bool> <?datasetName?>
    515515glyphs wireframe <bool> <?datasetName?>
Note: See TracChangeset for help on using the changeset viewer.