27#include <Inventor/fields/SoSFEnum.h>
28#include <Inventor/fields/SoSFFloat.h>
29#include <Inventor/fields/SoMFFloat.h>
30#include <Inventor/fields/SoMFString.h>
31#include <Inventor/fields/SoSFString.h>
32#include <Inventor/fields/SoSFBool.h>
33#include <Inventor/fields/SoMFShort.h>
34#include <Inventor/fields/SoMFColor.h>
36#include <MeshViz/graph/PoGraphMaster.h>
37#include <MeshViz/graph/PbMiscTextAttr.h>
38#include <MeshViz/graph/PbNumericDisplayFormat.h>
140 SO_KIT_CATALOG_ENTRY_HEADER(sliceSep) ;
141 SO_KIT_CATALOG_ENTRY_HEADER(sliceApp) ;
142 SO_KIT_CATALOG_ENTRY_HEADER(slice) ;
144 SO_KIT_CATALOG_ENTRY_HEADER(sliceBorderSep) ;
145 SO_KIT_CATALOG_ENTRY_HEADER(sliceBorderApp) ;
146 SO_KIT_CATALOG_ENTRY_HEADER(sliceBorder) ;
148 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBoxSep) ;
149 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBoxApp) ;
150 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBox) ;
152 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBoxBorderSep) ;
153 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBoxBorderApp) ;
154 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotBoxBorder) ;
156 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotTextSep) ;
157 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotTextApp) ;
158 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotText) ;
160 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotValueSep) ;
161 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotValueApp) ;
162 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotValue) ;
164 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotPercentSep) ;
165 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotPercentApp) ;
166 SO_KIT_CATALOG_ENTRY_HEADER(extAnnotPercent) ;
168 SO_KIT_CATALOG_ENTRY_HEADER(arrowSep) ;
169 SO_KIT_CATALOG_ENTRY_HEADER(arrowApp) ;
170 SO_KIT_CATALOG_ENTRY_HEADER(arrow) ;
172 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBoxSep) ;
173 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBoxApp) ;
174 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBox) ;
176 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBoxBorderSep) ;
177 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBoxBorderApp) ;
178 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotBoxBorder) ;
180 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotTextSep) ;
181 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotTextApp) ;
182 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotText) ;
184 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotValueSep) ;
185 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotValueApp) ;
186 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotValue) ;
188 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotPercentSep) ;
189 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotPercentApp) ;
190 SO_KIT_CATALOG_ENTRY_HEADER(intAnnotPercent) ;
657 static void initClass() ;
658 static void exitClass() ;
662 struct PieChartAttr {
664 float intTextFontSize ;
667 float extTextFontSize ;
670 float intValFontSize ;
673 float extValFontSize ;
676 float intPercentFontSize ;
679 float extPercentFontSize ;
693 int displayedSlicesNum ;
694 int displayedSlices[360] ;
695 float slicesPercentages[360] ;
697 SbString slicesPercentagesString[360] ;
698 float slicesValues[360] ;
699 float slicesTranslation[360] ;
701 int slicesLowValuesNumbers ;
707 PieChartAttr m_pieChartAttr ;
709 enum AnnotPosPieChart {
718 const char **_sliceTexts=NULL,
const float *_sliceValues=NULL,
719 int numSliceColors=0,
const SbColor *_sliceColors=NULL) ;
725 virtual void setDefaultOnNonWritingFields() ;
726 virtual void basicObjectChange(
PbBase *basicObj) ;
729 void savePieChartAttr() ;
732 void computeSlicePartValuesToDisplay() ;
736 void computeStringsToDisplay(
const float *values,
int numValues,
SbBool isPercentage) ;
739 void drawInternalAnnotations(
const SbVec2f &pieChartCenter,
const SbVec2f &pointz) ;
742 void drawInternalAnnot(
int sliceNum,
const SbVec2f &annotCenterPoint,
const SbVec2f &pointz,
743 AnnotPosPieChart annotPosPieChart,
int nbAnnot,
float rotateAnnotAngle,
744 PiText *intText, PiText *intValue, PiText *intPercent,
748 void drawExternalAnnotations(
const SbVec2f &pieChartCenter,
const SbVec2f &pointz) ;
751 void drawExternalAnnot(
int sliceNum,
const SbVec3f &arrowStartPoint,
const SbVec2f &pointz,
752 AnnotPosPieChart annotPosPieChart,
int nbAnnot,
float rotateAnnotAngle,
753 PiText *extText, PiText *extValue, PiText *extPercent,
757 void resetAllPart() ;
760 void computeSliceNames() ;
763 virtual void addElementsAllCaches() ;
764 virtual void preRebuild() ;
774 FieldSensorList m_fieldSensorList ;
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract class for all b...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Class to define a numeri...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract base class for ...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract class for pie c...
const PbMiscTextAttr * getMiscTextAttr() const
Gets a reference to a PbMiscTextAttr for miscellaneous text attributes.
void setSliceToTranslate(int sliceNumber, float translateValue)
Convenience methods to set the fields sliceToTranslateNumber and sliceToTranslateValue.
SoSFBool arrowVisibility
Visibility of the arrow.
SoSFFloat sliceAngleStep
Slice are approximated by a polygon, that is a sequence of straight line segments.
SoSFFloat arrowHeight
Height of the arrow.
SoSFString extAnnotPercentFontName
Exterior percentage font name.
SoSFFloat extAnnotDistance3
Distance from the middle of the arrow to the start of the arrow.
SoSFString extAnnotTextFontName
Exterior text (texts of sliceText field) font name.
SoMFFloat sliceToTranslateValue
Translation values along the bisectors of the slices.
SoSFFloat arrowWidth
Width of the arrow.
SoSFFloat extAnnotDistance2
Distance from the end of the arrow to the middle of the arrow.
SoSFFloat intAnnotTextFontSize
Font size of interior texts (texts of sliceText field).
const PbNumericDisplayFormat * getFormat() const
Gets a reference to a PbNumericDisplayFormat object for the numerical display format of values of the...
Alignment
Type of annotation alignment.
@ INWARDS_ALIGN
Annotations are aligned inward the pie chart.
@ LEFT_ALIGN
Annotations are aligned on the left of the annotation box.
@ RIGHT_ALIGN
Annotations are aligned on the right of the annotation box.
@ OUTWARDS_ALIGN
Annotations are aligned outward the pie chart.
@ CENTER_ALIGN
Annotations are aligned on the center of the annotation box.
void setMiscTextAttr(PbMiscTextAttr *textAttr)
Sets a reference to a PbMiscTextAttr for miscellaneous text attributes.
SoSFEnum intAnnotPosition
Interior annotation position.
SoSFString intAnnotValueFontName
Interior value (values of sliceValue field) font name.
SoSFBool intAnnotPercentVisibility
Interior percent visibility (percent are computed from sliceValue field)
SoSFFloat extAnnotPercentFontSize
Font size of exterior percentages.
ExtAnnotPosition
Type of external annotation position.
@ SQUARE_ALIGNED_EXT_POS
Exterior annotations are aligned on a square.
@ HOR_EXT_POS
Exterior annotations are horizontal.
@ RADIAL_EXT_POS
Exterior annotations are radial to the slices.
@ VERT_ALIGNED_EXT_POS
Exterior annotations are vertically aligned.
@ HOR_ALIGNED_EXT_POS
Exterior annotations are horizontally aligned.
SbBool getPickedSliceNumber(const SoPath *path, int &sliceNumber) const
Allow the user to retreive the slice number (sliceNumber argument) which has been picked from a picke...
SoSFFloat intAnnotDistance
Distance from the pie chart center to the interior annotation box center.
SoSFFloat extAnnotDistance1
Distance from the pie chart center to the end of the arrow.
SoSFBool intAnnotValueVisibility
Interior value visibility (values of sliceValue field).
SoSFFloat extAnnotTextFontSize
Font size of exterior texts (texts of sliceText field).
SoSFBool intAnnotAddStringVisibility
Specify the visibility of a string concatenated with the interior values (if they are visible).
SoSFBool extAnnotPercentVisibility
Exterior percent visibility (percent are computed from sliceValue field)
SoSFString intAnnotTextFontName
Interior text (texts of sliceText field) font name.
SoSFString sliceGroupString
String for the regrouping slice.
SoMFString sliceText
Text associated to each slice of the pie chart.
IntAnnotPosition
Type of internal annotation position.
@ RADIAL_INT_POS
Interior annotations are radial to the slices.
@ HOR_INT_POS
Interior annotations are horizontal.
SoSFEnum extAnnotAlignment
Exterior annotation alignment.
SoSFBool intAnnotTextVisibility
Interior text visibility (texts of sliceText field).
SoSFFloat intAnnotValueFontSize
Font size of interior values (values of sliceValue field).
SoSFBool extAnnotTextVisibility
Exterior text visibility (texts of sliceText field).
SoSFFloat radius
Radius of the pie chart.
SoSFString intAnnotAddString
String concatened with interior values.
SoMFFloat sliceValue
Value associated to each slice of the pie chart.
SoSFFloat intAnnotPercentFontSize
Font size of interior percentages.
SoSFBool extAnnotAddStringVisibility
Specify the visibility of a string concatenated with the exterior values (if they are visible).
SoSFFloat extAnnotValueFontSize
Font size of exterior values (values of sliceValue field).
SoSFString extAnnotValueFontName
Exterior value (values of sliceValue field) font name.
SoSFString extAnnotAddString
String concatened with exterior values.
SoSFBool extAnnotValueVisibility
Exterior value visibility (values of sliceValue field).
SoMFShort sliceToTranslateNumber
Numbers (slice numbers begin at 0) of the slices to translate.
SoSFEnum extAnnotPosition
Exterior annotation position.
SoSFString intAnnotPercentFontName
Interior percentage font name.
float getSliceToTranslate(int sliceNumber) const
Gets the current translation of a slice.
SoSFEnum sliceGroupFlagMin
Indicate if the value sliceGroupMinValue is interpreted as percentage (PERCENTAGE) or not (ABSOLUTE).
SoSFFloat sliceGroupMinValue
Threshold underneath the slice are regrouped.
SoSFBool sliceGroupActive
Activate or Deactivate the regrouping of small values.
SoMFColor sliceColor
Color associated to each slice of the pie chart.
SoSFEnum intAnnotAlignment
Interior annotation alignment.
void setFormat(PbNumericDisplayFormat *format)
Sets a reference to a PbNumericDisplayFormat object for the numerical display format of values of the...
PercentStatus
Type of threshold for the grouping slice.
Class for smart character strings.
Maintains a list of pointers to fields.
Base class for all group nodes.
Multiple-value field containing any number of RGB colors stored as three floats.
Multiple-value field containing any number of floating point values.
Multiple-value field containing any number of short integers.
Multiple-value field containing any number of strings.
Path that points to a list of hierarchical nodes.
Field containing a single Boolean value.
Field containing an enumerated value.
Field containing a floating-point value.
Field containing a string.