Re: [Question #681341]: Move or scale a facet

```Question #681341 on Yade changed:

Jan Stránský posted a new comment:
Hello,

> just multiplying a scaling factor is not feasible. The vertice
coordinates can not be changed directly

the vertices can be changes, but they must be set at once (similar to
setting one component of b.state.pos)

###
b = Body()
print b.state.pos
b.state.pos[0] = 1 # does not work
print b.state.pos
b.state.pos  = (1,0,0) # works
print b.state.pos
###

###
v1 =(0,0,0)
v2 = (1,0,0)
v3 =(1,1,0)
f1 = facet((v1,v2,v3),wire=False)
O.bodies.append(f1)
print f1.shape.vertices
print [f1.state.pos + f1.state.ori*v for v in f1.shape.vertices]

# move facet 1
f1 = O.bodies[0]
mv = (1,0,0)
f1.state.pos += mv
print f1.shape.vertices
print [f1.state.pos + f1.state.ori*v for v in f1.shape.vertices]

# scale vertices
vs = f1.shape.vertices # original vertices
vs = [v*0.5 for v in vs] # scaled vertices
f1.shape.vertices = vs # vertices set at once
print f1.shape.vertices
print [f1.state.pos + f1.state.ori*v for v in f1.shape.vertices]
###

cheers
Jan

--