24#ifndef _PO_MESHCONTOURING_
25#define _PO_MESHCONTOURING_
303 struct Parallelogram3 { Ppoint3 points[5] ; } ;
305 static void initClass() ;
306 static void exitClass() ;
313 virtual void basicObjectChange(
PbBase *basicObj) ;
314 virtual void setDefaultOnNonWritingFields();
315 virtual void addElementsAllCaches() ;
316 virtual void preRebuild();
332 struct StoreAnnotSpace {
333 Parallelogram3 space ;
339 FieldSensorList m_fieldSensorList ;
349 void getMeshLimit(Ppoint_list_list3 &limit);
350 void freeMeshLimit(Ppoint_list_list3 &limit);
357 SbBool isAvailableAnnotArea(
const StoreAnnotSpace *occuped_annot_space,
358 int nb_annot,
const Plimit *annot_space) ;
361 void calculateAnnotBox(
const Ppoint3 *p_center,
const Ppoint3 *pt_inter_circle1,
362 const Ppoint3 *pt_inter_circle2,
float annot_width,
363 float annot_height, Ppoint *annot_space,
364 Ppoint *annot_space_with_margin) ;
367 void drawAnnotation(
const char *annot_str,
const Ppoint3 *annot_pos,
372 SbBool isIntersAnnotContourLines(
const Tisoline_list *contourLinesList,
373 const Ppoint_list3 *currentContourLine,
375 const Ppoint *annot_space,
float isovalue) ;
378 void searchUpperLowerIsoval(
const Tisoline_list *contourLineList,
SbBool isMinThreshold,
382 void clipContourLinesByAnnot(
SbBool isMajor,
SbBool is3DContourLines,
383 const Tisoline_list *contourLineList,
384 const StoreAnnotSpace *occuped_annot_space,
388 SbBool annotWithinClipPolygon(
const Ppoint *annot_space,
const Plimit *annotBBox,
389 const Plimit *clipPolygBBox) ;
392 void computeContourLineAnnot(
const Tisoline_list *majorContourLineList,
393 const Tisoline_list *minorContourLineList,
394 const Tisoline_list *allContourLineList,
395 const Ppoint_list_list3 *mesh_contour,
399 void drawContourLines(Tisoline_list *contourLinesList,
400 const Ppoint_list_list3 *meshLimit) ;
#define FALSE
Possible value of SbBool.
#define SO_KIT_CATALOG_ENTRY_HEADER(partName)
#define SO_KIT_HEADER(className)
<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> Base class for all surfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Class to build contour l...
AnnotCrossStatus
Controls the annotations of contour lines.
@ DONT_CROSS_CONTOUR
Annotations do not cross any contour lines.
@ CROSS_MINOR_CONTOUR
Annotations may cross only minor contour lines (but not major contour lines).
@ CROSS_CONTOUR
Annotations may cross contour lines.
SoSFFloat annotFontSize
Font size of annotations of contour lines.
const PbNumericDisplayFormat * getFormat() const
Gets the reference to a PbNumericDisplayFormat.
SoSFBool annotIsContourClip
Defines if the contour lines are clipped by the annotations.
SoSFUShort firstMajor
Defines the first major contour lines.
void setMiscTextAttr(PbMiscTextAttr *textAttr)
Sets a reference to PbMiscTextAttr object for miscellaneous text attributes of annotations of contour...
SoSFEnum annotCrossStatus
Controls the annotations and contour lines crossing.
const PbMiscTextAttr * getMiscTextAttr() const
Gets a reference to PbMiscTextAttr object.
PoMeshContouring()
Constructor.
SoSFFloat annotFontFactor
Font size factor of annotations of contour lines.
SoSFUShort majorPeriod
Defines the major and the minor contour lines.
virtual void rebuild()
Forces node-kit rebuilding.
AnnotPath
Type of annotations path.
@ TANGENTIAL_PATH
Annotations are tangential to the contour lines.
@ HORIZONTAL_PATH
Annotations are horizontal.
@ VERTICAL_PATH
Annotations are vertical.
SoSFBool annotIsVisible
Contour lines annotations visibility.
SoMFVec2f annotClippingPolygon
This is a polygon where no annotations are present outside it.
SoSFFloat annotGap
Curvilinear distance between two annotations of a same contour line.
SoSFEnum annotPath
Annotations path.
void setFormat(PbNumericDisplayFormat *format)
Sets a reference to a PbNumericDisplayFormat object for the numerical display format for annotations ...
SoSFBool annotIsBackground
Defines if the annotations are framed by a background.
Base class for coordinate projection classes.
Maintains a list of pointers to fields.
Multiple-value field containing any number of two-dimensional vectors.
Field containing a single Boolean value.
Field containing an enumerated value.
Field containing a floating-point value.
Field containing an unsigned short integer.