================== Data API Changelog ================== .. py:currentmodule:: p3dsdk .. _changelog_data_202300: Version 2023.0.0 ================ New APIs -------- * :doc:`Database `: * Add :py:attr:`Camera.exposed_in_configuration`, :py:attr:`Camera.lens_shift_x` and :py:attr:`Camera.lens_shift_y` attribute. Corrections ----------- * Fixed :py:meth:`SceneObject.list_child_objects()` when `recursive=True` also returning the current object when it shouldn't. .. _changelog_data_202201: Version 2022.0.1 ================ New APIs -------- * Add :doc:`SceneObjectKinematics ` * Add :py:class:`Axis` * Add :py:class:`Null` * Add :py:class:`Vector` * Add :doc:`Bezier Path ` * Add :doc:`SceneObject ` which groups :doc:`Surface `, `SceneObjectKinematics ` and :doc:`Bezier Path ` * Add :doc:`PositionLayer ` * Add :doc:`Timeline ` and :doc:`Timeline ` * Add :doc:`Animation ` * Add :py:class:`CameraBezierPathAnimation` * Add :py:class:`CameraBookmarkAnimation` and :py:class:`CameraBookmark` * Add :py:class:`ConfigurationKeyAnimation` * Add :py:class:`ChannelsAnimation`, :py:class:`ChannelsSimpleAnimation`, :py:class:`ChannelsCurveAnimation`, :py:class:`AnimationCurve`, :py:class:`AnimationKeyFrame`, :py:class:`SurfaceBakedAnimation` * Add :py:class:`ProductKeyAnimation` * Add :py:class:`TextureAnimation` * Add tags in :doc:`Surface ` * :doc:`PostprocessingEffect `: * Add :py:class:`PostprocessingEffectBloom` * Add :py:class:`PostprocessingEffectSharpen` * Add :py:class:`PostprocessingEffectAddMultiply` * :doc:`Surface `: * Add :py:attr:`Surface.is_merged` Breaking Changes ---------------- * Changed :doc:`Surface ` transform properties, contrary to the previous version setting transformations do not keep the surface global position: * :py:attr:`Surface.translation`, :py:attr:`Surface.rotation` are now the transform from local to world * Removed :py:attr:`Surface.pivot_global_position` and :py:attr:`Surface.pivot_global_orientation` * Added :py:attr:`Surface.pivot_to_world_translation` by :py:attr:`Surface.pivot_to_world_rotation` * Removed :py:attr:`Surface.pivot_local_position` and :py:attr:`Surface.pivot_local_orientation` * Added :py:attr:`Surface.local_to_pivot_translation`, :py:attr:`Surface.local_to_pivot_rotation` * Added :py:attr:`Surface.pivot_to_parent_translation`, :py:attr:`Surface.pivot_to_parent_rotation` * Removed prefix 'get_' for scripting methods: * Modified in :py:class:`AspectLayer`: :py:meth:`AspectLayer.materialAssignmentOffsetU()`, :py:meth:`AspectLayer.materialAssignmentOffsetV()`, :py:meth:`AspectLayer.materialAssignmentRotation()`, :py:meth:`AspectLayer.materialAssignment()` * Modified in :py:class:`ConfigurationParameter`: :py:meth:`ConfigurationParameter.symbol()` * Modified in :py:class:`Database`: :py:meth:`Database.objectMetadataValue()`, :py:meth:`Database.objectMetadataStore()` * Modified in :py:class:`EnvironmentLayer`: :py:meth:`EnvironmentLayer.environmentAssignment()`, :py:meth:`EnvironmentLayer.globalEnvironment()` * Modified in :py:class:`Surface` shadow methods: :py:meth:`Surface.shadow_cast()`, :py:meth:`Surface.receive_shadow()` * Modified in :py:class:`Surface` dressing methods: :py:meth:`Surface.dressingMappingMode()`, :py:meth:`Surface.dressingScaleUV()`, :py:meth:`Surface.dressingLocalTranslation()`, :py:meth:`Surface.dressingLocalOrientation()`, :py:meth:`Surface.dressingSize()`, :py:meth:`Surface.dressingTile()` .. _changelog_data_202200: Version 2022.0.0 ================ New APIs -------- * :doc:`Database `: * Add :py:meth:`Database.create_configuration_rule()`, :py:meth:`Database.find_configuration_rule()` and :py:meth:`Database.list_configuration_rules()` methods. * Add :py:meth:`Database.export_kdr()` and :py:meth:`Database.export_kdc()` methods. * Add :py:attr:`Database.active_model` attribute. * :doc:`Model `: * Add :py:meth:`Model.list_configuration_parameters()`, :py:meth:`Model.list_configuration_presets()`, and :py:meth:`Model.create_configuration_preset()` methods. * Add :py:attr:`Model.selected_surfaces` and :py:attr:`Model.leader_surface` properties. * :doc:`Product `: * Add :py:meth:`Product.list_configuration_parameters()`, :py:meth:`Product.list_configuration_presets()`, and :py:meth:`Product.create_configuration_preset()` methods. * Add :py:meth:`Product.find_aspect_layer()`, :py:meth:`Product.find_aspect_layer_group()` and :py:meth:`Product.create_aspect_layer_group()` methods. * Configuration: * Add :py:class:`ConfigurationParameter` class. * Add :py:class:`ConfigurationPreset` class. * Add :py:class:`ConfigurationRule` class. * Add :py:class:`ConfigurationTarget` class. * :doc:`Surface `: * Add :py:attr:`Surface.selected` property. * Add :py:meth:`Surface.get_shadow_cast()`, :py:meth:`Surface.set_shadow_cast()`, :py:meth:`Surface.get_shadow_receive()` and :py:meth:`Surface.set_shadow_receive()` methods. * :doc:`Aspect Layer `: * Add :py:attr:`AspectLayer.locked` property. * Add :py:meth:`AspectLayer.get_material_assignment_offset_u()`, :py:meth:`AspectLayer.set_material_assignment_offset_u()`, :py:meth:`AspectLayer.get_material_assignment_offset_v()`, :py:meth:`AspectLayer.set_material_assignment_offset_v()`, :py:meth:`AspectLayer.get_material_assignment_rotation()` and :py:meth:`AspectLayer.set_material_assignment_rotation()`, methods. * :py:class:`LightingColor`: Add :py:attr:`LightingColor.active` property. * :doc:`Environment Group `: Add :py:meth:`EnvironmentGroup.import_kev()` method to import an environment from .kev file. * :doc:`Environment `: Add :py:meth:`Environment.export_kev()` method to export an environment to .kev file. Changed APIs ------------ * The :py:class:`VisibilityLayer` class is now called :py:class:`GeometryLayer` to be consistent with Patchwork 3D concepts. All properties and methods referencing geometry layers have been renamed accordingly. * :py:attr:`AspectLayer.visibility` has been renamed to :py:attr:`AspectLayer.visible`. * :py:attr:`AspectLayerGroup.visibility` has been renamed to :py:attr:`AspectLayerGroup.visible`. Corrections ----------- * Fix crash when creating a :py:class:`Camera` without specifying a :py:class:`CameraGroup`. .. _changelog_data_202113: Version 2021.1.3 ================ Corrections ----------- * Fix :py:meth:`LightGroup.list_lights()` not returning the right light type. * Fix enums returning wrong values in some cases when using the direct .p3d access API. * Fix crash when creating a :py:class:`Camera` while in Matter with no product open. * Fix exception when duplicating a :py:class:`MaterialGroup`. .. _changelog_data_202110: Version 2021.1.0 ================ New APIs -------- * :py:class:`AxfCPA2Material`: Add properties to change the material color. * :py:class:`Product`: Add properties for SSAO. * :doc:`Visibility Layer `: Add :py:meth:`VisibilityLayer.import_triangle_mesh() ` and :py:meth:`VisibilityLayer.import_indexed_triangle_mesh() ` to create surfaces from meshes. Corrections ----------- * Fix some methods not using their arguments properly. .. _changelog_data_202024: Version 2020.2.4 ================ Corrections ----------- * Fix :py:attr:`AspectLayer.get_material_assignment` not returning the right material type. .. _changelog_data_202022: Version 2020.2.2 ================ New APIs -------- * :doc:`Aspect Layer Group `: Add :py:class:`AspectLayerGroup` class. * :doc:`Aspect Layer `: Add :py:class:`AspectLayer` class. This allows you to assign materials to surfaces or query the material of a surface. * :doc:`Environment Layer `: Add :py:class:`EnvironmentLayer` class. This allows you to assign environments to surfaces or change the global environment of the product. * :doc:`Product `: Add :py:class:`Product` class. * :doc:`Model `: Add :py:meth:`Model.create_product()`, :py:meth:`Model.find_product()` and :py:meth:`Model.list_products()` methods. Corrections ----------- * Fix :py:attr:`Database.active_material` not returning the right material type. * Fix crash when setting :py:attr:`Database.active_material`. * Fix no default model, visibility layer and lighting created when creating a database using :py:meth:`P3DFile.create()`. .. _changelog_data_202021: Version 2020.2.1 ================ New APIs -------- * :doc:`Database `: * Add :py:attr:`Database.active_material`, :py:attr:`Database.active_background`, :py:attr:`Database.active_environment`, :py:attr:`Database.active_overlay`, :py:attr:`Database.active_postprocess` and :py:attr:`Database.active_sensor` attributes. * Add :py:attr:`Database.active_texture_group`, :py:attr:`Database.active_background_group`, :py:attr:`Database.active_environment_group`, :py:attr:`Database.active_overlay_group`, :py:attr:`Database.active_postprocess_group` and :py:attr:`Database.active_sensor_group` attributes. * Add :py:meth:`Database.create_texture_group()`, :py:meth:`Database.find_texture_group()` and :py:meth:`Database.list_texture_groups()` methods. * Add :py:meth:`Database.create_background_group()`, :py:meth:`Database.find_background_group()` and :py:meth:`Database.list_background_groups()` methods. * Add :py:meth:`Database.create_environment_group()`, :py:meth:`Database.find_environment_group()` and :py:meth:`Database.list_environment_groups()` methods. * Add :py:meth:`Database.create_overlay_group()`, :py:meth:`Database.find_overlay_group()` and :py:meth:`Database.list_overlay_groups()` methods. * Add :py:meth:`Database.create_postprocess_group()`, :py:meth:`Database.find_postprocess_group()` and :py:meth:`Database.list_postprocess_groups()` methods. * Add :py:meth:`Database.create_sensor_group()`, :py:meth:`Database.find_sensor_group()` and :py:meth:`Database.list_sensor_groups()` methods. * :doc:`Background Group `: Add :py:class:`BackgroundGroup` class. * :doc:`Background `: Add :py:class:`Background` class. * :doc:`Camera `: Add :py:attr:`Camera.sensor` attribute. * :doc:`Material `: Add :py:attr:`StandardMaterial.diffuse_gradient_ramp_enabled`, :py:attr:`StandardMaterial.velvet_gradient_ramp_enabled`, :py:attr:`MultiLayerMaterialDiffuseLayer.gradient_ramp_enabled` and :py:attr:`MultiLayerMaterialIlluminationLayer.gradient_ramp_enabled` properties. * :doc:`Environment Group `: Add :py:class:`EnvironmentGroup` class. * :doc:`Environment `: Add :py:class:`Environment` class. * :doc:`Overlay Group `: Add :py:class:`OverlayGroup` class. * :doc:`Overlay `: Add :py:class:`Overlay` and :py:class:`OverlayLayer` classes. * :doc:`Postprocess Group `: Add :py:class:`PostprocessGroup` class. * :doc:`Postprocess `: * Add :py:class:`Postprocess` class. * Add :py:class:`PostprocessingEffect` base class with some subclasses (more to come): :py:class:`PostprocessingEffectBloom` and :py:class:`PostprocessingEffectBlur`. * :doc:`Sensor Group `: Add :py:class:`SensorGroup` class. * :doc:`Sensor `: Add :py:class:`Sensor` class. Corrections ----------- * Fix crash when setting :py:attr:`Database.active_material_group` to :py:obj:`None`. .. _changelog_data_202020: Version 2020.2.0 ================ New APIs -------- * :doc:`Material Group `: * Add :py:meth:`MaterialGroup.import_kmt()` method to import a material from .kmt file. * Add material creation methods: :py:meth:`MaterialGroup.create_standard_material()`, :py:meth:`MaterialGroup.create_multi_layer_material()`, :py:meth:`MaterialGroup.create_mirror_material()`, :py:meth:`MaterialGroup.create_matte_material()` and :py:meth:`MaterialGroup.create_env_material()`. * :doc:`Material `: * Add :py:meth:`Material.duplicate()` and :py:meth:`Material.remove()` methods. * Add :py:meth:`Material.export_kmt()` method to export a material to .kmt file. * Add :py:class:`FlakesDistribution`, :py:class:`LabelMode`, :py:class:`RepetitionMode` and :py:class:`StandardMaterialType` enums. * Add :py:class:`MultiLayerMaterialLayer` base class with its subclasses: :py:class:`MultiLayerMaterialDiffuseLayer`, :py:class:`MultiLayerMaterialFlakesLayer`, :py:class:`MultiLayerMaterialIlluminationLayer` and :py:class:`MultiLayerMaterialSpecularLayer`. * Add material-specific methods to get/set [#f1]_ their properties. Currently it is not possible to get/set material gradients, this will come in a future release. * :doc:`Texture Group `: * Add :py:class:`TextureGroup` class. * Textures can be imported using :py:meth:`TextureGroup.import_from_encoded_data()`. * :doc:`Texture `: * Add :py:class:`Texture` class. * The texture data can be retrieved (in encoded format only currently) using the :py:meth:`Texture.encoded_data()` method. Corrections ----------- * Fix crash when creating a visibility layer * Fix creating a visibility layer not working properly when using :py:class:`P3DFile` API. * Fix wrong database version after saving a file opened with :py:class:`P3DFile` API. * Fix no default groups created in Matter library when creating a database using :py:meth:`P3DFile.create()`. Version 2020.1.0 ================ Initial release .. rubric:: Footnotes .. [#f1] Except :py:class:`SeamMaterial` where it is not possible to set the properties as it is a deprecated material.