Programmer's Documentation

forward.h (r6227/r5902)
2 /* Copyright (C) 2015 David Eller <>
3  *
4  * Commercial License Usage
5  * Licensees holding valid commercial licenses may use this file in accordance
6  * with the terms contained in their respective non-exclusive license agreement.
7  * For further information contact .
8  *
9  * GNU General Public License Usage
10  * Alternatively, this file may be used under the terms of the GNU General
11  * Public License version 3.0 as published by the Free Software Foundation and
12  * appearing in the file gpl.txt included in the packaging of this file.
13  */
181 #ifndef SURF_FORWARD_H
182 #define SURF_FORWARD_H
184 #include <genua/forward.h>
186 typedef std::pair<uint,uint> IndexPair;
187 typedef std::vector<IndexPair> IndexPairArray;
189 class AbstractCurve;
190 typedef boost::shared_ptr<AbstractCurve> AbstractCurvePtr;
191 typedef std::vector<AbstractCurvePtr> AbstractCurveArray;
192 class MappedCurve;
193 typedef boost::shared_ptr<MappedCurve> MappedCurvePtr;
194 class Curve;
195 typedef boost::shared_ptr<Curve> CurvePtr;
196 typedef std::vector<CurvePtr> CurvePtrArray;
197 class Airfoil;
198 typedef boost::shared_ptr<Airfoil> AirfoilPtr;
199 typedef std::vector<AirfoilPtr> AirfoilPtrArray;
200 class AirfoilCollection;
201 class AirfoilFitter;
202 class OpenFrame;
203 class SymFrame;
204 class EllipFrame;
205 class EggFrame;
206 class CompositeCurve;
207 typedef boost::shared_ptr<CompositeCurve> CompositeCurvePtr;
208 class PolySplineCurve;
209 typedef boost::shared_ptr<PolySplineCurve> PolySplineCurvePtr;
210 class BezierSegment;
212 class AbstractUvCurve;
213 typedef boost::shared_ptr<AbstractUvCurve> AbstractUvCurvePtr;
214 typedef std::vector<AbstractUvCurvePtr> AbstractUvCurveArray;
215 typedef std::pair<AbstractUvCurvePtr,AbstractUvCurvePtr> AbstractUvCurvePair;
216 class UvPolyline;
217 typedef boost::shared_ptr<UvPolyline> UvPolylinePtr;
218 class UvCubicCurve;
219 typedef boost::shared_ptr<UvCubicCurve> UvCubicCurvePtr;
220 template <int P> class UvSplineCurve;
222 class Surface;
223 typedef boost::shared_ptr<Surface> SurfacePtr;
224 typedef std::vector<SurfacePtr> SurfaceArray;
225 class SkinSurface;
226 typedef boost::shared_ptr<SkinSurface> SkinSurfacePtr;
227 class LinearSurf;
228 typedef boost::shared_ptr<LinearSurf> LinearSurfPtr;
229 class Cylinder;
230 typedef boost::shared_ptr<Cylinder> CylinderPtr;
231 class RevoSurf;
232 typedef boost::shared_ptr<RevoSurf> RevoSurfPtr;
233 class PlaneSurface;
234 typedef boost::shared_ptr<PlaneSurface> PlaneSurfacePtr;
235 class PolySplineSurf;
236 typedef boost::shared_ptr<PolySplineSurf> PolySplineSurfPtr;
237 class RationalSplineSurf;
238 typedef boost::shared_ptr<RationalSplineSurf> RationalSplineSurfPtr;
239 class StitchedSurf;
240 typedef boost::shared_ptr<StitchedSurf> StitchedSurfPtr;
241 class SymSurf;
242 typedef boost::shared_ptr<SymSurf> SymSurfPtr;
243 class SubSurface;
244 typedef boost::shared_ptr<SubSurface> SubSurfacePtr;
245 typedef std::vector<SubSurfacePtr> SubSurfaceList;
246 class InstanceSurf;
247 typedef boost::shared_ptr<InstanceSurf> InstanceSurfPtr;
248 class TranSurf;
249 typedef boost::shared_ptr<TranSurf> TranSurfPtr;
250 class WakeSurf;
251 typedef boost::shared_ptr<WakeSurf> WakeSurfPtr;
252 class RingCapSurf;
253 typedef boost::shared_ptr<RingCapSurf> RingCapSurfPtr;
254 class LongCapSurf;
255 typedef boost::shared_ptr<LongCapSurf> LongCapSurfPtr;
256 class SlavedWake;
257 typedef boost::shared_ptr<SlavedWake> SlavedWakePtr;
259 // interoperability
261 class IgesFile;
262 class IgesEntity;
263 struct IgesDirEntry;
264 typedef boost::shared_ptr<IgesEntity> IgesEntityPtr;
266 class StepFile;
267 class StepEntity;
269 class MeshGenerator;
270 class MeshComponent;
271 typedef boost::shared_ptr<MeshComponent> MeshComponentPtr;
272 typedef std::vector<MeshComponentPtr> MeshComponentArray;
273 class WakeComponent;
274 class CmpAssembly;
275 class AsyComponent;
276 typedef boost::shared_ptr<AsyComponent> AsyComponentPtr;
277 typedef std::vector<AsyComponentPtr> AsyComponentArray;
278 class MgProgressCtrl;
279 typedef boost::shared_ptr<MgProgressCtrl> MgProgressPtr;
281 class IgesFile;
282 struct IgesDirEntry;
283 class IgesEntity;
284 class StepFile;
286 class DnMesh;
287 class DnTriangle;
288 typedef std::vector<DnTriangle> DnTriangleArray;
289 class DnCriterion;
290 typedef boost::shared_ptr<DnCriterion> DnCriterionPtr;
291 class DnRefineCriterion;
292 typedef boost::shared_ptr<DnRefineCriterion> DnRefineCriterionPtr;
293 class InitGrid;
294 class CascadeMesh;
296 class Product;
297 class ProductTree;
298 typedef boost::shared_ptr<ProductTree> ProductTreePtr;
299 typedef std::vector<ProductTreePtr> ProductArray;
300 class Instance;
302 class NstMesh;
304 class PentaGrow;
305 typedef boost::shared_ptr<PentaGrow> PentaGrowPtr;
307 // field mapping
309 class DispInterpolator;
310 class RbfInterpolator;
311 class SurfInterpolator;
313 // mesh generation
315 class DelaunayCore;
316 class DcFace;
317 class DcEdge;
318 class DcGeometry;
319 class DcMeshCritBase;
320 typedef boost::shared_ptr<DcMeshCritBase> DcMeshCritBasePtr;
321 class DcMeshCrit;
322 typedef boost::shared_ptr<DcMeshCrit> DcMeshCritPtr;
323 class DcMeshHeightCrit;
324 typedef boost::shared_ptr<DcMeshHeightCrit> DcMeshHeightCritPtr;
325 class DcMeshSourceCrit;
326 typedef boost::shared_ptr<DcMeshSourceCrit> DcMeshSourceCritPtr;
327 class DcMeshMultiCrit;
328 typedef boost::shared_ptr<DcMeshMultiCrit> DcMeshMultiCritPtr;
329 class UvMapping;
330 class UvMapDelaunay;
331 typedef boost::shared_ptr<UvMapDelaunay> UvMapDelaunayPtr;
332 class PatchMeshGenerator;
333 typedef boost::shared_ptr<PatchMeshGenerator> MeshGeneratorPtr;
334 class DcMeshGenerator;
337 class JrsMeshGenerator;
338 #endif
340 // Topology
342 class TopoVertex;
343 class TopoEdge;
344 class TopoFace;
345 class Topology;
346 class TopoIsecSegment;
347 typedef std::vector<TopoIsecSegment> TopoIsecArray;
349 class TopoPart;
350 typedef boost::shared_ptr<TopoPart> TopoPartPtr;
351 typedef std::vector<TopoPartPtr> TopoPartArray;
352 class WingPart;
353 typedef boost::shared_ptr<WingPart> WingPartPtr;
354 class BasicPart;
355 typedef boost::shared_ptr<BasicPart> BasicPartPtr;
356 class HexBoxPart;
357 typedef boost::shared_ptr<HexBoxPart> HexBoxPartPtr;
359 // structural modelling
361 class MaterialProperty;
362 typedef boost::shared_ptr<MaterialProperty> MaterialPropertyPtr;
363 typedef std::vector<MaterialPropertyPtr> MaterialPropertyArray;
364 class DummyMaterial;
365 typedef boost::shared_ptr<DummyMaterial> DummyMaterialPtr;
366 class IsotropicMaterial;
367 typedef boost::shared_ptr<IsotropicMaterial> IsotropicMaterialPtr;
368 class OrthotropicMaterial;
369 typedef boost::shared_ptr<OrthotropicMaterial> OrthotropicMaterialPtr;
371 class ElementProperty;
372 typedef boost::shared_ptr<ElementProperty> ElementPropertyPtr;
373 typedef std::vector<ElementPropertyPtr> ElementPropertyArray;
374 class PlainShellProperty;
375 typedef boost::shared_ptr<PlainShellProperty> PlainShellPropertyPtr;
377 typedef boost::shared_ptr<CompositeShellProperty> CompositeShellPropertyPtr;
379 class SmBodyMesh;
380 class SmWingMesh;
381 class SmRibMesh;
383 class IgesFile;
384 struct IgesDirEntry;
385 class IgesEntity;
386 class IgesLineEntity;
387 class IgesCircularArc;
388 class IgesCompositeCurve;
389 class IgesPlane;
390 class IgesPoint;
391 class IgesRuledSurface;
393 class IgesTrafoMatrix;
394 class IgesSplineCurve;
395 class IgesSplineSurface;
396 class IgesCurveOnSurface;
397 class IgesTrimmedSurface;
398 class IgesSubfigure;
399 class IgesColorDefinition;
400 class IgesNameProperty;
403 #endif // SURF_FORWARD_H
Internallay used placeholder.
Definition: materialproperty.h:151
Hybrid prismatic mesh generation.
Definition: pentagrow.h:44
Surface of revolution.
Definition: revosurf.h:29
Nastran mesh.
Definition: nstmesh.h:35
Topological face.
Definition: topoface.h:52
Base class for all curve objects.
Definition: abstractcurve.h:31
Single-surface part.
Definition: basicpart.h:32
Element properties for layered composite shell elements.
Definition: elementproperty.h:110
Mesh quality based on deviation from surface.
Definition: dcmeshcrit.h:359
IGES 118 : Ruled surface.
Definition: iges118.h:51
Specialized semi-structured triangle mesh generator.
Definition: cascademesh.h:30
Definition: patchmeshgenerator.h:11
IGES 126 : Rational spline curve.
Definition: iges126.h:71
Map displacements from structural to aerodynamic surfaces.
Definition: surfinterpolator.h:31
Open spline curve.
Definition: openframe.h:27
Mesh generation engine.
Definition: dnmesh.h:47
Topological edge, connecting two or more faces.
Definition: topoedge.h:30
Plain isotropic material.
Definition: materialproperty.h:175
NURBS surface.
Definition: rationalsplinesurface.h:33
Polynomial spline surface.
Definition: polysplinesurf.h:42
Mesh refinement controlled by point or line sources.
Definition: dcmeshcrit.h:400
Template for wing mesh generation.
Definition: smwingmesh.h:92
Base class for entities in IGES files.
Definition: igesentity.h:32
Simple plane surface.
Definition: planesurface.h:27
Composite curve.
Definition: compositecurve.h:31
Base class for mesh quality criteria.
Definition: dcmeshcrit.h:30
Delaunay triangulations.
Definition: delaunaycore.h:42
IGES 120 : Surface of revolution.
Definition: iges120.h:39
Parameter-space mapping.
Definition: uvmapping.h:34
Plain mesh quality criterion.
Definition: dcmeshcrit.h:199
Collection of airfoil coordinates.
Definition: airfoilcollection.h:31
Geometric criteria used in Delaunay triangulation.
Definition: dcgeometry.h:38
Cylinder surface.
Definition: cylinder.h:27
IGES 124: Transformation matrix.
Definition: iges124.h:28
IGES 144 : Trimmed surface.
Definition: iges144.h:38
Data in each directory entry of an IGES file.
Definition: igesdirentry.h:31
Ring-parameterized cap surface.
Definition: ringcapsurf.h:36
Base class for mesh generation components assembled from multiple surfaces.
Definition: topopart.h:30
Combined surface.
Definition: stitchedsurf.h:30
Airfoil as spline.
Definition: airfoil.h:33
IGES 108 : Plane.
Definition: iges108.h:47
Main interface to IGES files.
Definition: igesfile.h:32
Hexahedral box.
Definition: hexboxpart.h:32
Tree structure for geometric instances.
Definition: producttree.h:32
Topological vertex.
Definition: topovertex.h:26
Cubic spline curve in parameter space.
Definition: uvcubiccurve.h:26
Mesh component.
Definition: meshcomponent.h:36
Ruled surface with multiple sections.
Definition: linearsurf.h:35
Triangle in 3D Delaunay triangulation.
Definition: dntriangle.h:31
Parameter-space spline curve with compile-time degree.
Definition: forward.h:220
Curve in (u,v) domain of parametric surface.
Definition: abstractuvcurve.h:31
IGES 142 : Curve on surface.
Definition: iges142.h:34
Polynomial spline curve.
Definition: polysplinecurve.h:36
Segmented lifting surface with wake.
Definition: wingpart.h:39
Base class for structural element properties.
Definition: elementproperty.h:25
Definition: dcmeshcrit.h:493
Cubic section curve.
Definition: curve.h:35
Progress indicator and control for MeshGenerator.
Definition: meshgenerator.h:28
IGES 100 : Circular arc.
Definition: iges100.h:33
Structure, surface geometry and tessellation of surface model.
Definition: product.h:29
Huegelschaeffer curve.
Definition: eggframe.h:31
Base class for material property definitions.
Definition: materialproperty.h:26
IGES 110 : Line.
Definition: iges110.h:38
Single cubic Bezier segment.
Definition: beziersegment.h:13
Special tip cap surface.
Definition: longcapsurf.h:29
Symmetric fuselage frame.
Definition: symframe.h:32
Elliptic fuselage frame.
Definition: ellipframe.h:32
Curve generated by linearly mapping the parameter space.
Definition: mappedcurve.h:33
Straight-segment line in parameter space.
Definition: uvpolyline.h:30
Container for topology information.
Definition: topology.h:30
IGES Entity 314: Color definition.
Definition: iges314.h:28
Structural mesh on body segment.
Definition: smbodymesh.h:27
Rectangular parametric region of another surface.
Definition: subsurface.h:26
IGES 128 : Rational spline surface.
Definition: iges128.h:34
Symmetric surface.
Definition: symsurf.h:39
Face in a plane Delaunay triangulation.
Definition: dcface.h:36
Structural mesh for ribs.
Definition: smribmesh.h:26
Base class for mesh refinement criteria.
Definition: dnrefine.h:28
Utility class to generate simple quad mesh.
Definition: initgrid.h:29
Mapped Delaunay surface mesh generation.
Definition: uvmapdelaunay.h:38
IGES 102 : Composite Curve.
Definition: iges102.h:31
Base class for displacement interpolation.
Definition: dispinterpolator.h:34
Cubic transition patch.
Definition: transurf.h:29
Fit airfoil to cut through mesh/geometry.
Definition: airfoilfitter.h:32
Wake surface attached to wing trailing edge.
Definition: wakesurf.h:34
Surface interface.
Definition: surface.h:37
Associative copy of another surface.
Definition: instancesurf.h:29
A wake surface which autmatically attaches to a parent wing TE.
Definition: slavedwake.h:39
Common base class for all STEP entities.
Definition: stepentity.h:31
IGES 406 : Name property entity.
Definition: iges406.h:47
Base class for geometric object instancing.
Definition: instance.h:42
Manages surface mesh generation on wakes.
Definition: wakecomponent.h:39
Butterfly edge for Delaunay algorithms.
Definition: dcedge.h:39
Top-level mesh generator.
Definition: meshgenerator.h:79
Base class for top-level components.
Definition: asycomponent.h:33
Interpolate mesh deformation using radial basis functions.
Definition: rbfinterpolator.h:43
Intersection segment.
Definition: topoisecsegment.h:30
IGES 308 : Subfigure.
Definition: iges308.h:30
Simplest mesh refinement criterion.
Definition: dnrefine.h:43
Container for components.
Definition: assembly.h:31
STEP File.
Definition: stepfile.h:44
IGES 116 : Point.
Definition: iges116.h:32
Orthotropic shell material.
Definition: materialproperty.h:209
Shell element property.
Definition: elementproperty.h:70
Definition: dcmeshgenerator.h:7
Single instance of subfigure.
Definition: iges408.h:29
Generated on Wed Jan 19 2022 03:03:15 for libsurf by   doxygen 1.8.5