Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement PerspexObject Clone support #19

Closed
amerkoleci opened this issue Jan 27, 2015 · 8 comments
Closed

Implement PerspexObject Clone support #19

amerkoleci opened this issue Jan 27, 2015 · 8 comments

Comments

@amerkoleci
Copy link
Contributor

Allowing cloning of PerspexObject and all its properties (values) would be usefull, specially brush clones etc.

@grokys
Copy link
Member

grokys commented Jan 27, 2015

This is something @SuperJMN is working on right now I believe.

However, could you give a use-case to help us understand what you need?

@amerkoleci
Copy link
Contributor Author

Wpf has the concept of Freezable and Animatable, Brush derives from this so the user can Clone a brush and CloneCurrentValue (which clones instance and copies properties value).

@grokys
Copy link
Member

grokys commented Jan 27, 2015

I think it's unlikely that Perpsex will have Freezable - it's more likely we'll go with immutable objects, though that hasn't been decided for definite.

However, I still don't know why you need cloning. Could you give a use-case? I.e. What are you trying to do?

@amerkoleci
Copy link
Contributor Author

Wpf brush linear gradient and radial gradient can set the mapping mode (absolute or relative), during rendering (to Direct2D) I need to remap thoose values to bounds, thus I need to clone the brush and remap some values, I can with no problem hardcode the clone method but was wondering if you were going to implement this.

@grokys
Copy link
Member

grokys commented Jan 27, 2015

Ok, thanks. Yes I need to work out how that situation will be handled. Do you see any problems with making gradient brushes mutable?

@amerkoleci
Copy link
Contributor Author

Nope, basically I check whether the brush is relative to bounds and map start/end point in linear gradient brush, the mapping method is this:

public static Point MapPoint(Rect bounds, Point p)
        {
            return new Point(bounds.Left + p.X * bounds.Width, bounds.Top + p.Y * bounds.Height);
        }

Same goes to radial gradient, you map center and center origin.

@SuperJMN
Copy link
Contributor

Hey, just for our information, I'm working on a ITreeReplicator that takes a PerspexObject and generates a replica of it :)

@grokys
Copy link
Member

grokys commented Jul 25, 2015

Closing this as I don't think it makes sense and would be hard when considering that the order in which properties are set makes a difference. Please re-open if you really need it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants