XSIforum.com

control de visibilidad en components

0 Usuarios y 1 Visitante están viendo este tema.

Unaided

  • ***
  • 3293
control de visibilidad en components
« en: 26 Junio 2014, 18:43:19 »
¿Existe algún operador con el que controlar la visibilidad de objetos y/o sus componentes?

No sé esto es posible via ICE, pero en su defecto, creo que me serviría hacer un scale a 0 en local a cada polygon island.

Como operadores de topogología el transform topo no sé si sirve para escalar a 0 en local por componentes.

Re:control de visibilidad en components
« Respuesta #1 en: 27 Junio 2014, 23:49:10 »
Simplemente establece una constante como pointposition de los puntos del island, si todos los puntos están en la misma posición su escala será igual a 0.

Re:control de visibilidad en components
« Respuesta #2 en: 29 Junio 2014, 18:17:55 »
No es perfecto pero por ahí van los tiros ;)

Unaided

  • ***
  • 3293
Re:control de visibilidad en components
« Respuesta #3 en: 30 Junio 2014, 23:25:15 »
Gracias César! Mañana lo miro.
Estaba usando este método (http://www.si-community.com/community/viewtopic.php?t=2489)
para seleccionar los polygon island, y por ahora ando atascado con el escalado a 0.

Mi idea es usar un Get Set in Average para hallar el baricentro y mover los puntos a ese centro.

He conseguido que me funcione desde un cluster de puntos, pero con el Select in Array que uso para cada polygon island, no me funciona.

En principio obtiene correctamente los indices de los puntos en esa array puesto que con un Apply delete vertex se borran los polygon islands afectados por el Point in Volume.
¿no sirve el Get Set Average cuando la entrada se datos es una selección de una array?

« Última modificación: 30 Junio 2014, 23:45:30 por Unaided »

Unaided

  • ***
  • 3293
Re:control de visibilidad en components
« Respuesta #4 en: 02 Julio 2014, 12:47:45 »
¿Por qué el Set in Average me coge el centro del objeto y no de cada polygon island del select in array?

Unaided

  • ***
  • 3293
Re:control de visibilidad en components
« Respuesta #5 en: 02 Julio 2014, 17:06:43 »
He encontrado una opción válida (no obstante me gustaría un control de escalado en local de cada polygon island) en ese procedimiento. Conectando el Point in Volume a la condición de un If, y el SetData(self.PointPosition) a ese If.
Sucede entonces que los puntos que no cumplan la condición se establecen en posicion 0,0,0 global o no se dibujan ¿esto es así?

Re:control de visibilidad en components
« Respuesta #6 en: 02 Julio 2014, 18:40:32 »
Si que se dibujan, simplemente se trasladan a la coordenada (0,0,0).

Para hacer lo que quieres debes asegurarte de que si un punto está dentro del volumen todos los puntos correspondientes al mismo island se trasladen a 0,0,0 (o la coordenada que quieras), de otra forma verás deformaciones extrañas en la geometría.

Unaided

  • ***
  • 3293
Re:control de visibilidad en components
« Respuesta #7 en: 02 Julio 2014, 22:19:34 »
Ahora, en modo puntos veo que están el 0,0,0 global, si. :P

Creo que el método para buscar polygon islands creando una array con los PointPosition más los PointNeighbors funciona adecuadamente. Lo que no consigo es que el Get Set Average encuentre el baricentro de cada polygon island dándole ese array de datos, y por tanto mover los puntos hacia ese centro local de cada polygon island.

Si que me funciona bien con una selección hecha a mano dándole un cluster.

Unaided

  • ***
  • 3293
Re:Trabjando con polygon islands
« Respuesta #8 en: 10 Julio 2014, 22:09:37 »
Sigo el método Random color on polygon Island para encontrar islands. En el, si no lo entiendo mal, crean un atributo personalizado y lo llenan con una array de la posición de puntos y los que están conectados.

Entiendo que necesito obtener la posición de los puntos pertenecientes a cada island a partir del index. Para ello uso un Select in Array. ¿sería correcto?

A partir de ahí, quiero obtener el baricentro de cada island, pero el Get Set Average conectado a ese Select in Array me está calculándo de todos los puntos en la mesh. ¿cómo hago para filtrar por el atributo self.My_index?

Re:control de visibilidad en components
« Respuesta #9 en: 11 Julio 2014, 00:25:32 »
Hey unaided,
Lograste ver la escena que subí? pues allí tienes justo lo que describes.

De todas formas si pretendes utilizar esto en producción yo no haría todo en ICE, probablemente calcularía los indices de cada island por scripting y se lo pasaría a ICE como una constante mediante un nodo string to array, de esta forma evitarías tener que usar un nodo repeat/while y todo iría mucho más rápido.