source: trunk/packages/vizservers/nanovis/NvFlowVisRenderer.h @ 3492

Last change on this file since 3492 was 3492, checked in by ldelgass, 6 years ago

Fix camera reset for nanovis. Includes refactoring of vector/matrix classes
in nanovis to consolidate into vrmath library. Also add preliminary canonical
view control to clients for testing.

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2#ifndef NVFLOWVISRENDERER_H
3#define NVFLOWVISRENDERER_H
4
5#include <map>
6#include <string>
7
8#include <vrmath/Vector3f.h>
9#include <vrmath/Vector4f.h>
10
11#include "NvVectorField.h"
12
13class NvParticleRenderer;
14
15class NvFlowVisRenderer
16{
17public:
18    NvFlowVisRenderer(int w, int h);
19
20    ~NvFlowVisRenderer();
21
22    void initialize();
23
24    void initialize(const std::string& vfName);
25
26    void advect();
27
28    void reset();
29
30    void render();
31
32    void addVectorField(Volume *volPtr, const vrmath::Vector3f& ori, float scaleX, 
33                        float scaleY, float scaleZ, float max);
34
35    void addVectorField(const std::string& vfName, Volume *volPtr, const vrmath::Vector3f& ori,
36                        float scaleX, float scaleY, float scaleZ, float max);
37
38    void removeVectorField(const std::string& vfName);
39
40    void addPlane(const std::string& vfName, const std::string& name);
41
42    void removePlane(const std::string& vfName, const std::string& name);
43
44    /**
45     * @brief Specify the axis of the index plane
46     */
47    void setPlaneAxis(const std::string& vfName, const std::string& name, int axis);
48
49    /**
50     * @param pos Specify the position of slice
51     */
52    void setPlanePos(const std::string& vfName, const std::string& name, float pos);
53
54    void setParticleColor(const std::string& vfName, const std::string& name, const vrmath::Vector4f& color);
55
56    void activatePlane(const std::string& vfName, const std::string& name);
57
58    void deactivatePlane(const std::string& vfName, const std::string& name);
59
60    void activateVectorField(const std::string& vfName);
61
62    void deactivateVectorField(const std::string& vfName);
63
64    ////////////////////
65    // DEVICE SHAPE
66    void addDeviceShape(const std::string& vfName, const std::string& name, const NvDeviceShape& shape);
67
68    void removeDeviceShape(const std::string& vfName, const std::string& name);
69
70    void activateDeviceShape(const std::string& vfName);
71
72    void deactivateDeviceShape(const std::string& vfName);
73
74    void activateDeviceShape(const std::string& vfName, const std::string& name);
75
76    void deactivateDeviceShape(const std::string& vfName, const std::string& name);
77
78    bool active()
79    {
80        return _activated;
81    }
82
83    void active(bool state)
84    {
85        _activated = state;
86    }
87
88private:
89    int _psys_width;
90    int _psys_height;
91
92    std::map<std::string, NvVectorField *> _vectorFieldMap;
93
94    bool _activated;
95};
96
97#endif
Note: See TracBrowser for help on using the repository browser.