Changeset 2335 for trunk/packages/vizservers/vtkvis
- Timestamp:
- Aug 8, 2011, 9:34:06 AM (13 years ago)
- Location:
- trunk/packages/vizservers/vtkvis
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/vtkvis/RpGlyphs.cpp
r2332 r2335 181 181 182 182 /** 183 * \brief Control how glyphs are scaled 184 */ 185 void Glyphs::setScalingMode(ScalingMode mode) 186 { 187 if (_glyphGenerator != NULL) { 188 switch (mode) { 189 case SCALE_BY_SCALAR: 190 _glyphGenerator->SetScaleModeToScaleByScalar(); 191 _glyphGenerator->ScalingOn(); 192 break; 193 case SCALE_BY_VECTOR: 194 _glyphGenerator->SetScaleModeToScaleByVector(); 195 _glyphGenerator->ScalingOn(); 196 break; 197 case SCALE_BY_VECTOR_COMPONENTS: 198 _glyphGenerator->SetScaleModeToScaleByVectorComponents(); 199 _glyphGenerator->ScalingOn(); 200 break; 201 case SCALING_OFF: 202 default: 203 _glyphGenerator->SetScaleModeToDataScalingOff(); 204 _glyphGenerator->ScalingOff(); 205 } 206 _pdMapper->Update(); 207 } 208 } 209 210 /** 211 * \brief Control how glyphs are colored 212 */ 213 void Glyphs::setColorMode(ColorMode mode) 214 { 215 if (_glyphGenerator != NULL) { 216 switch (mode) { 217 case COLOR_BY_SCALE: 218 _glyphGenerator->SetColorModeToColorByScale(); 219 break; 220 case COLOR_BY_VECTOR: 221 _glyphGenerator->SetColorModeToColorByVector(); 222 break; 223 case COLOR_BY_SCALAR: 224 default: 225 _glyphGenerator->SetColorModeToColorByScalar(); 226 break; 227 } 228 _pdMapper->Update(); 229 } 230 } 231 232 /** 183 233 * \brief Controls relative scaling of glyphs 184 234 */ -
trunk/packages/vizservers/vtkvis/RpGlyphs.h
r2328 r2335 43 43 TETRAHEDRON 44 44 }; 45 enum ScalingMode { 46 SCALE_BY_SCALAR, 47 SCALE_BY_VECTOR, 48 SCALE_BY_VECTOR_COMPONENTS, 49 SCALING_OFF 50 }; 51 enum ColorMode { 52 COLOR_BY_SCALE, 53 COLOR_BY_SCALAR, 54 COLOR_BY_VECTOR 55 }; 45 56 46 57 Glyphs(); … … 53 64 54 65 virtual void setClippingPlanes(vtkPlaneCollection *planes); 66 67 void setScalingMode(ScalingMode mode); 68 69 void setColorMode(ColorMode mode); 55 70 56 71 void setGlyphShape(GlyphShape shape); -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.cpp
r2332 r2335 1293 1293 1294 1294 /** 1295 * \brief Set the prop orientation with a quaternion 1296 */ 1297 void Renderer::setContour2DTransform(const DataSetId& id, vtkMatrix4x4 *trans) 1298 { 1299 Contour2DHashmap::iterator itr; 1300 1301 bool doAll = false; 1302 1303 if (id.compare("all") == 0) { 1304 itr = _contour2Ds.begin(); 1305 doAll = true; 1306 } else { 1307 itr = _contour2Ds.find(id); 1308 } 1309 if (itr == _contour2Ds.end()) { 1310 ERROR("Contour2D not found: %s", id.c_str()); 1311 return; 1312 } 1313 1314 do { 1315 itr->second->setTransform(trans); 1316 } while (doAll && ++itr != _contour2Ds.end()); 1317 1318 resetAxes(); 1319 _needsRedraw = true; 1320 } 1321 1322 /** 1323 * \brief Set the prop orientation with a quaternion 1324 */ 1325 void Renderer::setContour2DOrientation(const DataSetId& id, double quat[4]) 1326 { 1327 Contour2DHashmap::iterator itr; 1328 1329 bool doAll = false; 1330 1331 if (id.compare("all") == 0) { 1332 itr = _contour2Ds.begin(); 1333 doAll = true; 1334 } else { 1335 itr = _contour2Ds.find(id); 1336 } 1337 if (itr == _contour2Ds.end()) { 1338 ERROR("Contour2D not found: %s", id.c_str()); 1339 return; 1340 } 1341 1342 do { 1343 itr->second->setOrientation(quat); 1344 } while (doAll && ++itr != _contour2Ds.end()); 1345 1346 resetAxes(); 1347 _needsRedraw = true; 1348 } 1349 1350 /** 1351 * \brief Set the prop orientation with a rotation about an axis 1352 */ 1353 void Renderer::setContour2DOrientation(const DataSetId& id, double angle, double axis[3]) 1354 { 1355 Contour2DHashmap::iterator itr; 1356 1357 bool doAll = false; 1358 1359 if (id.compare("all") == 0) { 1360 itr = _contour2Ds.begin(); 1361 doAll = true; 1362 } else { 1363 itr = _contour2Ds.find(id); 1364 } 1365 if (itr == _contour2Ds.end()) { 1366 ERROR("Contour2D not found: %s", id.c_str()); 1367 return; 1368 } 1369 1370 do { 1371 itr->second->setOrientation(angle, axis); 1372 } while (doAll && ++itr != _contour2Ds.end()); 1373 1374 resetAxes(); 1375 _needsRedraw = true; 1376 } 1377 1378 /** 1379 * \brief Set the prop position in world coords 1380 */ 1381 void Renderer::setContour2DPosition(const DataSetId& id, double pos[3]) 1382 { 1383 Contour2DHashmap::iterator itr; 1384 1385 bool doAll = false; 1386 1387 if (id.compare("all") == 0) { 1388 itr = _contour2Ds.begin(); 1389 doAll = true; 1390 } else { 1391 itr = _contour2Ds.find(id); 1392 } 1393 if (itr == _contour2Ds.end()) { 1394 ERROR("Contour2D not found: %s", id.c_str()); 1395 return; 1396 } 1397 1398 do { 1399 itr->second->setPosition(pos); 1400 } while (doAll && ++itr != _contour2Ds.end()); 1401 1402 resetAxes(); 1403 _needsRedraw = true; 1404 } 1405 1406 /** 1407 * \brief Set the prop scaling 1408 */ 1409 void Renderer::setContour2DScale(const DataSetId& id, double scale[3]) 1410 { 1411 Contour2DHashmap::iterator itr; 1412 1413 bool doAll = false; 1414 1415 if (id.compare("all") == 0) { 1416 itr = _contour2Ds.begin(); 1417 doAll = true; 1418 } else { 1419 itr = _contour2Ds.find(id); 1420 } 1421 if (itr == _contour2Ds.end()) { 1422 ERROR("Contour2D not found: %s", id.c_str()); 1423 return; 1424 } 1425 1426 do { 1427 itr->second->setScale(scale); 1428 } while (doAll && ++itr != _contour2Ds.end()); 1429 1430 resetAxes(); 1431 _needsRedraw = true; 1432 } 1433 1434 /** 1295 1435 * \brief Set the number of equally spaced contour isolines for the given DataSet 1296 1436 */ … … 1558 1698 1559 1699 /** 1700 * \brief Set the prop orientation with a quaternion 1701 */ 1702 void Renderer::setContour3DTransform(const DataSetId& id, vtkMatrix4x4 *trans) 1703 { 1704 Contour3DHashmap::iterator itr; 1705 1706 bool doAll = false; 1707 1708 if (id.compare("all") == 0) { 1709 itr = _contour3Ds.begin(); 1710 doAll = true; 1711 } else { 1712 itr = _contour3Ds.find(id); 1713 } 1714 if (itr == _contour3Ds.end()) { 1715 ERROR("Contour3D not found: %s", id.c_str()); 1716 return; 1717 } 1718 1719 do { 1720 itr->second->setTransform(trans); 1721 } while (doAll && ++itr != _contour3Ds.end()); 1722 1723 resetAxes(); 1724 _needsRedraw = true; 1725 } 1726 1727 /** 1728 * \brief Set the prop orientation with a quaternion 1729 */ 1730 void Renderer::setContour3DOrientation(const DataSetId& id, double quat[4]) 1731 { 1732 Contour3DHashmap::iterator itr; 1733 1734 bool doAll = false; 1735 1736 if (id.compare("all") == 0) { 1737 itr = _contour3Ds.begin(); 1738 doAll = true; 1739 } else { 1740 itr = _contour3Ds.find(id); 1741 } 1742 if (itr == _contour3Ds.end()) { 1743 ERROR("Contour3D not found: %s", id.c_str()); 1744 return; 1745 } 1746 1747 do { 1748 itr->second->setOrientation(quat); 1749 } while (doAll && ++itr != _contour3Ds.end()); 1750 1751 resetAxes(); 1752 _needsRedraw = true; 1753 } 1754 1755 /** 1756 * \brief Set the prop orientation with a rotation about an axis 1757 */ 1758 void Renderer::setContour3DOrientation(const DataSetId& id, double angle, double axis[3]) 1759 { 1760 Contour3DHashmap::iterator itr; 1761 1762 bool doAll = false; 1763 1764 if (id.compare("all") == 0) { 1765 itr = _contour3Ds.begin(); 1766 doAll = true; 1767 } else { 1768 itr = _contour3Ds.find(id); 1769 } 1770 if (itr == _contour3Ds.end()) { 1771 ERROR("Contour3D not found: %s", id.c_str()); 1772 return; 1773 } 1774 1775 do { 1776 itr->second->setOrientation(angle, axis); 1777 } while (doAll && ++itr != _contour3Ds.end()); 1778 1779 resetAxes(); 1780 _needsRedraw = true; 1781 } 1782 1783 /** 1784 * \brief Set the prop position in world coords 1785 */ 1786 void Renderer::setContour3DPosition(const DataSetId& id, double pos[3]) 1787 { 1788 Contour3DHashmap::iterator itr; 1789 1790 bool doAll = false; 1791 1792 if (id.compare("all") == 0) { 1793 itr = _contour3Ds.begin(); 1794 doAll = true; 1795 } else { 1796 itr = _contour3Ds.find(id); 1797 } 1798 if (itr == _contour3Ds.end()) { 1799 ERROR("Contour3D not found: %s", id.c_str()); 1800 return; 1801 } 1802 1803 do { 1804 itr->second->setPosition(pos); 1805 } while (doAll && ++itr != _contour3Ds.end()); 1806 1807 resetAxes(); 1808 _needsRedraw = true; 1809 } 1810 1811 /** 1812 * \brief Set the prop scaling 1813 */ 1814 void Renderer::setContour3DScale(const DataSetId& id, double scale[3]) 1815 { 1816 Contour3DHashmap::iterator itr; 1817 1818 bool doAll = false; 1819 1820 if (id.compare("all") == 0) { 1821 itr = _contour3Ds.begin(); 1822 doAll = true; 1823 } else { 1824 itr = _contour3Ds.find(id); 1825 } 1826 if (itr == _contour3Ds.end()) { 1827 ERROR("Contour3D not found: %s", id.c_str()); 1828 return; 1829 } 1830 1831 do { 1832 itr->second->setScale(scale); 1833 } while (doAll && ++itr != _contour3Ds.end()); 1834 1835 resetAxes(); 1836 _needsRedraw = true; 1837 } 1838 1839 /** 1560 1840 * \brief Set the number of equally spaced isosurfaces for the given DataSet 1561 1841 */ … … 1960 2240 1961 2241 /** 2242 * \brief Set the prop orientation with a quaternion 2243 */ 2244 void Renderer::setGlyphsTransform(const DataSetId& id, vtkMatrix4x4 *trans) 2245 { 2246 GlyphsHashmap::iterator itr; 2247 2248 bool doAll = false; 2249 2250 if (id.compare("all") == 0) { 2251 itr = _glyphs.begin(); 2252 doAll = true; 2253 } else { 2254 itr = _glyphs.find(id); 2255 } 2256 if (itr == _glyphs.end()) { 2257 ERROR("Glyphs not found: %s", id.c_str()); 2258 return; 2259 } 2260 2261 do { 2262 itr->second->setTransform(trans); 2263 } while (doAll && ++itr != _glyphs.end()); 2264 2265 resetAxes(); 2266 _needsRedraw = true; 2267 } 2268 2269 /** 2270 * \brief Set the prop orientation with a quaternion 2271 */ 2272 void Renderer::setGlyphsOrientation(const DataSetId& id, double quat[4]) 2273 { 2274 GlyphsHashmap::iterator itr; 2275 2276 bool doAll = false; 2277 2278 if (id.compare("all") == 0) { 2279 itr = _glyphs.begin(); 2280 doAll = true; 2281 } else { 2282 itr = _glyphs.find(id); 2283 } 2284 if (itr == _glyphs.end()) { 2285 ERROR("Glyphs not found: %s", id.c_str()); 2286 return; 2287 } 2288 2289 do { 2290 itr->second->setOrientation(quat); 2291 } while (doAll && ++itr != _glyphs.end()); 2292 2293 resetAxes(); 2294 _needsRedraw = true; 2295 } 2296 2297 /** 2298 * \brief Set the prop orientation with a rotation about an axis 2299 */ 2300 void Renderer::setGlyphsOrientation(const DataSetId& id, double angle, double axis[3]) 2301 { 2302 GlyphsHashmap::iterator itr; 2303 2304 bool doAll = false; 2305 2306 if (id.compare("all") == 0) { 2307 itr = _glyphs.begin(); 2308 doAll = true; 2309 } else { 2310 itr = _glyphs.find(id); 2311 } 2312 if (itr == _glyphs.end()) { 2313 ERROR("Glyphs not found: %s", id.c_str()); 2314 return; 2315 } 2316 2317 do { 2318 itr->second->setOrientation(angle, axis); 2319 } while (doAll && ++itr != _glyphs.end()); 2320 2321 resetAxes(); 2322 _needsRedraw = true; 2323 } 2324 2325 /** 2326 * \brief Set the prop position in world coords 2327 */ 2328 void Renderer::setGlyphsPosition(const DataSetId& id, double pos[3]) 2329 { 2330 GlyphsHashmap::iterator itr; 2331 2332 bool doAll = false; 2333 2334 if (id.compare("all") == 0) { 2335 itr = _glyphs.begin(); 2336 doAll = true; 2337 } else { 2338 itr = _glyphs.find(id); 2339 } 2340 if (itr == _glyphs.end()) { 2341 ERROR("Glyphs not found: %s", id.c_str()); 2342 return; 2343 } 2344 2345 do { 2346 itr->second->setPosition(pos); 2347 } while (doAll && ++itr != _glyphs.end()); 2348 2349 resetAxes(); 2350 _needsRedraw = true; 2351 } 2352 2353 /** 2354 * \brief Set the prop scaling 2355 */ 2356 void Renderer::setGlyphsScale(const DataSetId& id, double scale[3]) 2357 { 2358 GlyphsHashmap::iterator itr; 2359 2360 bool doAll = false; 2361 2362 if (id.compare("all") == 0) { 2363 itr = _glyphs.begin(); 2364 doAll = true; 2365 } else { 2366 itr = _glyphs.find(id); 2367 } 2368 if (itr == _glyphs.end()) { 2369 ERROR("Glyphs not found: %s", id.c_str()); 2370 return; 2371 } 2372 2373 do { 2374 itr->second->setScale(scale); 2375 } while (doAll && ++itr != _glyphs.end()); 2376 2377 resetAxes(); 2378 _needsRedraw = true; 2379 } 2380 2381 /** 1962 2382 * \brief Associate an existing named color map with a Glyphs for the given DataSet 1963 2383 */ … … 2009 2429 } while (doAll && ++itr != _glyphs.end()); 2010 2430 2431 _needsRedraw = true; 2432 } 2433 2434 /** 2435 * \brief Controls the array used to color glyphs for the given DataSet 2436 */ 2437 void Renderer::setGlyphsColorMode(const DataSetId& id, Glyphs::ColorMode mode) 2438 { 2439 GlyphsHashmap::iterator itr; 2440 2441 bool doAll = false; 2442 2443 if (id.compare("all") == 0) { 2444 itr = _glyphs.begin(); 2445 doAll = true; 2446 } else { 2447 itr = _glyphs.find(id); 2448 } 2449 if (itr == _glyphs.end()) { 2450 ERROR("Glyphs not found: %s", id.c_str()); 2451 return; 2452 } 2453 2454 do { 2455 itr->second->setColorMode(mode); 2456 } while (doAll && ++itr != _glyphs.end()); 2457 2458 _needsRedraw = true; 2459 } 2460 2461 /** 2462 * \brief Controls the array used to scale glyphs for the given DataSet 2463 */ 2464 void Renderer::setGlyphsScalingMode(const DataSetId& id, Glyphs::ScalingMode mode) 2465 { 2466 GlyphsHashmap::iterator itr; 2467 2468 bool doAll = false; 2469 2470 if (id.compare("all") == 0) { 2471 itr = _glyphs.begin(); 2472 doAll = true; 2473 } else { 2474 itr = _glyphs.find(id); 2475 } 2476 if (itr == _glyphs.end()) { 2477 ERROR("Glyphs not found: %s", id.c_str()); 2478 return; 2479 } 2480 2481 do { 2482 itr->second->setScalingMode(mode); 2483 } while (doAll && ++itr != _glyphs.end()); 2484 2485 _renderer->ResetCameraClippingRange(); 2011 2486 _needsRedraw = true; 2012 2487 } … … 2945 3420 2946 3421 /** 3422 * \brief Set the prop orientation with a quaternion 3423 */ 3424 void Renderer::setLICTransform(const DataSetId& id, vtkMatrix4x4 *trans) 3425 { 3426 LICHashmap::iterator itr; 3427 3428 bool doAll = false; 3429 3430 if (id.compare("all") == 0) { 3431 itr = _lics.begin(); 3432 doAll = true; 3433 } else { 3434 itr = _lics.find(id); 3435 } 3436 if (itr == _lics.end()) { 3437 ERROR("LIC not found: %s", id.c_str()); 3438 return; 3439 } 3440 3441 do { 3442 itr->second->setTransform(trans); 3443 } while (doAll && ++itr != _lics.end()); 3444 3445 resetAxes(); 3446 _needsRedraw = true; 3447 } 3448 3449 /** 3450 * \brief Set the prop orientation with a quaternion 3451 */ 3452 void Renderer::setLICOrientation(const DataSetId& id, double quat[4]) 3453 { 3454 LICHashmap::iterator itr; 3455 3456 bool doAll = false; 3457 3458 if (id.compare("all") == 0) { 3459 itr = _lics.begin(); 3460 doAll = true; 3461 } else { 3462 itr = _lics.find(id); 3463 } 3464 if (itr == _lics.end()) { 3465 ERROR("LIC not found: %s", id.c_str()); 3466 return; 3467 } 3468 3469 do { 3470 itr->second->setOrientation(quat); 3471 } while (doAll && ++itr != _lics.end()); 3472 3473 resetAxes(); 3474 _needsRedraw = true; 3475 } 3476 3477 /** 3478 * \brief Set the prop orientation with a rotation about an axis 3479 */ 3480 void Renderer::setLICOrientation(const DataSetId& id, double angle, double axis[3]) 3481 { 3482 LICHashmap::iterator itr; 3483 3484 bool doAll = false; 3485 3486 if (id.compare("all") == 0) { 3487 itr = _lics.begin(); 3488 doAll = true; 3489 } else { 3490 itr = _lics.find(id); 3491 } 3492 if (itr == _lics.end()) { 3493 ERROR("LIC not found: %s", id.c_str()); 3494 return; 3495 } 3496 3497 do { 3498 itr->second->setOrientation(angle, axis); 3499 } while (doAll && ++itr != _lics.end()); 3500 3501 resetAxes(); 3502 _needsRedraw = true; 3503 } 3504 3505 /** 3506 * \brief Set the prop position in world coords 3507 */ 3508 void Renderer::setLICPosition(const DataSetId& id, double pos[3]) 3509 { 3510 LICHashmap::iterator itr; 3511 3512 bool doAll = false; 3513 3514 if (id.compare("all") == 0) { 3515 itr = _lics.begin(); 3516 doAll = true; 3517 } else { 3518 itr = _lics.find(id); 3519 } 3520 if (itr == _lics.end()) { 3521 ERROR("LIC not found: %s", id.c_str()); 3522 return; 3523 } 3524 3525 do { 3526 itr->second->setPosition(pos); 3527 } while (doAll && ++itr != _lics.end()); 3528 3529 resetAxes(); 3530 _needsRedraw = true; 3531 } 3532 3533 /** 3534 * \brief Set the prop scaling 3535 */ 3536 void Renderer::setLICScale(const DataSetId& id, double scale[3]) 3537 { 3538 LICHashmap::iterator itr; 3539 3540 bool doAll = false; 3541 3542 if (id.compare("all") == 0) { 3543 itr = _lics.begin(); 3544 doAll = true; 3545 } else { 3546 itr = _lics.find(id); 3547 } 3548 if (itr == _lics.end()) { 3549 ERROR("LIC not found: %s", id.c_str()); 3550 return; 3551 } 3552 3553 do { 3554 itr->second->setScale(scale); 3555 } while (doAll && ++itr != _lics.end()); 3556 3557 resetAxes(); 3558 _needsRedraw = true; 3559 } 3560 3561 /** 2947 3562 * \brief Set the volume slice used for mapping volumetric data 2948 3563 */ … … 4192 4807 } else 4193 4808 return itr->second; 4809 } 4810 4811 /** 4812 * \brief Set the prop orientation with a quaternion 4813 */ 4814 void Renderer::setPseudoColorTransform(const DataSetId& id, vtkMatrix4x4 *trans) 4815 { 4816 PseudoColorHashmap::iterator itr; 4817 4818 bool doAll = false; 4819 4820 if (id.compare("all") == 0) { 4821 itr = _pseudoColors.begin(); 4822 doAll = true; 4823 } else { 4824 itr = _pseudoColors.find(id); 4825 } 4826 if (itr == _pseudoColors.end()) { 4827 ERROR("PseudoColor not found: %s", id.c_str()); 4828 return; 4829 } 4830 4831 do { 4832 itr->second->setTransform(trans); 4833 } while (doAll && ++itr != _pseudoColors.end()); 4834 4835 resetAxes(); 4836 _needsRedraw = true; 4837 } 4838 4839 /** 4840 * \brief Set the prop orientation with a quaternion 4841 */ 4842 void Renderer::setPseudoColorOrientation(const DataSetId& id, double quat[4]) 4843 { 4844 PseudoColorHashmap::iterator itr; 4845 4846 bool doAll = false; 4847 4848 if (id.compare("all") == 0) { 4849 itr = _pseudoColors.begin(); 4850 doAll = true; 4851 } else { 4852 itr = _pseudoColors.find(id); 4853 } 4854 if (itr == _pseudoColors.end()) { 4855 ERROR("PseudoColor not found: %s", id.c_str()); 4856 return; 4857 } 4858 4859 do { 4860 itr->second->setOrientation(quat); 4861 } while (doAll && ++itr != _pseudoColors.end()); 4862 4863 resetAxes(); 4864 _needsRedraw = true; 4865 } 4866 4867 /** 4868 * \brief Set the prop orientation with a rotation about an axis 4869 */ 4870 void Renderer::setPseudoColorOrientation(const DataSetId& id, double angle, double axis[3]) 4871 { 4872 PseudoColorHashmap::iterator itr; 4873 4874 bool doAll = false; 4875 4876 if (id.compare("all") == 0) { 4877 itr = _pseudoColors.begin(); 4878 doAll = true; 4879 } else { 4880 itr = _pseudoColors.find(id); 4881 } 4882 if (itr == _pseudoColors.end()) { 4883 ERROR("PseudoColor not found: %s", id.c_str()); 4884 return; 4885 } 4886 4887 do { 4888 itr->second->setOrientation(angle, axis); 4889 } while (doAll && ++itr != _pseudoColors.end()); 4890 4891 resetAxes(); 4892 _needsRedraw = true; 4893 } 4894 4895 /** 4896 * \brief Set the prop position in world coords 4897 */ 4898 void Renderer::setPseudoColorPosition(const DataSetId& id, double pos[3]) 4899 { 4900 PseudoColorHashmap::iterator itr; 4901 4902 bool doAll = false; 4903 4904 if (id.compare("all") == 0) { 4905 itr = _pseudoColors.begin(); 4906 doAll = true; 4907 } else { 4908 itr = _pseudoColors.find(id); 4909 } 4910 if (itr == _pseudoColors.end()) { 4911 ERROR("PseudoColor not found: %s", id.c_str()); 4912 return; 4913 } 4914 4915 do { 4916 itr->second->setPosition(pos); 4917 } while (doAll && ++itr != _pseudoColors.end()); 4918 4919 resetAxes(); 4920 _needsRedraw = true; 4921 } 4922 4923 /** 4924 * \brief Set the prop scaling 4925 */ 4926 void Renderer::setPseudoColorScale(const DataSetId& id, double scale[3]) 4927 { 4928 PseudoColorHashmap::iterator itr; 4929 4930 bool doAll = false; 4931 4932 if (id.compare("all") == 0) { 4933 itr = _pseudoColors.begin(); 4934 doAll = true; 4935 } else { 4936 itr = _pseudoColors.find(id); 4937 } 4938 if (itr == _pseudoColors.end()) { 4939 ERROR("PseudoColor not found: %s", id.c_str()); 4940 return; 4941 } 4942 4943 do { 4944 itr->second->setScale(scale); 4945 } while (doAll && ++itr != _pseudoColors.end()); 4946 4947 resetAxes(); 4948 _needsRedraw = true; 4194 4949 } 4195 4950 … … 4517 5272 4518 5273 /** 5274 * \brief Set the prop orientation with a quaternion 5275 */ 5276 void Renderer::setStreamlinesTransform(const DataSetId& id, vtkMatrix4x4 *trans) 5277 { 5278 StreamlinesHashmap::iterator itr; 5279 5280 bool doAll = false; 5281 5282 if (id.compare("all") == 0) { 5283 itr = _streamlines.begin(); 5284 doAll = true; 5285 } else { 5286 itr = _streamlines.find(id); 5287 } 5288 if (itr == _streamlines.end()) { 5289 ERROR("Streamlines not found: %s", id.c_str()); 5290 return; 5291 } 5292 5293 do { 5294 itr->second->setTransform(trans); 5295 } while (doAll && ++itr != _streamlines.end()); 5296 5297 resetAxes(); 5298 _needsRedraw = true; 5299 } 5300 5301 /** 5302 * \brief Set the prop orientation with a quaternion 5303 */ 5304 void Renderer::setStreamlinesOrientation(const DataSetId& id, double quat[4]) 5305 { 5306 StreamlinesHashmap::iterator itr; 5307 5308 bool doAll = false; 5309 5310 if (id.compare("all") == 0) { 5311 itr = _streamlines.begin(); 5312 doAll = true; 5313 } else { 5314 itr = _streamlines.find(id); 5315 } 5316 if (itr == _streamlines.end()) { 5317 ERROR("Streamlines not found: %s", id.c_str()); 5318 return; 5319 } 5320 5321 do { 5322 itr->second->setOrientation(quat); 5323 } while (doAll && ++itr != _streamlines.end()); 5324 5325 resetAxes(); 5326 _needsRedraw = true; 5327 } 5328 5329 /** 5330 * \brief Set the prop orientation with a rotation about an axis 5331 */ 5332 void Renderer::setStreamlinesOrientation(const DataSetId& id, double angle, double axis[3]) 5333 { 5334 StreamlinesHashmap::iterator itr; 5335 5336 bool doAll = false; 5337 5338 if (id.compare("all") == 0) { 5339 itr = _streamlines.begin(); 5340 doAll = true; 5341 } else { 5342 itr = _streamlines.find(id); 5343 } 5344 if (itr == _streamlines.end()) { 5345 ERROR("Streamlines not found: %s", id.c_str()); 5346 return; 5347 } 5348 5349 do { 5350 itr->second->setOrientation(angle, axis); 5351 } while (doAll && ++itr != _streamlines.end()); 5352 5353 resetAxes(); 5354 _needsRedraw = true; 5355 } 5356 5357 /** 5358 * \brief Set the prop position in world coords 5359 */ 5360 void Renderer::setStreamlinesPosition(const DataSetId& id, double pos[3]) 5361 { 5362 StreamlinesHashmap::iterator itr; 5363 5364 bool doAll = false; 5365 5366 if (id.compare("all") == 0) { 5367 itr = _streamlines.begin(); 5368 doAll = true; 5369 } else { 5370 itr = _streamlines.find(id); 5371 } 5372 if (itr == _streamlines.end()) { 5373 ERROR("Streamlines not found: %s", id.c_str()); 5374 return; 5375 } 5376 5377 do { 5378 itr->second->setPosition(pos); 5379 } while (doAll && ++itr != _streamlines.end()); 5380 5381 resetAxes(); 5382 _needsRedraw = true; 5383 } 5384 5385 /** 5386 * \brief Set the prop scaling 5387 */ 5388 void Renderer::setStreamlinesScale(const DataSetId& id, double scale[3]) 5389 { 5390 StreamlinesHashmap::iterator itr; 5391 5392 bool doAll = false; 5393 5394 if (id.compare("all") == 0) { 5395 itr = _streamlines.begin(); 5396 doAll = true; 5397 } else { 5398 itr = _streamlines.find(id); 5399 } 5400 if (itr == _streamlines.end()) { 5401 ERROR("Streamlines not found: %s", id.c_str()); 5402 return; 5403 } 5404 5405 do { 5406 itr->second->setScale(scale); 5407 } while (doAll && ++itr != _streamlines.end()); 5408 5409 resetAxes(); 5410 _needsRedraw = true; 5411 } 5412 5413 /** 4519 5414 * \brief Set the streamlines seed to points distributed randomly inside 4520 5415 * cells of DataSet … … 5043 5938 } else 5044 5939 return itr->second; 5940 } 5941 5942 /** 5943 * \brief Set the prop orientation with a quaternion 5944 */ 5945 void Renderer::setVolumeTransform(const DataSetId& id, vtkMatrix4x4 *trans) 5946 { 5947 VolumeHashmap::iterator itr; 5948 5949 bool doAll = false; 5950 5951 if (id.compare("all") == 0) { 5952 itr = _volumes.begin(); 5953 doAll = true; 5954 } else { 5955 itr = _volumes.find(id); 5956 } 5957 if (itr == _volumes.end()) { 5958 ERROR("Volume not found: %s", id.c_str()); 5959 return; 5960 } 5961 5962 do { 5963 itr->second->setTransform(trans); 5964 } while (doAll && ++itr != _volumes.end()); 5965 5966 resetAxes(); 5967 _needsRedraw = true; 5968 } 5969 5970 /** 5971 * \brief Set the prop orientation with a quaternion 5972 */ 5973 void Renderer::setVolumeOrientation(const DataSetId& id, double quat[4]) 5974 { 5975 VolumeHashmap::iterator itr; 5976 5977 bool doAll = false; 5978 5979 if (id.compare("all") == 0) { 5980 itr = _volumes.begin(); 5981 doAll = true; 5982 } else { 5983 itr = _volumes.find(id); 5984 } 5985 if (itr == _volumes.end()) { 5986 ERROR("Volume not found: %s", id.c_str()); 5987 return; 5988 } 5989 5990 do { 5991 itr->second->setOrientation(quat); 5992 } while (doAll && ++itr != _volumes.end()); 5993 5994 resetAxes(); 5995 _needsRedraw = true; 5996 } 5997 5998 /** 5999 * \brief Set the prop orientation with a rotation about an axis 6000 */ 6001 void Renderer::setVolumeOrientation(const DataSetId& id, double angle, double axis[3]) 6002 { 6003 VolumeHashmap::iterator itr; 6004 6005 bool doAll = false; 6006 6007 if (id.compare("all") == 0) { 6008 itr = _volumes.begin(); 6009 doAll = true; 6010 } else { 6011 itr = _volumes.find(id); 6012 } 6013 if (itr == _volumes.end()) { 6014 ERROR("Volume not found: %s", id.c_str()); 6015 return; 6016 } 6017 6018 do { 6019 itr->second->setOrientation(angle, axis); 6020 } while (doAll && ++itr != _volumes.end()); 6021 6022 resetAxes(); 6023 _needsRedraw = true; 6024 } 6025 6026 /** 6027 * \brief Set the prop position in world coords 6028 */ 6029 void Renderer::setVolumePosition(const DataSetId& id, double pos[3]) 6030 { 6031 VolumeHashmap::iterator itr; 6032 6033 bool doAll = false; 6034 6035 if (id.compare("all") == 0) { 6036 itr = _volumes.begin(); 6037 doAll = true; 6038 } else { 6039 itr = _volumes.find(id); 6040 } 6041 if (itr == _volumes.end()) { 6042 ERROR("Volume not found: %s", id.c_str()); 6043 return; 6044 } 6045 6046 do { 6047 itr->second->setPosition(pos); 6048 } while (doAll && ++itr != _volumes.end()); 6049 6050 resetAxes(); 6051 _needsRedraw = true; 6052 } 6053 6054 /** 6055 * \brief Set the prop scaling 6056 */ 6057 void Renderer::setVolumeScale(const DataSetId& id, double scale[3]) 6058 { 6059 VolumeHashmap::iterator itr; 6060 6061 bool doAll = false; 6062 6063 if (id.compare("all") == 0) { 6064 itr = _volumes.begin(); 6065 doAll = true; 6066 } else { 6067 itr = _volumes.find(id); 6068 } 6069 if (itr == _volumes.end()) { 6070 ERROR("Volume not found: %s", id.c_str()); 6071 return; 6072 } 6073 6074 do { 6075 itr->second->setScale(scale); 6076 } while (doAll && ++itr != _volumes.end()); 6077 6078 resetAxes(); 6079 _needsRedraw = true; 5045 6080 } 5046 6081 -
trunk/packages/vizservers/vtkvis/RpVtkRenderer.h
r2332 r2335 232 232 Contour2D *getContour2D(const DataSetId& id); 233 233 234 void setContour2DTransform(const DataSetId& id, vtkMatrix4x4 *trans); 235 236 void setContour2DOrientation(const DataSetId& id, double quat[4]); 237 238 void setContour2DOrientation(const DataSetId& id, double angle, double axis[3]); 239 240 void setContour2DPosition(const DataSetId& id, double pos[3]); 241 242 void setContour2DScale(const DataSetId& id, double scale[3]); 243 234 244 void setContour2DEdgeColor(const DataSetId& id, float color[3]); 235 245 … … 254 264 Contour3D *getContour3D(const DataSetId& id); 255 265 266 void setContour3DTransform(const DataSetId& id, vtkMatrix4x4 *trans); 267 268 void setContour3DOrientation(const DataSetId& id, double quat[4]); 269 270 void setContour3DOrientation(const DataSetId& id, double angle, double axis[3]); 271 272 void setContour3DPosition(const DataSetId& id, double pos[3]); 273 274 void setContour3DScale(const DataSetId& id, double scale[3]); 275 256 276 void setContour3DColor(const DataSetId& id, float color[3]); 257 277 … … 284 304 Glyphs *getGlyphs(const DataSetId& id); 285 305 306 void setGlyphsTransform(const DataSetId& id, vtkMatrix4x4 *trans); 307 308 void setGlyphsOrientation(const DataSetId& id, double quat[4]); 309 310 void setGlyphsOrientation(const DataSetId& id, double angle, double axis[3]); 311 312 void setGlyphsPosition(const DataSetId& id, double pos[3]); 313 314 void setGlyphsScale(const DataSetId& id, double scale[3]); 315 286 316 void setGlyphsEdgeVisibility(const DataSetId& id, bool state); 287 317 … … 302 332 void setGlyphsShape(const DataSetId& id, Glyphs::GlyphShape shape); 303 333 334 void setGlyphsColorMode(const DataSetId& id, Glyphs::ColorMode mode); 335 336 void setGlyphsScalingMode(const DataSetId& id, Glyphs::ScalingMode mode); 337 304 338 void setGlyphsScaleFactor(const DataSetId& id, double scale); 305 339 … … 358 392 LIC *getLIC(const DataSetId& id); 359 393 394 void setLICTransform(const DataSetId& id, vtkMatrix4x4 *trans); 395 396 void setLICOrientation(const DataSetId& id, double quat[4]); 397 398 void setLICOrientation(const DataSetId& id, double angle, double axis[3]); 399 400 void setLICPosition(const DataSetId& id, double pos[3]); 401 402 void setLICScale(const DataSetId& id, double scale[3]); 403 360 404 void setLICEdgeVisibility(const DataSetId& id, bool state); 361 405 … … 456 500 457 501 PseudoColor *getPseudoColor(const DataSetId& id); 458 502 503 void setPseudoColorTransform(const DataSetId& id, vtkMatrix4x4 *trans); 504 505 void setPseudoColorOrientation(const DataSetId& id, double quat[4]); 506 507 void setPseudoColorOrientation(const DataSetId& id, double angle, double axis[3]); 508 509 void setPseudoColorPosition(const DataSetId& id, double pos[3]); 510 511 void setPseudoColorScale(const DataSetId& id, double scale[3]); 512 459 513 void setPseudoColorEdgeVisibility(const DataSetId& id, bool state); 460 514 … … 480 534 481 535 Streamlines *getStreamlines(const DataSetId& id); 536 537 void setStreamlinesTransform(const DataSetId& id, vtkMatrix4x4 *trans); 538 539 void setStreamlinesOrientation(const DataSetId& id, double quat[4]); 540 541 void setStreamlinesOrientation(const DataSetId& id, double angle, double axis[3]); 542 543 void setStreamlinesPosition(const DataSetId& id, double pos[3]); 544 545 void setStreamlinesScale(const DataSetId& id, double scale[3]); 482 546 483 547 void setStreamlinesEdgeVisibility(const DataSetId& id, bool state); … … 521 585 522 586 Volume *getVolume(const DataSetId& id); 523 587 588 void setVolumeTransform(const DataSetId& id, vtkMatrix4x4 *trans); 589 590 void setVolumeOrientation(const DataSetId& id, double quat[4]); 591 592 void setVolumeOrientation(const DataSetId& id, double angle, double axis[3]); 593 594 void setVolumePosition(const DataSetId& id, double pos[3]); 595 596 void setVolumeScale(const DataSetId& id, double scale[3]); 597 524 598 void setVolumeAmbient(const DataSetId& id, double coeff); 525 599 -
trunk/packages/vizservers/vtkvis/RpVtkRendererCmd.cpp
r2332 r2335 757 757 758 758 static int 759 Contour2DOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 760 Tcl_Obj *const *objv) 761 { 762 double quat[4]; 763 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 764 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 765 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 766 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 767 return TCL_ERROR; 768 } 769 if (objc == 7) { 770 const char *name = Tcl_GetString(objv[6]); 771 g_renderer->setContour2DOrientation(name, quat); 772 } else { 773 g_renderer->setContour2DOrientation("all", quat); 774 } 775 return TCL_OK; 776 } 777 778 static int 779 Contour2DPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 780 Tcl_Obj *const *objv) 781 { 782 double pos[3]; 783 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 784 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 785 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 786 return TCL_ERROR; 787 } 788 if (objc == 6) { 789 const char *name = Tcl_GetString(objv[5]); 790 g_renderer->setContour2DPosition(name, pos); 791 } else { 792 g_renderer->setContour2DPosition("all", pos); 793 } 794 return TCL_OK; 795 } 796 797 static int 798 Contour2DScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 799 Tcl_Obj *const *objv) 800 { 801 double scale[3]; 802 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 803 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 804 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 805 return TCL_ERROR; 806 } 807 if (objc == 6) { 808 const char *name = Tcl_GetString(objv[5]); 809 g_renderer->setContour2DScale(name, scale); 810 } else { 811 g_renderer->setContour2DScale("all", scale); 812 } 813 return TCL_OK; 814 } 815 816 static int 759 817 Contour2DVisibleOp(ClientData clientData, Tcl_Interp *interp, int objc, 760 818 Tcl_Obj *const *objv) … … 779 837 {"linecolor", 5, Contour2DLineColorOp, 5, 6, "r g b ?dataSetName?"}, 780 838 {"linewidth", 5, Contour2DLineWidthOp, 3, 4, "width ?dataSetName?"}, 781 {"opacity", 1, Contour2DOpacityOp, 3, 4, "value ?dataSetName?"}, 839 {"opacity", 2, Contour2DOpacityOp, 3, 4, "value ?dataSetName?"}, 840 {"orient", 2, Contour2DOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 841 {"pos", 1, Contour2DPositionOp, 5, 6, "x y z ?dataSetName?"}, 842 {"scale", 1, Contour2DScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 782 843 {"visible", 1, Contour2DVisibleOp, 3, 4, "bool ?dataSetName?"} 783 844 }; … … 998 1059 } else { 999 1060 g_renderer->setContour3DOpacity("all", opacity); 1061 } 1062 return TCL_OK; 1063 } 1064 1065 static int 1066 Contour3DOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 1067 Tcl_Obj *const *objv) 1068 { 1069 double quat[4]; 1070 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 1071 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 1072 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 1073 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 1074 return TCL_ERROR; 1075 } 1076 if (objc == 7) { 1077 const char *name = Tcl_GetString(objv[6]); 1078 g_renderer->setContour3DOrientation(name, quat); 1079 } else { 1080 g_renderer->setContour3DOrientation("all", quat); 1081 } 1082 return TCL_OK; 1083 } 1084 1085 static int 1086 Contour3DPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 1087 Tcl_Obj *const *objv) 1088 { 1089 double pos[3]; 1090 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 1091 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 1092 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 1093 return TCL_ERROR; 1094 } 1095 if (objc == 6) { 1096 const char *name = Tcl_GetString(objv[5]); 1097 g_renderer->setContour3DPosition(name, pos); 1098 } else { 1099 g_renderer->setContour3DPosition("all", pos); 1100 } 1101 return TCL_OK; 1102 } 1103 1104 static int 1105 Contour3DScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 1106 Tcl_Obj *const *objv) 1107 { 1108 double scale[3]; 1109 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 1110 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 1111 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 1112 return TCL_ERROR; 1113 } 1114 if (objc == 6) { 1115 const char *name = Tcl_GetString(objv[5]); 1116 g_renderer->setContour3DScale(name, scale); 1117 } else { 1118 g_renderer->setContour3DScale("all", scale); 1000 1119 } 1001 1120 return TCL_OK; … … 1045 1164 {"linecolor", 5, Contour3DLineColorOp, 5, 6, "r g b ?dataSetName?"}, 1046 1165 {"linewidth", 5, Contour3DLineWidthOp, 3, 4, "width ?dataSetName?"}, 1047 {"opacity", 1, Contour3DOpacityOp, 3, 4, "value ?dataSetName?"}, 1166 {"opacity", 2, Contour3DOpacityOp, 3, 4, "value ?dataSetName?"}, 1167 {"orient", 2, Contour3DOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 1168 {"pos", 1, Contour3DPositionOp, 5, 6, "x y z ?dataSetName?"}, 1169 {"scale", 1, Contour3DScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 1048 1170 {"visible", 1, Contour3DVisibleOp, 3, 4, "bool ?dataSetName?"}, 1049 1171 {"wireframe", 1, Contour3DWireframeOp, 3, 4, "bool ?dataSetName?"} … … 1338 1460 1339 1461 static int 1462 GlyphsColorModeOp(ClientData clientData, Tcl_Interp *interp, int objc, 1463 Tcl_Obj *const *objv) 1464 { 1465 Glyphs::ColorMode mode; 1466 const char *str = Tcl_GetString(objv[2]); 1467 if (str[0] == 's' && strcmp(str, "scale") == 0) { 1468 mode = Glyphs::COLOR_BY_SCALE; 1469 } else if (str[0] == 's' && strcmp(str, "scalar") == 0) { 1470 mode = Glyphs::COLOR_BY_SCALAR; 1471 } else if (str[0] == 'v' && strcmp(str, "vector") == 0) { 1472 mode = Glyphs::COLOR_BY_VECTOR; 1473 } else { 1474 Tcl_AppendResult(interp, "bad color mode option \"", str, 1475 "\": should be one of: 'scale', 'scalar', 'vector'", (char*)NULL); 1476 return TCL_ERROR; 1477 } 1478 if (objc == 4) { 1479 const char *name = Tcl_GetString(objv[3]); 1480 g_renderer->setGlyphsColorMode(name, mode); 1481 } else { 1482 g_renderer->setGlyphsColorMode("all", mode); 1483 } 1484 return TCL_OK; 1485 } 1486 1487 static int 1340 1488 GlyphsDeleteOp(ClientData clientData, Tcl_Interp *interp, int objc, 1341 1489 Tcl_Obj *const *objv) … … 1438 1586 1439 1587 static int 1588 GlyphsOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 1589 Tcl_Obj *const *objv) 1590 { 1591 double quat[4]; 1592 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 1593 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 1594 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 1595 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 1596 return TCL_ERROR; 1597 } 1598 if (objc == 7) { 1599 const char *name = Tcl_GetString(objv[6]); 1600 g_renderer->setGlyphsOrientation(name, quat); 1601 } else { 1602 g_renderer->setGlyphsOrientation("all", quat); 1603 } 1604 return TCL_OK; 1605 } 1606 1607 static int 1608 GlyphsPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 1609 Tcl_Obj *const *objv) 1610 { 1611 double pos[3]; 1612 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 1613 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 1614 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 1615 return TCL_ERROR; 1616 } 1617 if (objc == 6) { 1618 const char *name = Tcl_GetString(objv[5]); 1619 g_renderer->setGlyphsPosition(name, pos); 1620 } else { 1621 g_renderer->setGlyphsPosition("all", pos); 1622 } 1623 return TCL_OK; 1624 } 1625 1626 static int 1440 1627 GlyphsScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 1441 1628 Tcl_Obj *const *objv) 1442 1629 { 1630 double scale[3]; 1631 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 1632 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 1633 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 1634 return TCL_ERROR; 1635 } 1636 if (objc == 6) { 1637 const char *name = Tcl_GetString(objv[5]); 1638 g_renderer->setGlyphsScale(name, scale); 1639 } else { 1640 g_renderer->setGlyphsScale("all", scale); 1641 } 1642 return TCL_OK; 1643 } 1644 1645 static int 1646 GlyphsScaleFactorOp(ClientData clientData, Tcl_Interp *interp, int objc, 1647 Tcl_Obj *const *objv) 1648 { 1443 1649 double scale; 1444 1650 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale) != TCL_OK) { … … 1450 1656 } else { 1451 1657 g_renderer->setGlyphsScaleFactor("all", scale); 1658 } 1659 return TCL_OK; 1660 } 1661 1662 static int 1663 GlyphsScalingModeOp(ClientData clientData, Tcl_Interp *interp, int objc, 1664 Tcl_Obj *const *objv) 1665 { 1666 Glyphs::ScalingMode mode; 1667 const char *str = Tcl_GetString(objv[2]); 1668 if (str[0] == 's' && strcmp(str, "scalar") == 0) { 1669 mode = Glyphs::SCALE_BY_SCALAR; 1670 } else if (str[0] == 'v' && strcmp(str, "vector") == 0) { 1671 mode = Glyphs::SCALE_BY_VECTOR; 1672 } else if (str[0] == 'v' && strcmp(str, "vector_comp") == 0) { 1673 mode = Glyphs::SCALE_BY_VECTOR_COMPONENTS; 1674 } else if (str[0] == 'o' && strcmp(str, "off") == 0) { 1675 mode = Glyphs::SCALING_OFF; 1676 } else { 1677 Tcl_AppendResult(interp, "bad scaling mode option \"", str, 1678 "\": should be one of: 'scalar', 'vector', 'vector_comp', 'off'", (char*)NULL); 1679 return TCL_ERROR; 1680 } 1681 if (objc == 4) { 1682 const char *name = Tcl_GetString(objv[3]); 1683 g_renderer->setGlyphsScalingMode(name, mode); 1684 } else { 1685 g_renderer->setGlyphsScalingMode("all", mode); 1452 1686 } 1453 1687 return TCL_OK; … … 1530 1764 static Rappture::CmdSpec glyphsOps[] = { 1531 1765 {"add", 1, GlyphsAddOp, 3, 4, "shape ?dataSetNme?"}, 1532 {"colormap", 1, GlyphsColorMapOp, 3, 4, "colorMapName ?dataSetNme?"}, 1766 {"colormap", 7, GlyphsColorMapOp, 3, 4, "colorMapName ?dataSetNme?"}, 1767 {"colormode", 7, GlyphsColorModeOp, 3, 4, "mode ?dataSetNme?"}, 1533 1768 {"delete", 1, GlyphsDeleteOp, 2, 3, "?dataSetName?"}, 1534 1769 {"edges", 1, GlyphsEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"}, 1770 {"gscale", 1, GlyphsScaleFactorOp, 3, 4, "scaleFactor ?dataSetName?"}, 1535 1771 {"lighting", 3, GlyphsLightingOp, 3, 4, "bool ?dataSetName?"}, 1536 1772 {"linecolor", 5, GlyphsLineColorOp, 5, 6, "r g b ?dataSetName?"}, 1537 1773 {"linewidth", 5, GlyphsLineWidthOp, 3, 4, "width ?dataSetName?"}, 1538 {"opacity", 1, GlyphsOpacityOp, 3, 4, "value ?dataSetName?"}, 1539 {"scale", 2, GlyphsScaleOp, 3, 4, "scaleFactor ?dataSetName?"}, 1774 {"opacity", 2, GlyphsOpacityOp, 3, 4, "value ?dataSetName?"}, 1775 {"orient", 2, GlyphsOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 1776 {"pos", 1, GlyphsPositionOp, 5, 6, "x y z ?dataSetName?"}, 1777 {"scale", 2, GlyphsScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 1540 1778 {"shape", 2, GlyphsShapeOp, 3, 4, "shapeVal ?dataSetName?"}, 1779 {"smode", 2, GlyphsScalingModeOp, 3, 4, "mode ?dataSetNme?"}, 1541 1780 {"visible", 1, GlyphsVisibleOp, 3, 4, "bool ?dataSetName?"}, 1542 1781 {"wireframe", 1, GlyphsWireframeOp, 3, 4, "bool ?dataSetName?"} … … 1934 2173 {"orient", 2, HeightMapOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 1935 2174 {"pos", 1, HeightMapPositionOp, 5, 6, "x y z ?dataSetName?"}, 1936 {"scale", 1, HeightMapScaleOp, 5, 6, "sx sy sz 2175 {"scale", 1, HeightMapScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 1937 2176 {"visible", 2, HeightMapVisibleOp, 3, 4, "bool ?dataSetName?"}, 1938 2177 {"volumeslice", 2, HeightMapVolumeSliceOp, 4, 5, "axis ratio ?dataSetName?"} … … 2135 2374 2136 2375 static int 2376 LICOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 2377 Tcl_Obj *const *objv) 2378 { 2379 double quat[4]; 2380 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 2381 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 2382 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 2383 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 2384 return TCL_ERROR; 2385 } 2386 if (objc == 7) { 2387 const char *name = Tcl_GetString(objv[6]); 2388 g_renderer->setLICOrientation(name, quat); 2389 } else { 2390 g_renderer->setLICOrientation("all", quat); 2391 } 2392 return TCL_OK; 2393 } 2394 2395 static int 2396 LICPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 2397 Tcl_Obj *const *objv) 2398 { 2399 double pos[3]; 2400 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 2401 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 2402 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 2403 return TCL_ERROR; 2404 } 2405 if (objc == 6) { 2406 const char *name = Tcl_GetString(objv[5]); 2407 g_renderer->setLICPosition(name, pos); 2408 } else { 2409 g_renderer->setLICPosition("all", pos); 2410 } 2411 return TCL_OK; 2412 } 2413 2414 static int 2415 LICScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 2416 Tcl_Obj *const *objv) 2417 { 2418 double scale[3]; 2419 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 2420 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 2421 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 2422 return TCL_ERROR; 2423 } 2424 if (objc == 6) { 2425 const char *name = Tcl_GetString(objv[5]); 2426 g_renderer->setLICScale(name, scale); 2427 } else { 2428 g_renderer->setLICScale("all", scale); 2429 } 2430 return TCL_OK; 2431 } 2432 2433 static int 2137 2434 LICVisibleOp(ClientData clientData, Tcl_Interp *interp, int objc, 2138 2435 Tcl_Obj *const *objv) … … 2190 2487 {"linecolor", 5, LICLineColorOp, 5, 6, "r g b ?dataSetName?"}, 2191 2488 {"linewidth", 5, LICLineWidthOp, 3, 4, "width ?dataSetName?"}, 2192 {"opacity", 1, LICOpacityOp, 3, 4, "value ?dataSetName?"}, 2489 {"opacity", 2, LICOpacityOp, 3, 4, "value ?dataSetName?"}, 2490 {"orient", 2, LICOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 2491 {"pos", 1, LICPositionOp, 5, 6, "x y z ?dataSetName?"}, 2492 {"scale", 1, LICScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 2193 2493 {"visible", 2, LICVisibleOp, 3, 4, "bool ?dataSetName?"}, 2194 2494 {"volumeslice", 2, LICVolumeSliceOp, 4, 5, "axis ratio ?dataSetName?"} … … 2505 2805 {"pos", 1, MoleculePositionOp, 5, 6, "x y z ?dataSetName?"}, 2506 2806 {"rscale", 1, MoleculeAtomScalingOp, 3, 4, "scaling ?dataSetName?"}, 2507 {"scale", 1, MoleculeScaleOp, 5, 6, "sx sy sz 2807 {"scale", 1, MoleculeScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 2508 2808 {"visible", 1, MoleculeVisibleOp, 3, 4, "bool ?dataSetName?"}, 2509 2809 {"wireframe", 1, MoleculeWireframeOp, 3, 4, "bool ?dataSetName?"} … … 2659 2959 static int 2660 2960 PolyDataOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 2661 2961 Tcl_Obj *const *objv) 2662 2962 { 2663 2963 double quat[4]; … … 2679 2979 static int 2680 2980 PolyDataPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 2681 2981 Tcl_Obj *const *objv) 2682 2982 { 2683 2983 double pos[3]; … … 2698 2998 static int 2699 2999 PolyDataScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 2700 3000 Tcl_Obj *const *objv) 2701 3001 { 2702 3002 double scale[3]; … … 2714 3014 return TCL_OK; 2715 3015 } 2716 2717 3016 2718 3017 static int … … 2761 3060 {"orient", 2, PolyDataOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 2762 3061 {"pos", 1, PolyDataPositionOp, 5, 6, "x y z ?dataSetName?"}, 2763 {"scale", 1, PolyDataScaleOp, 5, 6, "sx sy sz 3062 {"scale", 1, PolyDataScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 2764 3063 {"visible", 1, PolyDataVisibleOp, 3, 4, "bool ?dataSetName?"}, 2765 3064 {"wireframe", 1, PolyDataWireframeOp, 3, 4, "bool ?dataSetName?"} … … 2904 3203 } else { 2905 3204 g_renderer->setPseudoColorOpacity("all", opacity); 3205 } 3206 return TCL_OK; 3207 } 3208 3209 static int 3210 PseudoColorOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 3211 Tcl_Obj *const *objv) 3212 { 3213 double quat[4]; 3214 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 3215 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 3216 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 3217 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 3218 return TCL_ERROR; 3219 } 3220 if (objc == 7) { 3221 const char *name = Tcl_GetString(objv[6]); 3222 g_renderer->setPseudoColorOrientation(name, quat); 3223 } else { 3224 g_renderer->setPseudoColorOrientation("all", quat); 3225 } 3226 return TCL_OK; 3227 } 3228 3229 static int 3230 PseudoColorPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 3231 Tcl_Obj *const *objv) 3232 { 3233 double pos[3]; 3234 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 3235 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 3236 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 3237 return TCL_ERROR; 3238 } 3239 if (objc == 6) { 3240 const char *name = Tcl_GetString(objv[5]); 3241 g_renderer->setPseudoColorPosition(name, pos); 3242 } else { 3243 g_renderer->setPseudoColorPosition("all", pos); 3244 } 3245 return TCL_OK; 3246 } 3247 3248 static int 3249 PseudoColorScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 3250 Tcl_Obj *const *objv) 3251 { 3252 double scale[3]; 3253 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 3254 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 3255 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 3256 return TCL_ERROR; 3257 } 3258 if (objc == 6) { 3259 const char *name = Tcl_GetString(objv[5]); 3260 g_renderer->setPseudoColorScale(name, scale); 3261 } else { 3262 g_renderer->setPseudoColorScale("all", scale); 2906 3263 } 2907 3264 return TCL_OK; … … 2950 3307 {"linecolor", 5, PseudoColorLineColorOp, 5, 6, "r g b ?dataSetName?"}, 2951 3308 {"linewidth", 5, PseudoColorLineWidthOp, 3, 4, "width ?dataSetName?"}, 2952 {"opacity", 1, PseudoColorOpacityOp, 3, 4, "value ?dataSetName?"}, 3309 {"opacity", 2, PseudoColorOpacityOp, 3, 4, "value ?dataSetName?"}, 3310 {"orient", 2, PseudoColorOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 3311 {"pos", 1, PseudoColorPositionOp, 5, 6, "x y z ?dataSetName?"}, 3312 {"scale", 1, PseudoColorScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 2953 3313 {"visible", 1, PseudoColorVisibleOp, 3, 4, "bool ?dataSetName?"}, 2954 3314 {"wireframe", 1, PseudoColorWireframeOp, 3, 4, "bool ?dataSetName?"} … … 3258 3618 } else { 3259 3619 g_renderer->setStreamlinesOpacity("all", opacity); 3620 } 3621 return TCL_OK; 3622 } 3623 3624 static int 3625 StreamlinesOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 3626 Tcl_Obj *const *objv) 3627 { 3628 double quat[4]; 3629 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 3630 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 3631 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 3632 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 3633 return TCL_ERROR; 3634 } 3635 if (objc == 7) { 3636 const char *name = Tcl_GetString(objv[6]); 3637 g_renderer->setStreamlinesOrientation(name, quat); 3638 } else { 3639 g_renderer->setStreamlinesOrientation("all", quat); 3640 } 3641 return TCL_OK; 3642 } 3643 3644 static int 3645 StreamlinesPositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 3646 Tcl_Obj *const *objv) 3647 { 3648 double pos[3]; 3649 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 3650 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 3651 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 3652 return TCL_ERROR; 3653 } 3654 if (objc == 6) { 3655 const char *name = Tcl_GetString(objv[5]); 3656 g_renderer->setStreamlinesPosition(name, pos); 3657 } else { 3658 g_renderer->setStreamlinesPosition("all", pos); 3659 } 3660 return TCL_OK; 3661 } 3662 3663 static int 3664 StreamlinesScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 3665 Tcl_Obj *const *objv) 3666 { 3667 double scale[3]; 3668 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 3669 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 3670 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 3671 return TCL_ERROR; 3672 } 3673 if (objc == 6) { 3674 const char *name = Tcl_GetString(objv[5]); 3675 g_renderer->setStreamlinesScale(name, scale); 3676 } else { 3677 g_renderer->setStreamlinesScale("all", scale); 3260 3678 } 3261 3679 return TCL_OK; … … 3461 3879 {"lines", 5, StreamlinesLinesOp, 2, 3, "?dataSetName?"}, 3462 3880 {"linewidth", 5, StreamlinesLineWidthOp, 3, 4, "width ?dataSetName?"}, 3463 {"opacity", 1, StreamlinesOpacityOp, 3, 4, "val ?dataSetName?"}, 3881 {"opacity", 2, StreamlinesOpacityOp, 3, 4, "val ?dataSetName?"}, 3882 {"orient", 2, StreamlinesOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 3883 {"pos", 1, StreamlinesPositionOp, 5, 6, "x y z ?dataSetName?"}, 3464 3884 {"ribbons", 1, StreamlinesRibbonsOp, 4, 5, "width angle ?dataSetName?"}, 3465 {"seed", 1, StreamlinesSeedOp, 4, 11, "op params... ?dataSetName?"}, 3885 {"scale", 2, StreamlinesScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 3886 {"seed", 2, StreamlinesSeedOp, 4, 11, "op params... ?dataSetName?"}, 3466 3887 {"tubes", 1, StreamlinesTubesOp, 4, 5, "numSides radius ?dataSetName?"}, 3467 3888 {"visible", 1, StreamlinesVisibleOp, 3, 4, "bool ?dataSetName?"} … … 3553 3974 } else { 3554 3975 g_renderer->setVolumeOpacity("all", opacity); 3976 } 3977 return TCL_OK; 3978 } 3979 3980 static int 3981 VolumeOrientOp(ClientData clientData, Tcl_Interp *interp, int objc, 3982 Tcl_Obj *const *objv) 3983 { 3984 double quat[4]; 3985 if (Tcl_GetDoubleFromObj(interp, objv[2], &quat[0]) != TCL_OK || 3986 Tcl_GetDoubleFromObj(interp, objv[3], &quat[1]) != TCL_OK || 3987 Tcl_GetDoubleFromObj(interp, objv[4], &quat[2]) != TCL_OK || 3988 Tcl_GetDoubleFromObj(interp, objv[5], &quat[3]) != TCL_OK) { 3989 return TCL_ERROR; 3990 } 3991 if (objc == 7) { 3992 const char *name = Tcl_GetString(objv[6]); 3993 g_renderer->setVolumeOrientation(name, quat); 3994 } else { 3995 g_renderer->setVolumeOrientation("all", quat); 3996 } 3997 return TCL_OK; 3998 } 3999 4000 static int 4001 VolumePositionOp(ClientData clientData, Tcl_Interp *interp, int objc, 4002 Tcl_Obj *const *objv) 4003 { 4004 double pos[3]; 4005 if (Tcl_GetDoubleFromObj(interp, objv[2], &pos[0]) != TCL_OK || 4006 Tcl_GetDoubleFromObj(interp, objv[3], &pos[1]) != TCL_OK || 4007 Tcl_GetDoubleFromObj(interp, objv[4], &pos[2]) != TCL_OK) { 4008 return TCL_ERROR; 4009 } 4010 if (objc == 6) { 4011 const char *name = Tcl_GetString(objv[5]); 4012 g_renderer->setVolumePosition(name, pos); 4013 } else { 4014 g_renderer->setVolumePosition("all", pos); 4015 } 4016 return TCL_OK; 4017 } 4018 4019 static int 4020 VolumeScaleOp(ClientData clientData, Tcl_Interp *interp, int objc, 4021 Tcl_Obj *const *objv) 4022 { 4023 double scale[3]; 4024 if (Tcl_GetDoubleFromObj(interp, objv[2], &scale[0]) != TCL_OK || 4025 Tcl_GetDoubleFromObj(interp, objv[3], &scale[1]) != TCL_OK || 4026 Tcl_GetDoubleFromObj(interp, objv[4], &scale[2]) != TCL_OK) { 4027 return TCL_ERROR; 4028 } 4029 if (objc == 6) { 4030 const char *name = Tcl_GetString(objv[5]); 4031 g_renderer->setVolumeScale(name, scale); 4032 } else { 4033 g_renderer->setVolumeScale("all", scale); 3555 4034 } 3556 4035 return TCL_OK; … … 3655 4134 {"delete", 1, VolumeDeleteOp, 2, 3, "?dataSetName?"}, 3656 4135 {"lighting", 1, VolumeLightingOp, 3, 4, "bool ?dataSetName?"}, 3657 {"opacity", 1, VolumeOpacityOp, 3, 4, "val ?dataSetName?"}, 3658 {"shading", 1, VolumeShadingOp, 4, 6, "oper val ?dataSetName?"}, 4136 {"opacity", 2, VolumeOpacityOp, 3, 4, "val ?dataSetName?"}, 4137 {"orient", 2, VolumeOrientOp, 6, 7, "qw qx qy qz ?dataSetName?"}, 4138 {"pos", 1, VolumePositionOp, 5, 6, "x y z ?dataSetName?"}, 4139 {"scale", 2, VolumeScaleOp, 5, 6, "sx sy sz ?dataSetName?"}, 4140 {"shading", 2, VolumeShadingOp, 4, 6, "oper val ?dataSetName?"}, 3659 4141 {"visible", 1, VolumeVisibleOp, 3, 4, "bool ?dataSetName?"} 3660 4142 }; -
trunk/packages/vizservers/vtkvis/protocol.txt
r2332 r2335 94 94 contour2d linewidth <val> <?datasetName?> 95 95 contour2d opacity <val> <?datasetName?> 96 contour2d orient <qw> <qx> <qy> <qz> <?dataSetName?> 97 contour2d pos <x> <y> <z> <?dataSetName?> 98 contour2d scale <sx> <sy> <sz> <?dataSetName?> 96 99 contour2d visible <bool> <?datasetName?> 97 100 … … 109 112 contour3d linewidth <val> <?datasetName?> 110 113 contour3d opacity <val> <?datasetName?> 114 contour3d orient <qw> <qx> <qy> <qz> <?dataSetName?> 115 contour3d pos <x> <y> <z> <?dataSetName?> 116 contour3d scale <sx> <sy> <sz> <?dataSetName?> 111 117 contour3d visible <bool> <?datasetName?> 112 118 contour3d wireframe <bool> <?datasetName?> … … 114 120 glyphs add <?dataSetName?> 115 121 glyphs colormap <colorMapName> <?dataSetName?> 122 glyphs colormode <scale|scalar|vector> <?dataSetName?> 123 Set the color mode: color by scale, scalar field or 124 vector magnitude -- uses the current color map 116 125 glyphs delete <?dataSetName?> 117 126 glyphs edges <bool> <?datasetName?> 127 glyphs gscale <scaleFactor> <?datasetName?> 128 Set glyph scaling factor 118 129 glyphs lighting <bool> <?datasetName?> 119 130 glyphs linecolor <r> <g> <b> <?datasetName?> 120 131 glyphs linewidth <val> <?datasetName?> 121 132 glyphs opacity <val> <?datasetName?> 122 glyphs scale <scaleFactor> <?datasetName?> 133 glyphs orient <qw> <qx> <qy> <qz> <?dataSetName?> 134 glyphs pos <x> <y> <z> <?dataSetName?> 135 glyphs scale <sx> <sy> <sz> <?dataSetName?> 123 136 glyphs shape <arrow|cone|cube|cylinder|dodecahedron|icosahedron|octahedron|sphere|tetrahedron> <?datasetName?> 137 glyphs smode <scalar|vector|vector_comp|off> <?dataSetName?> 138 Set the scaling mode: use the scalar field, vector magnitude 139 (uniform scale), vector components, or disable scaling 124 140 glyphs visible <bool> <?datasetName?> 125 141 glyphs wireframe <bool> <?datasetName?> … … 157 173 lic linewidth <val> <?datasetName?> 158 174 lic opacity <val> <?datasetName?> 175 lic orient <qw> <qx> <qy> <qz> <?dataSetName?> 176 lic pos <x> <y> <z> <?dataSetName?> 177 lic scale <sx> <sy> <sz> <?dataSetName?> 159 178 lic visible <bool> <?datasetName?> 160 179 lic volumeslice <axis> <ratio> <?datasetName?> … … 203 222 pseudocolor linewidth <val> <?datasetName?> 204 223 pseudocolor opacity <val> <?datasetName?> 224 pseudocolor orient <qw> <qx> <qy> <qz> <?dataSetName?> 225 pseudocolor pos <x> <y> <z> <?dataSetName?> 226 pseudocolor scale <sx> <sy> <sz> <?dataSetName?> 205 227 pseudocolor visible <bool> <?datasetName?> 206 228 pseudocolor wireframe <bool> <?datasetName?> … … 221 243 streamlines linewidth <val> <?datasetName?> 222 244 streamlines opacity <val> <?datasetName?> 245 streamlines orient <qw> <qx> <qy> <qz> <?dataSetName?> 246 streamlines pos <x> <y> <z> <?dataSetName?> 223 247 streamlines ribbons <width> <angle> <?datasetName?> 224 248 Set rendering type to ribbons, width is minimum half-width, angle is 225 249 degrees offset from normal orientation 250 streamlines scale <sx> <sy> <sz> <?dataSetName?> 226 251 streamlines seed color <r> <g> <b> <?datasetName?> 227 252 streamlines seed polygon <centerX> <centerY> <centerZ> <normalX> <normalY> <normalZ> <radius> <numSides> <?dataSetName?> … … 238 263 volume delete <?datasetName?> 239 264 volume lighting <bool> <?datasetName?> 265 volume orient <qw> <qx> <qy> <qz> <?dataSetName?> 266 volume pos <x> <y> <z> <?dataSetName?> 267 volume scale <sx> <sy> <sz> <?dataSetName?> 240 268 volume shading ambient <coeff> <?datasetName?> 241 269 volume shading diffuse <coeff> <?datasetName?>
Note: See TracChangeset
for help on using the changeset viewer.