Ignore:
Timestamp:
Jan 9, 2012, 1:27:10 AM (13 years ago)
Author:
ldelgass
Message:

Add volume quality command to adjust relative sampling distance (quality is in
[0,1] range and is used to adjust sample distance relative to volume spacing.
Also first pass at supporting point cloud input to volume renderer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/vtkvis/RpVtkRendererCmd.cpp

    r2752 r2757  
    16521652    {"ccolor",       2, CutplaneColorOp, 5, 6, "r g b ?dataSetName?"},
    16531653    {"colormap",     7, CutplaneColorMapOp, 3, 4, "colorMapName ?dataSetName?"},
    1654     {"colormode",    7, CutplaneColorModeOp, 4, 5, "mode fieldName ?dataSetNme?"},
     1654    {"colormode",    7, CutplaneColorModeOp, 4, 5, "mode fieldName ?dataSetName?"},
    16551655    {"delete",       1, CutplaneDeleteOp, 2, 3, "?dataSetName?"},
    16561656    {"edges",        1, CutplaneEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"},
     
    25212521
    25222522static Rappture::CmdSpec glyphsOps[] = {
    2523     {"add",       1, GlyphsAddOp, 3, 4, "shape ?dataSetNme?"},
     2523    {"add",       1, GlyphsAddOp, 3, 4, "shape ?dataSetName?"},
    25242524    {"ccolor",    2, GlyphsColorOp, 5, 6, "r g b ?dataSetName?"},
    2525     {"colormap",  7, GlyphsColorMapOp, 3, 4, "colorMapName ?dataSetNme?"},
    2526     {"colormode", 7, GlyphsColorModeOp, 4, 5, "mode fieldName ?dataSetNme?"},
     2525    {"colormap",  7, GlyphsColorMapOp, 3, 4, "colorMapName ?dataSetName?"},
     2526    {"colormode", 7, GlyphsColorModeOp, 4, 5, "mode fieldName ?dataSetName?"},
    25272527    {"delete",    1, GlyphsDeleteOp, 2, 3, "?dataSetName?"},
    25282528    {"edges",     1, GlyphsEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"},
     
    25372537    {"scale",     2, GlyphsScaleOp, 5, 6, "sx sy sz ?dataSetName?"},
    25382538    {"shape",     2, GlyphsShapeOp, 3, 4, "shapeVal ?dataSetName?"},
    2539     {"smode",     2, GlyphsScalingModeOp, 4, 5, "mode fieldName ?dataSetNme?"},
     2539    {"smode",     2, GlyphsScalingModeOp, 4, 5, "mode fieldName ?dataSetName?"},
    25402540    {"visible",   1, GlyphsVisibleOp, 3, 4, "bool ?dataSetName?"},
    25412541    {"wireframe", 1, GlyphsWireframeOp, 3, 4, "bool ?dataSetName?"}
     
    43154315    {"add",       1, PseudoColorAddOp, 2, 3, "?dataSetName?"},
    43164316    {"ccolor",    2, PseudoColorColorOp, 5, 6, "r g b ?dataSetName?"},
    4317     {"colormap",  7, PseudoColorColorMapOp, 3, 4, "colorMapName ?dataSetNme?"},
    4318     {"colormode", 7, PseudoColorColorModeOp, 4, 5, "mode fieldName ?dataSetNme?"},
     4317    {"colormap",  7, PseudoColorColorMapOp, 3, 4, "colorMapName ?dataSetName?"},
     4318    {"colormode", 7, PseudoColorColorModeOp, 4, 5, "mode fieldName ?dataSetName?"},
    43194319    {"delete",    1, PseudoColorDeleteOp, 2, 3, "?dataSetName?"},
    43204320    {"edges",     1, PseudoColorEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"},
     
    51645164    {"ccolor",    1, StreamlinesColorOp,          5, 6, "r g b ?dataSetName?"},
    51655165    {"colormap",  7, StreamlinesColorMapOp,       3, 4, "colorMapName ?dataSetName?"},
    5166     {"colormode", 7, StreamlinesColorModeOp,      4, 5, "mode fieldName ?dataSetNme?"},
     5166    {"colormode", 7, StreamlinesColorModeOp,      4, 5, "mode fieldName ?dataSetName?"},
    51675167    {"delete",    1, StreamlinesDeleteOp,         2, 3, "?dataSetName?"},
    51685168    {"edges",     1, StreamlinesEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"},
     
    53175317
    53185318static int
     5319VolumeSampleRateOp(ClientData clientData, Tcl_Interp *interp, int objc,
     5320                   Tcl_Obj *const *objv)
     5321{
     5322    double quality;
     5323    if (Tcl_GetDoubleFromObj(interp, objv[2], &quality) != TCL_OK) {
     5324        return TCL_ERROR;
     5325    }
     5326    if (quality < 0.0 || quality > 1.0) {
     5327        Tcl_AppendResult(interp, "bad volume quality value \"",
     5328                         Tcl_GetString(objv[2]),
     5329                         "\": should be in the range [0,1]", (char*)NULL);
     5330        return TCL_ERROR;
     5331    }
     5332    double distance;
     5333    double maxFactor = 4.0;
     5334    if (quality >= 0.5) {
     5335        distance = 1.0 / ((quality - 0.5) * (maxFactor - 1.0) * 2.0 + 1.0);
     5336    } else {
     5337        distance = ((0.5 - quality) * (maxFactor - 1.0) * 2.0 + 1.0);
     5338    }
     5339    if (objc == 4) {
     5340        const char *name = Tcl_GetString(objv[3]);
     5341        g_renderer->setVolumeSampleDistance(name, distance);
     5342    } else {
     5343        g_renderer->setVolumeSampleDistance("all", distance);
     5344    }
     5345    return TCL_OK;
     5346}
     5347
     5348static int
    53195349VolumeScaleOp(ClientData clientData, Tcl_Interp *interp, int objc,
    53205350              Tcl_Obj *const *objv)
     
    54295459
    54305460static Rappture::CmdSpec volumeOps[] = {
    5431     {"add",      1, VolumeAddOp,      2, 3, "?dataSetName?"},
    5432     {"colormap", 1, VolumeColorMapOp, 3, 4, "colorMapName ?dataSetName?"},
    5433     {"delete",   1, VolumeDeleteOp,   2, 3, "?dataSetName?"},
    5434     {"lighting", 1, VolumeLightingOp, 3, 4, "bool ?dataSetName?"},
    5435     {"opacity",  2, VolumeOpacityOp,  3, 4, "val ?dataSetName?"},
    5436     {"orient",   2, VolumeOrientOp,   6, 7, "qw qx qy qz ?dataSetName?"},
    5437     {"pos",      1, VolumePositionOp, 5, 6, "x y z ?dataSetName?"},
    5438     {"scale",    2, VolumeScaleOp,    5, 6, "sx sy sz ?dataSetName?"},
    5439     {"shading",  2, VolumeShadingOp,  4, 6, "oper val ?dataSetName?"},
    5440     {"visible",  1, VolumeVisibleOp,  3, 4, "bool ?dataSetName?"}
     5461    {"add",      1, VolumeAddOp,        2, 3, "?dataSetName?"},
     5462    {"colormap", 1, VolumeColorMapOp,   3, 4, "colorMapName ?dataSetName?"},
     5463    {"delete",   1, VolumeDeleteOp,     2, 3, "?dataSetName?"},
     5464    {"lighting", 1, VolumeLightingOp,   3, 4, "bool ?dataSetName?"},
     5465    {"opacity",  2, VolumeOpacityOp,    3, 4, "val ?dataSetName?"},
     5466    {"orient",   2, VolumeOrientOp,     6, 7, "qw qx qy qz ?dataSetName?"},
     5467    {"pos",      1, VolumePositionOp,   5, 6, "x y z ?dataSetName?"},
     5468    {"quality",  1, VolumeSampleRateOp, 3, 4, "val ?dataSetName?"},
     5469    {"scale",    2, VolumeScaleOp,      5, 6, "sx sy sz ?dataSetName?"},
     5470    {"shading",  2, VolumeShadingOp,    4, 6, "oper val ?dataSetName?"},
     5471    {"visible",  1, VolumeVisibleOp,    3, 4, "bool ?dataSetName?"}
    54415472};
    54425473static int nVolumeOps = NumCmdSpecs(volumeOps);
Note: See TracChangeset for help on using the changeset viewer.