Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unificar métodos de las geometrías #71

Open
rejurime opened this issue May 19, 2017 · 16 comments
Open

Unificar métodos de las geometrías #71

rejurime opened this issue May 19, 2017 · 16 comments

Comments

@rejurime
Copy link
Member

Hay muchas propiedades y métodos que debería estar en una súper clase.

@rejurime rejurime added this to the Mejora TGCViewer 2C2017 milestone May 19, 2017
@rejurime rejurime self-assigned this May 19, 2017
@rejurime
Copy link
Member Author

Por ahora el comportamiento y estado interno que vi en todas las geometrias fue:

public bool AlphaBlend { get; set; }
public TGCVector3 Position { get; set; }
public TGCVector3 Up { get; set; }
public TGCVector3 Right { get; set; }
public TGCVector3 Rotation { get; set; }
public TGCVector3 Scale { get; set; }
public TGCMatrix Transform { get; set; }
public abstract void Init(); // Podria no estar ya que muchas lo hacen en su constructor, pero podria ordenar.
public abstract void Update();
public abstract void Render();
public abstract void Dispose();

@rejurime
Copy link
Member Author

@DNAngeluS @Javier-Rotelli @mysery que opinan?

@Javier-Rotelli
Copy link
Member

tengo que mirarlo mejor, pero a priori me parece que esos metodos deberian subir a la superclase

@rejurime
Copy link
Member Author

Claro @Javier-Rotelli esos son lo que vi que deberian ir en la super clase, salvo que detecten algo que este conceptualmente incorrecto en alguna geometria me parece que se imprime asi jaja.
La duda aun me queda con el Init si lo subo o seguimos laburando con los contructores como ahora y no forzamos a que toda geometria tenga un Init. Aunque creeria que todas las geometrias algo por mas minimo que sea tienen que inicializar.

@mysery
Copy link
Member

mysery commented Jul 23, 2017

Creo que todas deberian implementar un Init, sacaria los constructores raros que hay.
Falta el Vector3 Front y estamos perfectos creo yo.

@rejurime
Copy link
Member Author

Hace falta tener el Front? no sale de up y right? o mejor tenerlo asi se evita una operación?

@mysery
Copy link
Member

mysery commented Jul 31, 2017 via email

@rejurime
Copy link
Member Author

Retomando 😋 deberiamos agregar tambien

public TGCVector3 Front { get; set; }
public Color Color { get; set; }
public Effect Effect { get; set; }
public string Technique { get; set; }

a lo que puse arriba?

@rejurime
Copy link
Member Author

rejurime commented Aug 10, 2017

o efecto y tecnica deberia ir en IRender? #76

rejurime added a commit that referenced this issue Aug 22, 2017
Se agregaron todos los Shaders del Worshop de @mbanquiero que faltaban, pero por ahora se adaptaron 4, el resto de adapto bastante pero aun no andan (no estan agregaron al proyecto pero si en el repo). Se hizo refactor de todos los HLSL y se migraron todos a V3. Se avanzo un poco con TGCGeometry.
Javier-Rotelli pushed a commit that referenced this issue Aug 29, 2017
Se agregaron todos los Shaders del Worshop de @mbanquiero que faltaban, pero por ahora se adaptaron 4, el resto de adapto bastante pero aun no andan (no estan agregaron al proyecto pero si en el repo). Se hizo refactor de todos los HLSL y se migraron todos a V3. Se avanzo un poco con TGCGeometry.
@LeandroJavierLaino
Copy link
Contributor

Esto quedo en un limbo o se puede agarrar?

https://memegenerator.net/img/instances/14804138/que-mierda-es-esto-lo-puedo-romper.jpg

@rejurime
Copy link
Member Author

rejurime commented Aug 1, 2018

Quedo en la discusión que lees acá jaja quería llegar a un consenso antes de hacerlo así opinábamos todos pero como veras... nunca paso. Si tenes una idea de que onda podemos verlo 😉.

@LeandroJavierLaino
Copy link
Contributor

Basicamente y revisando que metodos hay en las geometrias encontre esto (sumado a lo que se venia hablando en el issue) :

`
public bool AlphaBlendEnable { get; set; }
public TGCVector3 Position { get; set; }
public TGCVector3 Up { get; set; }
public TGCVector3 Right { get; set; }
public TGCVector3 Front { get; set; }
public TGCVector3 Rotation { get; set; }
public TGCVector3 Scale { get; set; }
public TGCMatrix Transform { get; set; }
public bool Enabled { get; set; }
public Effect Effect { get; set; }
public string Technique { get; set; }
public Color Color { get; set; }

public abstract void Init(); //O dejamos el init o los constructors no tiene mucho sentido las dos cosas
public abstract void Update();
public abstract void Render();
public abstract void Dispose();
`

Hay una clase abstracta "TGCGeometry" que ya tiene la unificacion de metodos, pero nunca se usa en ninguna geometria.

@rejurime
Copy link
Member Author

rejurime commented Aug 1, 2018

Claro esa es la clase que cree con las cosas que fueron saliendo de acá pero no hice que la implementaran las geometrías hasta tener algo mas fundamentado, por ejemplo que rol juega irender?

@rejurime
Copy link
Member Author

rejurime commented Aug 2, 2018

A lo que voy, es si por ejemplo tiene sentido el concepto de una geometría que no se pueda hacer render #76

@LeandroJavierLaino
Copy link
Contributor

Entonces, en ese caso sería mas lógico que los métodos relacionados con hacer render de una geometría esten dentro de IRenderObject y no en TGCGeometry.

Que una geometría no haga render no tiene mucho sentido, solo si estas buscando hacer una optimización pero lo manejas del lado de la lógica de la aplicación no del lado de una geometria.

Basicamente IRender tiene pinta de que deberia tener esto:

public bool AlphaBlendEnable { get; set; }
public TGCVector3 Position { get; set; }
public TGCVector3 Up { get; set; }
public TGCVector3 Right { get; set; }
public TGCVector3 Front { get; set; }
public TGCVector3 Rotation { get; set; }
public TGCVector3 Scale { get; set; }
public TGCMatrix Transform { get; set; }
//public bool Enabled { get; set; } -> No tiene mucho sentido ya que lo que queremos es hacer render
public Effect Effect { get; set; }
public string Technique { get; set; }
public Color Color { get; set; }

//public abstract void Init(); Pensandolo mejor es ideal que cada geometria tenga su propio constructor en vez de un Init()
public abstract void Update();
public abstract void Render();
public abstract void Dispose();

@rejurime
Copy link
Member Author

rejurime commented Aug 3, 2018

Supongo que lo de enable es por si tenes una escena y a todos los objetos render los queres hacer render y cada uno internamente saber si tiene que mostrarse o no. Recordá que también tenemos la interfaz ITransform 😝 #72 y hay cosas que son de ahí y no del IRender 😄
De ahi a que creer las 3 issues porque esta como todo medio mezclado, el concepto de IGeometry tenia que nacer, ahora hay que ver que interfaces tiene que implementar, claramente IRender y ITransform y que tiene que hacer cada una de ellas.

@rejurime rejurime removed this from the Mejora TGCViewer 2C2019 milestone Apr 11, 2020
@rejurime rejurime removed their assignment Jun 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants