CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
TrRndSgSettingsUI.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23// Scene Graph settings user interface component
24
25#ifndef ODTRRNDSGSCENEGRAPHSETTINGSUI
26#define ODTRRNDSGSCENEGRAPHSETTINGSUI
27
28#include "../extbar/ExtBar.h"
29
30#include "TD_PackPush.h"
31
32/* @@@TODO: Currently we have duplication of OdTrRndSgSceneGraphGlobalSettings and
33 OdTrRndSgRootConfig data structures here. I think more generic part
34 of headers must be moved to public area in future. Moreover
35 Scene Graph can be used for custom renderer building as part of
36 TrRenderBase static library. */
37
42{
43 public:
44 // Global settings definitions
53 {
54 kNoBalancing = 0, // Disable balancing at all
55 kSimpleBalancing, // Enable balancing for compatible geometries only
56 kWeightedBalancing, // Enable weighted balancing (balancing depends from weight of geometries)
57 kChaoticBalancing // Enable balancing without additional checks (helpful for performance measurements)
58 };
59 protected:
60 enum Flags
61 {
62 // Global settings flags
63 kDisplayFPS = (1 << 0),
64 kDisplayStats = (1 << 1),
65 kFadeUnions = (1 << 2),
66 kColorDataExt = (1 << 3),
69 kFlattenTtfTexts = (1 << 6),
72 kEmbedOrdering = (1 << 9),
74 kShareUnions = (1 << 11),
75 kInstanceBlocks = (1 << 12),
76 // Roots configuration flags
77 kVisualizeRenders = (1 << 0), // Display renders
78 kVisualizeTreeStructure = (1 << 1), // Display tree structure
79 kVisualizeRenderExtents = (1 << 2) // Display render extents
80 };
81 protected:
83 {
120 };
121 protected:
122 OdUInt16 m_ngsFlags; // Global settings flags
123 OdUInt16 m_nrcFlags; // Root configuration flags
124 // Global settings
125 SceneTreeType m_sceneTreeType; // Tree structure, which will be used to store scene contents
126 SceneTreeType m_auxTreeType; // Tree structure, which will be used to store auxiliary graphics
127 BalancingMode m_balancingMode; // Rendering speed balancing mode
128 OdUInt8 m_prcMinWeight; // Minimal balancing weight for weighted balancing mode
129 OdUInt8 m_prcMinDepth; // Minimal balancing tree level (in percents of entire tree depth)
130 OdUInt8 m_prcMergeDepth; // Merging inclusion childs depth (in percents of entire tree depth)
131 OdUInt8 m_prcMinPercDraw; // Minimal union volume before explode (in percents of initial volume)
132 OdUInt16 m_nThreadsMax; // Maximal number of utilizeable threads (can be null to disable multithreading)
133 OdUInt32 m_nMaxUnionSize; // Maximal length of unionized data stream
134 OdUInt32 m_nLineStripsLim; // Maximal number of vertex in line strips/loops which can be exploded into set of simple lines
135 OdUInt32 m_nTrgStripsLim; // Maximal number of vertex in triangle strips/fans which can be exploded into set of simple triangles
136 OdUInt32 m_nBlkRefExpLim; // Maximal number of nested block reference metafiles for explode inside primary scene graph
137 OdUInt32 m_nBlkRefInstLim; // Maximal number of nested block reference metafiles applicable for instancing
138 // Roots configuration
139 OdUInt32 m_nMaxTreeDepth; // Maximal tree depth (maximal number of tree branches subdivision)
140 OdUInt32 m_nMaxObjectsSubdivide; // Maximal number of objects onto tree leafs before subdivision (best between 8-16)
141 double m_fMinTreeNodeSize; // Minimal tree node size (should be small-enough)
142 double m_fNodeFittingRatio; // Coefficient between 1 (disabled) and 2 (maximal). Enlarges tree nodes area to overlap nearest nodes.
143 double m_fInitialNodeMult; // First tree node extents multiplier (actual for Octree)
144 public:
173
174 // Global settings
175
176 void setDisplayFPS(bool bEnable) { SETBIT(m_ngsFlags, kDisplayFPS, bEnable); }
177 bool displayFPS() const { return GETBIT(m_ngsFlags, kDisplayFPS); }
178
179 void setDisplayStatistics(bool bEnable) { SETBIT(m_ngsFlags, kDisplayStats, bEnable); }
181
182 void setUnionsFading(bool bEnable) { SETBIT(m_ngsFlags, kFadeUnions, bEnable); }
183 bool fadeUnions() const { return GETBIT(m_ngsFlags, kFadeUnions); }
184
185 void setColorDataExtensible(bool bEnable) { SETBIT(m_ngsFlags, kColorDataExt, bEnable); }
187
188 void setLineStripsExplode(bool bEnable) { SETBIT(m_ngsFlags, kLineStripsExplode, bEnable); }
190
193
194 void setTtfTextsFlattening(bool bEnable) { SETBIT(m_ngsFlags, kFlattenTtfTexts, bEnable); }
196
197 void setBlockRefsExploding(bool bEnable) { SETBIT(m_ngsFlags, kExplodeBlockRefs, bEnable); }
199
202
203 void setDrawOrderEmbedding(bool bEnable) { SETBIT(m_ngsFlags, kEmbedOrdering, bEnable); }
205
208
209 void setUnionsSharing(bool bEnable) { SETBIT(m_ngsFlags, kShareUnions, bEnable); }
210 bool shareUnions() const { return GETBIT(m_ngsFlags, kShareUnions); }
211
212 void setBlocksInstancing(bool bEnable) { SETBIT(m_ngsFlags, kInstanceBlocks, bEnable); }
214
215 void setSceneTreeType(SceneTreeType treeType) { m_sceneTreeType = treeType; }
217
218 void setAuxiliaryTreeType(SceneTreeType treeType) { m_auxTreeType = treeType; }
220
223
224 void setWeightedBalancingLimit(OdUInt32 weightLimit) { m_prcMinWeight = (OdUInt8)weightLimit; }
226
227 void setBalancingLevelLimit(OdUInt32 minDepthLimit) { m_prcMinDepth = (OdUInt8)minDepthLimit; }
229
230 void setBalancingMergeDepth(OdUInt32 mergeDepth) { m_prcMergeDepth = (OdUInt8)mergeDepth; }
232
233 void setMinimalUnionPercentsDraw(OdUInt32 minDrawPerc) { m_prcMinPercDraw = (OdUInt8)minDrawPerc; }
235
238
241
244
247
250
251 void setThreadsMaximum(OdUInt32 nThreadsMax) { m_nThreadsMax = (OdUInt16)nThreadsMax; }
253
254 // Roots configuration
255
258
261
264
266 void setMaxTreeDepth(OdUInt32 nMaxTreeDepth) { m_nMaxTreeDepth = nMaxTreeDepth; }
267
269 void setMaxObjectsSubdivide(OdUInt32 nMaxObjectSubdivide) { m_nMaxObjectsSubdivide = nMaxObjectSubdivide; }
270
271 double minTreeNodeSize() const { return m_fMinTreeNodeSize; }
272 void setMinTreeNodeSize(double fMinTreeNodeSize) { m_fMinTreeNodeSize = fMinTreeNodeSize; }
273
274 double nodeFittingRatio() const { return m_fNodeFittingRatio; }
275 void setNodeFittingRatio(double fNodeFittingRatio) { m_fNodeFittingRatio = fNodeFittingRatio; }
276
278 void setFirstNodeExtraMultiplier(double fInitialNodeMult) { m_fInitialNodeMult = fInitialNodeMult; }
279
280 // Cloning/Copying ability
281
282 template <typename TypeTo, typename TypeFrom>
283 static void copyGlobalSettings(TypeTo &to, const TypeFrom &from)
284 {
285 to.setDisplayFPS(from.displayFPS());
286 to.setDisplayStatistics(from.displayStatistics());
287 to.setUnionsFading(from.fadeUnions());
288 to.setColorDataExtensible(from.colorDataExtensible());
289 to.setLineStripsExplode(from.explodeLineStrips());
290 to.setTriangleStripsExplode(from.explodeTriangleStrips());
291 to.setTtfTextsFlattening(from.flattenTtfTexts());
292 to.setBlockRefsExploding(from.explodeBlockRefs());
293 to.setAllowNestedSceneGraphs(from.allowNestedSceneGraphs());
294 to.setDrawOrderEmbedding(from.embedDrawOrder());
295 to.setPurgeGrouppedRenders(from.purgeGrouppedRenders());
296 to.setUnionsSharing(from.shareUnions());
297 to.setBlocksInstancing(from.blocksInstancing());
298 to.setSceneTreeType((OD_TYPENAME TypeTo::SceneTreeType)from.sceneTreeType());
299 to.setAuxiliaryTreeType((OD_TYPENAME TypeTo::SceneTreeType)from.auxiliaryTreeType());
300 to.setBalancingMode((OD_TYPENAME TypeTo::BalancingMode)from.balancingMode());
301 to.setWeightedBalancingLimit(from.weightedBalancingLimit());
302 to.setBalancingLevelLimit(from.balancingLevelLimit());
303 to.setBalancingMergeDepth(from.balancingMergeDepth());
304 to.setMinimalUnionPercentsDraw(from.minimalUnionPercentsDraw());
305 to.setMaximalUnionSize(from.maximalUnionSize());
306 to.setLineStripsExplodeLimit(from.lineStripsExplodeLimit());
307 to.setTriangleStripsExplodeLimit(from.triangleStripsExplodeLimit());
308 to.setBlockRefsExplodeLimit(from.blockRefsExplodeLimit());
309 to.setBlockRefsInstancingLimit(from.blockRefsInstancingLimit());
310 to.setThreadsMaximum(from.threadsMaximum());
311 }
312 template <typename TypeTo, typename TypeFrom>
313 static void copyRootsConfig(TypeTo &to, const TypeFrom &from)
314 {
315 to.setVisualizeRenders(from.visualizeRenders());
316 to.setVisualizeTreeStructure(from.visualizeTreeStructure());
317 to.setVisualizeRenderExtents(from.visualizeRenderExtents());
318 to.setMaxTreeDepth(from.maxTreeDepth());
319 to.setMaxObjectsSubdivide(from.maxObjectsSubdivide());
320 to.setMinTreeNodeSize(from.minTreeNodeSize());
321 to.setNodeFittingRatio(from.nodeFittingRatio());
322 to.setFirstNodeExtraMultiplier(from.firstNodeExtraMultiplier());
323 }
325 {
326 copyGlobalSettings(*this, uiSets);
327 copyRootsConfig(*this, uiSets);
328 return *this;
329 }
330
331 // ExtBar interface
332
333 virtual void fillExtBar(ExtBar *pExtBar)
334 { // Initialize Global Settings
336 ExtBar::TextElement::cast(pGroup)->setText(OD_T("Global Settings"));
337 // Display FPS
338 pExtBar->createCheckBox(kUIDisplayFPSCheckBox, pGroup, ExtBar::k8d8, displayFPS())->setText(OD_T("Display FPS"));
339 // Display Statistics
340 pExtBar->createCheckBox(kUIDisplayStatsCheckBox, pGroup, ExtBar::k8d8, displayStatistics())->setText(OD_T("Display Statistics and Measurements"));
341 // Display Unions Faded
342 pExtBar->createCheckBox(kUIUnionsFadingCheckBox, pGroup, ExtBar::k8d8, fadeUnions())->setText(OD_T("Display Unions Faded"));
343 // Color Data Extensible
344 pExtBar->createCheckBox(kUIColorDataExtCheckBox, pGroup, ExtBar::k8d8, colorDataExtensible())->setText(OD_T("Extend Color Data if Possible"));
345 // Line Strips Explode
346 pExtBar->createCheckBox(kUILineStripsExpCheckBox, pGroup, ExtBar::k8d8, explodeLineStrips())->setText(OD_T("Explode Line Strips/Loops"));
347 // Triangle Strips Explode
348 pExtBar->createCheckBox(kUITrgStripsExpCheckBox, pGroup, ExtBar::k8d8, explodeTriangleStrips())->setText(OD_T("Explode Triangle Strips/Fans"));
349 // TrueType Texts Flattening
350 pExtBar->createCheckBox(kUIFlattenTtfCheckBox, pGroup, ExtBar::k8d8, flattenTtfTexts())->setText(OD_T("Flatten TrueType Texts"));
351 // Block References Exploding
352 pExtBar->createCheckBox(kUIExplodeBlockRefsCheckBox, pGroup, ExtBar::k8d8, explodeBlockRefs())->setText(OD_T("Explode Block References"));
353 // Nested Scene Graphs
354 pExtBar->createCheckBox(kUINestedGraphsCheckBox, pGroup, ExtBar::k8d8, allowNestedSceneGraphs())->setText(OD_T("Nested Scene Graphs"));
355 // Draw Order Embedding
356 pExtBar->createCheckBox(kUIEmbedOrderingCheckBox, pGroup, ExtBar::k8d8, embedDrawOrder())->setText(OD_T("Enable Draw Order Embedding"));
357 // Groupped Renders Purging
358 pExtBar->createCheckBox(kUIPurgeGrouppedCheckBox, pGroup, ExtBar::k8d8, purgeGrouppedRenders())->setText(OD_T("Purge Groupped Renders"));
359 // Share Unions
360 pExtBar->createCheckBox(kUIShareUnionsCheckBox, pGroup, ExtBar::k8d8, shareUnions())->setText(OD_T("Share Unions"));
361 // Enable shared blocks instancing
362 pExtBar->createCheckBox(kUIInstanceBlocksCheckBox, pGroup, ExtBar::k8d8, blocksInstancing())->setText(OD_T("Blocks Instancing"));
363 // Scene Tree Type
364 pExtBar->createText(kUISceneTreeTypeText, pGroup, ExtBar::k8d8)->setText(OD_T("Scene Tree Type:"));
366 pList->addString(OD_T("Flat List")); pList->addString(OD_T("Spatial Index"));
367 pList->addString(OD_T("Octree")); pList->addString(OD_T("KdTree"));
368 pList->setSelString((int)sceneTreeType()); }
369 // Auxiliary Tree Type
370 pExtBar->createText(kUIAuxTreeTypeText, pGroup, ExtBar::k8d8)->setText(OD_T("Auxiliary Tree Type:"));
371 { ExtBar::ListElement *pList = pExtBar->createComboBox(kUIAuxTreeTypeComboBox, pGroup);
372 pList->addString(OD_T("Flat List")); pList->addString(OD_T("Spatial Index"));
373 pList->addString(OD_T("Octree")); pList->addString(OD_T("KdTree"));
374 pList->setSelString((int)auxiliaryTreeType()); }
375 // Balancing Mode
376 pExtBar->createText(kUIBalancingModeText, pGroup, ExtBar::k8d8)->setText(OD_T("Balancing Mode:"));
378 pList->addString(OD_T("No Balancing")); pList->addString(OD_T("Simple Balancing"));
379 pList->addString(OD_T("Weighted Balancing")); pList->addString(OD_T("Chaotic Balancing"));
380 pList->setSelString((int)balancingMode()); }
381 // Weighted Balancing Limit
382 pExtBar->createText(kUIWeightLimitText, pGroup, ExtBar::k6d8)->setText(OD_T("Weighted Balancing Limit (%):"));
384 // Balancing Level Limit
385 pExtBar->createText(kUIBalancingLimitText, pGroup, ExtBar::k6d8)->setText(OD_T("Balancing Level Limit (%):"));
387 // Balancing Merge Depth
388 pExtBar->createText(kUIBalancingDepthText, pGroup, ExtBar::k6d8)->setText(OD_T("Balancing Merge Depth (%):"));
390 // Minimal Union Percents
391 pExtBar->createText(kUIMinUnionDrawText, pGroup, ExtBar::k6d8)->setText(OD_T("Minimal Union to Draw (%):"));
393 // Maximal unionized stream length
394 pExtBar->createText(kUIMaxUnionSizeText, pGroup, ExtBar::k6d8)->setText(OD_T("Maximal Union Size (Bytes):"));
395 pExtBar->createRangeBox(kUIMaxUnionSizeRangeBox, pGroup, ExtBar::k2d8)->setUInt(maximalUnionSize(), 0x100000, 0xFFFFFFFF);
396 // Line Strips Exploding Limit
397 pExtBar->createText(kUILineStripsLimText, pGroup, ExtBar::k6d8)->setText(OD_T("Line Strips Explode Limit:"));
399 // Triangle Strips Exploding Limit
400 pExtBar->createText(kUITrgStripsLimText, pGroup, ExtBar::k6d8)->setText(OD_T("Triangle Strips Explode Limit:"));
402 // Block References Exploding Limit
403 pExtBar->createText(kUIBlkRefExpLimText, pGroup, ExtBar::k6d8)->setText(OD_T("Block References Explode Limit:"));
405 // Block References Instancing Limit
406 pExtBar->createText(kUIBlkRefInstLimText, pGroup, ExtBar::k6d8)->setText(OD_T("Block References Instancing Limit:"));
408 // Number of Working Threads
409 pExtBar->createText(kUINumThreadsText, pGroup, ExtBar::k6d8)->setText(OD_T("Number of Working Threads:"));
411 // Roots configuration
412 pGroup = pExtBar->createGroup(kUIRootConfigGroup);
413 ExtBar::TextElement::cast(pGroup)->setText(OD_T("Roots Configuration"));
414 // Visualize Renders
415 pExtBar->createCheckBox(kUIVisualizeRendersCheckBox, pGroup, ExtBar::k8d8, visualizeRenders())->setText(OD_T("Visualize Renders"));
416 // Visualize Tree Structure
417 pExtBar->createCheckBox(kUIVisualizeTreesCheckBox, pGroup, ExtBar::k8d8, visualizeTreeStructure())->setText(OD_T("Visualize Tree Structure"));
418 // Visualize Render Extents
419 pExtBar->createCheckBox(kUIVisualizeExtentsCheckBox, pGroup, ExtBar::k8d8, visualizeRenderExtents())->setText(OD_T("Visualize Renders and Unions Extents"));
420 // Maximal Tree Depth
421 pExtBar->createText(kUIMaxTreeDepthText, pGroup, ExtBar::k6d8)->setText(OD_T("Maximal Tree Depth:"));
423 // Maximal Objects Subdivide
424 pExtBar->createText(kUIMaxNodeObjectsText, pGroup, ExtBar::k6d8)->setText(OD_T("Maximal Tree Node Objects before Subdivide:"));
426 // Minimal Tree Node Size
427 pExtBar->createText(kUIMinNodeSizeText, pGroup, ExtBar::k6d8)->setText(OD_T("Minimal Tree Node Size:"));
428 pExtBar->createRangeBox(kUIMinNodeSizeRangeBox, pGroup, ExtBar::k2d8, false, true)->setFP(minTreeNodeSize(), 1.e-10, 1.e+10, 1.e-3);
429 // Node Fitting Ratio
430 pExtBar->createText(kUINodeFittingRatioText, pGroup, ExtBar::k6d8)->setText(OD_T("Tree Node Fitting Ratio:"));
431 pExtBar->createRangeBox(kUINodeFittingRatioRangeBox, pGroup, ExtBar::k2d8, false, true)->setFP(nodeFittingRatio(), 1.0, 2.0, 0.01);
432 // First Node Extra Multiplier
433 pExtBar->createText(kUIFirstNodeMultText, pGroup, ExtBar::k6d8)->setText(OD_T("Initial Tree Node Extra Extents Multiplier:"));
434 pExtBar->createRangeBox(kUIFirstNodeMultRangeBox, pGroup, ExtBar::k2d8, false, true)->setFP(firstNodeExtraMultiplier(), 1.e-2, 1.e+4, 0.01);
435 }
436 virtual void closeExtBar(ExtBar *pExtBar, int nReason)
437 { if (!nReason) return;
438 // Grab Global Settings
465 // Grab Roots Configuration
474 }
475 virtual void elementChanged(ExtBar::Element * /*pElem*/) { /* if some element will require special handling */ }
476};
477
478#include "TD_PackPop.h"
479
480#endif // ODTRRNDSGSCENEGRAPHSETTINGSUI
#define OD_TYPENAME
#define OD_T(x)
unsigned int OdUInt32
unsigned short OdUInt16
unsigned char OdUInt8
#define SETBIT(flags, bit, value)
Definition OdaDefs.h:516
#define GETBIT(flags, bit)
Definition OdaDefs.h:517
virtual RangeElement * createRangeBox(OdUInt32 nElementId, GroupElement *pGroup=NULL, ElementSize size=k8d8, bool bSigned=false, bool bFP=false)=0
virtual Element * getElement(OdUInt32 nElementId) const =0
virtual ListElement * createComboBox(OdUInt32 nElementId, GroupElement *pGroup=NULL, OdUInt32 nOpenLines=4)=0
virtual TextElement * createText(OdUInt32 nElementId, GroupElement *pGroup=NULL, ElementSize size=k8d8, OdUInt32 nStrings=1, bool bBorder=false, ODCOLORREF color=ODRGB(0, 0, 0))=0
@ k6d8
Definition ExtBar.h:91
@ k2d8
Definition ExtBar.h:93
@ k8d8
Definition ExtBar.h:90
virtual GroupElement * createGroup(OdUInt32 nElementId, bool bExpandeable=true, bool bExpanded=true)=0
virtual TextElement * createCheckBox(OdUInt32 nElementId, GroupElement *pGroup=NULL, ElementSize size=k8d8, bool bChecked=false, bool bLText=false)=0
void setThreadsMaximum(OdUInt32 nThreadsMax)
BalancingMode balancingMode() const
OdUInt32 blockRefsInstancingLimit() const
static void copyRootsConfig(TypeTo &to, const TypeFrom &from)
virtual void elementChanged(ExtBar::Element *)
void setAuxiliaryTreeType(SceneTreeType treeType)
void setColorDataExtensible(bool bEnable)
void setTriangleStripsExplodeLimit(OdUInt32 expLimit)
void setFirstNodeExtraMultiplier(double fInitialNodeMult)
void setBalancingMode(BalancingMode balancingMode)
void setLineStripsExplodeLimit(OdUInt32 expLimit)
virtual void closeExtBar(ExtBar *pExtBar, int nReason)
void setBalancingLevelLimit(OdUInt32 minDepthLimit)
SceneTreeType sceneTreeType() const
void setTriangleStripsExplode(bool bEnable)
void setMaxTreeDepth(OdUInt32 nMaxTreeDepth)
void setMaxObjectsSubdivide(OdUInt32 nMaxObjectSubdivide)
void setNodeFittingRatio(double fNodeFittingRatio)
OdUInt32 minimalUnionPercentsDraw() const
void setBlocksInstancing(bool bEnable)
SceneTreeType auxiliaryTreeType() const
void setDisplayStatistics(bool bEnable)
void setBalancingMergeDepth(OdUInt32 mergeDepth)
void setLineStripsExplode(bool bEnable)
void setMinTreeNodeSize(double fMinTreeNodeSize)
void setBlockRefsInstancingLimit(OdUInt32 nLimit)
void setBlockRefsExploding(bool bEnable)
void setMinimalUnionPercentsDraw(OdUInt32 minDrawPerc)
void setPurgeGrouppedRenders(bool bEnable)
void setSceneTreeType(SceneTreeType treeType)
OdTrRndSgSceneGraphSettingsUI & operator=(const OdTrRndSgSceneGraphSettingsUI &uiSets)
OdUInt32 triangleStripsExplodeLimit() const
static void copyGlobalSettings(TypeTo &to, const TypeFrom &from)
void setBlockRefsExplodeLimit(OdUInt32 nLimit)
void setDrawOrderEmbedding(bool bEnable)
virtual void fillExtBar(ExtBar *pExtBar)
void setWeightedBalancingLimit(OdUInt32 weightLimit)
void setMaximalUnionSize(OdUInt32 nBytes)
void setAllowNestedSceneGraphs(bool bEnable)
void setTtfTextsFlattening(bool bEnable)
static CheckElement * cast(Element *pIface)
Definition ExtBar.h:129
virtual void setSelString(int nString)=0
virtual void addString(const OdString &string)=0
static ListElement * cast(Element *pIface)
Definition ExtBar.h:147
virtual void setFP(double fPos=0.0, double fMin=DBL_MIN, double fMax=DBL_MAX, double fDelta=0.01)=0
virtual void setUInt(OdUInt32 nPos=0, OdUInt32 nMin=0, OdUInt32 nMax=UINT_MAX, OdInt32 nDelta=1)=0
static RangeElement * cast(Element *pIface)
Definition ExtBar.h:186
static TextElement * cast(Element *pIface)
Definition ExtBar.h:113
virtual void setText(const OdString &text)=0