void ramDrawNodes(const ramNodeArray& nodeArray)
{
	if (nodeArray.getNumNode() == 0) return;

	if (nodeArray.isActor())
		ramDrawBasicActor((ramActor &)nodeArray);
	else
		ramDrawBasicRigid((ramRigidBody &)nodeArray);
}
示例#2
0
void ramActorsScene::draw()
{
    ///
	bRecording = false;
    
    ///
    ramBeginCamera();

	for(int i=0; i<getNumNodeArray(); i++)
	{
		ramNodeArray &NA = getNodeArray(i);
		
		const string name = NA.getName();
		
		SegmentsIter it = mSegmentsMap.find(name);
		
		if (it == mSegmentsMap.end())
			continue;
		
		BaseSegment *seg = it->second;
		
		/// draw if "Show actor" toggle is anabled
		// note that ofxUIImageToggle shows hilighted image when it's false,
        if (seg->isVisible())
		{
			ofPushMatrix();
			ofPushStyle();
			{
				
				if (bUseShading) light.enable();
				
				ofSetColor(seg->jointColor);
				ofTranslate(seg->position.x, 0, seg->position.y);
				
				if (NA.isRigid())
				{
					ramDrawBasicRigid((ramRigidBody&)NA);
				}
				else
				{
					if (bUseSimpleActor)
                        ramDrawBasicActor((ramActor&)NA);
					else
                        drawNodes(NA);
				}
				
				if (bUseShading) light.disable();
			}
			ofPopStyle();
			ofPopMatrix();
		}
		
		if (seg->getType() == RAM_UI_SEGMENT_TYPE_CONTROL)
        {
            if (static_cast<ControlSegment*>(seg)->isRecording())
            {
                bRecording = true;
            }
        }
	}
    ramEndCamera();
}