Giter VIP home page Giter VIP logo

balder's People

Contributors

einari avatar

Watchers

 avatar  avatar  avatar  avatar

balder's Issues

IsVisible not working as expected

We are using a of object.IsEnabled to ignore seats and object.IsVisible to turn them off from being displayed. I have seen cases where setting dataiteminfo.node.IsVisible = false is ignored, and I am unsure if I have seen other cases where setting this value leads to hiding the entire InstancingNodes. I can find no changes in behavior from old seating chart version to new version that might account for this behavior, leading me to believe it is in the new InstancingNodes.

Orthographic Camera causes exception in Balder.

When attempting to use Orthographic Cameras, Balder throws exceptions of two types: 1. XSize/YSize not defined
2. An exception during view transformation.

The first exception might be related to Seating Chart issues, and can possibly be ignored. Please examine for any case where this might arise during camera initialization.

The second case comes on rendering using an Orthographic Projection. I will recreate exception later this week and forward details. Client is abandoning the use of the Orthographic views, but during this transition, it might cause needless concern...

Object boundingbox intersection search stop should be configurable

When interacting with objects that are "stacked" one in front of the other, the one on top (the first object that has a triangle intersected along the intersection ray and within the bounding box limits) should stop the search and return that object. until the mouse leaves the bounding box, that object should be the object returned when "wiggling" the mouse within the bounding box.

HIGH PRIORITY!! Plane (Geometry, not Math) does not recognize IsVisible when applied in InstancingNodes using a Template.

I have the following:
Wall Template Node:

<Balder:RenderableNode x:Class="Shubert.SeatingChart.Controls.WallTemplateNode"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Balder="clr-namespace:Balder;assembly=Balder"
xmlns:Geometries="clr-namespace:Balder.Objects.Geometries;assembly=Balder"
xmlns:MaterialsNamespace="clr-namespace:Balder.Materials;assembly=Balder"
mc:Ignorable="d"
DefaultBoundingObjectType="Box"
>

<Geometries:Plane x:Name ="WallSegment" Dimension="20,40">
    <Geometries:Plane.Material>
        <MaterialsNamespace:Material DoubleSided="False" 
                                     DiffuseMap="/Shubert.SeatingChart;component/Assets/WallModels/wall.png" 
                                     Ambient="Black" Diffuse="Black" Specular="Black" Shade="None"
                                     />
    </Geometries:Plane.Material>
</Geometries:Plane> 

/Balder:RenderableNode

And it is accessed in the following Control:
<Controls:InstancingNodes x:Class="Shubert.SeatingChart.Controls.WallsControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:Balder.Controls;assembly=Balder"
xmlns:LocalControls="clr-namespace:Shubert.SeatingChart.Controls"
xmlns:Geometries="clr-namespace:Balder.Objects.Geometries;assembly=Balder"
xmlns:MaterialsNamespace="clr-namespace:Balder.Materials;assembly=Balder"
Data="{Binding}"
>
Controls:InstancingNodes.NodeTemplate

LocalControls:WallTemplateNode/

/Controls:InstancingNodes.NodeTemplate
/Controls:InstancingNodes

Within the PrepareItemInfos event handler, I am using the following:

    private new void PrepareDataItemInfo(object dataItem, DataItemInfo dataIteminfo)
    {
        try
        {
            if (dataItem is FreeWallNode)
            {   
                FreeWallNode wall = dataItem as FreeWallNode;
                dataIteminfo.Position = wall.Position;
                dataIteminfo.Rotation = wall.Rotation;
                dataIteminfo.Scale = wall.Scale;
                dataIteminfo.IsVisible = wall.IsVisible;
            }
        }
        catch (Exception e)
        {
            dataIteminfo.Node = null;
        }
    }

I know that the values for wall.IsVisible are being set to false. Attached is the result:
image

The wall segment that is circled should NOT be visible. The reason that it is the only one that is visible is the angle of all the other segments relative to the camera "hides" them as they are single sided materials. Having the ability to hide/show on demand is a must. It seems to fail when working with any of the GENERATED GEOMETRIES, like box and plane, but works on the model based geometries. I have also tried using the Plane directly in the parent control with the same effect, difference being that I need to then specify the material to the dataiteminfo in the event handler.

Please help asap!

Clipping Instancing node too aggressively

InstancingNodes are apparently getting clipped if the "middle" of the bounding object is not in camera view. A more moderate approach is needed to clip only children of the InstancingNodes that are not in view, leaving all nodes that are in view unclipped.

Lag when changing textures for many nodes

When changing textures for many nodes, there is still a noticeable lag. Cannot determine where it is originating.

Method used to change textures is to loop through objects to be changed and change their color, listening for property changed events to set the texture in the InstancingNodes control, then when done, signaling to balder to render.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.