THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 03/07/2011 at 05:26, xxxxxxxx wrote:
Cinema 4D Version: 12
Platform: Windows ; Mac ;
Language(s) : C++ ;
I am trying to automatically add an FFD object as a child of my object plugin. I want to automate the process of allowing FFD manipulation. I am able to add the FFD deformer as a child. That's the easy part. Now I want to allow the user to access the points of that FFD object while my object is selected. I was thinking of drawing my own grid using handles and giving teh user access to those handles. I also considered Setting both the FFD deformer and my ojbect to the active object which would make the points accessible. The problem with that is when they are both selected, my object's attributes are not available. Is there a way for me to access the points on the grid of an FFD without having the FFD object selected?
On 03/07/2011 at 09:46, xxxxxxxx wrote:
Simple answer: no. This is not a programmatic problem, it is the way Cinema 4D works. In order for the user to manipulate points on an object, any object, it must be selected (and you must be in Point tool mode).
ETA: Overlaying your own grid (maybe based on the FFD as a reference) might be the best approach. You will need to consider if the user changes the gridding subdivisions of the FFD.
On 03/07/2011 at 12:46, xxxxxxxx wrote:
So if I made my own grid, how would I access the points of the FFD? Where are the locations of those points stored?
On 03/07/2011 at 14:59, xxxxxxxx wrote:
The FFD object is derived from the PointObject so you can access them using GetPointW() and GetPointCount().
On 03/07/2011 at 19:43, xxxxxxxx wrote:
Okay, but to allocate an FFD Object I need to do this..
BaseObject *ffd = BaseObject::Alloc(Offd);
if(!ffd) return NULL;
but GetPointW & GetPointCount() are not methods for BaseObject.
Am I allocating the FFD wrong?
On 03/07/2011 at 20:24, xxxxxxxx wrote:
Oh I see.. I needed to allocate it with BaseObject and then Cast it over to PointObject.