Changeset 1484 for trunk


Ignore:
Timestamp:
Jun 2, 2009 12:05:08 PM (15 years ago)
Author:
vrinside
Message:

added 2d arrows (arrow tip will be added)

Location:
trunk/packages/vizservers/nanovis
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanovis/Command.cpp

    r1478 r1484  
    20332033        NanoVis::licRenderer->set_axis(0);
    20342034        NanoVis::licRenderer->set_offset(NanoVis::lic_slice_x);
     2035        NanoVis::velocityArrowsSlice->axis(0);
     2036        NanoVis::velocityArrowsSlice->slicePos(NanoVis::lic_slice_x);
    20352037        break;
    20362038    case 1 :
     
    20382040        NanoVis::licRenderer->set_axis(1);
    20392041        NanoVis::licRenderer->set_offset(NanoVis::lic_slice_y);
     2042        NanoVis::velocityArrowsSlice->axis(1);
     2043        NanoVis::velocityArrowsSlice->slicePos(NanoVis::lic_slice_y);
    20402044        break;
    20412045    case 2 :
     
    20432047        NanoVis::licRenderer->set_axis(2);
    20442048        NanoVis::licRenderer->set_offset(NanoVis::lic_slice_z);
     2049        NanoVis::velocityArrowsSlice->axis(2);
     2050        NanoVis::velocityArrowsSlice->slicePos(NanoVis::lic_slice_z);
    20452051        break;
    20462052    }
     
    21762182            volPtr->wAxis.max());
    21772183        NanoVis::licRenderer->set_offset(NanoVis::lic_slice_z);
     2184    }
     2185
     2186    if (NanoVis::velocityArrowsSlice)
     2187    {
     2188        NanoVis::velocityArrowsSlice->vectorField(volPtr->id,
     2189            //*(volPtr->get_location()),
     2190            1.0f / volPtr->aspect_ratio_width,
     2191            1.0f / volPtr->aspect_ratio_height,
     2192            1.0f / volPtr->aspect_ratio_depth
     2193            //,volPtr->wAxis.max()
     2194            );
     2195        NanoVis::velocityArrowsSlice->slicePos(NanoVis::lic_slice_z);
    21782196    }
    21792197    return TCL_OK;
  • trunk/packages/vizservers/nanovis/FlowCmd.cpp

    r1478 r1484  
    561561        SetActive();
    562562    }
     563
     564    if (NanoVis::velocityArrowsSlice != NULL) {
     565        NanoVis::velocityArrowsSlice->vectorField(volPtr->id,
     566            //*(volPtr->get_location()),
     567            1.0f,
     568            volPtr->aspect_ratio_height / volPtr->aspect_ratio_width,
     569            volPtr->aspect_ratio_depth / volPtr->aspect_ratio_width
     570            //,volPtr->wAxis.max()
     571            );
     572    }
    563573    FlowParticles *particlesPtr;
    564574    FlowParticlesIterator partIter;
     
    10251035        // FIXME: This doesn't work when there is more than one flow.
    10261036        licRenderer->set_offset(flowPtr->GetRelativePosition());
     1037        NanoVis::velocityArrowsSlice->slicePos(flowPtr->GetRelativePosition());
     1038       
    10271039    }
    10281040    AdvectFlows();
  • trunk/packages/vizservers/nanovis/Makefile.in

    r1433 r1484  
    148148                TransferFunction.o \
    149149                Util.o \
     150                VelocityArrowSlice.o \
    150151                Volume.o \
    151152                VolumeInterpolator.o \
     
    171172                $(srcdir)/shaders/passthru.cg \
    172173                $(srcdir)/shaders/pointsvp.cg \
     174                $(srcdir)/shaders/queryvelocity.cg \
    173175                $(srcdir)/shaders/render_vel.cg \
    174176                $(srcdir)/shaders/update_pos.cg \
     
    292294VolumeInterpolator.o: VolumeInterpolator.cpp VolumeInterpolator.h
    293295GradientFilter.o: GradientFilter.cpp GradientFilter.h
     296VelocityArrowSlice.o: VelocityArrowSlice.cpp VelocityArrowSlice.h
    294297
    295298Util.o: Util.cpp Util.h
  • trunk/packages/vizservers/nanovis/Vector3.h

    r1028 r1484  
    5555        return Vector3(x - op2.x, y - op2.y, z - op2.z);
    5656    }
    57     float operator *(Vector3 &op2){
     57    float operator *(const Vector3 &op2){
    5858        return x*op2.x + y*op2.y + z*op2.z;
    5959    }
     
    119119        return sqrt(x*x + y*y + z*z);
    120120    }
     121
     122    Vector3 scale(const Vector3& scale)
     123    {
     124        Vector3 v;
     125        v.x = x * scale.x;
     126        v.y = y * scale.y;
     127        v.z = z * scale.z;
     128        return v;
     129    }
     130
     131    friend Vector3 operator+(const Vector3& value1, const Vector3& value2);
     132
     133
    121134};
    122135
     136inline Vector3 operator+(const Vector3& value1, const Vector3& value2)
     137{
     138        return Vector3(value1.x + value2.x, value1.y + value2.y, value1.z + value2.z);
     139}
    123140
    124141#endif
  • trunk/packages/vizservers/nanovis/nanovis.cpp

    r1478 r1484  
    121121NvFlowVisRenderer* NanoVis::flowVisRenderer = NULL;
    122122#endif
     123VelocityArrowsSlice* NanoVis::velocityArrowsSlice = 0;
    123124
    124125graphics::RenderContext* NanoVis::renderContext = NULL;
     
    857858#endif
    858859
     860    NanoVis::velocityArrowsSlice = new VelocityArrowsSlice;
    859861
    860862    licRenderer = new NvLIC(NMESH, NPIX, NPIX, lic_axis,
     
    17471749        if ((licRenderer != NULL) && (licRenderer->active())) {
    17481750            licRenderer->render();
     1751        }
     1752
     1753        if ((velocityArrowsSlice != NULL) && (velocityArrowsSlice->enabled())) {
     1754            velocityArrowsSlice->render();
    17491755        }
    17501756#ifdef notdef
     
    25612567    volumes[index] = NULL;              // slot as empty.
    25622568}
     2569
     2570/*
     2571void NanoVis::drawArrows(const Vector3& v1, const Vector3& v2)
     2572{
     2573    Vector3 v3, v4;
     2574    if if((v1.z-v2.z) != 0)
     2575    {
     2576        v3.set(1, 1, (-(v1.x-v2.x)-(v1.y-v2.y))/(v1.z-v2.z));
     2577
     2578        adj = sqrt((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)) / (4 * sqrt((x3^2)+(y3^2)+(z3^2)));
     2579        v3.scale(adj);
     2580        v4 = -v3;
     2581
     2582        //x3 = x1 + (3/4)*(x1-x2) + x3
     2583        //y3 = y1 + (3/4)*(y1-y2) + y3
     2584        //z3 = z1 + (3/4)*(z1-z2) + z3
     2585
     2586        //x4 = x1 + (3/4)*(x1-x2) + x4
     2587        //y4 = y1 + (3/4)*(y1-y2) + y4
     2588        //z4 = z1 + (3/4)*(z1-z2) + z4
     2589    }
     2590}
     2591*/
  • trunk/packages/vizservers/nanovis/nanovis.h

    r1478 r1484  
    6262#include "HeightMap.h"
    6363#include "Grid.h"
     64#include "VelocityArrowsSlice.h"
    6465
    6566#include "config.h"
     
    117118    static NvFlowVisRenderer* flowVisRenderer;
    118119#endif
     120    static VelocityArrowsSlice* velocityArrowsSlice;
    119121    static NvLIC* licRenderer;
    120122    static vector<PointSet*> pointSet;
Note: See TracChangeset for help on using the changeset viewer.