IGLGraphics Library Structure

IGLGraphics is organized into multiple modules, where each package is responsible for a specific part of the rendering and visualization pipeline.

Library Structure

IGLGraphics
│
├── core
├── geometry
├── graphics
├── meshvs
└── cae
                        

core

The core module contains the fundamental systems used throughout the graphics library.

core
│
├── IGLBoundingBox.py
├── IGLCamera.py
├── IGLDisplayContext.py
├── IGLGradientBackground.py
├── IGLGlobals.py
└── IGLImports.py

IGLBoundingBox

Handles axis-aligned bounding box calculations used for visibility, fitting and selection operations.

IGLCamera

Implements camera transformations, navigation, orbiting, panning and zooming.

IGLDisplayContext

Manages scene interaction, selection state and visualization context.

IGLGlobals

Stores global constants and rendering settings.

geometry

The geometry module defines the CAD and scene data structures.

geometry
│
├── IGLAssembly.py
├── IGLBody.py
├── IGLGeometry.py
└── IGLImport.py

IGLAssembly

Represents hierarchical 3D model assemblies imported from JSON files.

IGLBody

Represents an individual renderable body or component.

IGLGeometry

Parent class for all geometry types.
IGLBody inherits from IGLGeometry and extends it with body-specific attributes and methods.

IGLImport

Handles geometry import from json and mesh import using GMSH.

graphics

The graphics module contains the rendering and visualization systems.

graphics
│
├── IGLPicker.py
├── IGLSelectableObj.py
├── IGLShaders.py
├── IGLShape.py
├── IGLStdPrs.py
├── IGLTriad.py
├── IGLViewer.py
├── IGLClipPlane.py
└── olwidgets
        │   IGLBorderWidget.py
        │   IGLOverlayWidget.py
        │   IGLScalarBar.py
        │   IGLScalarBarSettings.py
        │   IGLTextWidget.py

IGLPicker

Implements ray casting and object selection algorithms.

IGLSelectableObj

Base class for selectable scene objects.

IGLShaders

Contains GLSL shader programs and shader management logic.

IGLShape

Defines graphical shape representations and renderable entities.

IGLStdPrs

Provides standard visualization presentations and display modes.

IGLTriad

Renders the orientation triad used for coordinate visualization.

IGLViewer

Main OpenGL viewer responsible for rendering, interaction and scene visualization.

meshvs

The meshvs module handles mesh visualization and rendering.

meshvs
│
├── IGLImportMesh.py
├── IGLMesh.py
├── IGLMeshDS.py
└── IGLMeshVS.py

IGLImportMesh

Imports mesh data from external mesh formats.

IGLMesh

Represents finite element and polygon mesh geometry.

IGLMeshDS

Stores mesh topology, connectivity and mesh data structures.

IGLMeshVS

Visualizes meshes using OpenGL rendering techniques.

cae

The cae module handles finite element analysis results and post processing.

cae
│
├── IGLBaseField.py
├── IGLCAE.py
├── IGLDATReader.py
├── IGLFEAMesh.py
├── IGLFEAModel.py
├── IGLFEAPost.py
├── IGLFEAResults.py
├── IGLFEAStep.py
├── IGLFRDReader.py
├── IGLMotionControl.py
├── IGLScalarField.py
├── IGLTensorField.py
└── IGLVectorField.py

IGLCAE

High-level interface for FEA model data and visualization

IGLFEAModel

Provides convenience methods to extract fields, compute derived scalar fields for visualization.

IGLFEAResults

Container class for managing finite element analysis result steps

IGLFEAPost

Provides common stress and displacement post-processing operations used in structural FEA visualization workflows

Design Philosophy

The IGLGraphics architecture separates geometry, rendering, interaction and FEA visualization into independent modules. This modular approach makes the library scalable, maintainable and suitable for advanced CAD and scientific visualization applications.