SplineObject::ResizeObject help
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 11/11/2004 at 15:46, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.206
Platform:
Language(s) : C++ ;---------
Hi, I'm trying to resize a spline to give it more points. I am currently trying it using the SplineObject::ResizeObject// oSpline is the spline object oSpline->ResizeObject(10,1);
But in the viewport. There is no points on the spline object. Using the life selection tool highlights a point at {0,0,0} but it doesn't keep it highlighted. Also the structure tab for the spline object shows there are 10 points, with every point at {0,0,0}.
So it seems the points are there, just they are not usuable. -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 06:35, xxxxxxxx wrote:
Hi, ResizeObject will only add new points but as you have noticed they are all placed at 0,0,0. It is YOUR job to place them to the correct spot!
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 11:35, xxxxxxxx wrote:
Hi 3D Designer.
Thing is, I HAVE moved them to another spot in the 3D world. But the spline doesn't show in the viewport, nor does any of the control points.
It's fine if I create the spline object with default point count in the constructer, but after I Resize it, all points just dissappear.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 11:39, xxxxxxxx wrote:
did you call oSpline->Message(MSG_CHANGE); ? This is always necessary when modifying pointdata.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 11:55, xxxxxxxx wrote:
Yeah, I tried that
This is the full code that i'm trying to work
// Find Spline Object (This object is a empty spline) SplineObject *oSpline = (SplineObject* )hh->GetDocument()->SearchObject("Spline"); if(!oSpline) return NULL; // Resize the Spline to have 10 points oSpline->ResizeObject(10,1); // Move the points for(LONG i=0; i < 10; i++) { Vector *vadr = oSpline->GetPoint(); vadr _= Vector(0.0,0.0,i*50.0); } oSpline->Message(MSG_UPDATE);
The thing that confuses me is that the points seem to be there (even though I can't see them), but I cannot access them with any of the C4D tools. Using live selection tool for example, actually highlights the points, but as soon as I release the mouse button, they de-select themselves
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 12:13, xxxxxxxx wrote:
Hi,
your code seems to be a bit wrong. It should look like this:
SplineObject *oSpline = (SplineObject* )hh->GetDocument()->SearchObject("Spline"); if(!oSpline) return NULL; // Resize the Spline to have 10 points oSpline->ResizeObject(10,1); **oSpline- >Message(MSG_CHANGE);** //Call it after resizing // Move the points **Vector *vadr = oSpline- >GetPoint();** //Get points already here (performance) for(LONG i=0; i < 10; i++) { vadr **[ i ]** = Vector(0.0,0.0,i*50.0); //Missing index }
oSpline->Message(MSG_UPDATE);
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 14:35, xxxxxxxx wrote:
It was a bit wrong because i typed it up and was rushing
the only difference I did was I didnt do the message after resize. will try that next!
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 14:57, xxxxxxxx wrote:
Howdy,
I know this may look wrong but try changing your resize line to this:
oSpline->ResizeObject(10,0);
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 16:18, xxxxxxxx wrote:
Quote: Originally posted by Cactus Dan on 12 November 2004
>
> * * *
>
> Howdy,
>
> I know this may look wrong but try changing your resize line to this:
>
> oSpline- >ResizeObject(10,0);
>
> Adios,
> Cactus Dan
>
>
> * * *THANK YOU!
I thought it was me going crazy. Everything I tried wouldn't, but I never imagined resizing the spline with 0 segments would of worked.
Thanks for your help people, works a charm
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 16:38, xxxxxxxx wrote:
Howdy,
I struggled for a long time with the same thing. One segment seemed more logical to me, but then I did a GetSegmentCount() beforehand and printed the result and it displayed the number 0.
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2004 at 18:59, xxxxxxxx wrote:
Good point. Haven´t thought of this myself.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/11/2004 at 09:13, xxxxxxxx wrote:
Howdy,
> Quote: Originally posted by 3D Designer on 12 November 2004
>
> * * *
>
> Good point. Haven´t thought of this myself.
>
>
> * * *Actually, I started using it like this:
LONG seg = oSpline- >GetSegmentCount();
oSpline->ResizeObject(10, seg);That way I avoid any confusion on my part.
Adios,
Cactus Dan -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/11/2004 at 09:56, xxxxxxxx wrote:
Yeah, but it´s anyway not really logical. It´s plausible that if it is no multi-segment spline the count is unnecessary and is set to 0 but it would be more logical if one had to pass 1.
Anyway, I am not using this at all but always use the VariableChanged class, so I haven´t gotten into this problem yet either.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/11/2004 at 10:27, xxxxxxxx wrote:
Howdy,
Hey, thanks for the tip. I wasn't aware of that class. It looks like a good one to know.
Adios,
Cactus Dan