File indexing completed on 2026-06-26 08:28:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Graphic3d_Group_HeaderFile
0018 #define _Graphic3d_Group_HeaderFile
0019
0020 #include <Graphic3d_BndBox4f.hxx>
0021 #include <Graphic3d_AspectFillArea3d.hxx>
0022 #include <Graphic3d_MapOfAspectsToAspects.hxx>
0023 #include <Standard_CString.hxx>
0024 #include <Graphic3d_Vertex.hxx>
0025 #include <Graphic3d_TextPath.hxx>
0026 #include <Graphic3d_HorizontalTextAlignment.hxx>
0027 #include <Graphic3d_VerticalTextAlignment.hxx>
0028 #include <Graphic3d_TypeOfPrimitiveArray.hxx>
0029 #include <Graphic3d_IndexBuffer.hxx>
0030 #include <Graphic3d_Buffer.hxx>
0031 #include <Graphic3d_BoundBuffer.hxx>
0032 #include <gp_Ax2.hxx>
0033 #include <TCollection_ExtendedString.hxx>
0034
0035 class Graphic3d_Structure;
0036 class Graphic3d_ArrayOfPrimitives;
0037 class Graphic3d_Text;
0038 class Graphic3d_TransformPers;
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069 class Graphic3d_Group : public Standard_Transient
0070 {
0071 friend class Graphic3d_Structure;
0072 DEFINE_STANDARD_RTTIEXT(Graphic3d_Group, Standard_Transient)
0073
0074 public:
0075
0076
0077
0078
0079
0080
0081
0082 Standard_EXPORT virtual void Clear(const Standard_Boolean theUpdateStructureMgr = Standard_True);
0083
0084
0085 Standard_EXPORT virtual ~Graphic3d_Group();
0086
0087
0088
0089
0090
0091 Standard_EXPORT void Remove();
0092
0093 public:
0094
0095 virtual Handle(Graphic3d_Aspects) Aspects() const = 0;
0096
0097
0098 virtual void SetGroupPrimitivesAspect(const Handle(Graphic3d_Aspects)& theAspect) = 0;
0099
0100
0101
0102 virtual void SetPrimitivesAspect(const Handle(Graphic3d_Aspects)& theAspect) = 0;
0103
0104
0105 virtual void SynchronizeAspects() = 0;
0106
0107
0108 virtual void ReplaceAspects(const Graphic3d_MapOfAspectsToAspects& theMap) = 0;
0109
0110
0111 Standard_EXPORT virtual void AddText(const Handle(Graphic3d_Text)& theTextParams,
0112 const Standard_Boolean theToEvalMinMax = Standard_True);
0113
0114
0115 Standard_EXPORT virtual void AddPrimitiveArray(
0116 const Graphic3d_TypeOfPrimitiveArray theType,
0117 const Handle(Graphic3d_IndexBuffer)& theIndices,
0118 const Handle(Graphic3d_Buffer)& theAttribs,
0119 const Handle(Graphic3d_BoundBuffer)& theBounds,
0120 const Standard_Boolean theToEvalMinMax = Standard_True);
0121
0122
0123 Standard_EXPORT void AddPrimitiveArray(const Handle(Graphic3d_ArrayOfPrimitives)& thePrim,
0124 const Standard_Boolean theToEvalMinMax = Standard_True);
0125
0126 public:
0127
0128 Standard_EXPORT virtual void SetStencilTestOptions(const Standard_Boolean theIsEnabled) = 0;
0129
0130
0131 Standard_EXPORT virtual void SetFlippingOptions(const Standard_Boolean theIsEnabled,
0132 const gp_Ax2& theRefPlane) = 0;
0133
0134
0135 const gp_Trsf& Transformation() const { return myTrsf; }
0136
0137
0138 virtual void SetTransformation(const gp_Trsf& theTrsf) { myTrsf = theTrsf; }
0139
0140
0141 const Handle(Graphic3d_TransformPers)& TransformPersistence() const { return myTrsfPers; }
0142
0143
0144 Standard_EXPORT virtual void SetTransformPersistence(
0145 const Handle(Graphic3d_TransformPers)& theTrsfPers);
0146
0147
0148
0149
0150 Standard_EXPORT Standard_Boolean IsDeleted() const;
0151
0152
0153 Standard_EXPORT Standard_Boolean IsEmpty() const;
0154
0155
0156 Standard_EXPORT void MinMaxValues(Standard_Real& theXMin,
0157 Standard_Real& theYMin,
0158 Standard_Real& theZMin,
0159 Standard_Real& theXMax,
0160 Standard_Real& theYMax,
0161 Standard_Real& theZMax) const;
0162
0163
0164 Standard_EXPORT void SetMinMaxValues(const Standard_Real theXMin,
0165 const Standard_Real theYMin,
0166 const Standard_Real theZMin,
0167 const Standard_Real theXMax,
0168 const Standard_Real theYMax,
0169 const Standard_Real theZMax);
0170
0171
0172 const Graphic3d_BndBox4f& BoundingBox() const { return myBounds; }
0173
0174
0175 Graphic3d_BndBox4f& ChangeBoundingBox() { return myBounds; }
0176
0177
0178 Standard_EXPORT Handle(Graphic3d_Structure) Structure() const;
0179
0180
0181
0182 void SetClosed(const bool theIsClosed) { myIsClosed = theIsClosed; }
0183
0184
0185
0186 bool IsClosed() const { return myIsClosed; }
0187
0188
0189 public:
0190 Standard_DEPRECATED(
0191 "Deprecated method Marker(), pass Graphic3d_ArrayOfPoints to AddPrimitiveArray() instead")
0192 Standard_EXPORT void Marker(const Graphic3d_Vertex& thePoint,
0193 const Standard_Boolean theToEvalMinMax = Standard_True);
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205 Standard_DEPRECATED(
0206 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0207 Standard_EXPORT virtual void Text(const Standard_CString AText,
0208 const Graphic3d_Vertex& APoint,
0209 const Standard_Real AHeight,
0210 const Standard_Real AAngle,
0211 const Graphic3d_TextPath ATp,
0212 const Graphic3d_HorizontalTextAlignment AHta,
0213 const Graphic3d_VerticalTextAlignment AVta,
0214 const Standard_Boolean EvalMinMax = Standard_True);
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229 Standard_DEPRECATED(
0230 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0231 Standard_EXPORT void Text(const Standard_CString AText,
0232 const Graphic3d_Vertex& APoint,
0233 const Standard_Real AHeight,
0234 const Standard_Boolean EvalMinMax = Standard_True);
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246 Standard_DEPRECATED(
0247 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0248 Standard_EXPORT void Text(const TCollection_ExtendedString& AText,
0249 const Graphic3d_Vertex& APoint,
0250 const Standard_Real AHeight,
0251 const Standard_Real AAngle,
0252 const Graphic3d_TextPath ATp,
0253 const Graphic3d_HorizontalTextAlignment AHta,
0254 const Graphic3d_VerticalTextAlignment AVta,
0255 const Standard_Boolean EvalMinMax = Standard_True);
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270 Standard_DEPRECATED(
0271 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0272 Standard_EXPORT void Text(const TCollection_ExtendedString& AText,
0273 const Graphic3d_Vertex& APoint,
0274 const Standard_Real AHeight,
0275 const Standard_Boolean EvalMinMax = Standard_True);
0276
0277
0278 Standard_DEPRECATED(
0279 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0280 Standard_EXPORT virtual void Text(const Standard_CString theTextUtf,
0281 const gp_Ax2& theOrientation,
0282 const Standard_Real theHeight,
0283 const Standard_Real theAngle,
0284 const Graphic3d_TextPath theTp,
0285 const Graphic3d_HorizontalTextAlignment theHTA,
0286 const Graphic3d_VerticalTextAlignment theVTA,
0287 const Standard_Boolean theToEvalMinMax = Standard_True,
0288 const Standard_Boolean theHasOwnAnchor = Standard_True);
0289
0290
0291 Standard_DEPRECATED(
0292 "Deprecated method Text() with obsolete arguments, use AddText() instead of it")
0293 Standard_EXPORT virtual void Text(const TCollection_ExtendedString& theText,
0294 const gp_Ax2& theOrientation,
0295 const Standard_Real theHeight,
0296 const Standard_Real theAngle,
0297 const Graphic3d_TextPath theTp,
0298 const Graphic3d_HorizontalTextAlignment theHTA,
0299 const Graphic3d_VerticalTextAlignment theVTA,
0300 const Standard_Boolean theToEvalMinMax = Standard_True,
0301 const Standard_Boolean theHasOwnAnchor = Standard_True);
0302
0303
0304 Standard_EXPORT virtual void DumpJson(Standard_OStream& theOStream,
0305 Standard_Integer theDepth = -1) const;
0306
0307 protected:
0308
0309 Standard_EXPORT Graphic3d_Group(const Handle(Graphic3d_Structure)& theStructure);
0310
0311
0312
0313 Standard_EXPORT void Update() const;
0314
0315 protected:
0316 Handle(Graphic3d_TransformPers) myTrsfPers;
0317 Graphic3d_Structure* myStructure;
0318 Graphic3d_BndBox4f myBounds;
0319 gp_Trsf myTrsf;
0320 bool myIsClosed;
0321 };
0322
0323 DEFINE_STANDARD_HANDLE(Graphic3d_Group, Standard_Transient)
0324
0325 #endif