webgl2d

package
v0.0.0-...-be50a85 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 12, 2021 License: BSD-2-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewShader_2DAxes

func NewShader_2DAxes(wctx *wcommon.WebGLContext) *wcommon.Shader

func NewShader_InstancePoseColor

func NewShader_InstancePoseColor(wctx *wcommon.WebGLContext) *wcommon.Shader

func NewShader_MaterialColor

func NewShader_MaterialColor(wctx *wcommon.WebGLContext) *wcommon.Shader

func NewShader_MaterialTexture

func NewShader_MaterialTexture(wctx *wcommon.WebGLContext) *wcommon.Shader

func SelectPoseByWorldXY

func SelectPoseByWorldXY(sobj *SceneObject)

Types

type Camera

type Camera struct {
	// contains filtered or unexported fields
}

func NewCamera

func NewCamera(wh_aspect_ratio [2]int, fov_in_clipwidth float32, zoom float32) *Camera

func (*Camera) ApplyBoundingBox

func (self *Camera) ApplyBoundingBox(position bool, zoomlevel bool) *Camera

func (*Camera) IsPointVisible

func (self *Camera) IsPointVisible(wxy [2]float32) bool

func (*Camera) ProjectWorldToCanvas

func (self *Camera) ProjectWorldToCanvas(wxy [2]float32) [2]int

func (*Camera) ProjectWorldToClip

func (self *Camera) ProjectWorldToClip(wxy [2]float32) [2]float32

func (*Camera) Rotate

func (self *Camera) Rotate(angle_in_degree float32) *Camera

func (*Camera) SetAspectRatio

func (self *Camera) SetAspectRatio(width int, height int) *Camera

func (*Camera) SetBoundingBox

func (self *Camera) SetBoundingBox(bbox [2][2]float32) *Camera

func (*Camera) SetFov

func (self *Camera) SetFov(fov float32) *Camera

func (*Camera) SetPose

func (self *Camera) SetPose(cx float32, cy float32, angle_in_degree float32) *Camera

func (*Camera) SetZoom

func (self *Camera) SetZoom(zoom float32) *Camera

func (*Camera) ShowInfo

func (self *Camera) ShowInfo()

func (*Camera) Translate

func (self *Camera) Translate(tx float32, ty float32) *Camera

func (*Camera) UnprojectCanvasDeltaToWorld

func (self *Camera) UnprojectCanvasDeltaToWorld(deltaxy [2]int) [2]float32

func (*Camera) UnprojectCanvasToWorld

func (self *Camera) UnprojectCanvasToWorld(canvasxy [2]int) [2]float32

type Geometry

type Geometry struct {
	// contains filtered or unexported fields
}

func NewGeometry

func NewGeometry() *Geometry

func NewGeometry_Origin

func NewGeometry_Origin() *Geometry

func NewGeometry_Polygon

func NewGeometry_Polygon(n int, radius float32, starting_angle_in_degree float32) *Geometry

func NewGeometry_Rectangle

func NewGeometry_Rectangle(size float32) *Geometry

func NewGeometry_Triangle

func NewGeometry_Triangle(size float32) *Geometry

func (*Geometry) AddEdge

func (self *Geometry) AddEdge(edge []uint32) uint32

func (*Geometry) AddFace

func (self *Geometry) AddFace(face []uint32) uint32

func (*Geometry) AddTextureUV

func (self *Geometry) AddTextureUV(tuv []float32) *Geometry

func (*Geometry) AddVertex

func (self *Geometry) AddVertex(coords [2]float32) uint32

func (*Geometry) AppyMatrix

func (self *Geometry) AppyMatrix(matrix *geom2d.Matrix3) *Geometry

func (*Geometry) BuildDataBuffers

func (self *Geometry) BuildDataBuffers(for_points bool, for_lines bool, for_faces bool)

func (*Geometry) BuildDataBuffersForWireframe

func (self *Geometry) BuildDataBuffersForWireframe()

func (*Geometry) BuildWebGLBuffers

func (self *Geometry) BuildWebGLBuffers(wctx *wcommon.WebGLContext, for_points bool, for_lines bool, for_faces bool)

func (*Geometry) Clear

func (self *Geometry) Clear(geom bool, data_buf bool, webgl_buf bool) *Geometry

func (*Geometry) GetWebGLBuffer

func (self *Geometry) GetWebGLBuffer(draw_mode int) (js.Value, int, [4]int)

func (*Geometry) HasTextureFor

func (self *Geometry) HasTextureFor(mode string) bool

func (*Geometry) IsDataBufferReady

func (self *Geometry) IsDataBufferReady() bool

func (*Geometry) IsWebGLBufferReady

func (self *Geometry) IsWebGLBufferReady() bool

func (*Geometry) Merge

func (self *Geometry) Merge(g *Geometry) *Geometry

func (*Geometry) Rotate

func (self *Geometry) Rotate(angle_in_degree float32) *Geometry

func (*Geometry) Scale

func (self *Geometry) Scale(sx float32, sy float32) *Geometry

func (*Geometry) SetEdges

func (self *Geometry) SetEdges(edges [][]uint32) *Geometry

func (*Geometry) SetFaces

func (self *Geometry) SetFaces(faces [][]uint32) *Geometry

func (*Geometry) SetTextureUVs

func (self *Geometry) SetTextureUVs(tuvs [][]float32) *Geometry

func (*Geometry) SetVertices

func (self *Geometry) SetVertices(vertices [][2]float32) *Geometry

func (*Geometry) ShowInfo

func (self *Geometry) ShowInfo()

func (*Geometry) Translate

func (self *Geometry) Translate(tx float32, ty float32) *Geometry

type Overlay

type Overlay interface {
	Render(pvm *geom2d.Matrix3)
}

type OverlayLabel

type OverlayLabel struct {
	// contains filtered or unexported fields
}

func (*OverlayLabel) SetBackground

func (self *OverlayLabel) SetBackground(bkgtype string) *OverlayLabel

func (*OverlayLabel) SetCharacterWH

func (self *OverlayLabel) SetCharacterWH(chwh [2]float32) *OverlayLabel

func (*OverlayLabel) SetPose

func (self *OverlayLabel) SetPose(rotation float32, offset_reference string, offset [2]float32) *OverlayLabel

type OverlayLabelLayer

type OverlayLabelLayer struct {
	Labels []*OverlayLabel //
	// contains filtered or unexported fields
}

func NewOverlayLabelLayer

func NewOverlayLabelLayer(wctx *wcommon.WebGLContext, fontsize int, outlined bool) *OverlayLabelLayer

func (*OverlayLabelLayer) AddLabel

func (self *OverlayLabelLayer) AddLabel(labels ...*OverlayLabel) *OverlayLabelLayer

func (*OverlayLabelLayer) AddLabelsForTest

func (self *OverlayLabelLayer) AddLabelsForTest() *OverlayLabelLayer

func (*OverlayLabelLayer) AddTextLabel

func (self *OverlayLabelLayer) AddTextLabel(label_text string, xy [2]float32, color string, offref string) *OverlayLabelLayer

func (*OverlayLabelLayer) CreateLabel

func (self *OverlayLabelLayer) CreateLabel(label_text string, xy [2]float32, color string) *OverlayLabel

func (*OverlayLabelLayer) FindLabel

func (self *OverlayLabelLayer) FindLabel(label_text string) *OverlayLabel

func (*OverlayLabelLayer) Render

func (self *OverlayLabelLayer) Render(pvm *geom2d.Matrix3)

func (*OverlayLabelLayer) ShowInfo

func (self *OverlayLabelLayer) ShowInfo()

type OverlayMarkerLayer

type OverlayMarkerLayer struct {
	Markers []*SceneObject // list of OverlayMarkers to be rendered (in pixels in CAMERA space)
	// contains filtered or unexported fields
}

func NewOverlayMarkerLayer

func NewOverlayMarkerLayer(wctx *wcommon.WebGLContext) *OverlayMarkerLayer

func (*OverlayMarkerLayer) AddArrowHeadMarker

func (self *OverlayMarkerLayer) AddArrowHeadMarker(size float32, color string, outline_color string, rotation float32, xy [2]float32) *OverlayMarkerLayer

func (*OverlayMarkerLayer) AddArrowMarker

func (self *OverlayMarkerLayer) AddArrowMarker(size float32, color string, outline_color string, rotation float32, xy [2]float32) *OverlayMarkerLayer

func (*OverlayMarkerLayer) AddMarker

func (self *OverlayMarkerLayer) AddMarker(marker ...*SceneObject) *OverlayMarkerLayer

func (*OverlayMarkerLayer) AddMarkersForTest

func (self *OverlayMarkerLayer) AddMarkersForTest() *OverlayMarkerLayer

func (*OverlayMarkerLayer) AddSpriteMarker

func (self *OverlayMarkerLayer) AddSpriteMarker(imgpath string, color string, wh [2]float32, xy [2]float32, offref string) *OverlayMarkerLayer

func (*OverlayMarkerLayer) CreateArrowHeadMarker

func (self *OverlayMarkerLayer) CreateArrowHeadMarker(size float32, color string, outline_color string, use_poses bool) *SceneObject

func (*OverlayMarkerLayer) CreateArrowMarker

func (self *OverlayMarkerLayer) CreateArrowMarker(size float32, color string, outline_color string, use_poses bool) *SceneObject

func (*OverlayMarkerLayer) CreateSpriteMarker

func (self *OverlayMarkerLayer) CreateSpriteMarker(imgpath string, color string, wh [2]float32, offref string, use_poses bool) *SceneObject

func (*OverlayMarkerLayer) GetShaderForMarker

func (self *OverlayMarkerLayer) GetShaderForMarker(use_poses bool) *wcommon.Shader

func (*OverlayMarkerLayer) GetShaderForSpriteMarker

func (self *OverlayMarkerLayer) GetShaderForSpriteMarker(wh [2]float32, offrot [3]float32, use_poses bool) *wcommon.Shader

func (*OverlayMarkerLayer) Render

func (self *OverlayMarkerLayer) Render(pvm *geom2d.Matrix3)

type Renderer

type Renderer struct {
	// contains filtered or unexported fields
}

func NewRenderer

func NewRenderer(wctx *wcommon.WebGLContext) *Renderer

func (*Renderer) Clear

func (self *Renderer) Clear(scene *Scene)

func (*Renderer) RenderAxes

func (self *Renderer) RenderAxes(camera *Camera, length float32)

func (*Renderer) RenderScene

func (self *Renderer) RenderScene(scene *Scene, camera *Camera)

func (*Renderer) RenderSceneObject

func (self *Renderer) RenderSceneObject(sobj *SceneObject, pvm *geom2d.Matrix3) error

type Scene

type Scene struct {
	// contains filtered or unexported fields
}

func NewScene

func NewScene(bkg_color string) *Scene

func (*Scene) Add

func (self *Scene) Add(scnobj ...*SceneObject) *Scene

func (*Scene) AddOverlay

func (self *Scene) AddOverlay(overlay ...Overlay) *Scene

func (*Scene) Get

func (self *Scene) Get(indices ...int) *SceneObject

func (*Scene) GetBBoxSizeCenter

func (self *Scene) GetBBoxSizeCenter(renew bool) ([2][2]float32, [2]float32, [2]float32)

func (*Scene) GetBkgColor

func (self *Scene) GetBkgColor() [3]float32

func (*Scene) GetBoundingBox

func (self *Scene) GetBoundingBox(renew bool) [2][2]float32

func (*Scene) SetBkgColor

func (self *Scene) SetBkgColor(color string) *Scene

type SceneObject

type SceneObject struct {
	Geometry *Geometry         // geometry interface
	Material *wcommon.Material // material
	VShader  *wcommon.Shader   // vert shader and its bindings
	EShader  *wcommon.Shader   // edge shader and its bindings
	FShader  *wcommon.Shader   // face shader and its bindings

	UseDepth bool // depth test flag (default is true)
	UseBlend bool // blending flag with alpha (default is false)
	// contains filtered or unexported fields
}

func NewSceneObject

func NewSceneObject(geometry *Geometry, material *wcommon.Material,
	vshader *wcommon.Shader, eshader *wcommon.Shader, fshader *wcommon.Shader) *SceneObject

func NewSceneObject_2DAxes

func NewSceneObject_2DAxes(wctx *wcommon.WebGLContext, length float32) *SceneObject

func NewSceneObject_HexagonWireframe

func NewSceneObject_HexagonWireframe(wctx *wcommon.WebGLContext) *SceneObject

func NewSceneObject_RectangleInstancesExample

func NewSceneObject_RectangleInstancesExample(wctx *wcommon.WebGLContext) *SceneObject

func NewSceneObject_RedTriangle

func NewSceneObject_RedTriangle(wctx *wcommon.WebGLContext) *SceneObject

func SelectObjectByWorldXY

func SelectObjectByWorldXY(scene *Scene) *SceneObject

func (*SceneObject) AddChild

func (self *SceneObject) AddChild(child *SceneObject) *SceneObject

func (*SceneObject) GetBoundingBox

func (self *SceneObject) GetBoundingBox(m *geom2d.Matrix3, renew bool) [2][2]float32

func (*SceneObject) Rotate

func (self *SceneObject) Rotate(angle_in_degree float32) *SceneObject

func (*SceneObject) Scale

func (self *SceneObject) Scale(sx float32, sy float32) *SceneObject

func (*SceneObject) SetPoseValues

func (self *SceneObject) SetPoseValues(index int, offset int, values ...float32) *SceneObject

func (*SceneObject) SetPoses

func (self *SceneObject) SetPoses(poses *wcommon.SceneObjectPoses) *SceneObject

func (*SceneObject) SetTransformation

func (self *SceneObject) SetTransformation(txy [2]float32, angle_in_degree float32, sxy [2]float32) *SceneObject

func (*SceneObject) SetupPoses

func (self *SceneObject) SetupPoses(size int, count int, data []float32) *SceneObject

func (*SceneObject) ShowInfo

func (self *SceneObject) ShowInfo()

func (*SceneObject) Translate

func (self *SceneObject) Translate(tx float32, ty float32) *SceneObject

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL