Vertex map is not correctly filled



  • On 18/12/2017 at 11:40, xxxxxxxx wrote:

    I have an objectdata plugin.
    In GetVirtualObjects() I create a vertex map.
    This vertex map is the then used in a Smoothing deformer.

    The hierarchy is then:
    - Null
      Smoothing deformer
      objA - vertex deformer.

    This works! Smoothing is visible.
    I can see that if I insert a clone of this intermediate result.

    After that I do a CSTO, but then it seems as if the vertex map is not correctly filled.
    No smoothing is visible.

        def GetVirtualObjects(self, op, hierarchyhelp) :
      
            doc = op.GetDocument()
      
            if op.GetDown() is None or op.GetDown().GetNext() is None:
                return c4d.BaseObject(c4d.Onull)
      
            res = op.GetAndCheckHierarchyClone(hierarchyhelp, op.GetDown(), c4d.HIERARCHYCLONEFLAGS_ASPOLY , True)
            if res['dirty'] == False:
                return res['clone']
                
            objA = res['clone'].GetDown()
            objB = objA.GetNext()
            
            vertexMap = self.Selection2VertexMap(objA)  #create and add vertex map. This works.
      
            null2 = c4d.BaseObject(c4d.Onull)  
            objA.InsertUnder(null2)
            
            smoothingObject = c4d.BaseObject(1024529)     #smoothing
            smoothingObject[c4d.ID_CA_SMOOTHING_DEFORMER_OBJECT_STRENGTH] = .20  
            smoothingObject[c4d.ID_CA_SMOOTHING_DEFORMER_OBJECT_ITERATIONS] = 20
            smoothingObject[c4d.ID_CA_SMOOTHING_DEFORMER_OBJECT_STIFFNESS] = 1.0
            smoothingObject[c4d.ID_CA_SMOOTHING_DEFORMER_OBJECT_STIFF_MAP] = vertexMap    
            smoothingObject.InsertUnder(null2)
     
            cstoObject = self.CSTO(doc, null2) 
            doc.InsertObject(null2.GetClone())          #debug: Show intermediate result
            return cstoObject
    


  • On 18/12/2017 at 13:08, xxxxxxxx wrote:

    I guess I solved it.
    I am now using a temp document for the csto.


Log in to reply