Skip to content

Instantly share code, notes, and snippets.

@aosterthun
Created March 19, 2017 12:07
Show Gist options
  • Save aosterthun/809144c53556f400b9f4039b7d255c5c to your computer and use it in GitHub Desktop.
Save aosterthun/809144c53556f400b9f4039b7d255c5c to your computer and use it in GitHub Desktop.
#!/usr/bin/python
### import guacamole libraries
import avango
import avango.gua
import avango.script
from avango.script import field_has_changed
class Cube():
_color = avango.gua.Vec4(1,1,1,1)
_name = ""
_geometry = None
## constructor
def __init__(self, Size, Name):
self._name = Name
_loader = avango.gua.nodes.TriMeshLoader()
self._geometry = _loader.create_geometry_from_file(self._name, "data/objects/cube.obj", avango.gua.LoaderFlags.DEFAULTS | avango.gua.LoaderFlags.MAKE_PICKABLE)
def delete(self):
pass
def get_color(self):
return self._color
def set_color(self, color):
self._color = color
self._geometry.Material.value.set_uniform("Color", self._color)
def get_geometry(self):
return self._geometry
def highlight_on(self):
self._geometry.Material.value.set_uniform("Color", avango.gua.Vec4(1,0,0,1))
def highlight_off(self):
self._geometry.Material.value.set_uniform("Color", self._color)
def translate(self,x,y,z):
self._geometry.Transform.value *= avango.gua.make_trans_mat(x,y,z)
return self
def scale(self,x,y,z):
self._geometry.Transform.value *= avango.gua.make_scale_mat(x,y,z)
return self
def rotate(self,deg,x,y,z):
self._geometry.Transform.value *= avango.gua.make_rot_mat(deg,x,y,z)
return self
def get_translate(self):
return self._geometry.Transform.value.get_translate()
def get_scale(self):
return self._geometry.Transform.value.get_scale()
def get_rotation(self):
return self._geometry.Transform.value.get_rotate()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment