Skip to content

Improve GOMpy and LUA binding #30

Description

@BrunoLevy
  • try to get rid of strings everywhere, starting from command-state that could use typed representation instead
  • gom slots that take Any and ArgList as arguments
  • NL::Vector improvements:
    • make NL::Vector closer to numpy arrays
    • support for non-contiguous arrays in NL::Vector
    • array protocol ? buffer protocol ?
  • in history, vec3,vec4... arguments are recorded as "string representation" (I'd prefer { x, y, z}) (fixed with Invalid recorded command in history #68)
  • equality and inequality tests for GOM object wrappers
  • make metaclass wrapper inherit python object so that issubclass works with GOM objects
  • xxx = XXX(args) instead of xxx = XXX.create(args) (done in Python, not yet in Lua)
  • JAX interop
  • split python_interpreter.cpp, separate vec/mat interop
  • iterators
  • make gom interpreter inherit python module so that we can import gom.xxx from gom (in fact did it differently, by overriding gompy's __getattr__ and declaring sub-stuff that i wanted to make inportable in global module table)
  • a GOM mechanism for graphic object attributes, or set_color, set_mesh_color, set_mesh_width etc... slots in shader
    • How it works now: there is no special mechanism, uses conversions from string and to string.
    • What we would like it to do:
      • write:
        mesh.shader.mesh_style.width = 5
        mesh.shader.mesh_style = '0.5 0.5 0.5 1.0;5' --backward compat
        mesh.shader.mesh_style = { {0.5,0.5,0.5,1.0}, 5 } --from table Not yet, we shall see later...
      • read:
        x = mesh.shader.mesh_style.width
        print(mesh.shader.mesh_style)
      • implement MetaBuiltinStruct and MetaStruct
      • register meta information for PointStyle, MeshStyle, SurfaceStyle, ColormapStyle
      • implement generic serializer
      • implement StructPropertyRef

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions