Release 2021.1.0.79 to 2021.1.1.5

(Released December 02, 2021)

MODIFIED FUNCTIONS

Module: IO

exportSceneToReflect

   exportSceneToReflect(root, sourceName, uid, keepHierarchy, configFile, /)


        Export current scene to a reflect project


        Parameters

        ----------

        root : Occurrence , optional

                (default: 0)

                Identifier of the destination occurrence

       

        sourceName : String , optional

                (default: "")

                Push source name

       

        uid : String , optional

                (default: "")

                UID of the push, overwrite old push if it's same UID

       

        keepHierarchy : Boolean , optional

                (default: false)

                Keep hierarchy or rake tree

       

        configFile : FilePath , optional

                (default: "")

                Use existing JSON config file, discard reflect UI prompt




Release 2020.2.6.2 to 2021.1.0.79

(Released November 04, 2021)

REMOVED FUNCTIONS

Module: Core

    • core.interruptionRequested()
    • restoreModulePropertyDefaultValue()
    • setCurrentThreadAsProcessThread()
    • softStopAsyncEventManager()


REMOVED MODULES

    • DecimateTargetBake: decimateTargetBake() - replaced by process.decimateTargetBake()
    • WizardIO: importWizard() - replaced by process.guidedImport()
    • GenerateProxy: proxyFromMeshes() - replaced by process.proxyFromMeshes() / proxyFromPointCloud() - replaced by process.proxyFromPointCloud()


ADDED FUNCTIONS

Module: Algo

    • convertSimilarOccurencesToInstances()
    • createVertexWeightsFromVertexColors()
    • createVisibilityInformation()
    • deleteTangents()
    • evalDecimateErrorForTarget()
    • relaxUV()
    • removeZFighting()
    • retopologize()
    • tessellateRelativelyToAABB()

Module: CAD

    • buildFaces()
    • createRuledSurface()
    • solidIntersection()
    • solidSubstraction()
    • solidUnion()

Module: Core

    • getEntityTypeFromString()
    • getMemoryUsagePeak()

Module: Geom

    • fromOriginNormal()

Module: Material

    • getCustomMaterialPattern()
    • getImpostorMaterialInfos()
    • getUniformPropertyType()
    • resizeImage()
    • setMaterialMainColor()
    • updateImageFromDefinition()

Module: Polygonal

    • computeMeshTopoChecksum()
    • computeMeshVertexPositionsChecksum()
    • computeUVTopoChecksum()
    • computeUVVertexPositionsChecksum()
    • dracoDecode()
    • getMeshSkinning()
    • setMeshSkinning()

Module: Process

    • decimateTargetBake() - replaces the old plugin decimatetargetbake.decimateTargetBake()
    • guidedImport() - replaces the old plugin wizardio.importWizard()
    • proxyFromMeshes() - replaces the old plugin generateproxy.proxyFromMeshes()
    • proxyFromPointCloud() - replaces the old plugin generateproxy.proxyFromPointCloud()

Module: Scene

    • createOBBMesh()
    • createSceneFromMeshes()
    • generateOctaViews()
    • getAnnotationGroups()
    • getDuplicatedParts()
    • getTessellationInfos()
    • listComponent()
    • mergeByRegions()

Module: View

    • addPickResultCallback()
    • getViewSessionDrawPrimitives()
    • pickOccurrences()
    • removePickResultCallback()
    • resumeViewer()
    • setViewSessionDrawPrimitives()


MODIFIED FUNCTIONS

Module: Algo

decimateEdgeCollapse

decimateEdgeCollapse(occurrences, surfacicTolerance, /, boundaryWeight, normalWeight, UVWeight, sharpNormalWeight, UVSeamWeight, normalMaxDeviation, forbidUVOverlaps, UVMaxDeviation, UVSeamMaxDeviation, protectTopology, qualityTradeoff)


      Experimental :reduce the polygon count by collapsing some edges to obtain an simplified mesh

     

  Parameters

        ----------

        occurrences : OccurrenceList

                Occurrences of components to process

       

        surfacicTolerance : Distance

                Error max between the simplified mesh et the old one

       

        boundaryWeight : Double , optional

                (default: 1.)

                Boundary importance during the decimation

       

        normalWeight : Double , optional

                (default: 1.)

                Normal importance during the decimation

       

        UVWeight : Double , optional

                (default: 1.)

                UV importance during the decimation

       

        sharpNormalWeight : Double , optional

                (default: 1.)

                Importance of sharp edges during the decimation

       

        UVSeamWeight : Double , optional

                (default: 10.)

                Importance of UV seams during the decimation

       

        normalMaxDeviation : Angle , optional

                (default: -1)

                Constraint the normals deviation on decimated model

       

        forbidUVOverlaps : Boolean , optional

                (default: true)

                Forbid UV to fold over and overlap during the decimation

       

        UVMaxDeviation : Double , optional

                (default: -1)

                Constraint the uv deviation on decimated model

       

        UVSeamMaxDeviation : Double , optional

                (default: -1)

                Constraint the uv seams deviation on decimated model

       

        protectTopology : Boolean , optional

                (default: false)

                If false, the topology of the mesh can change and some edges can become non-manifold. But the visual quality will be better on model with complex topology

       

        qualityTradeoff : QualitySpeedTradeoff , optional

                (default: 0)

                For big models it is recommanded to choose PreferSpeed tradeoff. In PreferSpeed mode, quadrics are computed only on position (and not on other vertex attributes)


decimateTarget

        decimateTarget(occurrences, targetStrategy, /, UVImportance, protectTopology, iterativeThreshold)

       

  reduce the polygon count by collapsing some edges to obtain a target triangle count (iterative version that use less memory)

       

  Parameters

        ----------

        occurrences : OccurrenceList

                List of occurrences to process

       

        targetStrategy : DecimateOptionsSelector

                Select between targetCount or ratio to define the number of triangles left after the decimation process

       

        UVImportance : UVImportanceEnum , optional

                (default: 0)

                Select importance of texture coordinates


        protectTopology : Boolean , optional

                (default: false)

                If False, the topology of the mesh can change and some edges can become non-manifold

       

        iterativeThreshold : Int , optional

                (default: 5000000)

                Number of triangles above which the iterative algorithm is used to limit the memory usage

   


voxelize 

  voxelize(occurrences, voxelSize, /, elements, dilation, useCurrentAnimationPosition)


  Replace the tessellations of the selected parts by a voxelization of the external skin


        Parameters

        ----------

        occurrences : OccurrenceList

                Occurrences of part to process

       

        voxelSize : Distance

                Size of voxels

       

        elements : ElementFilter , optional

                (default: 0)

                Type of elements used to detect the voxels, polygons or points or hybrid

       

        dilation : Int , optional

                (default: 0)

                Dilation iterations on the voxel grid

       

        useCurrentAnimationPosition : Boolean , optional

                (default: false)

                Use the current animation position instead of the t-pose

       

        Returns:

        -------

        voxelizedPart : Occurrence

                Resulting part occurrence


Module: Core

configureLicenseServer

  configureLicenseServer(address, port, /, flexLM)


  Configure the license server to use to get floating licenses

       

  Parameters

        ----------

        address : String

                Server address

       

        port : UShort

                Server port

       

        flexLM : Boolean , optional

                (default: false true)

                Enable FlexLM license server


Module: IO

importFiles

  importFiles(fileName fileNames, /, root)

 

  Import files

 

  Parameters

        ----------

        fileName fileNames : FilesList

                List of files's paths to import

       

        root : Occurrence , optional

                (default: 0)

                Identifier of the destination occurrence

       

        Returns:

        -------

        dest : OccurrenceList

                The root occurrences of each imported file


Module: Scene

createOccurrenceFromSelection

  createOccurrenceFromSelection(name, children, parent, /, keepMaterialAssignment)


        Create a new occurrence and add the given occurrences as children

     

  Parameters

        ----------

        name : String

                Name of the new occurrence

       

        children : OccurrenceList

                Add given occurrence as children (if any)

       

        parent : Occurrence

                If defined, the new occurrence will be created as a child of this parent. Else if children are defined, the first common parent of children will be used as a parent for this new occurrence. Last resort will be to use the root as parent

       

        keepMaterialAssignment : Boolean , optional

                (default: true)

                If defined, material assignation will be updated to keep the visual same aspect

       

        Returns:

        -------

        occurrence : Occurrence

                Created occurrence


createSymmetry

      createSymmetry(occurrences, plane)

 

Create symmetries from selection

       

Parameters

        ----------

      occurrences : OccurrenceList

              Selection of occurrences

       

      plane : Plane AxisPlane

                 Symmetry plane

   

getVertexCount

  getVertexCount(occurrences, /, countOnceEachInstance, countHidden, countPoints, countMergedVertices)

       

  Returns the number of vertices in the parts meshes

       

  Parameters

        ----------

        occurrences : OccurrenceList

                The part occurrences

       

        countOnceEachInstance : Bool , optional

                (default: false)

                If true ignore multiple instance of each tessellation

       

        countHidden : Bool , optional

                (default: false)

                If true, also count hidden components

       

        countPoints : Bool , optional

                (default: false)

                If true, also count points (for points cloud)

       

        countMergedVertices : Bool , optional

                (default: false)

                If true count all merged vertices in each tessellation

       

        Returns:

        -------

        vertexCount : Int

                The number of vertices


mergePartsByMaterials

  mergePartsByMaterials(partOccurrences, /, mergeNoMaterials, mergeHiddenPartsMode, combineMeshes)

       

  Merge a set of parts by materials

       

  Parameters

        ----------

        partOccurrences : OccurrenceList

                Occurrence of the parts to merge

       

        mergeNoMaterials : Boolean , optional

                (default: true)

                If true, merge all parts with no active material together, else do not merge them

       

        mergeHiddenPartsMode : MergeHiddenPartsMode , optional

                (default: 2)

                Hidden parts handling mode, Destroy them, make visible or merge separately

       

        combineMeshes : Boolean , optional

                (default: true)

                If true, explode and remerge the input parts by visible materials

       

        Returns:

        -------

        mergedOccurrences : OccurrenceList

                Resulting merged occurrences


selectByMaximumSize

  selectByMaximumSize(roots, maxDiagLength, /, maxSize, selectHidden)


        Select all parts meeting the criteria


        Parameters

        ----------

        roots : OccurrenceList

                Roots occurrences for the process

       

        maxDiagLength : Distance

                If the diagonal axis of the bouding box is less than maxDiagLength, part will be selected. -1 to ignore

       

        maxSize : Distance , optional

                (default: -1)

                If the longer axis of the box is less than maxLength, part will be selected. -1 to ignore

       

        selectHidden : Boolean , optional

                (default: false)

                If true, hidden parts meeting the criteria will be selected as well