Skip to content

package editor_stage_manager

import "kaijuengine.com/editor/editor_stage_manager"

Functions

SnapVerticesFromMesh

func SnapVerticesFromMesh(verts []rendering.Vertex) []matrix.Vec3

Types

ConstraintChainAttachment

struct

type ConstraintChainAttachment struct {
    Entity *StageEntity
    Data   *entity_data_binding.EntityDataEntry
}

ConstraintChainKind

int

type ConstraintChainKind int

const ( ConstraintChainDistance ConstraintChainKind = iota ConstraintChainRope ConstraintChainHinge )

EditorUserInterface

interface

type EditorUserInterface interface {
    BlurInterface()
    FocusInterface()
}

SelectionMode

int

type SelectionMode int

const ( SelectionModeReplace SelectionMode = iota SelectionModeAppend SelectionModeToggle )

StageAlreadyExistsError

struct

type StageAlreadyExistsError struct {
    Id string
}

StageAlreadyExistsError.Error

func (e StageAlreadyExistsError) Error() string

StageEntity

struct

type StageEntity struct {
    engine.Entity
    StageData StageEntityEditorData
    PickID    uint32

    // Has unexported fields.
}

EntityToStageEntity

func EntityToStageEntity(e *engine.Entity) *StageEntity

StageEntity.AddDataBinding

func (e *StageEntity) AddDataBinding(binding *entity_data_binding.EntityDataEntry)

StageEntity.AttachDataBinding

func (e *StageEntity) AttachDataBinding(binding *entity_data_binding.EntityDataEntry)

StageEntity.DataBindings

func (e *StageEntity) DataBindings() []*entity_data_binding.EntityDataEntry

StageEntity.DataBindingsByKey

func (e *StageEntity) DataBindingsByKey(key string) []*entity_data_binding.EntityDataEntry

StageEntity.Depth

func (e *StageEntity) Depth() int

StageEntity.DetachDataBinding

func (e *StageEntity) DetachDataBinding(binding *entity_data_binding.EntityDataEntry)

StageEntity.IsDeleted

func (e *StageEntity) IsDeleted() bool

StageEntity.IsLocked

func (e *StageEntity) IsLocked() bool

StageEntity.Lock

func (e *StageEntity) Lock()

StageEntity.SetLocked

func (e *StageEntity) SetLocked(locked bool)

StageEntity.SetMaterial

func (e *StageEntity) SetMaterial(mat *rendering.Material, manager *StageManager)

StageEntity.Unlock

func (e *StageEntity) Unlock()

StageEntityEditorData

struct

type StageEntityEditorData struct {
    Bvh                   *graviton.BVH
    WorldBvh              *graviton.BVH
    Mesh                  *rendering.Mesh
    SnapVertices          []matrix.Vec3
    ShaderData            rendering.DrawInstance
    PickingShaderData     rendering.DrawInstance
    Description           stages.EntityDescription
    PendingMaterialChange bool
}

StageEntityEditorData is the structure holding all the uniquely identifiable and linking data about the entity on this stage. That will include things like content linkage, data bindings, etc.

StageManager

struct

type StageManager struct {
    OnEntitySpawn         events.EventWithArg[*StageEntity]
    OnEntityDestroy       events.EventWithArg[*StageEntity]
    OnEntitySelected      events.EventWithArg[*StageEntity]
    OnEntityDeselected    events.EventWithArg[*StageEntity]
    OnEntityChangedParent events.EventWithArg[*StageEntity]
    OnEntityLockChanged   events.EventWithArg[*StageEntity]

    // Has unexported fields.
}

StageManager represents the current stage in the editor. It contains all of the entities on the stage.

StageManager.AddBVH

func (m *StageManager) AddBVH(e *StageEntity)

StageManager.AddEntity

func (m *StageManager) AddEntity(name string, point matrix.Vec3) *StageEntity

AddEntity will generate a new entity for the stage with a new random Id. It will internally just call StageManager.AddEntityWithId.

StageManager.AddEntityWithId

func (m *StageManager) AddEntityWithId(id, name string, point matrix.Vec3) *StageEntity

AddEntityWithId will create an entity for the stage with a specified Id rather than generating one. This entity will have a StageEntityData automatically added to it as named data named "stage".

StageManager.AddPickingDrawing

func (m *StageManager) AddPickingDrawing(e *StageEntity)

StageManager.AssignPickID

func (m *StageManager) AssignPickID(e *StageEntity) uint32

StageManager.AttachEntityData

func (m *StageManager) AttachEntityData(e *StageEntity, g codegen.GeneratedType) *entity_data_binding.EntityDataEntry

StageManager.Clear

func (m *StageManager) Clear()

Clear will destroy all entities that are managed by this stage manager.

StageManager.ClearPickingDrawing

func (m *StageManager) ClearPickingDrawing(e *StageEntity)

StageManager.ClearSelection

func (m *StageManager) ClearSelection()

StageManager.ConnectSelectedAsConstraintChain

func (m *StageManager) ConnectSelectedAsConstraintChain(kind ConstraintChainKind) []ConstraintChainAttachment

StageManager.ConnectSelectedAsDistanceChain

func (m *StageManager) ConnectSelectedAsDistanceChain() []ConstraintChainAttachment

StageManager.ConnectSelectedAsHingeChain

func (m *StageManager) ConnectSelectedAsHingeChain() []ConstraintChainAttachment

StageManager.ConnectSelectedAsRope

func (m *StageManager) ConnectSelectedAsRope() []ConstraintChainAttachment

StageManager.CreateTemplateFromSelected

func (m *StageManager) CreateTemplateFromSelected(edEvts *editor_events.EditorEvents, proj *project.Project) error

StageManager.DeselectEntity

func (m *StageManager) DeselectEntity(e *StageEntity)

StageManager.DestroySelected

func (m *StageManager) DestroySelected()

StageManager.DirtyPickableTransforms

func (m *StageManager) DirtyPickableTransforms()

StageManager.DuplicateSelected

func (m *StageManager) DuplicateSelected(proj *project.Project)

StageManager.DuplicateSelectionInPlace

func (m *StageManager) DuplicateSelectionInPlace(proj *project.Project) []*StageEntity

StageManager.Entities

func (m *StageManager) Entities() []*StageEntity

StageManager.EntitiesByPickIDs

func (m *StageManager) EntitiesByPickIDs(ids []uint32) []*StageEntity

StageManager.EntityById

func (m *StageManager) EntityById(id string) (*StageEntity, bool)

StageManager.EntityByPickID

func (m *StageManager) EntityByPickID(id uint32) (*StageEntity, bool)

StageManager.HasPickableEntities

func (m *StageManager) HasPickableEntities() bool

StageManager.HasSelection

func (m *StageManager) HasSelection() bool

StageManager.HierarchyRespectiveSelection

func (m *StageManager) HierarchyRespectiveSelection() []*StageEntity

StageManager.Initialize

func (m *StageManager) Initialize(host *engine.Host, history *memento.History, editorUI EditorUserInterface)

StageManager.IsNew

func (m *StageManager) IsNew() bool

StageManager.IsSelected

func (m *StageManager) IsSelected(e *StageEntity) bool

StageManager.IsSelectedById

func (m *StageManager) IsSelectedById(id string) bool

StageManager.LastSelected

func (m *StageManager) LastSelected() *StageEntity

StageManager.List

func (m *StageManager) List() []*StageEntity

List will return all of the internally held entities for the stage

StageManager.LoadStage

func (m *StageManager) LoadStage(id string, host *engine.Host, cache *content_database.Cache, proj *project.Project) error

StageManager.NewPickingDrawing

func (m *StageManager) NewPickingDrawing(e *StageEntity, material *rendering.Material, mesh *rendering.Mesh, transform *matrix.Transform) (rendering.Drawing, rendering.DrawInstance, bool)

StageManager.NewStage

func (m *StageManager) NewStage()

StageManager.RefitBVH

func (m *StageManager) RefitBVH(entity *StageEntity)

StageManager.RefitWorldBVH

func (m *StageManager) RefitWorldBVH()

StageManager.RemoveEntityBVH

func (m *StageManager) RemoveEntityBVH(e *StageEntity)

StageManager.SaveStage

func (m *StageManager) SaveStage(cache *content_database.Cache, fs *project_file_system.FileSystem) error

StageManager.SelectAppendEntityById

func (m *StageManager) SelectAppendEntityById(id string)

StageManager.SelectEntities

func (m *StageManager) SelectEntities(entities []*StageEntity, mode SelectionMode)

StageManager.SelectEntity

func (m *StageManager) SelectEntity(e *StageEntity)

StageManager.SelectEntityById

func (m *StageManager) SelectEntityById(id string)

StageManager.SelectToggleEntityById

func (m *StageManager) SelectToggleEntityById(id string)

StageManager.SelectWithChildrenOrSingleEntityById

func (m *StageManager) SelectWithChildrenOrSingleEntityById(id string)

StageManager.SelectedHierarchyOrder

func (m *StageManager) SelectedHierarchyOrder() []*StageEntity

StageManager.Selection

func (m *StageManager) Selection() []*StageEntity

StageManager.SelectionBounds

func (m *StageManager) SelectionBounds() graviton.AABB

StageManager.SelectionCenter

func (m *StageManager) SelectionCenter() matrix.Vec3

StageManager.SelectionPivotCenter

func (m *StageManager) SelectionPivotCenter() matrix.Vec3

StageManager.SetEntityLocked

func (m *StageManager) SetEntityLocked(e *StageEntity, locked bool)

StageManager.SetEntityParent

func (m *StageManager) SetEntityParent(child, parent *StageEntity)

StageManager.SetStageId

func (m *StageManager) SetStageId(name string, cache *content_database.Cache) error

StageManager.SpawnTemplate

func (m *StageManager) SpawnTemplate(host *engine.Host, proj *project.Project, cc *content_database.CachedContent, point matrix.Vec3) (*StageEntity, error)

StageManager.StageId

func (m *StageManager) StageId() string

StageManager.TryAppendSelect

func (m *StageManager) TryAppendSelect(ray graviton.Ray) (*StageEntity, bool)

StageManager.TryBoxSelect

func (m *StageManager) TryBoxSelect(screenBox matrix.Vec4)

StageManager.TryBoxSelectWithMode

func (m *StageManager) TryBoxSelectWithMode(screenBox matrix.Vec4, mode SelectionMode)

StageManager.TryHitEntity

func (m *StageManager) TryHitEntity(ray graviton.Ray) (*StageEntity, matrix.Vec3, bool)

StageManager.TrySelect

func (m *StageManager) TrySelect(ray graviton.Ray) (*StageEntity, bool)

StageManager.TryToggleSelect

func (m *StageManager) TryToggleSelect(ray graviton.Ray) (*StageEntity, bool)

StageManager.VertexSnapTargetEntities

func (m *StageManager) VertexSnapTargetEntities(excludedRoots []*StageEntity) []*StageEntity