Skip to main content

ifc_style/
lib.rs

1//! Strict, codec-independent IFC presentation and annotation views.
2//!
3//! Appearance stays separate from geometry: this crate exposes colour, style,
4//! texture, layer, styled-item, and annotation semantics over `ifc_model::Model`
5//! without placing presentation state in the geometry kernel. Reads and writes
6//! resolve attribute slots through the selected `ifc_schema::Schema`, so IFC2x3,
7//! IFC4, and IFC4X3 layout drift is explicit rather than guessed.
8
9mod annotation;
10mod assignment;
11mod authoring;
12mod colour;
13mod coverage;
14mod curve_style;
15mod error;
16mod extent;
17mod fill_style;
18mod layer;
19mod light;
20mod surface_style;
21mod text_style;
22mod texture;
23mod view;
24
25pub use annotation::{
26    Annotation, AnnotationFillArea, AnnotationType, BoxAlignment, TextLiteral,
27    TextLiteralWithExtent, TextPath,
28};
29pub use assignment::{
30    PresentationStyleAssignment, PresentationStyleMember, ResolvedStyle, StyleSource, StyledItem,
31};
32pub use authoring::{
33    create_annotation, create_annotation_fill_area, create_blob_texture, create_colour_rgb,
34    create_colour_rgb_list, create_curve_style, create_curve_style_font,
35    create_curve_style_font_and_scaling, create_curve_style_font_pattern,
36    create_draughting_predefined_colour, create_draughting_predefined_curve_font,
37    create_externally_defined_style, create_fill_area_style, create_fill_area_style_hatching,
38    create_fill_area_style_tiles, create_image_texture, create_indexed_colour_map,
39    create_indexed_polygonal_texture_map, create_indexed_triangle_texture_map,
40    create_light_distribution_data, create_light_intensity_distribution,
41    create_light_source_ambient, create_light_source_directional, create_light_source_goniometric,
42    create_light_source_positional, create_light_source_spot, create_pixel_texture,
43    create_planar_extent, create_presentation_layer_assignment,
44    create_presentation_layer_with_style, create_styled_item, create_surface_style,
45    create_surface_style_lighting, create_surface_style_refraction, create_surface_style_rendering,
46    create_surface_style_shading, create_surface_style_with_textures, create_text_literal,
47    create_text_literal_with_extent, create_text_style, create_text_style_font_model,
48    create_text_style_for_defined_font, create_text_style_text_model,
49    create_texture_coordinate_generator, create_texture_coordinate_indices,
50    create_texture_coordinate_indices_with_voids, create_texture_map, create_texture_vertex,
51    create_texture_vertex_list, AnnotationDraft, AnnotationFillAreaDraft, Attenuation,
52    BlobTextureDraft, ColourRgbDraft, CurveStyleDraft, CurveWidth, ExternalStyleKind,
53    FillStyleKind, GoniometricLight, HatchLineDistance, ImageTextureDraft, LightSourceDraft,
54    PixelTextureDraft, PointLight, PresentationLayerDraft, SizeValue, SpotCone, StyledItemDraft,
55    SurfaceStyleDraft, SurfaceStyleRenderingDraft, SurfaceStyleShadingDraft, TextLiteralDraft,
56    TextLiteralWithExtentDraft, TextModelDraft, PREDEFINED_COLOUR_NAMES,
57    PREDEFINED_CURVE_FONT_NAMES,
58};
59pub use colour::{ColourOrFactor, ColourRgb};
60pub use coverage::{
61    AppearanceDeclaration, AppearanceKind, AppearanceSupport, APPEARANCE_DECLARATIONS,
62};
63pub use curve_style::{CurveStyle, CurveStyleFont, CurveStyleFontPattern};
64pub use error::{StyleError, StyleResult};
65pub use extent::{PlanarBox, PlanarExtent};
66pub use fill_style::{FillAreaStyle, FillAreaStyleHatching, FillAreaStyleTiles};
67pub use layer::PresentationLayer;
68pub use light::{
69    LightDistributionData, LightIntensityDistribution, LightSource, LightSourceAmbient,
70    LightSourceDirectional, LightSourceGoniometric, LightSourceKind, LightSourcePositional,
71    LightSourceSpot,
72};
73pub use surface_style::{
74    SurfaceSide, SurfaceStyle, SurfaceStyleLighting, SurfaceStyleRefraction, SurfaceStyleRendering,
75    SurfaceStyleShading, SurfaceStyleWithTextures,
76};
77pub use text_style::{TextStyle, TextStyleFontModel};
78pub use texture::{
79    BlobTexture, ImageTexture, IndexedTextureMap, PixelTexture, SurfaceTexture, TextureCoordinate,
80    TextureVertex, TextureVertexList,
81};
82pub use view::StyleView;